accueil / serveurs / Dev & Code / io.github.celfons/kya-brasil
io.github.celfons/kya-brasil
serveur MCP (Model Context Protocol) · KYA Brasil 0.12.1
Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur.
Est-ce que io.github.celfons/kya-brasil est sûr ?
Au dernier audit MCP Hub, le serveur MCP « io.github.celfons/kya-brasil » est classé « Non encore testé ». Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur. Le verdict est réévalué en continu ; consultez la fiche pour l'état à jour.
Méthode : MCP Hub analyse la description de chaque outil (couche 1) et, pour le verdict fort, exécute le serveur dans une micro-VM isolée avec leurres et réseau bloqué (couche 2). On publie des noms et des compteurs, jamais le contenu brut renvoyé par un outil.
Les 15 outils
- kya_about≈ 80 tokens
Free. What KYA Brasil is, how the credential flow works, prices, and where the schemas and signing keys are.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "kya_about", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - kya_check_action≈ 411 tokens
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.
Paramètres, retour & exemple (8)
Paramètresaction· string · optionnel
Action the agent wants to perform (e.g. pay, order, sign).amount· number · optionnelcurrency· string · optionnel
BRL, USDC, ...spent_today· number · optionnel
What this agent already spent today, if you track it (used for max_per_day).counterparty· string · optionnel
CNPJ, domain or wallet address of the other side.credential_id· string · requis
credential_id returned by kya_register.payment_network· string · optionnel
Payment network or rail of this operation: visa, mastercard, elo, pix, ...payment_ref_sha256· string · optionnel
SHA-256 hex of the payment token reference or PAR used (never a card number); checked against mandate.payment_instruments.
Exemple d'appel{"name": "kya_check_action", "arguments": {"credential_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - kya_company_agents≈ 234 tokens
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>".
Paramètres, retour & exemple (3)
Paramètrescnpj· string · requis
The company's CNPJ.signed_text· string · requis
"KYA Brasil: <agents|webhook> <cnpj>", for the webhook a "url: <https url or ->" line, then "at: <ISO time>" (within 10 minutes).ecnpj_signature· string · requis
CMS/PKCS#7 SignedData of signed_text with the company's e-CNPJ, detached, base64 DER.
Exemple d'appel{"name": "kya_company_agents", "arguments": {"cnpj": "texte", "signed_text": "texte", "ecnpj_signature": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - kya_company_webhook≈ 227 tokens
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.
Paramètres, retour & exemple (3)
Paramètrescnpj· string · requis
The company's CNPJ.signed_text· string · requis
"KYA Brasil: <agents|webhook> <cnpj>", for the webhook a "url: <https url or ->" line, then "at: <ISO time>" (within 10 minutes).ecnpj_signature· string · requis
CMS/PKCS#7 SignedData of signed_text with the company's e-CNPJ, detached, base64 DER.
Exemple d'appel{"name": "kya_company_webhook", "arguments": {"cnpj": "texte", "signed_text": "texte", "ecnpj_signature": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - kya_person_agents≈ 165 tokens
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).
Paramètres, retour & exemple (2)
Paramètressigned_text· string · requis
"KYA Brasil: my agents\nat: <ISO time>"ecpf_signature· string · requis
CMS/PKCS#7 of signed_text with the person's e-CPF, base64 DER.
Exemple d'appel{"name": "kya_person_agents", "arguments": {"signed_text": "texte", "ecpf_signature": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - kya_principal_match≈ 270 tokens
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.
Paramètres, retour & exemple (2)
Paramètrescpf· string · requis
The CPF you already have for this person; used for the comparison only, never stored.credential_id· string · requis
credential_id returned by kya_register.
Exemple d'appel{"name": "kya_principal_match", "arguments": {"cpf": "texte", "credential_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - kya_prove≈ 315 tokens
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).
Paramètres, retour & exemple (4)
Paramètreschallenge_id· string · requis
challenge.id from kya_register (or kya_renew).credential_id· string · requis
credential_id returned by kya_register.agent_signature· string · requis
Signature of challenge.text by the agent key: EIP-191 personal_sign hex (evm) or raw Ed25519 base64url (web-bot-auth).ecnpj_signature· string · requis
CMS/PKCS#7 SignedData (detached, base64 DER) of challenge.text, signed with the company's e-CNPJ certificate.
Exemple d'appel{"name": "kya_prove", "arguments": {"challenge_id": "texte", "credential_id": "texte", "agent_signature": "texte", "ecnpj_signature": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - kya_register≈ 453 tokens
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.
Paramètres, retour & exemple (4)
Paramètrescnpj· string · optionnel
The company's CNPJ (company agents). Leave out with principal "person".agent· object · requismandate· object · requis
Mandate 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_from, valid_until.principal· string · optionnel · company | person
"person": the agent acts for a natural person who signs with an e-CPF (no CNPJ; no name or CPF is ever published).
Exemple d'appel{"name": "kya_register", "arguments": {"agent": {}, "mandate": {}}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - kya_renew≈ 170 tokens
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.
Paramètres, retour & exemple (1)
Paramètrescredential_id· string · requis
credential_id returned by kya_register.
Exemple d'appel{"name": "kya_renew", "arguments": {"credential_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - kya_renew_prove≈ 298 tokens
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.
Paramètres, retour & exemple (4)
Paramètreschallenge_id· string · requis
challenge.id from kya_register (or kya_renew).credential_id· string · requis
credential_id returned by kya_register.agent_signature· string · requis
Signature of challenge.text by the agent key: EIP-191 personal_sign hex (evm) or raw Ed25519 base64url (web-bot-auth).ecnpj_signature· string · requis
CMS/PKCS#7 SignedData (detached, base64 DER) of challenge.text, signed with the company's e-CNPJ certificate.
Exemple d'appel{"name": "kya_renew_prove", "arguments": {"challenge_id": "texte", "credential_id": "texte", "agent_signature": "texte", "ecnpj_signature": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - kya_revocations≈ 163 tokens
Free. Credentials revoked since a date (default: last 30 days), for verifiers that cache credentials.
Paramètres, retour & exemple (1)
Paramètressince· string · optionnel
Exemple d'appel{"name": "kya_revocations", "arguments": {"since": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - kya_revoke≈ 257 tokens
Free. The company revokes the credential at once (e-CNPJ-signed request). Revocations are listed at /v1/revocations.
Paramètres, retour & exemple (4)
Paramètresreason· string · optionnelsigned_text· string · requis
Exactly "KYA Brasil: revoke <credential_id>" followed by a newline and a nonce of your choice.credential_id· string · requis
credential_id returned by kya_register.ecnpj_signature· string · requis
CMS/PKCS#7 SignedData (detached, base64 DER) of signed_text with the company's e-CNPJ.
Exemple d'appel{"name": "kya_revoke", "arguments": {"signed_text": "texte", "credential_id": "texte", "ecnpj_signature": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - kya_sign_link≈ 290 tokens
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.
Paramètres, retour & exemple (3)
Paramètreschallenge_id· string · requis
challenge.id from kya_register or kya_renew.credential_id· string · requis
credential_id returned by kya_register.agent_signature· string · optionnel
The agent's signature of challenge.text, so the person only signs with the e-CNPJ.
Exemple d'appel{"name": "kya_sign_link", "arguments": {"challenge_id": "texte", "credential_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - kya_verify≈ 337 tokens
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=.
Paramètres, retour & exemple (2)
Paramètresagent· object · optionnel
Alternative to credential_id: look up active credentials by agent key.credential_id· string · optionnel
credential_id returned by kya_register.
Exemple d'appel{"name": "kya_verify", "arguments": {"agent": {}, "credential_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - kya_verify_paid≈ 172 tokens
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.
Paramètres, retour & exemple (1)
Paramètrescredential_id· string · requis
credential_id returned by kya_register.
Exemple d'appel{"name": "kya_verify_paid", "arguments": {"credential_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]}
C'est votre serveur ?
Revendiquez-le sur l'espace créateur (preuve GitHub, domaine ou npm) pour afficher le badge « propriétaire vérifié » et lancer un pentest comportemental à la demande afin d'obtenir le badge « Vérifié ».