AI & Agent Integration
efsta provides an MCP server that lets AI coding
assistants answer EFR integration questions from efsta's own specification and
documentation instead of guessing. Your assistant can look up which fields a business
case needs in a given country, get a complete request example, and check a /register
payload before you send it to an EFR.
| Server URL | https://mcp.docs.efsta.eu/mcp |
| Transport | Streamable HTTP |
| Authentication | None. The server only serves public documentation. |
| Rate limit | 120 requests per minute per IP address |
What the assistant can do
| Tool | Use it for |
|---|---|
get_register_case_requirements | Which fields a business case (sale, refund, void, invoice, Z-report, …) needs, optionally for one country: fields required everywhere, fields mandatory only in that country, and fields that do not apply there |
get_case_example | A complete, valid /register request for a business case, in JSON or XML |
validate_register_payload | Checks a JSON request body against the specification. Errors name the business case whose rule failed; country-specific rules come back as warnings |
search_efsta_docs, fetch_doc | Finds and reads the relevant documentation pages |
list_endpoints, get_endpoint_schema | The published EFR endpoints and their request and response schemas |
The EFR has one API for all countries: every transaction goes through POST /register,
and the business case follows from the fields you send (see
Business Cases). The answers come from the same model that
generates the OpenAPI reference, so they always match the published
specification.
Connect your assistant
Claude Code
claude mcp add --transport http efsta-docs https://mcp.docs.efsta.eu/mcp
To share the configuration with your team, add it to .mcp.json in your repository
instead:
{
"mcpServers": {
"efsta-docs": { "type": "http", "url": "https://mcp.docs.efsta.eu/mcp" }
}
}
Cursor
Add the server to .cursor/mcp.json in your project (or ~/.cursor/mcp.json for all
projects):
{
"mcpServers": {
"efsta-docs": { "url": "https://mcp.docs.efsta.eu/mcp" }
}
}
GitHub Copilot (VS Code)
Add the server to .vscode/mcp.json in your project, then start it from the file or
the MCP view and use Copilot Chat in agent mode:
{
"servers": {
"efsta-docs": { "type": "http", "url": "https://mcp.docs.efsta.eu/mcp" }
}
}
Example questions
- "Which fields does a refund need in Portugal?"
- "Show me a complete XML request for a void."
- "Validate this
/registerpayload for a German EFR: …" - "How do I re-send a transaction after the POS crashed?"
- "Which fields are mandatory for invoices?"
Data and privacy
The server is read-only and has no access to customer, tenant or transaction data. It answers from the public documentation only.
Payloads you validate are checked in memory and are not stored or logged. We record which tool was called, the argument names and types, and the response time, never the argument values, to learn which questions integrators ask. Still, use test data rather than real customer data in payloads you validate.