Skip to main content
Tempo’s tools are available outside the Tempo app in two forms. They expose the same tools with the same explicit scoping — pick by where your AI runs, and never set up both in the same client.

Which one do I need?

Rule of thumb: if the client can run a command, use the npm package. If all you can give it is a URL, use the hosted server.
@tempo-ai/mcp brings Tempo’s full tool surface to AI agents: issues, docs, canvas comments, custom agents, run scripts, Slack (as your org’s Tempo bot), Linear, and — inside a Tempo-enabled repo — the canvas tools, including screenshots and share links with real previews rendered from your production components. It works two ways, always with the same tools and the same explicit scoping:
  • As an MCP server — for hosts that attach stdio MCP servers (Claude Code, Codex CLI, Cursor, Claude Code cloud sessions).
  • As a CLI — tempo-mcp tools / tempo-mcp call — for environments with a terminal but no MCP support (Codex cloud, Grok Bot, CI jobs).
You don’t need the Tempo app installed on the machine, and you don’t need a Tempo account before you start. You just need Node.js 20+.

Install on your machine

1. Add the server to your client

Run it inside a project folder to scope the server to that project, or add --scope user to enable it everywhere. To share it with your whole team (and with Claude Code cloud sessions), commit a .mcp.json at the repo root instead:

2. Use a Tempo tool — and sign in when asked

Ask your agent to “list my Tempo issues”. The first tool that needs your account opens your browser to the Tempo sign-in page (the agent also shows you the link in case the window didn’t appear). Sign in, or sign up — a new account is walked through creating its organization right there — then go back to your agent: the tool continues on its own. No login command, no token to paste, no restart. Credentials are stored locally per machine, so later sessions connect silently. If your session ever expires, the next tool call simply prompts you again. Prefer to sign in ahead of time? npx -y @tempo-ai/mcp login does the same browser flow from a terminal. Machines with no browser at all use a token instead — see Cloud and headless environments.

3. That’s it — canvas included

Canvas tools appear automatically when the agent runs inside a repo that has Tempo canvases (a tempo/tempo.config.json). Screenshots and share links render headlessly with Chromium, which downloads itself automatically on the first capture (one-time, ~2 min; cached per machine afterwards). To make that first capture instant, you can pre-install it:
Share links additionally require the canvas’s branch to be committed and pushed. Locked-down environments can disable the automatic download with TEMPO_MCP_NO_AUTO_INSTALL=1 — captures then fail with the manual install command instead. Ask your agent to “share my canvas” to see it work.

Cloud and headless environments

Cloud agent sandboxes have no browser, so the sign-in prompt can’t complete there. Instead, mint a personal access token on your own machine:
The token (tempo_...) prints exactly once. Set it in the cloud environment as TEMPO_AUTH_TOKEN — the CLI signs in with it automatically, no browser involved. Verify from the environment with:
Everything the token’s agent does acts as you; revoke it anytime with npx -y @tempo-ai/mcp token revoke <prefix> (and list with token list).
Cloud sessions (from claude.ai/code or the desktop app) clone your repo into Anthropic’s sandbox and launch the repo’s .mcp.json servers inside it — so with the .mcp.json above committed, the full tool surface (canvas included) works. Configure the cloud environment once:
  1. Environment variable: TEMPO_AUTH_TOKEN=tempo_...
  2. Network access: add *.convex.cloud and *.convex.site to the allowlist (Custom access), plus tempo.new for share links.
Optional speed-up: npx playwright install chromium in the setup script (cached across sessions) so the first canvas capture skips the automatic Chromium download.

Using the CLI instead of MCP

Every tool the MCP server exposes is also callable directly — same pipeline, same scoping, no per-tool differences:
call prints the tool result to stdout and exits non-zero on tool errors. --json - reads the argument object from stdin. Both commands accept --toolsets and --readonly.

Tell the agent the CLI exists

An MCP host advertises Tempo’s tools to the model automatically. A CLI doesn’t — like gh or aws, the agent only uses it when its instructions say to. Add this to your repo’s AGENTS.md (Codex reads it on every task) or your agent’s standing instructions:
Harmless to keep alongside an MCP setup — hosts with MCP attached will just use the tools directly.

Connect from ChatGPT, claude.ai, or mobile (hosted server)

Chat apps on the web can’t run npx — they connect to Tempo’s hosted MCP server instead. One URL for every client:
Paste it, complete the Tempo sign-in consent (OAuth), and every call runs as your Tempo account — reads and writes, with org membership re-verified server-side on every call. Canvas tools aren’t available here (there’s no filesystem behind a URL) — use the npm package in a coding agent for design work.
  1. Settings → Security and login → enable Developer mode. (Without it, custom plugins only run search-style deep-research tools — Developer mode unlocks full tool calling. Business/Enterprise workspaces: an admin must first allow it under Workspace Settings → Permissions & Roles → Connected Data.)
  2. Settings → Plugins → + → name it “Tempo”, paste https://mcp.tempo.new/mcp, authentication OAuth.
  3. Approve the Tempo sign-in consent.
  4. In a chat, enable the Tempo plugin from the plus menu. Write actions ask for confirmation before executing.
Connection options (query params on the URL): An authorized connector acts as you — only connect clients you trust, or pin them read-only with ?readonly=1.

How scoping works

This is identical on both the npm package and the hosted server. Your sign-in (browser, token, or OAuth consent) provides identity; every tool call carries explicit scope. The AI discovers your organization and project ids with the built-in tempo_list_orgs and tempo_list_projects tools and passes them on each call — you never configure an org on the connection, and membership is re-verified server-side on every call.

Options

Add flags after the package name, e.g. npx -y @tempo-ai/mcp --readonly.

Good to know

  • Inside the Tempo app you don’t need this — the app provides the same tools natively (and skips a user-installed copy to avoid duplicates).
  • Writes act as you — the signed-in Tempo user — with the same org permissions you have in the app. That includes anything a TEMPO_AUTH_TOKEN holder does, so treat tokens like passwords and revoke ones you stop using.
  • npx -y @tempo-ai/mcp logout clears the stored credentials (the next tool call prompts for sign-in again); npx -y @tempo-ai/mcp whoami shows who’s signed in.
  • Set TEMPO_MCP_NO_BROWSER=1 in the server’s environment if you never want a browser window opened from a tool call — the sign-in link is still shown by the agent.