CLI commands and MCP tools

Every command in the Workover CLI (@workover/cli 0.11.0), every tool in the Workover MCP server (@workover/mcp 0.7.1), and the permission, or scope, each one needs. To install both and sign in, see Set up your agent.

The CLI and the MCP server share one sign-in. workover login stores a token in ~/.workover/config.json, and the MCP server reads the same file, so both have exactly the scopes you approved when you signed in.

Scopes

A token always holds read and propose. You add the others by passing a flag to workover login, and the browser lists every scope before you approve.

ScopeLogin flagWhat the approval screen saysWhat it unlocks
readAlways grantedRead your documentsEvery command and tool marked Default below: listing, searching and reading documents, tabs, comments, activity and the style guide
proposeAlways grantedSuggest changes for you to review and acceptAlso Default: proposing edits as suggestions, creating documents, uploading images, and adding or resolving comments
publish--publishPublish to your connected WordPress sites, without asking againThe WordPress and Mintlify publishing routes of the HTTP API. No CLI command or MCP tool publishes.
draft--draftWrite drafts with AI. This spends AI credits, and signs in to the app you connected in Settings to capture screenshotsdraft, draft-set, eval, doc reshoot, doc verify
write--writeEdit your documents directly, with no suggestions for you to reviewdoc write, doc tab-new, the --write option of doc reshoot and doc verify, workover_edit_doc, workover_create_tab
rules--rulesAdd and change your style guide rules, which steer all future AI writing for everyone in the workspacerules add, workover_add_style_rule

Warning: draft spends AI credits and lets Workover sign in to your connected app with the credential stored in Workover. write replaces document text with no review step, so anything left out of the new text is deleted. rules changes the style guide for everyone in the workspace. Grant these only on a machine and agent you trust.

No scope reaches your account security, billing or token management. A token with publish still cannot push past a “WordPress is newer” conflict: a person has to resolve it in the browser.

CLI commands

In the tables below, Default means the command works with the read and propose scopes every token holds.

Every document command takes the numeric document id that workover doc list and workover doc search print as #123. Commands that take a body read it from --file <path>, or from standard input when you pipe text in. Add --json to most commands for machine-readable output.

Account

The Developer settings screen showing the Connect a device section and Connected devices list, where CLI tokens appear
CommandWhat it doesScope
workover login [--publish] [--draft] [--write] [--rules] [--client "<name>"]Signs in through your browser. --client sets the name the token shows under Connected devices; the default is “Workover CLI”. Signing in again replaces the token stored on this machine; the old token stays valid, and listed under Connected devices, until you revoke it.None
workover logoutRevokes this machine’s token and deletes the local fileNone
workover whoamiShows the server you are signed in to and the start of your tokenNone
workover projectsLists the projects you can reach, with their idsDefault

Documents: workover doc

CommandWhat it doesScope
doc list --project <id>Lists the documents in a projectDefault
doc search "<query>" [--limit N]Finds documents by title and content. Default limit 10.Default
doc read <docId> [--tab <tabId>] [--html]Prints the document’s current text as Markdown, or HTML with --htmlDefault
doc tabs <docId>Lists the document’s tabsDefault
doc activity <docId> [--limit N]Shows who changed the document and how, newest first. Default limit 20.Default
doc create --project <id> --title "<title>"Creates a document with the body written straight in. There is nothing to accept.Default
doc propose <docId> [--note "<why>"] [--tab <tabId>]Suggests a complete revised version. The changes appear as tracked-change suggestions for a person to accept or reject.Default
doc write <docId> [--note "<why>"] [--tab <tabId>]Replaces the body with no review stepwrite
doc tab-new <docId> --title "<title>" [--parent <tabId>]Adds an empty tabwrite
doc reshoot <docId> [--replace] [--write]Workover AI retakes the document’s screenshots from its text. --replace drops the old screenshots. The result arrives as suggestions, or is written directly with --write.draft, plus write for --write
doc verify <docId> [--write]Workover AI checks the text against the project’s linked repository and corrects what it finds wrong. The result arrives as suggestions, or is written directly with --write.draft, plus write for --write

Warning: doc write replaces the whole body of the document, or of one tab. Anything you leave out is deleted. Run doc read first and pass the complete document.

A document with tabs holds several separate bodies. read, propose and write act on one tab: without --tab they act on the main body only. Run doc tabs first.

Comments: workover comments

CommandWhat it doesScope
comments list <docId> [--all]Lists open comment threads. --all includes resolved ones.Default
comments add <docId> "<text>" [--to <commentId>] [--quote "<text>"]Adds a comment, a reply in a thread with --to, or a comment on a passage with --quoteDefault
comments resolve <commentId>Marks a thread resolvedDefault
comments reopen <commentId>Reopens a resolved threadDefault

Style guide: workover rules

Each command takes --project <id> or --org <id>. With a project id, you get the project’s rules and the workspace’s rules together.

CommandWhat it doesScope
rules listLists the rules in forceDefault
rules exportPrints the rules as a block to paste into AGENTS.md or CLAUDE.md, for example workover rules export --project 11 >> AGENTS.mdDefault
rules add "<the rule>"Adds a rule for the project or the whole workspacerules

AI drafting and scoring

CommandWhat it doesScope
draft --org <id> --project <id> "<brief>" [--ground yes|no|auto] [--type tutorial|how-to|reference|explanation]Queues a draft and waits for it, printing Workover’s progress. --ground controls whether the draft reads the project’s linked repository; the default is auto. Stops waiting after 20 minutes.draft
draft-set --org <id> --project <id> --feature "<name>" [--kind documentation|content] [--dry-run] [--yes]Plans a set of articles for a feature, prints the plan, then asks once before drafting. You can answer with the numbers of articles to skip. --dry-run prints the plan only. --yes skips the question. --kind defaults to documentation.draft
eval --org <id> --project <id> [--limit N]Scores the project’s documents against an editorial rubric, one AI call per document, and prints the weakest criteria and the top fix for eachdraft

MCP tools

ToolWhat it doesScope
workover_search_docsFinds documents by title and contentDefault
workover_read_docReads a document, or one tab, with the style guide attachedDefault
workover_list_projectsLists your projectsDefault
workover_list_tabsLists a document’s tabsDefault
workover_style_guideReads a project’s style guide, including workspace-wide rulesDefault
workover_create_docCreates a document with its body written straight in, optionally filed under the category names you give itDefault
workover_propose_editProposes a complete revised document as suggestionsDefault
workover_upload_imageUploads a local image into a document’s media and returns its URLDefault
workover_edit_docReplaces a document’s body, or one tab, with no review stepwrite
workover_create_tabAdds an empty tabwrite
workover_add_style_ruleAdds a style guide rule for a project or the whole workspacerules

Without the scope a tool needs, it returns a permission error. Neither the MCP server nor the CLI publishes to WordPress.

MCP usage data

The MCP server sends Workover one event per tool call: the tool name, how long it took, whether it succeeded or what kind of failure it was, which MCP client called it, and the MCP server’s version. It never sends your documents, the arguments you pass or the results. To turn it off, set either environment variable:

export DO_NOT_TRACK=1
export WORKOVER_TELEMETRY=0

Tokens

FactDetail
Where you see themAccount settings → Developer → Connected devices. Each row shows the token’s name, when it was added, and when it was last used or “not used yet”.
How you get oneOnly by signing in with workover login. There is no button to create one.
Where it is storedOn your machine in ~/.workover/config.json, readable only by you. Workover keeps only a hash.
FormatStarts with wk_
ExpiryTokens do not expire. Revoke them when you no longer need them.
Changing scopesScopes are fixed when the token is created. Sign in again with different flags to get a new token.
RevokingClick Revoke on the token’s row, or run workover logout on that machine. Revocation takes effect immediately.

You can also call the HTTP API directly with a token in an Authorization: Bearer wk_… header. The API reference lists each endpoint and the scope it needs.

Still need help?

Can’t find what you’re looking for? Our team is here to help.

Contact support