MCP server
391 tools inside the agent you already use
Connect Claude, ChatGPT or Cursor with one URL and one key. No extra server to install or maintain.
- Included with paid plans
- Test mode with fact_test_ keys
- Every call is logged
Compatible integrations and formats

WhatsApp

The server at a glance
Compatible clients
Claude
ChatGPT
Cursor
- Endpoint
- mcp.factuarea.com
- Transport
- HTTP
- Credential
- Bearer fact_live_… · X-API-Key · OAuth 2.1 + PKCE
- Contract
- api.factuarea.com/v1
- Tools
- 391 across 27 domains
The server counts the figure itself and the documentation publishes it.
The connection
Connect your MCP client with one URL and one credential
We host the server. Your client connects over HTTP and sends the credential in a header. It takes as long as pasting the key takes.
- 1Create the keyIn the dashboard, under Settings → Developers. The secret is shown once: lose it and you rotate it.
- 2Pick the permissionsThe key is born with the list you choose, from a closed catalogue. Asking for a permission that does not exist returns a 422.
- 3Point the client at itAny MCP client works. Here are three compatible, recognisable clients.
https://mcp.factuarea.com
Authorization: Bearer fact_test_…Permissions
Each credential defines the agent's scope
A credential is not a user. Before a tool ever runs, the call goes through six checks; once inside, three more. Each one returns its own reason, so when something is refused you know exactly why.
- The credential is resolvedBy its shape: fact_live_ and fact_test_ take the key path; any other token takes the OAuth one.
- The exact permissionNo wildcards: invoices:* does not exist. Either you carry invoices:delete or you delete nothing.
- The module, on your planAnd in test mode, on top of that, the list of modules barred from the sandbox.
What the key does not open, the agent never sees
The tool list is filtered by the same rule as the invocation. A tool whose permission you do not hold simply is not there, so the agent cannot even propose it.
391 with your own key. 305 over OAuth.
The trail
Every call leaves a row
There is no quiet mode. Every invocation is recorded with who, what, under which permissions, how long it took and how it ended. Since the response returns the correlation id, you can match your agent's log against ours without guessing.
- Identity and permissionsThe row identifies the API key or OAuth app and the exact scopes it carried.
- Redacted argumentsA hash is kept for comparison and a sample without emails, tax IDs, IBANs or secrets.
- Correlated resultHTTP status, error and latency return under the same request identifier.
- tool_name
- invoices.create
- scopes
- invoices:write
- oauth_client_id
- app_01J…
- tool_args_sample
- [REDACTED:nif]
- result · latency_ms
- 201 · 184 ms
Published surface
An integration that fits your stack
The OpenAPI contract, SDKs and MCP server share the same API. These figures are checked against the published surface so you can assess scope and maintenance before integrating.
- API operations
- 413
- resources
- 37
- MCP tools
- 391
- documentation pages
- 797
Compatible technologies and clients
Claude
ChatGPT
Cursor
OpenAPI
Logos identify compatible technologies or clients; they do not imply a commercial relationship or endorsement.
Questions
What people ask before connecting
The server is included with paid plans and can also be tested during the initial ten days. The trial tier allows 10 requests per minute and 100 per month. Each paid plan then applies its own capacity.
Connect it and ask it something
One test key and two lines of configuration. If it does not convince you, revoke it and nothing is left running.