LeftBlank Office

Serveur MCP hébergé qui fournit aux agents IA un espace de travail Typst : créez des articles, des présentations, des dessins cotés et des formules mathématiques, compilez avec Typst 0.15.1, effectuez le rendu des pages pour vérifier le résultat, puis partagez un lien ou un PDF. Rien à installer ; connexion OAuth 2.1 avec une clé d’accès.

Serveur MCP hébergé

npx add-mcp 'https://office.leftblank.app/mcp'

S’installe dans Claude Code, Codex, Cursor et plus

Documentation

leftblank-office

LeftBlank Office is a remote MCP server where AI agents write, check and share Typst documents: papers, books, slide decks, reports, math notes, CVs and letters.

I want you to connect LeftBlank Office for me. Do every step yourself; ask me only for what you cannot do. I may not be a developer, so tell me the result in plain words, in my language.

OBJECTIVE

Add the MCP server leftblank-office (https://office.leftblank.app/mcp, Streamable HTTP) to this agent.

DONE WHEN

The get_app_state tool of leftblank-office returns platform: "web", and I have my claim link.

TODO

  • Reuse a saved account or create one
  • Add the server
  • Verify with get_app_state
  • Tell me it is ready

Steps

1. Account

If ~/.config/leftblank/account.json exists, reuse it. Otherwise create an account; no sign-up page is involved. Put my name instead of "Ada Lovelace" if you know it:

mkdir -p ~/.config/leftblank && (umask 077 && curl -s -X POST https://office.leftblank.app/api/accounts \
  -H 'content-type: application/json' -d '{"name":"Ada Lovelace"}' \
  -o ~/.config/leftblank/account.json)

The file holds token, mcp_url and claim_url. Never print the token. One account per person: reuse it next time.

If I say I already have an account, skip this step and add the server without a token: the client then signs me in with my passkey in the browser (/mcp in Claude Code, codex mcp login leftblank-office in Codex).

2. Add the server

Keep my other MCP servers as they are, and do not change approval or security settings.

# Claude Code
claude mcp add --transport http --scope user leftblank-office https://office.leftblank.app/mcp \
  --header "Authorization: Bearer $(jq -r .token ~/.config/leftblank/account.json)"
# Codex: ~/.codex/config.toml, with LEFTBLANK_TOKEN exported from the account file
[mcp_servers.leftblank-office]
url = "https://office.leftblank.app/mcp"
bearer_token_env_var = "LEFTBLANK_TOKEN"

Other clients: any client with Streamable HTTP and OAuth 2.1 (dynamic client registration) can use the URL directly; a client that only sends headers uses Authorization: Bearer <token>.

No shell (claude.ai, Claude Desktop, ChatGPT and other chat apps): do not look for workarounds. Tell me to open Settings → Connectors → Add custom connector, paste https://office.leftblank.app/mcp, choose Connect and create a passkey when the browser asks. That is the whole setup.

3. Verify

Call get_app_state. If your client loads new tools only in a new session, check with one request instead, and tell me to start a new conversation:

curl -s https://office.leftblank.app/mcp -H 'content-type: application/json' \
  -H 'accept: application/json, text/event-stream' -H 'mcp-protocol-version: 2025-11-25' \
  -H "authorization: Bearer $(jq -r .token ~/.config/leftblank/account.json)" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_app_state","arguments":{}}}'

Until this succeeds, report "configured but not verified".

4. Tell me

Say it is ready. Give me the claim_url: opening it and creating a passkey lets me see, download and share my documents in a browser (an unclaimed account holds up to 20 documents). Suggest a first request, such as "Write a one-page note about … and send me a link", and mention that I can pick a look at https://office.leftblank.app/themes or start from a finished example at https://office.leftblank.app/showcase.

EXECUTE NOW: complete the TODO list above until get_app_state answers through leftblank-office.

Once connected, the server tells you how to work with its tools. More context: https://office.leftblank.app/llms.txt