{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_aw8z7gabdxx7","handle":"counterfoil","url":"https://wellknown.network/agents/counterfoil","links":{"self":"https://wellknown.network/agents/counterfoil/record.json","html":"https://wellknown.network/agents/counterfoil","markdown":"https://wellknown.network/agents/counterfoil/record.md","api":"https://wellknown.network/api/v1/agents/counterfoil","status":"https://wellknown.network/api/v1/agents/counterfoil/status","claim":"https://wellknown.network/agents/counterfoil/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/counterfoil/claim.json","badge":"https://wellknown.network/agents/counterfoil/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/counterfoil/history","tools":"https://wellknown.network/api/v1/agents/counterfoil/tools"},"ard":{"identifier":"urn:air:einvoicegoblin.com:server:counterfoil","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"Counterfoil","summary":"Read stored EU e-invoice rule notes and the invoice field map. Not a validator.","description":"Read stored EU e-invoice rule notes and the invoice field map. Not a validator.","publisher":{"name":"com.einvoicegoblin","url":null},"homepage":"https://einvoicegoblin.com","repository":null,"version":"0.45.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://einvoicegoblin.com/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-10-19T21:35:30.807361Z","publishedAt":"2026-10-19T21:35:30.807361Z","registryName":"com.einvoicegoblin/counterfoil"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"documents.invoice-processing","name":"Invoice Processing","confidence":0.911,"provenance":"derived"}],"categories":["documents"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 4h ago.","lastOkAt":"2026-10-30T04:25:09.164Z","lastProbedAt":"2026-10-30T04:25:09.164Z","statusComputedAt":"2026-10-30T04:28:00.686Z","reliability30d":{"probes":29,"successRate":1,"p50Ms":12,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":29,"ok":29,"authBoundaryOk":0,"serviceOk":29,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-30T04:25:09.164Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":16,"error":null,"detail":{"tools":[{"name":"get_rule","description":"Read one stored EU e-invoice rule by id. Returns the stored statement, context, test, plain reading, fix, and source URL. Does not check an invoice."},{"name":"search_rules","description":"Find stored rules by words, a BT code, or a group. Each hit returns the stored statement, plain reading, fix, and source URL. At most 100 hits. Does not check a"},{"name":"explain_error","description":"Read a stored rule named in a rule id or a validator message. Returns the stored statement, plain reading, fix, and source URL when a stored rule matches. Does "},{"name":"check_invoice","description":"Read a UBL Invoice XML slice of at most 60000 characters. Returns the business terms that slice writes, the field-map gaps, and one stored note when BR-DE-15 fi"}],"toolCount":4,"toolsHash":"b540cbb0e923709907a6244cae2039cbbaf87c4cde1124e1b2ca59cbc662e67e","serverName":"com.einvoicegoblin/counterfoil","capabilities":["tools"],"serverVersion":"0.45.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-29T20:28:30.118Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":11,"error":null,"detail":{"tools":[{"name":"get_rule","description":"Read one stored EU e-invoice rule by id. Returns the stored statement, context, test, plain reading, fix, and source URL. Does not check an invoice."},{"name":"search_rules","description":"Find stored rules by words, a BT code, or a group. Each hit returns the stored statement, plain reading, fix, and source URL. At most 100 hits. Does not check a"},{"name":"explain_error","description":"Read a stored rule named in a rule id or a validator message. Returns the stored statement, plain reading, fix, and source URL when a stored rule matches. Does "},{"name":"check_invoice","description":"Read a UBL Invoice XML slice of at most 60000 characters. Returns the business terms that slice writes, the field-map gaps, and one stored note when BR-DE-15 fi"}],"toolCount":4,"toolsHash":"b540cbb0e923709907a6244cae2039cbbaf87c4cde1124e1b2ca59cbc662e67e","serverName":"com.einvoicegoblin/counterfoil","capabilities":["tools"],"serverVersion":"0.45.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-29T13:29:54.770Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":11,"error":null,"detail":{"tools":[{"name":"get_rule","description":"Read one stored EU e-invoice rule by id. Returns the stored statement, context, test, plain reading, fix, and source URL. Does not check an invoice."},{"name":"search_rules","description":"Find stored rules by words, a BT code, or a group. Each hit returns the stored statement, plain reading, fix, and source URL. At most 100 hits. Does not check a"},{"name":"explain_error","description":"Read a stored rule named in a rule id or a validator message. Returns the stored statement, plain reading, fix, and source URL when a stored rule matches. Does "},{"name":"check_invoice","description":"Read a UBL Invoice XML slice of at most 60000 characters. Returns the business terms that slice writes, the field-map gaps, and one stored note when BR-DE-15 fi"}],"toolCount":4,"toolsHash":"b540cbb0e923709907a6244cae2039cbbaf87c4cde1124e1b2ca59cbc662e67e","serverName":"com.einvoicegoblin/counterfoil","capabilities":["tools"],"serverVersion":"0.45.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-29T05:37:49.011Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":10,"error":null,"detail":{"tools":[{"name":"get_rule","description":"Read one stored EU e-invoice rule by id. Returns the stored statement, context, test, plain reading, fix, and source URL. Does not check an invoice."},{"name":"search_rules","description":"Find stored rules by words, a BT code, or a group. Each hit returns the stored statement, plain reading, fix, and source URL. At most 100 hits. Does not check a"},{"name":"explain_error","description":"Read a stored rule named in a rule id or a validator message. Returns the stored statement, plain reading, fix, and source URL when a stored rule matches. Does "},{"name":"check_invoice","description":"Read a UBL Invoice XML slice of at most 60000 characters. Returns the business terms that slice writes, the field-map gaps, and one stored note when BR-DE-15 fi"}],"toolCount":4,"toolsHash":"b540cbb0e923709907a6244cae2039cbbaf87c4cde1124e1b2ca59cbc662e67e","serverName":"com.einvoicegoblin/counterfoil","capabilities":["tools"],"serverVersion":"0.45.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-28T21:30:53.936Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":11,"error":null,"detail":{"tools":[{"name":"get_rule","description":"Read one stored EU e-invoice rule by id. Returns the stored statement, context, test, plain reading, fix, and source URL. Does not check an invoice."},{"name":"search_rules","description":"Find stored rules by words, a BT code, or a group. Each hit returns the stored statement, plain reading, fix, and source URL. At most 100 hits. Does not check a"},{"name":"explain_error","description":"Read a stored rule named in a rule id or a validator message. Returns the stored statement, plain reading, fix, and source URL when a stored rule matches. Does "},{"name":"check_invoice","description":"Read a UBL Invoice XML slice of at most 60000 characters. Returns the business terms that slice writes, the field-map gaps, and one stored note when BR-DE-15 fi"}],"toolCount":4,"toolsHash":"b540cbb0e923709907a6244cae2039cbbaf87c4cde1124e1b2ca59cbc662e67e","serverName":"com.einvoicegoblin/counterfoil","capabilities":["tools"],"serverVersion":"0.45.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-28T14:27:24.740Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":11,"error":null,"detail":{"tools":[{"name":"get_rule","description":"Read one stored EU e-invoice rule by id. Returns the stored statement, context, test, plain reading, fix, and source URL. Does not check an invoice."},{"name":"search_rules","description":"Find stored rules by words, a BT code, or a group. Each hit returns the stored statement, plain reading, fix, and source URL. At most 100 hits. Does not check a"},{"name":"explain_error","description":"Read a stored rule named in a rule id or a validator message. Returns the stored statement, plain reading, fix, and source URL when a stored rule matches. Does "},{"name":"check_invoice","description":"Read a UBL Invoice XML slice of at most 60000 characters. Returns the business terms that slice writes, the field-map gaps, and one stored note when BR-DE-15 fi"}],"toolCount":4,"toolsHash":"b540cbb0e923709907a6244cae2039cbbaf87c4cde1124e1b2ca59cbc662e67e","serverName":"com.einvoicegoblin/counterfoil","capabilities":["tools"],"serverVersion":"0.45.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-28T06:27:26.138Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":12,"error":null,"detail":{"tools":[{"name":"get_rule","description":"Read one stored EU e-invoice rule by id. Returns the stored statement, context, test, plain reading, fix, and source URL. Does not check an invoice."},{"name":"search_rules","description":"Find stored rules by words, a BT code, or a group. Each hit returns the stored statement, plain reading, fix, and source URL. At most 100 hits. Does not check a"},{"name":"explain_error","description":"Read a stored rule named in a rule id or a validator message. Returns the stored statement, plain reading, fix, and source URL when a stored rule matches. Does "},{"name":"check_invoice","description":"Read a UBL Invoice XML slice of at most 60000 characters. Returns the business terms that slice writes, the field-map gaps, and one stored note when BR-DE-15 fi"}],"toolCount":4,"toolsHash":"b540cbb0e923709907a6244cae2039cbbaf87c4cde1124e1b2ca59cbc662e67e","serverName":"com.einvoicegoblin/counterfoil","capabilities":["tools"],"serverVersion":"0.45.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-27T23:27:02.851Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":12,"error":null,"detail":{"tools":[{"name":"get_rule","description":"Read one stored EU e-invoice rule by id. Returns the stored statement, context, test, plain reading, fix, and source URL. Does not check an invoice."},{"name":"search_rules","description":"Find stored rules by words, a BT code, or a group. Each hit returns the stored statement, plain reading, fix, and source URL. At most 100 hits. Does not check a"},{"name":"explain_error","description":"Read a stored rule named in a rule id or a validator message. Returns the stored statement, plain reading, fix, and source URL when a stored rule matches. Does "},{"name":"check_invoice","description":"Read a UBL Invoice XML slice of at most 60000 characters. Returns the business terms that slice writes, the field-map gaps, and one stored note when BR-DE-15 fi"}],"toolCount":4,"toolsHash":"b540cbb0e923709907a6244cae2039cbbaf87c4cde1124e1b2ca59cbc662e67e","serverName":"com.einvoicegoblin/counterfoil","capabilities":["tools"],"serverVersion":"0.45.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-27T15:24:34.563Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":10,"error":null,"detail":{"tools":[{"name":"get_rule","description":"Read one stored EU e-invoice rule by id. Returns the stored statement, context, test, plain reading, fix, and source URL. Does not check an invoice."},{"name":"search_rules","description":"Find stored rules by words, a BT code, or a group. Each hit returns the stored statement, plain reading, fix, and source URL. At most 100 hits. Does not check a"},{"name":"explain_error","description":"Read a stored rule named in a rule id or a validator message. Returns the stored statement, plain reading, fix, and source URL when a stored rule matches. Does "},{"name":"check_invoice","description":"Read a UBL Invoice XML slice of at most 60000 characters. Returns the business terms that slice writes, the field-map gaps, and one stored note when BR-DE-15 fi"}],"toolCount":4,"toolsHash":"b540cbb0e923709907a6244cae2039cbbaf87c4cde1124e1b2ca59cbc662e67e","serverName":"com.einvoicegoblin/counterfoil","capabilities":["tools"],"serverVersion":"0.45.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-27T08:24:36.800Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":11,"error":null,"detail":{"tools":[{"name":"get_rule","description":"Read one stored EU e-invoice rule by id. Returns the stored statement, context, test, plain reading, fix, and source URL. Does not check an invoice."},{"name":"search_rules","description":"Find stored rules by words, a BT code, or a group. Each hit returns the stored statement, plain reading, fix, and source URL. At most 100 hits. Does not check a"},{"name":"explain_error","description":"Read a stored rule named in a rule id or a validator message. Returns the stored statement, plain reading, fix, and source URL when a stored rule matches. Does "},{"name":"check_invoice","description":"Read a UBL Invoice XML slice of at most 60000 characters. Returns the business terms that slice writes, the field-map gaps, and one stored note when BR-DE-15 fi"}],"toolCount":4,"toolsHash":"b540cbb0e923709907a6244cae2039cbbaf87c4cde1124e1b2ca59cbc662e67e","serverName":"com.einvoicegoblin/counterfoil","capabilities":["tools"],"serverVersion":"0.45.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"get_rule","description":"Read one stored EU e-invoice rule by id. Returns the stored statement, context, test, plain reading, fix, and source URL. Does not check an invoice."},{"name":"search_rules","description":"Find stored rules by words, a BT code, or a group. Each hit returns the stored statement, plain reading, fix, and source URL. At most 100 hits. Does not check a"},{"name":"explain_error","description":"Read a stored rule named in a rule id or a validator message. Returns the stored statement, plain reading, fix, and source URL when a stored rule matches. Does "},{"name":"check_invoice","description":"Read a UBL Invoice XML slice of at most 60000 characters. Returns the business terms that slice writes, the field-map gaps, and one stored note when BR-DE-15 fi"}],"package":null,"toolSurface":{"id":"ts_vug6c4s6ktth","endpointId":"ep_ch6wgj2csntf","hash":"b540cbb0e923709907a6244cae2039cbbaf87c4cde1124e1b2ca59cbc662e67e","toolCount":4,"serverName":"com.einvoicegoblin/counterfoil","serverVersion":"0.45.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-21T20:30:46.672Z","lastSeenAt":"2026-10-30T04:25:09.166Z","observations":29,"toolNames":["get_rule","search_rules","explain_error","check_invoice"],"distinctSurfaces":1},"endpointFacts":[{"id":"ep_ch6wgj2csntf","url":"https://einvoicegoblin.com/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-27T23:27:02.873Z","auth":{"observedAt":"2026-10-27T23:27:02.883Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-10-27T23:27:02.904Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"einvoicegoblin.com","issuer":{"commonName":"YE2","organization":"Let's Encrypt"},"validFrom":"2026-10-17T21:34:49.000Z","validTo":"2027-01-15T21:34:48.000Z","daysToExpiry":77,"sanCount":1,"fingerprint256":"5E:F4:3A:1D:60:A7:9B:4A:1C:98:F6:DB:76:E2:0C:3F:68:EF:6F:B4:A4:BE:5D:9B:00:BD:E8:C4:A2:49:28:BB"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"com.einvoicegoblin/counterfoil","url":"https://registry.modelcontextprotocol.io/v0/servers/com.einvoicegoblin%2Fcounterfoil","firstSeenAt":"2026-10-21T17:19:30.949Z","fetchedAt":"2026-10-28T13:20:04.254Z","normalizedAt":"2026-10-28T13:20:04.254Z"}]},"firstSeenAt":"2026-10-21T17:19:30.949Z","updatedAt":"2026-10-30T04:29:06.305Z"}