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 recorded9 tools
verifiedversion not recorded9 tools