Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.celfons/kya-brasil

REMOTE · KYA-BR-AGENTS.MARCELFONS.WORKERS.DEV

KYA backed by a real company: e-CNPJ-signed agent mandates, revocation-checked, signed verdicts

58 Trust /100

Last scanned (10 hours ago)

Scores higher than 45% of remote servers

Reachable. Last reached 18 Oct 2026.

Category Security

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security46
Transport & Reachability100
Schema Quality & AI Usability68
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 1873 tokens (~124/item across 15 items; 15 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
  • Stability check failed: schema churn in the 5 days we've observed: 4 tool removals, 0 breaking changes, 0 auth/transport breaks, 5 additions. See how to fix → Fail
Tool Coverage97
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 90% of tool parameters carry a description.Partial
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 15 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 15 Oct 26 −1
    • Tool “kya_check_action” rewrote its description, which is the text the model reads security
    • Schema quality: 1378 → 1873 ▼ functional
    • Server version: 0.6.0 → 0.12.1 functional
    • New tool “kya_person_agents” functional
    • New tool “kya_principal_match” functional
    • New tool “kya_sign_link” functional
    • “kya_check_action” added an optional parameter “payment_network” cosmetic
    • “kya_check_action” added an optional parameter “payment_ref_sha256” cosmetic
    • “kya_register” added an optional parameter “principal” cosmetic
    • “kya_register” reworded the description of “cnpj” cosmetic
    • “kya_register” made “cnpj” optional cosmetic
  • 14 Oct 26 +2
    • Stability: unverified → fail ▼ security
    • Tool “kya_act” was removed ▼ security
    • Tool “kya_act_text” was removed ▼ security
    • Tool “kya_acts_export” was removed ▼ security
    • Tool “kya_register_act” was removed ▼ security
    • Tool “kya_verify” rewrote its description, which is the text the model reads security
    • Tool coverage: 65% → 88% ▲ functional
    • Schema quality: 1532 → 1378 ▲ functional
    • Server version: 0.4.1 → 0.6.0 functional
    • New tool “kya_company_agents” functional
    • New tool “kya_company_webhook” functional
  • 13 Oct 26 57

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 18 Oct 2026 · Probed https://kya-br-agents.marcelfons.workers.dev/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=marcelfons.workers.dev CN=YE2,O=Let's Encrypt,C=US 14 Sept 2026 13 Dec 2026 ECDSA 256 ECDSA-SHA384 6a804eccbbd98862f505bf7bf3a564903e9
SANs: *.marcelfons.workers.dev, marcelfons.workers.dev
CN=YE2,O=Let's Encrypt,C=US (CA) CN=Root YE,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 ECDSA 384 ECDSA-SHA384 4df3b15dd6c0784c507cd37b58e6f115
CN=Root YE,O=ISRG,C=US (CA) CN=ISRG Root X2,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 ECDSA-SHA384 872165fc34b6e5fba8add5b3705fb53a
CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 SHA256-RSA 6c8f1dc727c7117f7baf853ac980f9cd

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of kya-br-agents.marcelfons.workers.dev. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
dev. present 60074 8 Verified
workers.dev. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://kya-br-agents.marcelfons.workers.dev/mcp Verified 200
http (plaintext) http://kya-br-agents.marcelfons.workers.dev/mcp Inconclusive 406
MCP tools · 15 exposed · ~1,873 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
kya_about ~33

Free. What KYA Brasil is, how the credential flow works, prices, and where the schemas and signing keys are.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

kya_check_action ~212

Signed verdict: is this action (action, amount, currency, counterparty, payment instrument) inside the agent's mandate and is the credential active? Evaluates the reserved mandate fields; lists the fields it did not evaluate.

NameTypeReqDescription
actionstring–Action the agent wants to perform (e.g. pay, order, sign).
amountnumber––
counterpartystring–CNPJ, domain or wallet address of the other side.
credential_idstringyescredential_id returned by kya_register.
currencystring–BRL, USDC, ...
payment_networkstring–Payment network or rail of this operation: visa, mastercard, elo, pix, ...
payment_ref_sha256string–SHA-256 hex of the payment token reference or PAR used (never a card number); checked against mandate.payment_instruments.
spent_todaynumber–What this agent already spent today, if you track it (used for max_per_day).

No output schema declared.

No examples provided.

kya_company_agents ~160

Free, company only. Every credential ever registered for your CNPJ, any status, whoever held the certificate (an accountant, another employee). Request signed with your e-CNPJ over "KYA Brasil: agents <cnpj>" + "at: <ISO time>".

NameTypeReqDescription
cnpjstringyesThe company's CNPJ.
ecnpj_signaturestringyesCMS/PKCS#7 SignedData of signed_text with the company's e-CNPJ, detached, base64 DER.
signed_textstringyes"KYA Brasil: <agents|webhook> <cnpj>", for the webhook a "url: <https url or ->" line, then "at: <ISO time>" (within 10 minutes).

No output schema declared.

No examples provided.

kya_company_webhook ~148

Free, company only. Sets the https URL that receives signed events about your agents: credential issued, renewed, suspended, reinstated, revoked. Request signed with your e-CNPJ; url "-" removes it.

NameTypeReqDescription
cnpjstringyesThe company's CNPJ.
ecnpj_signaturestringyesCMS/PKCS#7 SignedData of signed_text with the company's e-CNPJ, detached, base64 DER.
signed_textstringyes"KYA Brasil: <agents|webhook> <cnpj>", for the webhook a "url: <https url or ->" line, then "at: <ISO time>" (within 10 minutes).

No output schema declared.

No examples provided.

kya_person_agents ~106

Free, person only: every live credential behind your e-CPF and every CPF check made against each one. Sign "KYA Brasil: my agents\nat: <ISO time>" with the e-CPF (valid 10 minutes).

NameTypeReqDescription
ecpf_signaturestringyesCMS/PKCS#7 of signed_text with the person's e-CPF, base64 DER.
signed_textstringyes"KYA Brasil: my agents\nat: <ISO time>"

No output schema declared.

No examples provided.

kya_principal_match ~130

Signed answer ($0.01) for a person's agent (principal.kind person): does the CPF you already have match the e-CPF holder behind it? On a match, a subject_ref of your own for that person (stable for you, different for every verifier). The CPF is never stored, published or revealed; 3 non-matching answers per credential stop your checks. The person sees every check.

NameTypeReqDescription
cpfstringyesThe CPF you already have for this person; used for the comparison only, never stored.
credential_idstringyescredential_id returned by kya_register.

No output schema declared.

No examples provided.

kya_prove ~182

Free. Send both signatures of the challenge. The e-CNPJ chain is validated against ICP-Brasil roots, the CNPJ must match, the certificate must not be revoked (CRL) and the company must be ATIVA; then the credential is issued (90 days, Ed25519-signed).

NameTypeReqDescription
agent_signaturestringyesSignature of challenge.text by the agent key: EIP-191 personal_sign hex (evm) or raw Ed25519 base64url (web-bot-auth).
challenge_idstringyeschallenge.id from kya_register (or kya_renew).
credential_idstringyescredential_id returned by kya_register.
ecnpj_signaturestringyesCMS/PKCS#7 SignedData (detached, base64 DER) of challenge.text, signed with the company's e-CNPJ certificate.

No output schema declared.

No examples provided.

kya_register ~213

Register an AI agent for a Brazilian company: agent key (EVM address or Web Bot Auth Ed25519 key), CNPJ and a mandate (JSON, validated against /.well-known/kya-mandate.schema.json). Returns a one-time challenge the agent signs with its key and the company signs with its e-CNPJ (CMS/PKCS#7). Price covers the checks at issuance.

NameTypeReqDescription
agentobjectyes–
cnpjstring–The company's CNPJ (company agents). Leave out with principal "person".
mandateobjectyesMandate JSON validated by https://kya-br-agents.marcelfons.workers.dev/.well-known/kya-mandate.schema.json. Reserved fields: actions, max_per_operation, max_per_day, currencies, counterparties, valid…
principalstring–"person": the agent acts for a natural person who signs with an e-CPF (no CNPJ; no name or CPF is ever published).

No output schema declared.

No examples provided.

kya_renew ~62

Re-issue the credential for 90 more days. The company signs the renewal challenge with an e-CNPJ in force (not revoked); the company must still be ATIVA at the Receita.

NameTypeReqDescription
credential_idstringyescredential_id returned by kya_register.

No output schema declared.

No examples provided.

kya_renew_prove ~164

Free. Second step of kya_renew: send both signatures of the renewal challenge; the credential is re-issued for 90 days if the e-CNPJ is not revoked and the company is still ATIVA.

NameTypeReqDescription
agent_signaturestringyesSignature of challenge.text by the agent key: EIP-191 personal_sign hex (evm) or raw Ed25519 base64url (web-bot-auth).
challenge_idstringyeschallenge.id from kya_register (or kya_renew).
credential_idstringyescredential_id returned by kya_register.
ecnpj_signaturestringyesCMS/PKCS#7 SignedData (detached, base64 DER) of challenge.text, signed with the company's e-CNPJ certificate.

No output schema declared.

No examples provided.

kya_revocations ~38

Free. Credentials revoked since a date (default: last 30 days), for verifiers that cache credentials.

NameTypeReqDescription
sincestring––

No output schema declared.

No examples provided.

kya_revoke ~124

Free. The company revokes the credential at once (e-CNPJ-signed request). Revocations are listed at /v1/revocations.

NameTypeReqDescription
credential_idstringyescredential_id returned by kya_register.
ecnpj_signaturestringyesCMS/PKCS#7 SignedData (detached, base64 DER) of signed_text with the company's e-CNPJ.
reasonstring––
signed_textstringyesExactly "KYA Brasil: revoke <credential_id>" followed by a newline and a nonce of your choice.

No output schema declared.

No examples provided.

kya_sign_link ~157

Free. Link for whoever holds the company's e-CNPJ (owner, accountant): give challenge_id and the agent's signature, get the /sign URL. They see agent, company and mandate and sign in the browser (A1 .pfx) or with any ICP-Brasil signer (A3 token, cloud), or run kya-sign (npm @kya-brasil/agent-tools) with the link. The issuer never sees the certificate.

NameTypeReqDescription
agent_signaturestring–The agent's signature of challenge.text, so the person only signs with the e-CNPJ.
challenge_idstringyeschallenge.id from kya_register or kya_renew.
credential_idstringyescredential_id returned by kya_register.

No output schema declared.

No examples provided.

kya_verify ~89

Free (50/day per IP). The agent's current credential: principal company, mandate, status (active, suspended, revoked, expired) and signature. Also by key: /v1/agents/by-key?kind=&id=.

NameTypeReqDescription
agentobject–Alternative to credential_id: look up active credentials by agent key.
credential_idstring–credential_id returned by kya_register.

No output schema declared.

No examples provided.

kya_verify_paid ~55

Same as the free verification, without daily limit, plus a signed receipt of the verification itself (what was checked, when). Pay per call with x402.

NameTypeReqDescription
credential_idstringyescredential_id returned by kya_register.

No output schema declared.

No examples provided.

Install

How do I install the io.github.celfons/kya-brasil MCP server?

io.github.celfons/kya-brasil is a hosted endpoint at https://kya-br-agents.marcelfons.workers.dev/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · kya-br-agents.marcelfons.workers.dev

# add to Claude Code
claude mcp add --transport http celfons-kya-brasil 'https://kya-br-agents.marcelfons.workers.dev/mcp'
Common questions

What is the io.github.celfons/kya-brasil MCP server?

io.github.celfons/kya-brasil is an MCP server listed in the public MCP registry as io.github.celfons/kya-brasil. KYA backed by a real company: e-CNPJ-signed agent mandates, revocation-checked, signed verdicts. This page covers its hosted endpoint (https://kya-br-agents.marcelfons.workers.dev/mcp).

Is the io.github.celfons/kya-brasil MCP server safe to use?

io.github.celfons/kya-brasil scores 58 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the io.github.celfons/kya-brasil MCP server expose?

io.github.celfons/kya-brasil exposes 15 tools: kya_register, kya_verify_paid, kya_check_action, kya_renew, kya_prove, and 10 more. Their descriptions and schemas cost roughly 1,873 tokens of context every time the server is loaded.

Does the io.github.celfons/kya-brasil MCP server require authentication?

No. We connected to io.github.celfons/kya-brasil without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the io.github.celfons/kya-brasil MCP server still maintained?

io.github.celfons/kya-brasil is still listed as active in the MCP registry. We last reached this channel on 18 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.