MCP

The external tool surface

Seven tools, four prompts and the mission resources a third-party client sees — generated from the core, not restated.

AVAILABLEWritten and covered by tests — not yet observed in a live runDeskworth · published · updated · 4 sources · Deskworth OS 0.0.34

Shipped in the current build. You can do this on your own machine today.

This is the surface an external client sees. It is not the tool server the cards use: that one serves twenty-six finance tools over the loopback address, gated by capability. This one serves seven desk gestures over standard input and output.

Seven, and not one more. Each matches something the operator could do in the application. A wider surface would hand a client powers the screen itself does not have — and every tool added is a tool a third party can call.

#Three rules the surface follows

  • No tool takes a path. A client is a third party; what it can name has to be bounded, and a test holds that.
  • An artifact returns its summary, its size, its digest and a resource URI — never its bytes. A workbook inlined into a tool result would drown the client’s context for nothing, since it already has the address.
  • A prompt is chosen by the user, never by the model 4. Each one states what it refuses to invent: without that sentence, a desk fills a missing figure with an estimate that reads like a reading.

#Starting a desk returns immediately

A desk runs for minutes, not seconds. The tool that opens one returns a mission identifier straight away; the client then polls the status and reads the result when it is done. A tool that blocked for the length of a mission would time out in every client that exists.

LimitThe status is queued until the window says it has taken the mission, and started only after. In 0.0.24 nothing sent that acknowledgement and every mission stayed queued; the window sends it now, at the moment it takes the request rather than at the end of the first turn. A mission that is still queued means the window is closed, starting, or busy — the tool would rather say so than report a start that did not happen.

#The surface

7 tools, 4 prompts and 4 resource templates, read from the core when this page was built. Nothing below is maintained by hand.

Deskworth-OS/src-tauri/src/mcp/externe.rs — outils(), prompts(), ressources(), PARLEES

Tools

deskworth_agents_list

List the specialist roles Deskworth can put on a desk, with what each one owns. Call this first: the roles decide what a mission can produce.

Parameters
None
deskworth_desk_start

Open a desk on a financial question. **Returns immediately** with a mission id — a desk runs for minutes, not seconds. Poll deskworth_desk_status with that id, then read deskworth_desk_result. The mission appears in the Deskworth feed, with its roles, sources and deliverables, exactly like one started from the app.

Parameters
instruction: string (required)
deskworth_desk_status

Where a mission stands: its roles, what each is doing, and whether anything is blocked. A blocked card names what is missing — that is an answer, not a failure.

Parameters
mission: string (required)
deskworth_desk_result

What the desk concluded, with its sources. Available once the mission is done; before that, status tells you what is still running.

Parameters
mission: string (required)
deskworth_desk_cancel

Stop a mission and everything it started. Providers are terminated, not left running.

Parameters
mission: string (required)
deskworth_artifacts_list

The files a mission produced — workbook, deck, memo — with their size, SHA-256 and the verdict of Deskworth's independent re-read.

Parameters
mission: string (required)
deskworth_artifact_get

One artifact: its structured summary, MIME type, size, SHA-256, sources, and a resource URI to read it. **Never the bytes** — a workbook inlined into a tool result would drown your context for no gain.

Parameters
mission: string (required) · name: string (required)

Prompts

A prompt is a menu entry the person picks — never the model. Each one states what it refuses to invent.

  • analyse_companyAnalyse a company from its filings
  • investment_memoBuild an investment memo, with its limits stated
  • financial_modelBuild a workbook with live formulas and reconciliation checks
  • risk_reviewReview the risks and what would break the case

Resources

  • deskworth://mission/{mission}/status
  • deskworth://mission/{mission}/result
  • deskworth://mission/{mission}/manifest
  • deskworth://mission/{mission}/artifact/{nom}

Protocol revisions spoken

2026-07-28 · 2025-11-25 · 2025-06-18 · 2025-03-26 — the first is offered by default, and the client’s own is reflected when the server knows it. That list is the correction of a real refusal: a version is negotiated, not imposed.

#Sources

  1. The external MCP surface, mirrored on this siteDeskworthinternal registry · mirror of mcp::externe — tools, prompts, resource templates, spoken revisions · read 2026-09-10Internal document, not published
  2. Deskworth OS — product state at 0.0.24, providers and MCPDeskworthinternal handover report · Deskworth OS 0.0.24 · commit produit fb53f44 · lu à d01b336 · published 2026-09-10 · read 2026-09-10Internal document, not published
  3. Model Context Protocol — ToolsModel Context Protocol projectofficial documentation · revision 2026-07-28 · published 2026-07-28 · read 2026-09-10https://modelcontextprotocol.io/specification/2026-07-28/server/tools
  4. Model Context Protocol — PromptsModel Context Protocol projectofficial documentation · revision 2026-07-28 · published 2026-07-28 · read 2026-09-10https://modelcontextprotocol.io/specification/2026-07-28/server/prompts