Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Removed "index_tools"; changed the definition of "draft_response", "get_scoreboard", "intake_message" and 4 more (9 tools before, 8 now)
Use this togeneratedraft atailoredreplydraftto a scored pitch: an interested reply,inquirya request for salary and remote details, or a politedeclinedecline.withIt needs anoptionalevaluation_idstandardizedfrom score_message or get_scoreboard; evaluations expire after 30 days. Errors: unknown_evaluation means score the pitch again with score_message and use the new evaluation_id; no_desk means call set_criteria first. Decision defaults to the recommended action. For a decline, ask the user whether to include the feedback card. Returns subject and body as a draft only; it never sends anything, and the user sends the reply themselves.
{"additionalProperties":false,"properties":{"decision":{"description":"TheKindresponseofdecisionreply.(defaultsDefaults to the evaluation'srecommended_action).recommended_action.","enum":["interested","request_info"," ⟨3 unchanged words⟩ },"evaluation_id":{"description":"The evaluation_idofreturnedthebypitchscore_messagetoordraftget_scoreboard,asuchreplyasfor.\"ev_3f9a1c2b\". Evaluations expire after 30 days."
{"properties":{"as_of":{"description":"Day of the call, as YYYY-MM-DD in UTC.","type":"string"},"body":{"description":"Draft reply body, with the feedback card appended when asked for.","type":"string"},"decision":{"description":"Kind of reply drafted.","enum":["interested","request_info","decline"],"type":"string"},"evaluation_id":{"description":"The evaluation the reply is for.","type":"string"},"feedback_card":{"description":"The feedback card text, or null when not asked for or not a decline.","type":["string","null"]},"notes":{"description":"Reminder that this is a draft and nothing is sent.","type":"string"},"sender_domain":{"description":"Sender domain of the pitch.","type":"string"},"source":{"description":"Where the data comes from: the user's own private desk.","type":"string"},"subject":{"description":"Draft subject line.","type":"string"}},"required":[" ⟨11 unchanged words⟩
Use this toviewshowyourwhichprivatesender domains send the best pitches. Returns one row per sender domainscoreboardwith volume,yieldaverageratesscores, yield rate (a 0 to 1 fraction of pitches marked interested) and a recommendation, plus up to 20 recent evaluations from the last 30 days, since older ones are pruned. Pass sender_domain to see one sender; send no arguments for all. Read-only. Errors: no_desk means call set_criteria first with target_role, skills, salary_floor and remote_policy; no_user_id means ask the user to sign in to ChatGPT and retry. When nothing is scored yet the lists are empty; ask the user to paste a pitchevaluations.for score_message.
Use thistoonlyopenas theinteractiveentryinboundpointpitchfor the interactive intake form, or when the user attaches a pitch file such as .eml or .msg. For a pitch pasted inChatGPTchat,oruseevaluatescore_message instead. With no message it returns status ready andstagetheanemptyincoming
Purge Desk Data.Use this towipepermanentlyrecordsdeleteforstoredadata.specificscope senderdomaindeletesoreverypermanentlyevaluationdeleteandyourtheentirescoreboard row for one sender_domain, which is then required (for example "stripe.com"). scope desk deletes the whole desk: criteria, senders
Use thistoforevaluateanyanrecruiterinboundpitchrecruiterthe user pastes in chat; use this, not intake_message, which is only the entry point for the form and attached files. It scores the pitchoragainstoutreachthemessageuser'sacrosssaved criteria and returns an evaluation_id, a composite score from 0 to 100, four sub-scores from 0 to 100 (relevance, specificity, cadence, spam where 100 is clean), flags, key reasons andspama
Set Candidate Criteria.Use this toconfiguresave the user's job search criteria; each call overwrites all saved criteria, and the earlier ones are lost. Best for: the first setup, which starts the user's private desk, orupdateayourchangetargetof role,coreskills,minimumsalary floor,or remotepolicypolicy. Input tips: send target_role, skills, salary_floor in whole US dollars anddealbreakersremote_policy,onplusyouroptional
⟨24 unchanged words⟩ or a feature request to the maintainers ofthesethetools.tools on this server. Send it when a tool is missing, a ⟨36 unchanged words⟩ name. Returns a ticket id. Feedback is forthesethe tools on this server only: it is not a chat, and ⟨20 unchanged words⟩
⟨66 unchanged words⟩ ,"tool":{"description":"Optional: the exact name of the tool on this server that the feedback is about,forasexampletools/list
Index and search openkrill MCP tools by task and keyword — LinkedIn recruiter jobs feedback broken links: search openkrill MCP tools by task. Use this to find a tool for recruiter search, LinkedIn keywords, jobs, feedback, a missing tool, bug reports, broken links, CVEs, packages, a domain check, or any other task. Lists tool name, a plain task phrase, and the MCP URL to connect. Feedback itself is submit_feedback on this same server.
Changed the definition of "draft_response", "get_scoreboard", "intake_message" and 3 more
⟨17 unchanged words⟩ ,"decline"],"type":"string"},"desk_key":{"description":"The secret desk_key returned when the desk was created. It is the only credential for this desk and cannot be recovered.","pattern":"^od_[0-9a-f]{32}$","type":"string"},"evaluation_id":{"description":"The evaluation_id of the ⟨22 unchanged words⟩ ,"type":"boolean"}},"required":["desk_key","evaluation_id"],"type":"object"}
{"additionalProperties":false,"properties":{"desk_key":{"description":"The secret desk_key returned when the desk was created. It is the only credential for this desk and cannot be recovered.","pattern":"^od_[0-9a-f]{32}$","type":"string"},"
Changed the definition of "intake_message"
{"destructiveHint":false,"idempotentHint":truefalse,"openWorldHint":false,"readOnlyHint":truefalse}
Certificate recorded, valid to 2027-01-02
Authorization not required
Unknown → Live
First tool surface recorded: 9 tools (server version 1.0.0)
https://outreachdesk.openkrill.app/mcp (mcp_streamable_http) — from mcp_registry, with the record
Showing the latest 8 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
⟨4 unchanged words⟩ ":{"description":"Optional sender domain tofiltershowscoreboardonlyresults.one sender, such as \"stripe.com\". Omit it for all senders.","type":"string"}},"type":"object"}
{"properties":{"as_of":{"description":"Day of the call, as YYYY-MM-DD in UTC.","type":"string"},"recent_evaluations":{"description":"Up to 20 newest evaluations from the last 30 days; older ones are pruned.","items":{"properties":{"composite_score":{"description":"Overall score, 0 to 100.","maximum":100,"minimum":0,"type":"integer"},"created_day":{"description":"Day the pitch was scored, as YYYY-MM-DD in UTC.","type":"string"},"evaluation_id":{"description":"Id to pass to draft_response.","type":"string"},"flags":{"description":"Warning flags. Values: missing_salary, dealbreaker_clash, token_failure (unfilled template token such as [Current Company]), aggressive_drip, repeat_after_decline, slop, artificial_urgency, free_webmail. Empty when the pitch is clean.","items":{"type":"string"},"type":"array"},"recommended_action":{"description":"Suggested reply.","enum":["interested","request_info","decline"],"type":"string"},"sender_domain":{"description":"Sender domain.","type":"string"},"summary":{"description":"Cleaned summary of the pitch.","type":"string"}},"required":["evaluation_id ⟨11 unchanged words⟩ "items":{"properties":{"avg_composite":{"description":"Average composite score, 0 to 100.","maximum":100,"minimum":0,"type":"integer"},"avg_relevance":{"description":"Average relevance sub-score, 0 to 100.","maximum":100,"minimum":0,"type":"integer"},"avg_specificity":{"description":"Average specificity sub-score, 0 to 100.","maximum":100,"minimum":0,"type":"integer"},"last_contact_day":{"description":"Day of the latest pitch, as YYYY-MM-DD in UTC.","type":"string"},"recommendation":{"description":"How to treat future pitches from this sender.","enum":["Priority Attention","Standard Review","Auto-Decline"],"type":"string"},"sender_domain":{"description":"Sender domain.","type":"string"},"volume":{"description":"Pitches scored from this sender since the desk started.","type":"integer"},"yield_count":{"description":"Pitches from this sender marked interested.","type":"integer"},"yield_rate":{"description":"yield_count divided by volume, as a 0 to 1 fraction.","maximum":1,"minimum":0,"type":"number"}},"required":["sender_domain ⟨10 unchanged words⟩ ,"type":"array"},"source":{"description":"Where the data comes from: the user's own private desk.","type":"string"},"summary":{"description":"One-line total; says what to do next when nothing is scored yet.","type":"string"}},"required":[" ⟨7 unchanged words⟩
{"additionalProperties":false,"properties":{"channel":{"description":"CommunicationOptional channel themessagepitchwascamereceivedfrom.on.Defaults to email.","enum":["email","linkedin"," ⟨3 unchanged words⟩ :"string"},"file":{"description":"FileSetmetadatabyinjectedChatGPT whenopenedthethroughuseraopens an attached pitch fileextension(.eml,entrypoint..msg, .pitch, .outreach). Do not fill it yourself.","properties":{"name":{"description":"File name, such as \"lead.eml\".","minLength":1,"type":"string"},"resourceUri":{"description":"The host link to the file.","minLength":1,"type":"string"}}," ⟨4 unchanged words⟩ :"object"},"message":{"description":"TheOptionalinboundpitchoutreachtext,orsuchrecruiteraspitch\"Hi,textwe are hiring a Staff Engineer at Stripe, $220k base, remote.\" Omit it toevaluate.open the empty intake form.","type":"string"},"priority":{"description":"Optionalcandidatepriorityassignedthetouser gives thisinboundpitch.opportunity.Defaults to medium.","enum":["high","medium"," ⟨2 unchanged words⟩ string"},"sender":{"description":"Optionalrecruitersenderinfo (email address, profile URL or domain), such as \"jane@stripe.com\".","type":"string"}},"type":"object"}
{"properties":{"as_of":{"description":"Day of the call, as YYYY-MM-DD in UTC.","type":"string"},"channel":{"description":"Channel the pitch came from.","type":"string"},"drafts":{"description":"Only with status ok: one draft body for each kind of reply. Nothing is sent.","properties":{"decline":{"description":"Draft body for a polite decline, with the feedback card appended.","type":"string"},"interested":{"description":"Draft body for an interested reply.","type":"string"},"request_info":{"description":"Draft body that asks for the salary range and remote policy.","type":"string"}},"required":["interested ⟨2 unchanged words⟩ ,"type":"object"},"evaluation":{"description":"Only with status ok: the score of the pitch.","properties":{"breakdown":{"description":"The four sub-scores, each an integer from 0 to 100 where higher is better.","properties":{"cadence":{"description":"How well spaced the outreach is; low for rapid follow-ups or contact after a decline.","maximum":100,"minimum":0,"type":"integer"},"relevance":{"description":"Fit with the target role, skills, salary floor and remote policy.","maximum":100,"minimum":0,"type":"integer"},"spam":{"description":"Spam safety: 100 is clean, low means template tokens, buzzwords or urgency.","maximum":100,"minimum":0,"type":"integer"},"specificity":{"description":"How concrete the pitch is: named company, role details and stated salary.","maximum":100,"minimum":0,"type":"integer"}},"required":["relevance ⟨3 unchanged words⟩ ,"type":"object"},"composite_score":{"description":"Overall score from 0 to 100.","maximum":100,"minimum":0,"type":"integer"},"evaluation_id":{"description":"Id to pass to draft_response; valid only when the user has a desk.","type":"string"},"flags":{"description":"Warning flags. Values: missing_salary, dealbreaker_clash, token_failure (unfilled template token such as [Current Company]), aggressive_drip, repeat_after_decline, slop, artificial_urgency, free_webmail. Empty when the pitch is clean.","items":{"type":"string"},"type":"array"},"key_reasons":{"description":"Plain reasons behind the scores.","items":{"type":"string"},"type":"array"},"recommended_action":{"description":"Suggested reply.","enum":["interested","request_info","decline"],"type":"string"},"sender_domain":{"description":"Sender domain of the pitch.","type":"string"},"summary":{"description":"Cleaned summary of the pitch.","type":"string"}},"required":["evaluation_id ⟨7 unchanged words⟩ ,"type":"object"},"file":{"description":"The attached file, when the form was opened from one.","properties":{"name":{"description":"File name, such as \"lead.eml\".","type":"string"},"resourceUri":{"description":"The host link to the file, as ChatGPT sent it.","type":"string"}},"required":["name","resourceUri"],"type":"object"},"interactive_ui":{"description":"The intake form resource.","type":"string"},"message":{"description":"Only with status ready: what the user should do next.","type":"string"},"priority":{"description":"Priority the user gave the pitch.","type":"string"},"source":{"description":"Where the data comes from: the user's own private desk.","type":"string"},"status":{"description":"ready: the empty form is open and no pitch was given. ok: the pitch was scored.","enum":["ok","ready"],"type ⟨6 unchanged words⟩
{"additionalProperties":false,"properties":{"scope":{"description":"WhetherWhat towipedelete:the\"sender\"entirefordeskoneorsender's records, or \"desk\" forathespecificwholesenderdesk.domain.Confirm with the user first.","enum":["desk","sender"],"type":"string"},"sender_domain":{"description":"Requiredifwhen scope is'sender'\"sender\": thedomainsendernamedomain todelete.delete, such as \"stripe.com\". Ignored for scope desk.","type":"string"}},"required": ⟨3 unchanged words⟩
{"properties":{"as_of":{"description":"Day of the call, as YYYY-MM-DD in UTC.","type":"string"},"message":{"description":"Plain statement of what was deleted.","type":"string"},"purged":{"description":"True when the records were deleted.","type":"boolean"},"scope":{"description":"What was deleted.","enum":["desk","sender"],"type":"string"},"source":{"description":"Where the data comes from: the user's own private desk.","type":"string"}},"required":[" ⟨7 unchanged words⟩
{"additionalProperties":false,"properties":{"cadence_days":{"description":"DaysOptionalelapseddays since the previous message from this sender,(defaults0 to7).365, such as 2. Used only for the cadence sub-score. Defaults to 7.","maximum":365,"minimum":0,"type":"integer"},"is_follow_up":{"description":"WhetherOptional:thistruemessagewhenisthisamessagefollow-upfollowstoup earlier outreach. Used only for the cadence sub-score. Defaults to false.","type":"boolean"},"message":{"description":"Theinboundfulloutreachpitchortextrecruiterthepitchusertextpasted,tosuchevaluate.as \"Hi, we are hiring a Staff Engineer at Stripe, $220k base, remote.\"","minLength":1,"type":"string"},"previous_declined":{"description":"WhetherOptional:thetruecandidatewhenpreviouslythedeclineduseroutreachalreadyfromdeclined this sender. Used only for the cadence sub-score. Defaults to false.","type":"boolean"},"sender":{"description":"Optionalrecruitersenderinfo (email address, profile URL or domain),tosuchassociateaswith\"jane@stripe.com\".scoreboard.Used only when sender_domain is not given.","type":"string"},"sender_domain":{"description":"Optionalexplicitsender domain as a bare host name, such as \"stripe.com\" (e.g.no'stripe.com'@, no https://). It wins over sender. With neither, the domain is read from the message, else unspecified-sender.com.","pattern":"^[A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?(\\.[A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?)+$","type":"string"}},"required": ⟨3 unchanged words⟩
{"properties":{"as_of":{"description":"Day of the call, as YYYY-MM-DD in UTC.","type":"string"},"breakdown":{"description":"The four sub-scores, each an integer from 0 to 100 where higher is better.","properties":{"cadence":{"description":"How well spaced the outreach is; low for rapid follow-ups or contact after a decline.","maximum":100,"minimum":0,"type":"integer"},"relevance":{"description":"Fit with the target role, skills, salary floor and remote policy.","maximum":100,"minimum":0,"type":"integer"},"spam":{"description":"Spam safety: 100 is clean, low means template tokens, buzzwords or urgency.","maximum":100,"minimum":0,"type":"integer"},"specificity":{"description":"How concrete the pitch is: named company, role details and stated salary.","maximum":100,"minimum":0,"type":"integer"}},"required":["relevance ⟨3 unchanged words⟩ ,"type":"object"},"composite_score":{"description":"Overall score from 0 to 100; 85 or more is a strong pitch.","maximum":100,"minimum":0,"type":"integer"},"evaluation_id":{"description":"Id of this evaluation; pass it to draft_response. Kept for 30 days.","type":"string"},"flags":{"description":"Warning flags. Values: missing_salary, dealbreaker_clash, token_failure (unfilled template token such as [Current Company]), aggressive_drip, repeat_after_decline, slop, artificial_urgency, free_webmail. Empty when the pitch is clean.","items":{"type":"string"},"type":"array"},"key_reasons":{"description":"Plain reasons behind the scores.","items":{"type":"string"},"type":"array"},"recommended_action":{"description":"Suggested reply: interested, request_info or decline.","enum":["interested","request_info","decline"],"type":"string"},"sender_domain":{"description":"Sender domain the pitch is counted under on the scoreboard.","type":"string"},"source":{"description":"Where the data comes from: the user's own private desk.","type":"string"},"summary":{"description":"Short cleaned summary of the pitch with contact details removed; this is what is stored.","type":"string"}},"required":[" ⟨12 unchanged words⟩
{"additionalProperties":false,"properties":{"dealbreakers":{"description":"Non-negotiableOptional, up to 20: constraints thatautomaticallyrule out a pitch,(e.g.such'Onsiteasrequired'[\"Onsite required\",'Legacy\"LegacyJava')Java\"]. Omit it or send [] for none.","items":{"type":"string"},"maxItems":20,"type":"array"},"remote_policy":{"description":"TargetWanted work arrangement,(e.g.such'100%asremote'\"100% remote\",'hybrid\"hybrid 1day',day\"'any')or \"any\".","type":"string"},"salary_floor":{"description":"Minimumacceptable annualyearly base salary inUSD.whole US dollars, 0 to 10000000, such as 210000. Use 0 for no floor.","maximum":10000000,"minimum":0,"type":"integer"},"skills":{"description":"ListCoreofskills,core1requiredtoskills30,orsuchtechnicalasfocus[\"TypeScript\",areas.\"Go\"].","items":{"type":"string"},"maxItems":30,"minItems":1,"type":"array"},"target_role":{"description":"Target job titleor seniority,levelsuch(e.g.as'Staff\"Staff Distributed SystemsEngineer')Engineer\".","minLength":1,"type":"string"}},"required":[ ⟨6 unchanged words⟩
{"properties":{"as_of":{"description":"Day of the call, as YYYY-MM-DD in UTC.","type":"string"},"dealbreakers":{"description":"Saved dealbreakers; empty when none were given.","items":{"type":"string"},"type":"array"},"remote_policy":{"description":"Saved work arrangement.","type":"string"},"retention_note":{"description":"How long evaluations and the desk are kept.","type":"string"},"salary_floor":{"description":"Saved minimum yearly base salary in US dollars.","type":"integer"},"skills":{"description":"Saved core skills.","items":{"type":"string"},"type":"array"},"source":{"description":"Where the data comes from: the user's own private desk.","type":"string"},"status":{"description":"Always saved: the criteria replaced any earlier criteria.","enum":["saved"],"type":"string"},"target_role":{"description":"Saved target role, with contact details removed.","type":"string"}},"required":[" ⟨11 unchanged words⟩
⟨16 unchanged words⟩ ,"other"],"type":"string"},"desk_key":{"description":"Optional secret desk_key. If provided, evaluates against your private criteria and saves evaluation to your scoreboard.","pattern":"^od_[0-9a-f]{32}$","type":"string"},"file":{"description":"File metadata injected when ⟨67 unchanged words⟩
{"additionalProperties":false,"properties":{"desk_key":{"description":"The secret desk_key returned when the desk was created. It is the only credential for this desk and cannot be recovered.","pattern":"^od_[0-9a-f]{32}$","type":"string"},"scope":{"description":"Whether to wipe the ⟨26 unchanged words⟩ ,"type":"string"}},"required":["desk_key","scope"],"type":"object"}
⟨18 unchanged words⟩ "minimum":0,"type":"integer"},"desk_key":{"description":"The secret desk_key returned when the desk was created. It is the only credential for this desk and cannot be recovered.","pattern":"^od_[0-9a-f]{32}$","type":"string"},"is_follow_up":{"description":"Whether this message is ⟨59 unchanged words⟩ ,"type":"string"}},"required":["desk_key","message"],"type":"object"}
⟨21 unchanged words⟩ :"string"},"type":"array"},"desk_key":{"description":"The secret desk_key returned when the desk was created. It is the only credential for this desk and cannot be recovered.","pattern":"^od_[0-9a-f]{32}$","type":"string"},"remote_policy":{"description":"Target work arrangement ( ⟨62 unchanged words⟩
⟨7 unchanged words⟩ :"string"},"type":"array"},"desk_key":{"type":"string"},"remote_policy":{"type":"string"},"retention_note" ⟨18 unchanged words⟩ type":"string"}},"required":["status","desk_key","target_role","skills","salary_floor","remote_policy ⟨6 unchanged words⟩