Overview
is Formal’s hosted MCP server athttps://mcp.formal.ai/mcp.
https://api.formal.ai/mcp still reaches this server.
The server stays current with shipped product behavior. It can search
the API reference and query the state of your organization. Clients you
approve for write can also change it.
This is Formal’s hosted server. It is not an
MCP resource. MCP
resources proxy other MCP traffic through a Connector.
What Formal MCP can do
Calls run as the authenticated identity. The client never sees or
changes more than you can in the Control Plane.
Connect with OAuth
Clients that support MCP authorization, such as Claude and Cursor, sign you in to Formal MCP without an API key. Add the server URL and the client opens a browser to approve it.1
Add the server to your client
Point the client at
https://mcp.formal.ai/mcp with no headers.- Claude Code
- Cursor
2
Approve the client
The client opens Formal in your browser. Check the application name,
where it is published, and where it returns. Choose
its access, then click Approve.
input.user.oauth.
Each call is logged with the client that made it.
Authorized apps, in your account menu in the
Catalog, lists each client and its access:
Read, Write, or Custom for a choice per app. Revoke a client
there to stop it at once. Admins see every user’s clients under
Authorized apps on the OAuth page.
Access per app
Formal is made of apps, named as in the Control Plane, such as Policies or Resources. A client gets one of these on each app:
When you approve a client, choose Read for read on every app,
Write for write on every app that has changes, or Choose per app.
Read is selected by default, even when the client asks for more. To
change a client’s access, revoke it and connect it again.
Some changes stay out of reach with any access, because they could
widen the client’s own access, keep it working after you revoke it, or
let it act as another identity, or because they are emergency controls
for the whole organization. Make them yourself in the Control Plane.
They include:
- Permissions, group membership, renaming or deleting groups, and unblocking users
- Creating signing keys, and creating or changing OIDC integrations and OAuth clients
- Creating or changing hooks, policy data loaders, or native user credentials, which run code or act as another identity
- Forcing every user in the organization to sign in again
OAuth is available on deployments that publish Formal MCP on its own
host, such as
mcp.formal.ai. Self-hosted deployments set
MCP_PUBLIC_BASE_URL and OAUTH_PUBLIC_BASE_URL to enable it.Connect with an API key
Use an API key for clients without MCP authorization support, and for scripts. With an API key, Formal MCP only reads. Send an API key in thex-api-key header, as for the rest of the
Formal API. See
API authentication.
1
Create an API key
Go to API Keys and click Create
API Key. Copy the key once.
2
Add the server to your client
Point the client at
https://mcp.formal.ai/mcp and send the key on
every request.- Claude Code
- Cursor
- Other clients
3
Verify the connection
Ask the client to list your connectors. You should get live results
from your organization.The response lists the read-only tools above.