Skip to main content
Glama

@powforge/mcp-identity

ハンドラーが実行される前に、Nostr公開鍵のアイデンティティの深さ(Depth-of-Identity)をスコアリングするMCPサーバー。チェーンチップに固定されたSchnorr証明書、L402価格設定、有料APIに加えてシビル耐性を必要とするAIエージェント向けのドロップインソリューションです。

npm: npm i @powforge/mcp-identity

ホームページ: https://powforge.dev/explorer

ホワイトペーパー: https://powforge.dev/whitepaper

機能

PowForge Depth-of-Identityオラクルをラップする3つのMCPツール:

  • doi_score_lookup — Nostr公開鍵(hexまたはnpub)を指定すると、多次元のアイデンティティスコア(ネットワーク、存続期間、キネティックフィルターコスト)を返します。アップストリームのオラクル経由でL402価格が設定されます。

  • doi_sign_vouch — 別の公開鍵のアイデンティティの深さを保証するための未署名のNostrイベントを構築します。呼び出し元が署名し、オラクルが観測時にスコアに加算します。

  • doi_score_verify — オラクルから返された署名付きDoI証明書のオフラインSchnorr検証。ネットワーク不要。

Related MCP server: AgentStamp

アイデンティティ固定価格設定の理由

ほとんどの有料APIサービスはリクエストごとに一律料金を請求します。これは、以下のようなエージェント間インターフェースでは機能しません:

  1. 新規エージェントはスクレイパーと見分けがつかず、意図やリスクに関するシグナルがない。

  2. ロングテールの悪用者が、コストを上回る価値を抽出する。

  3. ホワイトリストによるゲート制御は、オープンなエージェントエコシステムにはスケールしない。

DoIは、「この深さでこの呼び出し元のアイデンティティを偽造するのにどれだけのコストがかかるか」という定量的な数値をサーバーに提供します。これは、否認不可能な特定のビットコインチェーンチップ証明書に固定されています。これをL402マカロン価格の乗数、レート制限の入力、またはルーティングキーとして使用してください。

クイックスタート

npm i @powforge/mcp-identity

MCP設定(Claude Desktop、Cursorなど)に追加します:

{
  "mcpServers": {
    "powforge-identity": {
      "command": "npx",
      "args": ["-y", "@powforge/mcp-identity"]
    }
  }
}

クライアントを再起動します。powforge-identityの下に3つの新しいツールが表示されます。

チェーンチップ固定の理由

スコアには (score, dimensions, score_chaintip_height, score_chaintip_blockhash) に対するSchnorr署名が含まれています。これにより、主張がビットコインのキネティックフィルターに結び付けられます。再計算可能なPageRankスコアは密かに書き換えられる可能性がありますが、チェーンチップに固定された証明書は既知の時点に対する固定された主張です。検証はオフラインで行われます。

オラクルの反証可能な主張ウィンドウについては、ホワイトペーパーに記載されています。

L402価格設定

MCPサーバーは、oracle.powforge.devとのL402マカロンのやり取りを透過的に処理します。最初の呼び出しでLightningインボイスを含む402が返されます。ラッパーは設定したウォレット(環境変数: LNBITS_INVOICE_KEY)から支払いを行い、再試行します。キーやアカウントは不要です。

ステータス

  • v0.7.0 を 2026-04-28 に npm に公開。

  • 3つのツールを公開。

  • 証明書フォーマットはホワイトペーパーに記載。

  • オラクルの可用性は https://powforge.dev/oracle/freshness で監視。

ライセンス

MIT。

ソース

ソースはプライベート開発リポジトリにあります。問題、質問、バグレポートはこちらへどうぞ。

Available Tools

3 tools
doi_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pubkeyYes64-hex Nostr pubkey or npub1... bech32 string
authNoL402 paid auth. Omit on first call to receive the challenge.

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
envelopeYesThe full signed JSON from a prior doi_score_lookup
oracle_pubkeyNoOverride oracle pubkey (64-hex). Default = b4b12d...

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYes64-hex pubkey of the subject being vouched
depthYesVoucher's claimed DoI depth (integer)
vouch_countYesVoucher's total outbound vouch count (drives sqrt dilution)
satsNoOptional sats backing
contentNoOptional human-readable note

TDQS

A3.9/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

  1. 3 tool updatesv0.7.2
    • First observeddoi_score_lookup
    • First observeddoi_score_verify
    • First observeddoi_sign_vouch

TDQS

A4.2/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a distinct purpose: fetching a score, verifying a signature, and creating a vouch template. No overlap in functionality.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Lightning 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 npm
    AGPL 3.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Trust-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 npm
    1
    MIT