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 "create_calendar_event", "create_markdown_file", "create_obsidian_note" and 5 more (10 tools before, 9 now)
Creates a Google Calendar web intent linkBuildsandoneancalendarRFCevent5545the.icsusercalendaraddsfile.themselves. Use when the user wants to schedule a meeting,create asendcalendaran invite,orexportgetdates.anAccepts.ics file. Needs title,and start. startdateis YYYY-MM-DD for an all-day event ordate-time,YYYY-MM-DDTHH:MMdurationfor a timed one; a timed start also needs timezone (such as Europe/Paris) orendatime,Ztimeorzone,offsetlocation,likedescription,+07:00.andSetreminderendminutes.or duration_minutes (default 60 minutes). Returns a Google Calendar link andstandard.ics textready tothatimportimports into anycalendar.calendar app. Nothing is stored and no calendar ismodifiedchangedautomatically.until the user saves the event.
⟨37 unchanged words⟩ },"end":{"description":"Optional enddate or date-timein the same format asstart.start, such as \"2026-11-02T10:30\". For an all-day event, the last day, such as \"2026-11-04\".","maxLength":30,"pattern":"^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2})?(Z|[+-]\\d{2}:\\d{2})?)?$","type":"string"},"filename":{"description" ⟨47 unchanged words⟩ integer"},"start":{"description":"Startdateas(YYYY-MM-DD for an all-day)orevent,startsuchdate-timeas(\"2026-11-02\", or YYYY-MM-DDTHH:MM,addforZ
⟨33 unchanged words⟩ ,"type":"string"},"notes":{"description":"Short notes to pass on to the user, including any warning.","items":{"type":"string"},"type":"array"},"status":{"description":"Always ok when the event was built. Bad input returns an error instead.","enum":["ok"],"type":"string ⟨30 unchanged words⟩
CreatesMakesaonestandardstandalone Markdowndocument(.md)withfilestructuredwith YAMLfrontmatter.front matter. Use when the user wantsto save text, meetingnotes,codedocumentation,orarticlesan article as astandalonefile.MarkdownNeeds
CreatesMakes anobsidian://new URI and formattedObsidianMarkdownnotetext.link. Use when the user wants toexportsave notes,research,ordocumentsresearch into theirlocalObsidian vault.Supports noteNeeds title,body content,andoptionalcontent; vaultname, tags,andYAML
Creates anMakesofficiala WhatsApp click-to-chat (wa.me) link. Use when the user wants to send a WhatsApp message or customer reply.FormatsNeedsthetext.messagephoneandisnormalizesoptional:internationalwith a phonenumberstheintolinkE.164opensdigits.that
CreatesMakes anofficialX (Twitter)webshareintentlink. Use when the user wants to post ortweetreply on X.Accepts post text, optionalNeedslinktext;URLurl, hashtags,andviaattributionandhandle.in_reply_toValidatesarepostoptional.lengthCounts
Creates a mailto draft linkDraftsandoneanemailRFCthe822user.emlsendsfile.themselves. Use when the user wants to email someone,draft an email,orprepareneedsaanmessage.eml file for Apple Mail, Outlook,or Thunderbird. Only body is required. Leave to empty for a draft with no recipient.
PreparesStoresanoneinteractivetext filetransfer cardbehindandasecuretemporary download linkfor anyandtextshowsoradocumenttransferexport.card. Use only when the userorwantsan
⟨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.
Certificate recorded, valid to 2027-01-01
Authorization not required
Unknown → Live
First tool surface recorded: 10 tools (server version 1.0.0)
https://sendout.openkrill.app/mcp (mcp_streamable_http) — from mcp_registry, with the record
Showing the latest 6 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
⟨3 unchanged words⟩ :{"content":{"description":"Markdown documentcontenttext (at most 100,000 characters), such as \"## What went well\\n- Shipped on time\".","maxLength":100000,"minLength":1," ⟨17 unchanged words⟩ string"},"frontmatter":{"description":"Optionalcustomextra YAML front matter as key-valuemetadatapairs.toValuesincludecaninbeYAMLtext,frontmatter.numbers, true or false, or lists, such as {\"status\": \"draft\", \"version\": 1}.","type":"object"},"title":{ ⟨17 unchanged words⟩
⟨40 unchanged words⟩ ,"type":"string"},"notes":{"description":"Short notes to pass on to the user.","items":{"type":"string"},"type":"array"},"status":{"description":"Always ok when the file was made. Bad input returns an error instead.","enum":["ok"],"type":"string ⟨20 unchanged words⟩
⟨6 unchanged words⟩ note body (at most 50,000 characters), such as \"# Findings\\n- Point one\".","maxLength":50000,"minLength":1," ⟨15 unchanged words⟩ string"},"frontmatter":{"description":"Optionalcustomextra YAML front matter as key-valuemetadatapairs.toValuesincludecaninbeYAMLtext,frontmatter.numbers, true or false, or lists, such as {\"status\": \"draft\", \"version\": 1}.","type":"object"},"tags":{"description" ⟨16 unchanged words⟩ "},"title":{"description":"Note title,(used as the note name in Obsidian), such as \"Edge Compute Patterns\".","maxLength":200,"minLength":1," ⟨25 unchanged words⟩
⟨34 unchanged words⟩ ,"type":"string"},"notes":{"description":"Short notes to pass on to the user, including any warning.","items":{"type":"string"},"type" ⟨12 unchanged words⟩ ","type":"string"},"status":{"description":"Always ok when the note link was made. Bad input returns an error instead.","enum":["ok"],"type":"string ⟨33 unchanged words⟩
⟨4 unchanged words⟩ ":{"description":"Optional recipient phone numberin international formatwith country code,(forsuchexampleas +14155552671. Spaces,+14155552671).dashesNon-digitandcharactersbrackets areautomaticallyremoved;stripped.5 to 15 digits must remain. Leave empty to let the user pick a contact.","maxLength":30,"type":"string"},"text":{"description":"Message as plain text with line breaks (at most 4,096 characters).,Formattedsuch asplain\"Yourtextappointmentwithislineconfirmedbreaks.for Tuesday at 3pm.\"","maxLength":4096,"minLength":1,"type ⟨5 unchanged words⟩
⟨10 unchanged words⟩ ,"type":"integer"},"notes":{"description":"Short notes to pass on to the user, including any warning.","items":{"type":"string"},"type" ⟨10 unchanged words⟩ ["string","null"]},"status":{"description":"Always ok when the link was made. Bad input returns an error instead.","enum":["ok"],"type":"string ⟨40 unchanged words⟩
⟨3 unchanged words⟩ "hashtags":{"description":"Optional hashtags without'#'thesymbol.# sign, such as [\"devtools\", \"opensource\"].","items":{"maxLength":50,"type":"string ⟨3 unchanged words⟩ array"},"in_reply_to":{"description":"Optionalstatusnumeric ID of thetweetpost to replyto.to, the digits at the end of its URL, such as \"1850000000000000000\". Not the full URL.","maxLength":50,"type":"string"}, ⟨2 unchanged words⟩ "Post text (at most 25,000 characters), such as \"We shipped our new CLI today!\". Standard accountssupportcan post up to 280 characters; X Premiumsupportsup to 25,000.","maxLength":25000," ⟨5 unchanged words⟩ :{"description":"Optional web link to attach,tosuchtheaspost.\"https://example.com\". X counts it as 23 characters.","maxLength":2000,"type":"string"},"via":{"description":"Optional X usernameattributionto credit, without'@'thesymbol.@ sign, such as \"openkrill\".","maxLength":50,"type":"string"} ⟨4 unchanged words⟩
⟨20 unchanged words⟩ ,"type":"boolean"},"notes":{"description":"Short notes to pass on to the user, including any warning.","items":{"type":"string"},"type":"array"},"status":{"description":"Always ok when the link was made. Bad input returns an error instead.","enum":["ok"],"type":"string ⟨47 unchanged words⟩
⟨16 unchanged words⟩ },"body":{"description":"Email body as plain text with line breaks (at most 50,000 characters).,Plainsuchtextasor\"Hiformattedteam,withphaseline1breaks.is done and ready for review.\"","maxLength":50000,"minLength":1,"type" ⟨28 unchanged words⟩ },"subject":{"description":"Email subjectline.line, such as \"Sprint review notes\". Optional.","maxLength":300,"type":"string"},"to":{"description":"Recipientcomma-separatedseveraladdresses.separated by commas, such as \"alex@example.com, sam@example.com\". Leave empty for a draft with no recipient that the user fills in.","maxLength":500,"type":"string"} ⟨4 unchanged words⟩
⟨49 unchanged words⟩ ,"type":"string"},"notes":{"description":"Short notes to pass on to the user, including any warning.","items":{"type":"string"},"type":"array"},"status":{"description":"Always ok when the draft was made. Bad input returns an error instead.","enum":["ok"],"type":"string ⟨35 unchanged words⟩
{"additionalProperties":false,"properties":{"content":{"description":"Text or documentFullcontenttext of the file totransfer.stage (at most 200,000 characters). Send it together with file_name. Without content, nothing is stored.","maxLength":200000,"type":"string"},"file":{"description":"FileSetmetadatabyinjectedChatGPT whenopenedthethroughuser opens the card from afilefile.extensionDoentrypointnot fill this inChatGPT.yourself.","properties":{"name":{"minLength": ⟨12 unchanged words⟩ :"object"},"file_name":{"description":"NameFileofnamethewithfileitstoextension,transfersuch(e.g.asreport.md\"report.md\",invite.ics,\"invite.ics\"draft.eml)or \"draft.eml\". Send it together with content to stage a file.","maxLength":120,"type":"string"},"mime_type":{"description":"Optional MIME type,(e.g.suchtext/markdown,astext/calendar\"text/markdown\",message/rfc822)\"text/calendar\" or \"message/rfc822\".InferredGuessed from file_nameifwhen omitted.","maxLength":100,"type":"string"},"transfer_id":{"description":"OptionalIDexistingof a transferIDmade earlier, from its transfer_id field (32 hex characters). Send it alone toinspect.check that link. An unknown or expired ID returns transfer_not_found.","maxLength":64,"type":"string"},"ttl_hours":{"description":"Hours until the download link expires,(1-168fromhours;1defaulttois168.24).Default 24.","maximum":168,"minimum":1,"type ⟨3 unchanged words⟩
{"properties":{"download_url":{"description":"Direct downloadURLURL.forSetthewhenfile.status is ok.","type":"string"},"expires_at":{"description":"When the link stops working, as an ISO 8601expirationUTCtimestamp.time. Set when status is ok.","type":"string"},"file":{"description":"The file ChatGPT passed when the card was opened from a file. Set only in that case.","properties":{"name":{"type":"string"},"resourceUri":{"type":"string"}},"type":"object"},"file_name":{"description":"SanitizedCleanednamefileofname.theSetfile.when status is ok, and when ready if a name was given.","type":"string"},"interactive_ui":{"description":"Resource URI of theinteractivetransfer card.","type":"string"},"message":{"description":"Set when status is ready: says what to send next.","type":"string"},"mime_type":{"description":"MIMEcontenttypetype.of the file. Set when status is ok.","type":"string"},"notes":{"description":"Short notes to pass on to the user. Set when status is ok.","items":{"type":"string"},"type":"array"},"sha256":{"description":"Hex-encodedSHA-256integritychecksumchecksum.of the file as 64 hex characters. Set when status is ok.","type":"string"},"size_bytes":{"description":"TotalFile size in bytes. Set when status is ok.","type":"integer"},"status":{"description":"ok: a file is staged or found, and the download fields are set. ready: nothing is staged yet; read message for what to send.","enum":["ok","ready"],"type":"string"},"transfer_id":{"description":"ID to check this link again later. Set when status is ok.","type":"string"}},"required":[" ⟨4 unchanged words⟩