Skip to main content
The Filed MCP server is not live in production yet. The connection details below are accurate for the built server, but the URLs will not resolve until it ships. Check with Filed before sharing this page with an integrator who needs it working today.
Filed runs a remote MCP server that lets AI assistants like Claude and Codex act directly on a Filed workspace: run GraphQL queries and mutations, upload documents, and read the API docs, all without you writing any integration code. Unlike the API key model used for custom integrations, connecting an MCP client to Filed is a one-time OAuth consent flow in your browser. There is no key to copy or paste.

Connect a client

Approving the connection creates an MCP-type entry in the workspace’s Integrations page, the same place API keys live. Revoke access at any time by deleting it there: the next request from that client gets a 401.

What the server exposes

The MCP server does not expose the whole GraphQL schema as individual MCP tools. Instead it gives your assistant a small number of general-purpose tools and expects it to read the docs and write GraphQL itself. Your assistant can discover the full schema with a standard GraphQL introspection query through run_batch_queries, the same schema documented in the API reference.

How agents should choose APIs

Agents should use the API docs as a routing map, not only as schema reference. The best default flow is:
  1. Call docs, then read the API introduction.
  2. Call run_batch_queries with a small me query to confirm workspace scope.
  3. Use Clients to find the client by ID, name, or external identifier.
  4. Use Binder for organized files, source documents, missing items, counts, search, and signed document URLs.
  5. Use Document messages for notes, flags, comments, replies, hides, unhides, and sign-off writes.
  6. Use Task triggers to start data entry or tax prep, then Tasks to poll status and errors.
  7. Use Leadsheets to read tax prep output, issue state, trace, and existing sign-offs.
  8. Use Integration capabilities when the user asks what an integration can do or asks to run a provider-specific action.
For reads, prefer run_batch_queries and batch independent lookups together. For writes, prefer run_batch_mutations and check every result because a failed mutation does not stop the rest of the batch.
The binder is usually the central object for client document work. It gives agents the subdocument IDs they need for notes, comments, sign-offs, leadsheet drilldown, and document search.

Uploading documents

MCP tool calls carry a single JSON message, so file bytes don’t travel through a tool call directly. To upload a document, the assistant:
  1. Calls get_file_upload_info to get a short-lived (10-minute) upload token and the platform’s tus upload URL.
  2. Drives the resumable tus upload directly against that URL, exactly as described in Uploading documents.
  3. Passes the resulting uploadId into a mutation such as createClient or addClientDocuments through run_batch_mutations.

Access and revocation

A connection is scoped to one workspace, chosen when you approve it. To connect a second workspace, add another connection and approve it separately. To revoke access, delete the connection from the workspace’s Integrations page. The next token exchange (within about two minutes, due to caching) starts failing, and the next MCP request from that client gets a 401.

Troubleshooting

The client won’t complete the connection
  • Confirm you’re signed in to the Filed web app in the same browser that completes the OAuth redirect.
  • Confirm your MCP client supports streamable HTTP (not only SSE).
Tool calls return 401
  • The connection was revoked, or the underlying session cache expired and the next exchange failed. Reconnect the client.
A mutation in run_batch_mutations failed but others succeeded
  • This is expected: mutations run in order and a failure doesn’t stop the batch. Check each item’s result individually rather than assuming all-or-nothing.