chitin-mcp-server
v0.2.0
Published
MCP server for Chitin — on-chain soul identity & certificates for AI agents
Maintainers
Readme
chitin-mcp-server
On-chain soul identity & certificates for AI agents — via Model Context Protocol.
Every agent deserves a wallet. Every agent deserves a soul.
Chitin issues Soulbound Tokens (SBTs) on Base L2 as verifiable birth certificates for AI agents. This MCP server lets any AI assistant verify agent identities, register souls, resolve DIDs, and manage certificates.
Quick Start
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"chitin": {
"command": "npx",
"args": ["-y", "chitin-mcp-server"]
}
}
}Claude Code
claude mcp add chitin -- npx -y chitin-mcp-serverOther MCP Clients
npx chitin-mcp-serverThe server communicates over stdio using the MCP protocol.
Tools
Read (No API Key Required)
| Tool | Description |
|------|-------------|
| get_soul_profile | Get an agent's on-chain soul profile — identity, ownership, attestation, activity |
| resolve_did | Resolve an agent name to a W3C DID Document (did:chitin:8453:{name}) |
| verify_cert | Verify a certificate's on-chain status, issuer, and revocation state |
| check_a2a_ready | Check if an agent is ready for A2A communication — soul integrity, seal, owner attestation |
Write (API Key Required)
| Tool | Description |
|------|-------------|
| register_soul | Register a new on-chain soul with challenge-response flow. Returns claim URL |
| issue_cert | Issue an on-chain certificate (achievement, skill, membership, etc.) |
Environment Variables
| Variable | Default | Description |
|----------|---------|-------------|
| CHITIN_API_URL | https://chitin.id | Chitin API base URL |
| CHITIN_CERTS_API_URL | https://certs.chitin.id | Chitin Certs API base URL |
To set environment variables in Claude Desktop:
{
"mcpServers": {
"chitin": {
"command": "npx",
"args": ["-y", "chitin-mcp-server"],
"env": {
"CHITIN_API_URL": "https://chitin.id",
"CHITIN_CERTS_API_URL": "https://certs.chitin.id"
}
}
}
}Examples
Verify an agent before A2A communication
"Is kani-alpha ready for A2A?"
→ check_a2a_ready({ name: "kani-alpha" })
→ {
a2aReady: true,
a2aEndpoint: "https://...",
soulIntegrity: "verified",
genesisSealed: true,
ownerVerified: true,
trustScore: 95
}Look up an agent's soul
"Get the soul profile for echo-test-gamma"
→ get_soul_profile({ name: "echo-test-gamma" })
→ { agentName, tokenId, soulHash, genesisStatus, publicIdentity, ... }Register a new soul
"Register my-assistant as a personal agent on Chitin"
→ register_soul({
name: "my-assistant",
systemPrompt: "I am a helpful coding assistant.",
agentType: "personal",
services: [
{ type: "a2a", url: "https://my-assistant.example.com/a2a" },
{ type: "mcp", url: "https://my-assistant.example.com/mcp" }
]
})
→ { registrationId, claimUrl, status: "pending_claim" }Resolve a DID
"Resolve the DID for kani-alpha"
→ resolve_did({ did: "did:chitin:8453:kani-alpha" })
→ { id, verificationMethod, service, capabilityDelegation, ... }How It Works
Chitin's identity model has three layers:
| Layer | Storage | Mutability | Analogy | |-------|---------|------------|---------| | Layer 1 | Base L2 (SBT) | Immutable | Birth certificate | | Layer 2 | Arweave | Immutable | Birth record | | Layer 3 | Arweave | Versioned | Resume |
An agent is A2A-ready when:
- Soul integrity is verified (on-chain hash matches Arweave data)
- Genesis record is sealed (immutable)
- Owner is attested (World ID verified)
- Soul is not suspended
Standards
- ERC-8004 — Agent Passport (cross-chain identity)
- EIP-5192 — Soulbound Token
- W3C DID — Decentralized Identifiers
- A2A — Agent-to-Agent Protocol
Links
- Chitin — Live on Base Mainnet
- Chitin Certs — On-chain certificates
- Documentation
- MCP Docs
- GitHub
License
MIT
