FusedFrames runs a hosted
Model Context Protocol server at
https://mcp.fusedframes.com. There is nothing to install or run. Connect an
AI tool to the URL and it can search and read your documents. The server is
read-only by design, so an agent can never change the documents it depends on,
and it works on every plan.
Connect your AI tool
You need an API key; see Authentication to create one. Then add the server to your tool:
claude mcp add --transport http fusedframes https://mcp.fusedframes.com \
--header "Authorization: Bearer ff_your_key"Any MCP client that supports a remote (HTTP) server with custom headers works.
Use the URL https://mcp.fusedframes.com and an Authorization: Bearer
header carrying your key. Authentication is the API key alone: there is no
OAuth flow, so a client that can only sign in through OAuth cannot connect.
What the server implements
Streamable HTTP, speaking JSON-RPC 2.0 at the bare domain. /mcp is not a
path here; post to https://mcp.fusedframes.com itself.
- Protocol versions:
2025-06-18,2025-03-26and2024-11-05. The handshake answers with the version you asked for when it is one of those, and with the newest one otherwise. - Results carry
structuredContent, with the same JSON repeated in a text block so older clients still work. - Every tool declares an
outputSchemadescribing the response envelope, and behaviour annotations. All eleven arereadOnlyHint: true, so a client need not ask the user before calling one. - Errors follow the spec's split. An unknown tool or bad arguments are
JSON-RPC errors (
-32602) because no tool ran. A failure inside a tool is a result withisError: true, so the model can read it and recover. - No SSE stream and no sessions. Every tool answers in one round trip, so a
GETreturns405as the spec prescribes, and the server is stateless: your key on each request is the whole context.
Tools
The server offers tools only, with no resources and no prompts. Every tool is read-only and sees only what your API key can see.
Example prompts
Once connected, ask your AI tool to use FusedFrames:
- "Search FusedFrames for how we handle a failed payment."
- "Find the document about onboarding a new customer, then show the documents that usually come next."
- "What are the categories in our Support library?"
Reading a result
A document's content is its body, one entry per section. The library
structure that gives those sections their labels travels alongside, once:
get_documentcarries it inline asschema.list_library_documentsandlibrary_graphcarry a singleschema, since every document came from the library you asked for.search_documentsandtraverse_documentcan span libraries, so they carry aschemasmap keyed by library id. Render a hit againstschemas[hit.library.id], and a traversed node againstschemas[node.libraryId].
Limits and permissions
- MCP calls count against the same rate limits as the API.
- The
get_document_source_recordingstool needs a key with source recordings access; without it the tool returns an error. Even with it, recordings stay private until a member shares them, and on the Individual plan they cannot be shared at all, so an empty result is normal. The response says how many exist (linkedTotal), how many are private (privateTotal) and explains the gap inguidance. search_documentsspends AI credit to understand your query. When the workspace is out of AI credit the tool returns a clear error instead of quietly weaker results.- Search never returns an empty list. When nothing matches well it returns the
most active documents instead, with
lowConfidence: trueandguidancesuggesting how to narrow or rephrase. Treat that flag as "no real answer here" rather than as results.