search_documents, get_document, list_inbox,
resolve_approval_task, create_share_link. See MCP reference
for the tool schemas.
This guide wires the adapter into three common runtimes. The pattern
is the same everywhere: a subprocess spoken over stdio (or an HTTP+SSE
endpoint) with SUCHI_URL + SUCHI_TOKEN in the environment.
Prerequisites
-
A running suchi instance you can reach at some URL. Local dev
(
http://127.0.0.1:8000) works. -
A scoped API token. Do NOT use an admin token. Mint one via:
Or mint by username+password (mobile-compat, one-shot):Every MCP action is attributed to the token’s owner in the audit log.
-
The
suchibinary somewhere on PATH, or the shippedsuchi-mcpsymlink (the binary responds to argv[0] rewrite socommand: "suchi-mcp"in a config stays clean).
Claude Desktop
Config lives at:- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
mcpServers entry:
suchi connected. Ask it “search my documents for
‘insurance’” — it will call search_documents under the hood.
If suchi-mcp isn’t on PATH, use the absolute path:
Cursor
Cursor’s MCP config lives in Settings → Features → MCP or in~/.cursor/mcp.json:
Remote MCP runtimes (HTTP + SSE)
For runtimes that connect over HTTP instead of stdio — an agent-framework running on a different host, a shared team-wide tool broker — launch the adapter with--http:
http://<host>:7000. Two things to know:
- The
--tokenflag is baked into the process’s memory for the lifetime of the run — every tool call is attributed to that token’s owner. To use different tokens per caller, run one adapter per caller. - HTTP+SSE has no separate auth of its own. Restrict access to port 7000 with your usual mechanism (VPN, firewall rule, Tailscale, reverse-proxy with basic auth). Suchi’s MCP surface is agent-facing, not internet-facing.
Verifying the connection
The MCP client will calllist_inbox or search_documents on
first activation. Watch suchi’s logs (journalctl -u suchi or
docker logs -f suchi):
401 unauthorized — token is wrong, or wasn’t set in
the env. If you see 403 forbidden — token was minted with
insufficient scopes; mint a new one with documents:read and
documents:write.
Revoking access
Not covered here
- OAuth-scoped agent flows — suchi’s tokens are bearer tokens, not OAuth. If you need OAuth resource-server semantics, front suchi with an OAuth gateway.
- Multi-tenant MCP brokers — one adapter, one token. For per-user tokens on a shared runtime, run N adapters or wire the runtime to pass the token per-request (a shape not yet supported on the adapter side).
- MCP reference — full tool schemas.
- External app via API token — same token flow, non-MCP consumer.