Skip to main content
Live. All 26 tools are live in the MCP server preview. This page records each tool’s arguments as built. Where the build departs from the proposal, the tool’s section says so.
The server offers 26 tools. An assistant sees only the tools its token’s scopes allow. Each tool calls the same code as the REST endpoints linked from it, so results match field for field. Hints are the MCP annotations hosts use for approval prompts: read-only tools never change anything, destructive tools can overwrite data, take access away or delete, and open world tools reach outside Wordsmith. Retries. A tool that starts long-running work returns the same operation when the same user repeats the same call within ten minutes of starting it, so a host that retries a timed-out call does not start the work twice. The same call made later starts the work again.

Summary

Asking and waiting

Live. Ask a Wordsmith agent a question, optionally with files. Agents can research the law in depth while answering, so this is also how an assistant commissions a research memo. Waits up to wait_seconds for the answer.Returns status (completed, in_progress or filtered), answer when complete, session_id, session_url, operation_id while running, and the produced files in attachments, each with a file_id. filtered means the agent declined the question.
Live. Wait for, or check on, any long-running work: an answer, a review or redline, a document action, a draft, a report run or export, or repository indexing.Returns the operation. On success it also includes what the assistant needs next, such as the review’s finding counts or the output file_id.
Live. Stop long-running work. Best-effort: completed units, such as computed cells, are kept.Reviews, redlines, document actions, drafts and report runs can be stopped. A question, a report export and repository indexing run to the end once started, so cancelling one returns a tool error. Stopping a review needs edit access to it.

Finding things

Live. List tasks with find_tasks.List or find Wordsmith objects by kind. Replaces list_agents, list_playbooks and list_blueprints. Returns kind, items (summaries) and cursor, which is null on the last page.A team summary leaves out member_ids; get_resource returns them. Needs the read scope of kind, for example playbooks:read for playbook.
Live. Read one object in detail. What include adds depends on kind.sharing returns what Get Sharing returns, or Get Task Sharing for a task. As built, the six shareable kinds take sharing; the proposal gave it to every kind. A review is shared through its session.Arguments: kind and id (both required), include, and cursor and limit (default 50, maximum 200) for the paged include. A repository’s documents and folders come at most 100 a page. A task’s includes return whole lists. Replaces get_task, list_subtasks, list_task_comments, list_task_thread and get_task_sharing.
Live. Search the organisation’s repositories by meaning and return the best-matching passages.Returns items, passages with their file_id, file_name, repository_id, document_id, snippet and score, and searched_repository_ids. file_id is null for a document synced from a connector or an older one with no file; read_file cannot open it, so work from the passage. As built, there is no include_files: files outside a repository are not indexed. Passages carry no page number.

Reviewing and working on documents

Every tool in this section is live.
Review contracts against a playbook or a set of instructions.Reviews usually take minutes, so expect an operation_id and finish with get_operation. On success the result holds review_id, the finding counts and redline_file_id. The review works on copies of the files, so its file_ids differ from the ones you passed. As built, the review always writes its own redline, so there is no generate_redline argument, and there is no counterparty_edits type.
Read a review’s status, finding counts and redline file, with a page of findings.Returns review (status, finding counts and redline_file_id), findings_page (a page of findings, each with its explanation, cited text and proposed amendments, and a cursor), and a next_step hint.
Act on a finished review.Returns the operation; on success its result holds the new file_id. As built, submit_decisions is not available: answering the other side’s markup stays proposed.
Produce a new document from one or more files. The inputs are not changed.All take wait_seconds (default 15, maximum 20). An argument of another action is refused. Returns the operation: on success result.file_ids holds the new files; while running, an operation_id to pass to get_operation. As built, translate has no source_language (it is always detected), accept_changes has no remove_comments, and a merge is always a PDF, so it has no output_format.
Draft a new document. Without blueprint_id it drafts from scratch. With one, it fills the blueprint: from values alone when they cover every required placeholder, otherwise drafting the missing values from your context.Needs files:read as well as files:write, because the tool reads back the file it drafts. Returns the operation. On success result holds the file_id, the values used for a blueprint so the user can check them, and url, which opens the chat session that holds the draft.

Repositories, reports, sharing and usage

Every tool in this section is live.
create and update return {action, repository}; create_folder returns {action, folder}. add_files returns {action, operation}, a repository_indexing operation. Each file moves into the repository, and remove_document deletes the document and its file. An argument another action takes is refused. Deleting a whole repository is REST only. As built, the tool also renames repositories and removes documents, which the proposal kept REST only, so it is marked destructive.
Build and run a report: one row per document, one column per question.An argument another action takes is refused. run and export return an operation; create with run returns the report and the run’s operation without waiting for the run: poll get_operation. run fills only cells that are not done, and takes no only_empty: recomputing done cells is REST only (Run Report with only_empty: false). Changing or deleting a column, and deleting rows or reports, are REST only too, so the tool never overwrites or deletes. file_ids need files:read, and repository_id needs repositories:read. Read the results with get_resource(kind="report", include=["cells"]), and which document each row is with include=["rows"].
Share a resource with a person or team in the user’s organisation, take their access away, or change who in the organisation can see it.Returns the sharing state after the change: visibility, users and teams, as Get Sharing does. A task answers as Get Task Sharing does. The user must be allowed to manage the object’s sharing. Nothing can be shared outside the organisation or made public. A task’s creator, assignee and owning team keep their access. A change that changes nothing writes nothing. Marked destructive, because unshare takes access away.As built: review is not a kind, because a review is shared through its session; role: viewer | admin became access_level: read | write, and organisation visibility became customer, to match the REST sharing routes. Each kind needs its write scope, such as blueprints:write for a blueprint. session is not a kind yet: changing a session’s sharing needs sessions:share, which no connected app can be granted yet. It becomes a kind when that scope ships.
Usage and value figures: sessions, active users, hours saved and cost saved.
Administer the organisation, one change per call. Needs directory:admin, which an app gets only when it asks for it. The tool is listed only on a connection with that scope; without it, reconnect Wordsmith and grant admin access. The user’s own admin rights still apply, as in Wordsmith’s settings. Each action calls the same code as its REST route.Find ids with find_resources: kind member, team, role or company_profile. An argument of another action is refused. Team actions answer not found while teams are off for the organisation. Deleting a team has no action: it stays REST-only. Marked destructive, because it can suspend members, change roles, remove team members and revoke invites.As built: the proposal kept organisation administration REST-only. It became a tool so an administrator’s assistant can do it, behind a scope that is never granted by default.

Tasks

All five task tools are live. They replaced fourteen earlier tools. Reading one task in detail is get_resource(kind="task").
Arguments as List Tasks: query, status, priority, assigned_to, involving, team_id, tags, complete_by_from, complete_by_to, cursor, limit.
Arguments as Create Task. Unchanged.
Arguments as Update Task, plus:Send only the fields to change; null clears a field. A null or empty attach_file_ids, attach_attachments, add_links or comment_edits counts as not sent. Returns the task, plus edited_comments: the comments comment_edits changed, as they now read. Marked destructive, because it can clear or replace fields, and not idempotent, because a retry attaches files again.
task_id, content, file_ids, attachments, reply_to_comment_id (a comment id, to reply in its thread). Unchanged.
task_id, content, file_ids, attachments. Sends a reply to the person who requested the task, which can mean an email outside Wordsmith. Kept as its own tool so hosts always ask before sending.

Files

All four file tools are live.
Add a file from one source. Replaces import_file and create_file_from_text.
For hosts that can run commands. create_file_upload returns a URL to PUT the bytes to, then complete_file_upload(upload_id) returns the file_id. Unchanged.
Read a file. Replaces get_file, read_file_text and get_file_download_url.

Renamed tools

The new tools are live. The old names keep working but are no longer listed. An old name answers in its old output shape.