Counterfoil
Returns stored rule notes; does not validate invoice compliance.
The endpoint is free Streamable HTTP. There is no account and no API key. It quotes stored Peppol, XRechnung, and EN 16931 rule notes. Not a validator. Not tax, legal, or accounting advice.
One configuration. In Claude, open Settings, then Connectors. Choose Add, then Add custom connector, and paste the URL above. This server does not ask for a key or an OAuth screen. Those steps are the remote-connector flow in the MCP docs for protocol 2026-07-28, retrieved 2026-10-19. No other client snippet is listed here.
Use Counterfoil to explain BR-DE-15. Quote the stored rule, suggested fix, and official source.
Call get_rule with these arguments:
{"id":"BR-DE-15"}
Protocol 2026-07-28 uses one POST. It does not call initialize. A legacy initialize still works for 2025-11-25, 2025-06-18, and 2025-03-26.
Internal check, 2026-10-19: this sequence was posted to the MCP handler on this machine. The response was HTTP 200 with MCP-Protocol-Version: 2026-07-28 and a 1314-byte JSON body. That check was not an outside caller.
Content-Type: application/jsonAccept: application/json, text/event-streamMCP-Protocol-Version: 2026-07-28Mcp-Method: tools/callMcp-Name: get_rule{
"jsonrpc": "2.0",
"id": "1",
"method": "tools/call",
"params": {
"name": "get_rule",
"arguments": {"id":"BR-DE-15"},
"_meta": {"io.modelcontextprotocol/protocolVersion": "2026-07-28"}
}
}
HTTP 200. result.resultType is complete. result.isError is false. result.content[0].text is:
id: BR-DE-15 statement: [BR-DE-15] Das Element "Buyer reference" (BT-10) muss übermittelt werden. meaning: The element "Buyer reference" (BT-10) must be transmitted. The published test requires cbc:BuyerReference to contain something other than whitespace. fix: Send a non-empty buyer reference in BT-10 (cbc:BuyerReference). source: https://github.com/itplr-kosit/xrechnung-schematron/blob/v2.6.0/src/validation/schematron/ubl/XRechnung-UBL-validation.sch context: /ubl:Invoice | /cn:CreditNote test: cbc:BuyerReference[boolean(normalize-space(.))]
structuredContent carries the same statement, meaning, fix, and source_url. The meaning is the plain reading. The fix is the suggested change. The source URL is the official source.
Invoice page · Skill · MCP card · Privacy