Docs / Builders

The MCP server

FrameBuff has a Model Context Protocol server built in. AI clients such as Claude Code, Claude Desktop, Cursor and Codex see FrameBuff's tools as MCP tools and can call them.

The same tools

An MCP client sees the same tools as the web page and the command line. Tool names use __ in place of dots, because some clients do not accept dots, so fs.list becomes fs__list. Two extra tools are added:

  • fb__status: the version, tools, modules and jobs.
  • fb__run_pipeline: queue a run of a pipeline, by id or by name.

On the same machine

The simplest way in: your client starts FrameBuff itself and talks to it over standard input and output.

framebuff mcp

This is always available. It counts as you, the person at the machine, because you started it. The Connections page lists it as its own row, and has a ready-to-paste setup for each client.

Over HTTP

The core can also answer MCP at /mcp on its own address. This is off by default. Turn it on at the machine in Admin → HTTP MCP.

  • Every request needs a credential in a header, even from the same machine: Authorization: Bearer <token>. Use the access token from Settings, or an API key.
  • The credential is checked on every request. A revoked key is refused from its next message.
  • There is no stream from server to client. Clients send requests and read the answers.
  • A request body can be up to 4 MB, and a session closes after 30 minutes without a request.

From another machine

Remote MCP is a separate switch, also off by default, in Connections → MCP. With it on, a client on another machine needs its own API key. The access token alone is refused from another machine.

API keys are off by default too, and you turn them on at the machine on the Connections page. Each key has a scope. A read key can list the tools and call fb__status, and nothing else. A key can only call the tools its scope allows, exactly as through FrameBuff's own API.

Messages you may see

"HTTP MCP is off on this core"
Turn it on at the machine in Admin → HTTP MCP, or use framebuff mcp.
"Remote MCP is off on this core"
The request came from another machine. Turn on Remote MCP at the machine, and give the client its own key.
"Remote MCP needs an API key per client"
Make the client a key in Connections → API keys.
"this endpoint needs a credential in a header on every request"
Put the token in the client's settings as a bearer header. A browser cookie does not count.