MCP, both directions
A real client now reaches Deskworth over stdio, and the fourteen roles came back. What it cannot do yet is start a desk, and this page says which half of the path exists.
A third-party program, named and versioned, exercised this, and the page says which one, and when.
The Model Context Protocol standardises three things a server can offer, and they are not interchangeable: tools are model-controlled 3, resources are application-driven 4, prompts are user-controlled 5. Deskworth offers all three to an external client, and only tools to its own cards. Which of them a system offers says more about it than the word “MCP” does.
#Three arrows, and they are at three different stages
- CLIENT VERIFIEDA real client reaches Deskworth over stdioClaude Code 2.1.265, on 2026-09-10: connected, saw the seven tools, called one, and received the fourteen roles. Client → stdio server → Unix socket → application → answer.
- AVAILABLEDeskworth serves tools to its own cardsA separate server, on the loopback address, with one bearer token per card. Tools only, no resources, no prompts. This is the older of the two surfaces and has nothing to do with the external one.
- AVAILABLEDeskworth consumes third-party MCP serversThe operator declares remote servers and assigns them role by role. A role that reads the operator’s own data is refused one, by code.
- PARTIALA client starting a desk from end to endThe tool exists and the server accepts the call, but the application does not pick the request up yet. No desk has been started from MCP.
- PLANNEDA remote connector, over the public internetNo public endpoint, no delegated sign-in. A remote connector’s connection starts from the vendor’s servers, so a loopback address means nothing to it.
#Two servers, and confusing them would be costly
| Criterion | The card server | The external server |
|---|---|---|
| Who calls it | The vendor CLI inside one card | A third-party MCP client |
| Transport | HTTP on the loopback address | Standard input and output |
| Authentication | One bearer token per card | None, the client launched the process |
| Surface | 26 finance tools, gated by capability | 7 desk tools, 4 prompts, mission resources |
| What it exposes | Reading a series, opening a module | Opening a desk, reading its result |
| Age | Since the first tool call | New in 0.0.24 |
EvidenceThe external surface is deliberately small: seven tools, each matching a gesture the operator could make in the app. A wider surface would give a client powers the screen itself does not have.
#Where to go next
- Claude Code, the command that was proven, step by step, and the limits of 0.0.24.
- Claude Desktop, why a bundle exists and why shipping it is not the same as it working.
- The tool surface, the seven tools, the four prompts and the resources, read from the core.
- Security, what crosses the boundary, what never does, and where each thing runs.
- Troubleshooting, including the version negotiation that a real client found and no test could.
- Remote connectors, the direction that works today, and the one that needs a hosted desk.
#Sources
- Deskworth OS, product state at 0.0.24, providers and MCPDeskworthInternal document, not published
- The external MCP surface, mirrored on this siteDeskworthInternal document, not published
- Model Context Protocol, ToolsModel Context Protocol projecthttps://modelcontextprotocol.io/specification/2026-07-28/server/tools
- Model Context Protocol, ResourcesModel Context Protocol projecthttps://modelcontextprotocol.io/specification/2026-07-28/server/resources
- Model Context Protocol, PromptsModel Context Protocol projecthttps://modelcontextprotocol.io/specification/2026-07-28/server/prompts
- Model Context Protocol, stdio transportModel Context Protocol projecthttps://modelcontextprotocol.io/specification/2026-07-28/basic/transports/stdio
- Model Context Protocol, Streamable HTTP transportModel Context Protocol projecthttps://modelcontextprotocol.io/specification/2026-07-28/basic/transports/streamable-http