One command, proven on 2026-09-10 with Claude Code 2.1.265: the client connects, discovers seven tools, and gets the fourteen roles back. Here is that path, and where it stops.
CLIENT-VERIFIEDObserved running in the applicationFinexia · published · updated · 4 sources · Finexia OS 0.0.30
A third-party program, named and versioned, exercised this — and the page says which one, and when.
EvidenceProven by a third-party program, named and versioned: Claude Code 2.1.265, on 2026-09-10. It connected to the MCP server inside the 0.0.24 disk image, listed seven tools, called one, and received the fourteen roles the running application holds. That is a different claim from “our tests pass”, and it is the reason this page exists.
The Finexia 0.0.24 disk image, installed — the client launches the binary from inside the application bundle.
The Finexia application running. The server is a thin front: it hands the request to the app over a local Unix socket. With the app closed, it answers “Finexia is not running — open the app, then try again” instead of breaking the session.
Claude Code installed and signed in. The proof was taken with 2.1.265; older versions negotiate a different protocol revision, which is the subject of the troubleshooting page.
One command, and it is the one that was proven — not an illustration of one. It declares a local server the client launches itself as a subprocess, which is what the stdio transport is 4.
claude mcp add finexia -- /Applications/Finexia.app/Contents/MacOS/finexia-os --mcp-stdio
Claude Code stores that declaration per project, per user, or in a file shared through the repository, depending on the scope you choose 3. Nothing about Finexia depends on which one you pick.
Run the client’s MCP command. Finexia should be listed as connected — that status comes from a real handshake, not from the declaration existing.
Ask for the tools. Seven should appear, all prefixed finexia_. If the list is empty, the handshake succeeded and the surface did not: read the troubleshooting page.
Call the first one, finexia_agents_list. It takes no arguments and returns the roles the running application holds, with what each one owns. Fourteen came back on 2026-09-10.
That answer is the proof the whole chain works: the client launched the binary, the binary reached the application over a local socket, and the application answered.
EvidenceCall finexia_agents_list first, and not out of politeness: the roles decide what a mission can produce. A client that asks for a workbook without knowing which role owns that format is guessing.
CLIENT-VERIFIEDConnecting, negotiating, discovering, calling finexia_agents_listClaude Code 2.1.265 did all four on 2026-09-10, against the binary shipped in the disk image.
CLIENT-VERIFIEDfinexia_desk_startThe window now listens. On 2026-09-10 a call from Claude Code opened a real desk in the application: one new conversation, three cards, three distinct roles, three distinct card identifiers — and the call returned started, after the window acknowledged, not before.
CLIENT-VERIFIEDfinexia_desk_status and finexia_desk_cancelBoth exercised from the client on that run. Cancel stopped the card and its vendor CLI disappeared; the socket stayed usable straight after.
PARTIALfinexia_desk_result and the two artifact toolsWritten and covered by tests in the core. No mission started from MCP has produced a deliverable yet — the three cards of that run ended in run failed, because the facts they needed are not served by any tool. There is nothing to point these three at, and the page will not pretend otherwise.
AVAILABLEThe four promptsShipped and served. A prompt is a menu entry the user picks — never the model — and each one states what it refuses to invent.
LimitSo: a client can open a desk, watch it and stop it. What it cannot yet get back is a finished deliverable — the desk runs, and the run stops on data it has no tool to fetch. That is a missing tool, not a missing wire.
Removing it is the client’s own command, not Finexia’s — nothing in the application holds a registration.
Replacing it means removing and adding again: the declaration is a name pointing at a binary path, and a second entry under the same name would collide.
The name matters. Two declarations merge into one namespace, and a third-party server taking the name Finexia already uses would silently replace one of them.
Replay the exchange that actually happened: launch, negotiate, discover seven tools, call one, receive fourteen roles.
Claude Code 2.1.265 · 2026-09-10 · against the binary shipped in the disk image
clientlaunches the binaryThe declaration names a path inside the installed application. The client starts it as a subprocess and speaks on its standard input.
clientinitializeAnnounces the protocol revision it speaks — 2025-11-25 for this version of the client.
finexiaanswers with the negotiated revisionReflects 2025-11-25 and identifies itself as finexia 0.0.24. On the first attempt it imposed its own newest revision instead, and the client refused to connect.
clienttools/listAsks what it may call.
finexiaseven toolsThe desk surface: list the roles, open a desk, follow it, read its result, cancel it, list the artifacts, read one.
clienttools/call — finexia_agents_listNo arguments. The first call any client should make: the roles decide what a mission can produce.
finexiafourteen rolesForwarded over a local Unix socket to the running application and answered from it — with what each role owns. No error.
Every line is a fact recorded in the 0.0.24 handover report — the client and its version, the negotiated revision, the tool count, the call and its answer. The JSON bodies are deliberately not shown: the report does not record them, and composing them from the specification would make a plausible trace out of a true one.
Nothing is sent. The validation above is local — it compares your input to the schema the core declares. Reaching a real server would mean running a desk somewhere other than your own machine.
The roles and their tools are mirrored from the core at build time; the external surface is read from the same commit. Nothing is sent: this page has no server to reach, and reaching one would mean running a desk somewhere other than your machine.
The full path from a client call to a finished mission — with the one link that does not exist yet named in place.
01The client calls finexia_desk_startexists
02The server accepts it and returns a mission id immediatelyexists
03The server hands the request to the main window as an eventexists
04The interface picks that event up and opens the deskmissing — one listener
05Mandates run, tools are called, deliverables are depositedwaits on the line above
06The client polls the status, then reads the result and the artifactswaits on the line above
Half of this path is proven and half is not. The server accepts the call and hands the request to the main window as an event; nothing listens for that event yet on the interface side. Showing the whole flow without naming that gap would let a reader assume it runs.
Finexia OS — product state at 0.0.24, providers and MCPFinexiainternal handover report · Finexia OS 0.0.24 · commit produit fb53f44 · lu à d01b336 · published 2026-09-10 · read 2026-09-10Internal document, not published
The external MCP surface, mirrored on this siteFinexiainternal registry · mirror of mcp::externe — tools, prompts, resource templates, spoken revisions · read 2026-09-10Internal document, not published