{"apiVersion":"v1","directorySlug":"mrspeech-mcp-a0809c9863","title":"Mr.Speech","description":"The desktop voice workspace that turns speech into finished work: system-wide dictation, botless meeting recording with on-device speaker identification, auto-generated Kanban tasks, and project notes. 100% private local mode or EU cloud.","pageUrl":"https://www.mcpbundles.com/skills/mrspeech-mcp-a0809c9863","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://api.mrspeech.app/mcp","hostedMcpUrl":null,"toolCount":61,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"app.mrspeech/mrspeech-mcp-a0809c9863","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"search","description":"Search this user's Mr.Speech notes, meetings, and boards by keyword. This is the way to find a meeting (then read it with `fetch`, which returns the full transcript). Matches any word in the query, so partial or approximate titles work — prefer a few distinctive keywords over a long exact phrase.","inputSchema":{"type":"object","required":["query"],"properties":{"limit":{"type":"number","maximum":20,"minimum":1},"query":{"type":"string"},"types":{"type":"array","items":{"enum":["notes","meetings","boards"],"type":"string"}}}},"title":"Search Mr.Speech","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"search","displayName":"Search Mr.Speech"},{"name":"fetch","description":"Fetch a note, meeting, or board by an id returned from search. For a meeting this returns its full transcript (plain text) plus title, times, language, and speakers.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"},"type":{"enum":["note","meeting","board"],"type":"string"}}},"title":"Fetch Mr.Speech Item","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"fetch","displayName":"Fetch Mr.Speech Item"},{"name":"create_note","description":"Create a new Mr.Speech note. Pass `notebook` as an id, full path, or unique bare name from list_notebooks; omit it for a standalone note (lands in Unfiled). A missing bare name is created at the root. The response includes `link_report`: any [[targets]] under `unresolved` are dead links — create those notes or remove the links — and any ids under `unresolved_attachments` are embeds pointing at a file that no longer exists.","inputSchema":{"type":"object","required":["title"],"properties":{"content":{"type":"string"},"notebook":{"type":"string"},"client_id":{"type":"string"},"idempotency_key":{"type":"string"},"folder_client_id":{"type":"string"}}},"title":"Create Note","logicalName":"create_note","displayName":"Create Note","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"append_to_note","description":"Append content to an existing Mr.Speech note. The response includes `link_report` for the whole resulting note — any [[targets]] under `unresolved` are dead links, and `unresolved_attachments` lists embeds pointing at a missing file.","inputSchema":{"type":"object","required":["id","content"],"properties":{"id":{"type":"string"},"content":{"type":"string"},"heading":{"type":"string"}}},"title":"Append To Note","logicalName":"append_to_note","displayName":"Append To Note","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"create_plan","description":"Create a Kanban plan board with optional cards.","inputSchema":{"type":"object","required":["name"],"properties":{"name":{"type":"string"},"cards":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"object","required":["title"],"properties":{"due":{"type":"string"},"labels":{"type":"array"}}}]}},"client_id":{"type":"string"},"source_note_id":{"type":"string"},"idempotency_key":{"type":"string"},"source_meeting_id":{"type":"string"}}},"title":"Create Plan","logicalName":"create_plan","displayName":"Create Plan","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"list_notebooks","description":"List this user's hierarchical notebooks with id, parent_id, full path, and note count. Prefer ids or full paths when filing and moving items.","inputSchema":{"type":"object","properties":{}},"title":"List Notebooks","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"list_notebooks","displayName":"List Notebooks"},{"name":"create_notebook","description":"Create a notebook at the root or below `parent` (id, full path, or unique bare name). Idempotent by parent plus case-insensitive name. Reversible with undo_change while the notebook is still empty.","inputSchema":{"type":"object","required":["name"],"properties":{"name":{"type":"string"},"parent":{"type":"string"}}},"title":"Create Notebook","logicalName":"create_notebook","displayName":"Create Notebook","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"move_notebook","description":"Move a notebook below `new_parent`, or omit `new_parent` to move it to the root. References may be ids, full paths, or unique bare names; cycle-guarded. Built-in notebooks cannot be moved. Reversible with undo_change — prefer that over a second move when putting one back.","inputSchema":{"type":"object","required":["notebook"],"properties":{"notebook":{"type":"string"},"new_parent":{"type":"string"}}},"title":"Move Notebook","logicalName":"move_notebook","displayName":"Move Notebook","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"list_attachments","description":"List the files attached to a note or card: filename, type, size, and whether this tool set can open it. `markdown_reference` is the exact text that embeds the file in a note body.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"},"limit":{"type":"number","default":50,"maximum":200,"minimum":1}}},"title":"List Attachments","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"list_attachments","displayName":"List Attachments"},{"name":"get_attachment","description":"Read an attached file's contents. Returns `content_base64` (plus `content_text` for text-like files such as .md, .csv or .json) when the file is under 1 MB and not end-to-end encrypted. Otherwise returns `editable: false`, a `reason`, and a short-lived `download_url` the user can open.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}},"title":"Get Attachment","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_attachment","displayName":"Get Attachment"},{"name":"add_attachment","description":"Attach a file you have produced to a note or card. `content_base64` must be under 1 MB decoded. Returns `markdown_reference` — insert that into the note body with update_note or append_to_note to show the file inline; this tool does not edit the note itself, because only you know where it belongs. Reversible with undo_change.","inputSchema":{"type":"object","required":["owner_id","filename","content_base64"],"properties":{"mime":{"type":"string"},"filename":{"type":"string"},"owner_id":{"type":"string"},"content_base64":{"type":"string"}}},"title":"Add Attachment","logicalName":"add_attachment","displayName":"Add Attachment","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"replace_attachment","description":"Replace an existing attachment's contents IN PLACE — the id does not change, so any [file](attachment:id) already in a note keeps working and simply shows the new version. Use this after editing a file you read with get_attachment. The previous version is kept, so undo_change restores it.","inputSchema":{"type":"object","required":["id","content_base64"],"properties":{"id":{"type":"string"},"mime":{"type":"string"},"filename":{"type":"string"},"content_base64":{"type":"string"}}},"title":"Replace Attachment","logicalName":"replace_attachment","displayName":"Replace Attachment","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"delete_attachment","description":"Move an attached file to the trash AND strip its embed from every note and card that referenced it, so nothing is left pointing at a file that no longer exists. What it edited is listed in `references_removed`, each with a `note:` or `card:` id. If `references_left_broken` is present, those still contain an embed of the deleted file and need editing by hand — say so rather than reporting a clean delete. Reversible with undo_change, which restores both the file and those references.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}},"title":"Delete Attachment","logicalName":"delete_attachment","displayName":"Delete Attachment","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"rename_notebook","description":"Rename a notebook (id, full path, or unique bare name). Built-in notebooks cannot be renamed, and a name already used by a sibling is rejected. Reversible with undo_change.","inputSchema":{"type":"object","required":["notebook","name"],"properties":{"name":{"type":"string"},"notebook":{"type":"string"}}},"title":"Rename Notebook","logicalName":"rename_notebook","displayName":"Rename Notebook","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"delete_notebook","description":"Move a notebook to the trash. A notebook holding sub-notebooks or notes is REFUSED unless `cascade: true` is passed, and the error names exactly what it holds. With cascade it also trashes the whole sub-tree and every note inside. Built-in notebooks cannot be deleted. Reversible with undo_change; anything already synced to the user's desktop app may need restoring from its trash there as well.","inputSchema":{"type":"object","required":["notebook"],"properties":{"cascade":{"type":"boolean","default":false},"notebook":{"type":"string"}}},"title":"Delete Notebook","logicalName":"delete_notebook","displayName":"Delete Notebook","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"list_recent_changes","description":"List this user's recent reversible Mr.Speech changes, newest first, with the id to pass to undo_change. `undone` means it has already been reversed. `blocked` means it could not be reversed as-is — the item changed since, or undoing it would now bury content — so a bare undo_change skips it; clear the blocker and retry with its id.","inputSchema":{"type":"object","properties":{"limit":{"type":"number","default":10,"maximum":50,"minimum":1}}},"title":"List Recent Changes","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"list_recent_changes","displayName":"List Recent Changes"},{"name":"undo_change","description":"Reverse a change recorded by list_recent_changes. Omit `id` to undo the most recent change that is still reversible — newer changes that are blocked are skipped and listed in `skipped_newer`, so check that field before telling the user what was undone. Pass an explicit `id` to target one exactly. Undoing twice is a safe no-op.","inputSchema":{"type":"object","properties":{"id":{"type":"string"}}},"title":"Undo Change","logicalName":"undo_change","displayName":"Undo Change","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"update_note","description":"Update an existing note's title, content, and/or notebook. Content replaces the existing body (use append_to_note to add). Provide at least one field. The response includes `link_report`: any [[targets]] under `unresolved` are dead links, and `unresolved_attachments` lists embeds pointing at a missing file.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"},"content":{"type":"string"},"notebook":{"type":"string"}}},"title":"Update Note","logicalName":"update_note","displayName":"Update Note","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"move_note","description":"Move a note to another notebook by id, full path, or unique bare name (a missing bare name is created at the root); use 'Unfiled' to remove it from any notebook.","inputSchema":{"type":"object","required":["id","notebook"],"properties":{"id":{"type":"string"},"notebook":{"type":"string"}}},"title":"Move Note","logicalName":"move_note","displayName":"Move Note","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_note","description":"Fetch a single note's full content, notebook, and to-do/reminder metadata by id. Also returns `outgoing_links` (the [[links]] in it that resolve) and `unresolved_links` (the ones that match no note, so they render dead) — read those rather than scanning the whole vault when you only care about one note.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}},"title":"Get Note","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_note","displayName":"Get Note"},{"name":"list_notes","description":"List notes (newest first), optionally filtered to a notebook by name or id.","inputSchema":{"type":"object","properties":{"limit":{"type":"number","maximum":200,"minimum":1},"notebook":{"type":"string"}}},"title":"List Notes","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"list_notes","displayName":"List Notes"},{"name":"search_notes","description":"Full-text search across this user's notes (title + content), optionally scoped to a notebook. Matches any word in the query, so partial or approximate titles work. Also returns `exact_title_match` / `exact_title_note` — use these to confirm a [[wiki link]] target exists before writing the link.","inputSchema":{"type":"object","required":["query"],"properties":{"limit":{"type":"number","maximum":50,"minimum":1},"query":{"type":"string"},"notebook":{"type":"string"}}},"title":"Search Notes","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"search_notes","displayName":"Search Notes"},{"name":"get_backlinks","description":"List the notes that link TO a given note via [[wiki links]] — the real incoming connections.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}},"title":"Get Backlinks","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_backlinks","displayName":"Get Backlinks"},{"name":"get_graph","description":"Return the note link graph (nodes + [[wiki link]] edges), optionally scoped to a notebook. Returns at most `limit` nodes (default 100) with `has_more`; set `include_unresolved` to also list [[targets]] that match no note. To check one specific target, prefer search_notes (`exact_title_match`) — it is far cheaper.","inputSchema":{"type":"object","properties":{"limit":{"type":"number","default":100,"maximum":500,"minimum":1},"notebook":{"type":"string"},"include_unresolved":{"type":"boolean","default":false}}},"title":"Get Note Graph","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_graph","displayName":"Get Note Graph"},{"name":"get_unresolved_links","description":"List every [[target]] in this user's notes that matches no existing note, ranked by how many notes reference it, with the notes that reference each one. Use this to repair dead links: either create a note titled exactly like the target, or edit the referencing note to drop the link.","inputSchema":{"type":"object","properties":{"limit":{"type":"number","default":50,"maximum":200,"minimum":1},"notebook":{"type":"string"}}},"title":"Get Unresolved Links","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_unresolved_links","displayName":"Get Unresolved Links"},{"name":"get_trashed_notes","description":"List soft-deleted notes (most recently deleted first) so they can be restored.","inputSchema":{"type":"object","properties":{}},"title":"List Trashed Notes","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_trashed_notes","displayName":"List Trashed Notes"},{"name":"restore_note","description":"Restore a soft-deleted note from the trash.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}},"title":"Restore Note","logicalName":"restore_note","displayName":"Restore Note","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"set_note_todo","description":"Mark a note as a to-do (or clear the to-do flag).","inputSchema":{"type":"object","required":["id","is_todo"],"properties":{"id":{"type":"string"},"is_todo":{"type":"boolean"}}},"title":"Set Note To-do","logicalName":"set_note_todo","displayName":"Set Note To-do","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"toggle_todo_complete","description":"Toggle a note-to-do between complete and incomplete.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}},"title":"Toggle To-do Complete","logicalName":"toggle_todo_complete","displayName":"Toggle To-do Complete","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"set_todo_due","description":"Set (or clear, by omitting) a note-to-do's due date (ISO-8601 UTC). Marks the note a to-do.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"},"due":{"type":"string"}}},"title":"Set To-do Due Date","logicalName":"set_todo_due","displayName":"Set To-do Due Date","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"set_reminder","description":"Set (or clear, by omitting) a reminder time (ISO-8601 UTC) on a note.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"},"reminder_at":{"type":"string"}}},"title":"Set Note Reminder","logicalName":"set_reminder","displayName":"Set Note Reminder","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"list_boards","description":"List this user's Kanban boards (newest first) with their columns. Use the ids with get_board, create_card, or the column tools.","inputSchema":{"type":"object","properties":{}},"title":"List Boards","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"list_boards","displayName":"List Boards"},{"name":"get_board","description":"Fetch a single board with all of its live cards by id.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}},"title":"Get Board","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_board","displayName":"Get Board"},{"name":"search_cards","description":"Search this user's cards (title + description) across all boards.","inputSchema":{"type":"object","required":["query"],"properties":{"limit":{"type":"number","maximum":50,"minimum":1},"query":{"type":"string"}}},"title":"Search Cards","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"search_cards","displayName":"Search Cards"},{"name":"list_note_boards","description":"List the boards scoped to a given note (boards created in a note's context).","inputSchema":{"type":"object","required":["note_id"],"properties":{"note_id":{"type":"string"}}},"title":"List Boards For Note","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"list_note_boards","displayName":"List Boards For Note"},{"name":"cards_linked_to_note","description":"List the cards linked to a given note, with their board, column, and completion state.","inputSchema":{"type":"object","required":["note_id"],"properties":{"note_id":{"type":"string"}}},"title":"Cards Linked To Note","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"cards_linked_to_note","displayName":"Cards Linked To Note"},{"name":"get_my_tasks","description":"List all cards with a due date across every board, overdue first then soonest-due, with overdue and completion flags.","inputSchema":{"type":"object","properties":{}},"title":"Get My Tasks","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_my_tasks","displayName":"Get My Tasks"},{"name":"create_board","description":"Create a new, empty Kanban board with the four default columns (To do, In progress, Blocked, Done). Pass scope_note_id to scope it to a note.","inputSchema":{"type":"object","required":["name"],"properties":{"name":{"type":"string"},"client_id":{"type":"string"},"scope_note_id":{"type":"string"},"idempotency_key":{"type":"string"}}},"title":"Create Board","logicalName":"create_board","displayName":"Create Board","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"rename_board","description":"Rename an existing board.","inputSchema":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}},"title":"Rename Board","logicalName":"rename_board","displayName":"Rename Board","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"create_card","description":"Add a card to a board column. The card is appended to the end of the column.","inputSchema":{"type":"object","required":["board_id","column_id","title"],"properties":{"board_id":{"type":"string"},"column_id":{"type":"string"}}},"title":"Create Card","logicalName":"create_card","displayName":"Create Card","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"update_card","description":"Update a card's title and/or description. Provide at least one field.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}},"title":"Update Card","logicalName":"update_card","displayName":"Update Card","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"move_card","description":"Move a card to another column on its board. The card is appended to the end of the destination column.","inputSchema":{"type":"object","required":["id","to_column_id"],"properties":{"id":{"type":"string"},"to_column_id":{"type":"string"}}},"title":"Move Card","logicalName":"move_card","displayName":"Move Card","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"set_card_due","description":"Set (or clear, by omitting) a card's due date (ISO-8601 UTC).","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"},"due":{"type":"string"}}},"title":"Set Card Due Date","logicalName":"set_card_due","displayName":"Set Card Due Date","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"set_card_completed","description":"Mark a card complete or reopen it.","inputSchema":{"type":"object","required":["id","completed"],"properties":{"id":{"type":"string"},"completed":{"type":"boolean"}}},"title":"Set Card Completed","logicalName":"set_card_completed","displayName":"Set Card Completed","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"set_card_labels","description":"Replace a card's labels. Each label is a string or { name, color }.","inputSchema":{"type":"object","required":["id","labels"],"properties":{"id":{"type":"string"},"labels":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"object","required":["name"],"properties":{"name":{"type":"string"},"color":{"type":"string"}}}]}}}},"title":"Set Card Labels","logicalName":"set_card_labels","displayName":"Set Card Labels","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"add_card_comment","description":"Append a comment to a card.","inputSchema":{"type":"object","required":["id","body"],"properties":{"id":{"type":"string"},"body":{"type":"string"}}},"title":"Add Card Comment","logicalName":"add_card_comment","displayName":"Add Card Comment","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"add_checklist_item","description":"Append a checklist item (unchecked) to a card.","inputSchema":{"type":"object","required":["id","text"],"properties":{"id":{"type":"string"},"text":{"type":"string"}}},"title":"Add Checklist Item","logicalName":"add_checklist_item","displayName":"Add Checklist Item","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"toggle_checklist_item","description":"Toggle a checklist item between done and not-done.","inputSchema":{"type":"object","required":["id","item_id"],"properties":{"id":{"type":"string"},"item_id":{"type":"string"}}},"title":"Toggle Checklist Item","logicalName":"toggle_checklist_item","displayName":"Toggle Checklist Item","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"link_card_to_note","description":"Link a card to a note (or unlink it by omitting note_id).","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"},"note_id":{"type":"string"}}},"title":"Link Card To Note","logicalName":"link_card_to_note","displayName":"Link Card To Note","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"add_column","description":"Append a new column to a board.","inputSchema":{"type":"object","required":["board_id","name"],"properties":{"name":{"type":"string"},"board_id":{"type":"string"}}},"title":"Add Column","logicalName":"add_column","displayName":"Add Column","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"rename_column","description":"Rename a column on a board.","inputSchema":{"type":"object","required":["board_id","column_id","name"],"properties":{"name":{"type":"string"},"board_id":{"type":"string"},"column_id":{"type":"string"}}},"title":"Rename Column","logicalName":"rename_column","displayName":"Rename Column","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"reorder_columns","description":"Reorder a board's columns to match the given ordered list of column ids.","inputSchema":{"type":"object","required":["board_id","column_ids"],"properties":{"board_id":{"type":"string"},"column_ids":{"type":"array","items":{"type":"string"}}}},"title":"Reorder Columns","logicalName":"reorder_columns","displayName":"Reorder Columns","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"set_column_color","description":"Set (or clear, by omitting) a column's color.","inputSchema":{"type":"object","required":["board_id","column_id"],"properties":{"color":{"type":"string"},"board_id":{"type":"string"},"column_id":{"type":"string"}}},"title":"Set Column Color","logicalName":"set_column_color","displayName":"Set Column Color","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"set_column_wip_limit","description":"Set (or clear, by omitting) a column's work-in-progress limit.","inputSchema":{"type":"object","required":["board_id","column_id"],"properties":{"limit":{"type":"number","minimum":1},"board_id":{"type":"string"},"column_id":{"type":"string"}}},"title":"Set Column WIP Limit","logicalName":"set_column_wip_limit","displayName":"Set Column WIP Limit","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_history","description":"List this user's recent dictation/transcription history (newest first).","inputSchema":{"type":"object","properties":{"limit":{"type":"number","maximum":50,"minimum":1}}},"title":"Get Dictation History","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_history","displayName":"Get Dictation History"},{"name":"get_vocabulary","description":"Read this user's custom dictionary replacements and vouched vocabulary. Read-only and hard-capped at 200 entries per call.","inputSchema":{"type":"object","properties":{"kind":{"enum":["all","dictionary","vocab"],"type":"string","default":"all"},"limit":{"type":"number","default":50,"maximum":200,"minimum":1}}},"title":"Get Dictionary Vocabulary","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_vocabulary","displayName":"Get Dictionary Vocabulary"},{"name":"search_transcriptions","description":"Full-text search this user's DICTATION history — short voice-to-text snippets (raw + cleaned text). This does NOT search meetings. To find a meeting or read its transcript, use `search` then `fetch`.","inputSchema":{"type":"object","required":["query"],"properties":{"limit":{"type":"number","maximum":50,"minimum":1},"query":{"type":"string"}}},"title":"Search Transcriptions","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"search_transcriptions","displayName":"Search Transcriptions"},{"name":"list_meeting_projects","description":"List the user's Meeting projects with meeting, linked-note, and linked-plan counts. A project is a folder in the Meeting library that owns its meetings and may own a notebook (its notes) and a rolling plans board. Project ids are plain ids, distinct from notebook ids.","inputSchema":{"type":"object","properties":{}},"title":"List Meeting Projects","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"list_meeting_projects","displayName":"List Meeting Projects"},{"name":"get_meeting_project","description":"Get one Meeting project with its meetings and linked Notes/Plans summaries; parent projects include direct subprojects. Use the returned meeting/note/board ids with fetch, get_note, or get_board for full content.","inputSchema":{"type":"object","required":["project_id"],"properties":{"project_id":{"type":"string"}}},"title":"Get Meeting Project","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_meeting_project","displayName":"Get Meeting Project"},{"name":"get_project_meeting","description":"Get one project meeting with its transcript, project name, canonical note summary, and linked plans; audio is never returned.","inputSchema":{"type":"object","required":["project_id","meeting_id"],"properties":{"meeting_id":{"type":"string"},"project_id":{"type":"string"}}},"title":"Get Project Meeting","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_project_meeting","displayName":"Get Project Meeting"},{"name":"search_meeting_project","description":"Keyword-search one Meeting project across its meeting transcripts and linked notes, with source metadata; parent projects include direct subprojects. (The desktop app's project search is semantic; this cloud variant is keyword-based.)","inputSchema":{"type":"object","required":["project_id","query"],"properties":{"limit":{"type":"integer","default":8,"maximum":20,"minimum":1},"query":{"type":"string"},"project_id":{"type":"string"}}},"title":"Search Meeting Project","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"search_meeting_project","displayName":"Search Meeting Project"}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=Mr-Speech&config=eyJ1cmwiOiAiaHR0cHM6Ly9hcGkubXJzcGVlY2guYXBwL21jcCJ9"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22Mr-Speech%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fapi.mrspeech.app%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22Mr-Speech%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fapi.mrspeech.app%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=Mr.Speech&connectorUrl=https%3A%2F%2Fapi.mrspeech.app%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"Mr-Speech\" --url \"https://api.mrspeech.app/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/mrspeech-mcp-a0809c9863","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/mrspeech-mcp-a0809c9863/tools/{tool}","mcpServerUrl":"https://api.mrspeech.app/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/mrspeech-mcp-a0809c9863?live=1"}