mcp-identity
@powforge/mcp-identity
Servidor MCP que puntúa la profundidad de identidad (DoI) de cualquier clave pública de Nostr antes de que se ejecute tu manejador. Certificado Schnorr anclado a la punta de la cadena, con precio L402, integración directa para agentes de IA que necesitan resistencia a ataques Sybil además de APIs de pago.
npm: npm i @powforge/mcp-identity
Página de inicio: https://powforge.dev/explorer
Libro blanco: https://powforge.dev/whitepaper
Qué hace
Tres herramientas MCP que envuelven el Oráculo de Profundidad de Identidad de PowForge:
doi_score_lookup— dada una clave pública de Nostr (hex o npub), devuelve una puntuación de identidad multidimensional (red, longevidad, coste del filtro cinético). Con precio L402 a través del oráculo ascendente.doi_sign_vouch— construye un evento de Nostr sin firmar para avalar la profundidad de identidad de otra clave pública. El llamador firma; el oráculo cuenta para la puntuación en la observación.doi_score_verify— verificación Schnorr sin conexión de un certificado DoI firmado devuelto por el oráculo. Sin red.
Related MCP server: AgentStamp
Por qué precios anclados a la identidad
La mayoría de los servicios de API de pago cobran una tarifa plana por solicitud. Eso falla en superficies de agente a agente donde:
Los nuevos agentes parecen idénticos a los scrapers: no hay señal sobre la intención o el riesgo.
Los abusadores de cola larga extraen valor de forma más barata de lo que imponen costes.
La limitación por lista blanca no escala a ecosistemas de agentes abiertos.
DoI le da a tu servidor un número cuantitativo sobre "cuánto costaría falsificar la identidad de este llamador a esta profundidad", anclado a un certificado específico de la punta de la cadena de Bitcoin que es irrefutable. Úsalo como multiplicador en tu precio de macaroon L402, como entrada de límite de tasa o como clave de enrutamiento.
Inicio rápido
npm i @powforge/mcp-identityAñádelo a tu configuración de MCP (Claude Desktop, Cursor, etc.):
{
"mcpServers": {
"powforge-identity": {
"command": "npx",
"args": ["-y", "@powforge/mcp-identity"]
}
}
}Reinicia el cliente. Aparecerán tres nuevas herramientas bajo powforge-identity.
Por qué anclado a la punta de la cadena
La puntuación incluye una firma Schnorr sobre (score, dimensions, score_chaintip_height, score_chaintip_blockhash). Eso vincula la reclamación al filtro cinético de Bitcoin: las puntuaciones de PageRank recomputables pueden ser reescritas silenciosamente, pero un certificado anclado a la punta de la cadena es una reclamación fija contra un tiempo conocido. La verificación es sin conexión.
La ventana de reclamación falsificable del oráculo está documentada en el libro blanco.
Precios L402
El servidor MCP maneja de forma transparente el baile de macaroons L402 con oracle.powforge.dev. La primera llamada devuelve un 402 con una factura de Lightning; el envoltorio paga desde una billetera que configures (env: LNBITS_INVOICE_KEY) y vuelve a intentarlo. Sin claves, sin cuentas.
Estado
v0.7.0 publicado en npm el 28-04-2026.
Tres herramientas expuestas.
Formato de certificado documentado en el libro blanco.
Disponibilidad del oráculo monitoreada en https://powforge.dev/oracle/freshness.
Licencia
MIT.
Fuente
El código fuente reside en un repositorio de desarrollo privado. Las preguntas, problemas e informes de errores son bienvenidos aquí.
Available Tools
3 toolsdoi_score_lookupA
Fetch a Depth-of-Identity score for a Nostr pubkey from the PowForge oracle. Returns either an L402 challenge (macaroon + bolt11 invoice + price_sats) for the caller to pay, or a Schnorr-signed score envelope when paid auth is supplied. Pricing is 1-2 sats per call.
| Name | Required | Description | Default |
|---|---|---|---|
| pubkey | Yes | 64-hex Nostr pubkey or npub1... bech32 string | |
| auth | No | L402 paid auth. Omit on first call to receive the challenge. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It transparently describes the dual behavior (returning a challenge or score envelope), the pricing (1-2 sats), and the need for paid auth. No contradictions are present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the first sentence states the core purpose, the second details the two possible outputs, and the third provides pricing. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a payment-gated tool with no output schema, the description explains both invocation paths, the contents of challenge and score envelope, and pricing. It lacks error handling details but is otherwise complete enough for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers 100% of parameters with descriptions, but the tool description adds crucial usage semantics: the auth parameter is for paid access and should be omitted on first call, and pricing details. This goes beyond the schema's structural definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Fetch' and identifies the resource as a 'Depth-of-Identity score for a Nostr pubkey from the PowForge oracle'. It clearly distinguishes from sibling tools like doi_score_verify and doi_sign_vouch by focusing on score retrieval and payment handling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context, instructing the caller to omit auth on the first call to receive a challenge and then supply auth for the score. However, it does not explicitly compare with sibling tools or state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
doi_score_verifyA
Locally verify a Schnorr-signed DoI score envelope returned by the PowForge oracle. No network call. Default oracle pubkey is hardcoded; override via oracle_pubkey or the ORACLE_PUBKEY env var.
| Name | Required | Description | Default |
|---|---|---|---|
| envelope | Yes | The full signed JSON from a prior doi_score_lookup | |
| oracle_pubkey | No | Override oracle pubkey (64-hex). Default = b4b12d... |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full disclosure burden. It reveals that verification is local, the default pubkey is hardcoded, and there is an override mechanism. However, it does not mention return values or failure behavior (e.g., what happens if verification fails), which is a minor gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences long, efficient, and front-loaded with the core purpose. Every piece of information earns its place without redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there is no output schema, the description does not explain the return value (e.g., boolean, object). However, it adequately covers the tool's operation, parameters, and configuration options. For a verification tool, the missing output specification is a modest gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
While the input schema already describes both parameters, the description adds value by noting the hardcoded default pubkey and the environment variable override (ORACLE_PUBKEY), which is not in the schema. This enriches understanding beyond the schema's field-level descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'verify' and resource 'DoI score envelope', clearly stating the action. It distinguishes itself from siblings doi_score_lookup and doi_sign_vouch by focusing on local verification without network calls.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly mentions that no network call is made and that the oracle pubkey can be overridden via parameter or environment variable. It lacks explicit 'when not to use' guidance, but the context is clear enough for typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
doi_sign_vouchA
Build an UNSIGNED kind:33335 PowForge vouch event template. The MCP server intentionally never holds keys — the caller signs externally and publishes the signed event to relays.
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | 64-hex pubkey of the subject being vouched | |
| depth | Yes | Voucher's claimed DoI depth (integer) | |
| vouch_count | Yes | Voucher's total outbound vouch count (drives sqrt dilution) | |
| sats | No | Optional sats backing | |
| content | No | Optional human-readable note |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool builds an unsigned template and that the server never holds keys, requiring external signing. This provides clear behavioral context beyond the input schema, though it could mention additional traits like input validation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences that front-load the key purpose and workflow. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the tool's role and security model but does not describe the output format or return value, which is important given no output schema. Some behavioral details are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all parameters. The tool description does not add any extra parameter-level meaning, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it builds an unsigned vouch event template, with specific kind (33335) and explains the external signing workflow. This distinguishes it from siblings (doi_score_lookup, doi_score_verify).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the external signing requirement but does not provide explicit when-to-use or when-not-to-use guidance, nor does it compare with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
v0.7.2- First observed
doi_score_lookup - First observed
doi_score_verify - First observed
doi_sign_vouch
TDQS
Scored across 3 tools
Each tool has a distinct purpose: fetching a score, verifying a signature, and creating a vouch template. No overlap in functionality.
Tools follow a snake_case pattern with a 'doi_' prefix, but the structure varies slightly: 'doi_score_lookup' and 'doi_score_verify' share a consistent pattern, while 'doi_sign_vouch' uses a different verb-object order.
With three tools, the server provides a focused, minimal set covering the core operations needed for identity scoring on Nostr. The count is well-scoped for its domain.
The tools cover the essential workflow: fetch, verify, and prepare a vouch. Minor gaps include lack of oracle configuration or retrieval of existing vouches, but the core use case is addressed.
Maintenance
Related MCP Connectors
Neutral W3C DID/VC identity and reputation oracle for AI agents (did:key/did:web, eddsa-jcs-2022).
Enterprise L402 data vending engine delivering real-time thermodynamic Bitcoin telemetry, Groth16 ZK-SNARK verification, Nostr P2P mesh consensus, and agent context grounding to autonomous AI swarms.
Trust scores and on-chain payment receipts for x402 services.
Statistical adjudication for agents: backtest judges, fact-checks. Pay per call in USDC via x402.
Related MCP Servers
- AlicenseAqualityCmaintenance9 tools, Lightning-gated. Pay per call. For agents that need verifiable signed actions with an audit trail. Nostr event signing via daemon Publish events to relays Create Lightning invoices Action receipts — signed proof of agent actions Identity attestation927 npmMIT
- AlicenseAqualityDmaintenanceTrust intelligence MCP server for AI agents. 19 tools for identity stamps, reputation scoring (0-100), agent registry, forensic audit trails, ERC-8004 bridge, and A2A passports via x402 USDC micropayments.192Apache 2.0
- AlicenseNot gradedqualityCmaintenanceLightning Network trust oracle for AI agents. Provides real-time node reachability checks, trust scores, and personalized pathfinding for 17,000+ Lightning nodes via 12 MCP tools.3 npmAGPL 3.0
- AlicenseNot gradedqualityBmaintenanceTrust-aware Nostr MCP server. 236 tools for identity, social, DMs, trust scoring, AI-to-AI dispatch, Lightning payments, privacy proofs, and encrypted vaults. NIP-46 bunker auth; keys never leave the signing device.701 npm1MIT