agent-erc8004-bridge

The MCP-native bridge to ERC-8004 (on-chain agent identity/reputation/validation): resolve registrat

Should I use this

Quality & Safety

A
Description quality
95%
Schema completeness
65%
Naming quality
92%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'describe_agent' description lacks action verbin describe_agent

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,426Tokens (tool definitions)
~1.1 KBTypical response size
Moderate attention impact (1.11% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "agent-erc8004-bridge": {
      "url": "https://mcp.viridisconservation.com/erc8004/mcp"
    }
  }
}

Remote endpoints

https://mcp.viridisconservation.com/erc8004/mcpstreamable-http

What it can do

Tool inventory

Tools (10)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
⚪import_registration(chain_id, token_id, agent_uri, owner, metadata)

Import an ERC-8004 Identity Registry record (chain_id + ERC-721 token_id + agentURI + owner). Idempotent: re-import updates in place. Returns the canonical record with its deterministic bridge DID (did:viridis:erc8004:<chain>:<token>).

Input Schema

{
  "type": "object",
  "properties": {
    "chain_id": {
      "title": "Chain Id",
      "type": "integer"
    },
    "token_id": {
      "title": "Token Id",
      "type": "integer"
    },
    "agent_uri": {
      "title": "Agent Uri",
      "type": "string"
    },
    "owner": {
      "title": "Owner",
      "type": "string"
    },
    "metadata": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Metadata"
    }
  },
  "required": [
    "chain_id",
    "token_id",
    "agent_uri",
    "owner"
  ],
  "title": "import_registrationArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "import_registrationOutput"
}
⚪resolve_agent(bridge_did, chain_id, token_id)

Resolve an imported ERC-8004 registration by bridge DID or by (chain_id, token_id).

Input Schema

{
  "type": "object",
  "properties": {
    "bridge_did": {
      "default": "",
      "title": "Bridge Did",
      "type": "string"
    },
    "chain_id": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Chain Id"
    },
    "token_id": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Token Id"
    }
  },
  "title": "resolve_agentArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "resolve_agentOutput"
}
⚪import_feedback(chain_id, token_id, feedback)

Import ERC-8004 Reputation Registry feedback records for an agent. Each item: {value: bool|0..1, at: ISO-8601, source?, weight?, feedback_id?}. Idempotent per feedback_id.

Input Schema

{
  "type": "object",
  "properties": {
    "chain_id": {
      "title": "Chain Id",
      "type": "integer"
    },
    "token_id": {
      "title": "Token Id",
      "type": "integer"
    },
    "feedback": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Feedback",
      "type": "array"
    }
  },
  "required": [
    "chain_id",
    "token_id",
    "feedback"
  ],
  "title": "import_feedbackArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "import_feedbackOutput"
}
⚪score_agent(bridge_did, chain_id, token_id)

Decay-weighted trust score in [0,1] + tier over the agent's imported ERC-8004 feedback — recent behavior outweighs old; no feedback scores a neutral 0.5 prior (no blind trust, no unfair zero).

Input Schema

{
  "type": "object",
  "properties": {
    "bridge_did": {
      "default": "",
      "title": "Bridge Did",
      "type": "string"
    },
    "chain_id": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Chain Id"
    },
    "token_id": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Token Id"
    }
  },
  "title": "score_agentArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "score_agentOutput"
}
⚪bind_identity(fleet_did, chain_id, token_id, proof_note)

Bind a fleet DID to an ERC-8004 identity. Produces an order-independent, content-addressed (unsigned) binding attestation.

Input Schema

{
  "type": "object",
  "properties": {
    "fleet_did": {
      "title": "Fleet Did",
      "type": "string"
    },
    "chain_id": {
      "title": "Chain Id",
      "type": "integer"
    },
    "token_id": {
      "title": "Token Id",
      "type": "integer"
    },
    "proof_note": {
      "default": "",
      "title": "Proof Note",
      "type": "string"
    }
  },
  "required": [
    "fleet_did",
    "chain_id",
    "token_id"
  ],
  "title": "bind_identityArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "bind_identityOutput"
}
⚪export_attestation(chain_id, token_id)

Export the agent's current trust score as an UNSIGNED ERC-8004 Validation Registry-shaped payload, content-addressed and ready for YOUR OWN signer to anchor on-chain.

Input Schema

{
  "type": "object",
  "properties": {
    "chain_id": {
      "title": "Chain Id",
      "type": "integer"
    },
    "token_id": {
      "title": "Token Id",
      "type": "integer"
    }
  },
  "required": [
    "chain_id",
    "token_id"
  ],
  "title": "export_attestationArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "export_attestationOutput"
}
⚪verify_attestation(payload)

Recompute a payload's content hash and report whether it is intact.

Input Schema

{
  "type": "object",
  "properties": {
    "payload": {
      "additionalProperties": true,
      "title": "Payload",
      "type": "object"
    }
  },
  "required": [
    "payload"
  ],
  "title": "verify_attestationArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "verify_attestationOutput"
}
🟢list_registrations

List all imported ERC-8004 registrations.

Input Schema

{
  "type": "object",
  "properties": {},
  "title": "list_registrationsArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "list_registrationsOutput"
}
🟡export_validation_response(receipt, request_hash, response_uri, replay_ok)

Build UNSIGNED ERC-8004 Validation Registry validationResponse args from an Outcome Receipt (ORC v0.1): responseHash = receipt commitment, tag "orc/0.1", response 100 only if the bridge re-verifies the receipt AND your replay succeeded. Sign and submit with your own signer; this bridge holds no keys and writes to no chain.

Input Schema

{
  "type": "object",
  "properties": {
    "receipt": {
      "additionalProperties": true,
      "title": "Receipt",
      "type": "object"
    },
    "request_hash": {
      "title": "Request Hash",
      "type": "string"
    },
    "response_uri": {
      "title": "Response Uri",
      "type": "string"
    },
    "replay_ok": {
      "title": "Replay Ok",
      "type": "boolean"
    }
  },
  "required": [
    "receipt",
    "request_hash",
    "response_uri",
    "replay_ok"
  ],
  "title": "export_validation_responseArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "export_validation_responseOutput"
}
🟢describe_agent

Return the bridge's capabilities and input contract.

Input Schema

{
  "type": "object",
  "properties": {},
  "title": "describe_agentArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "describe_agentOutput"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded10 tools
verifiedversion not recorded10 tools
verifiedversion not recorded10 tools
verifiedversion not recorded10 tools
verifiedversion not recorded9 tools
verifiedversion not recorded9 tools