Tctc MCP server
io.github.kofujimura/tctc-mcp·v0.3.3ERC-7303 token-controlled roles for AI agents: grant, check, and revoke permissions on-chain
0 stars42 downloads/wk
Reviews
Write oneNobody has reviewed Tctc yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Tctc tools (7)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
check_all_rolesCheck every configured role for one account in a single call — an
check_roleCheck whether an account currently holds a role, by reading balanceOf
discover_rolesIntrospect any contract implementing the IERC7303 interface: verifies
grant_roleMint the role's control token to a subject, granting the role on-chain.
list_rolesList the roles this server knows about and the on-chain control tokens
resolve_agentResolve an ERC-8004 agentId to its current control structure: NFT owner,
revoke_roleBurn the subject's control token — the on-chain kill switch. The subject
Public scan report
scanner v0.1.9 · 2026-09-25 · same rubric, same numbers if you re-run it
- Code scan16 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitystatic API keys via environment variables6/15
- Maintenancelast push 12 days ago15/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
How Tctc compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 83/100
- higher than 65% of 48,255 servers
- Tools
- 7
- the typical server has 7
- Tools that change things
- 0%
- typical: 0%. Fewer write tools means less an agent can break
- Downloads a week
- 42
- more than 34% of 12,191 servers with a package
What its tools let an agent do: 6 read · 1 delete
Install Tctc in Claude Code, Cursor or VS Code
Runs npx -y tctc-mcp on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add tctc-mcp -- npx -y tctc-mcp
What the publisher says
From the Tctc repository's README, as published. We do not edit it. Read it on GitHub
tctc-mcp
An MCP server exposing ERC-7303 (Token-Controlled Token Circulation) roles to AI agents: agents check their own on-chain permissions, and human principals grant/revoke them by minting/burning control tokens — no permission server required.
Status: v0.3.4 — adds timed roles with gasless auto-expiry (below), on top of v0.2's IERC7303 auto-discovery; published on npm (tctc-mcp), unit-tested and verified end-to-end against the Sepolia demo deployment (grant → check → revoke → check, and grant-for-75s → auto-expiry, through a real MCP client).
Demo (60 seconds)
A human grants an AI agent a minting permission; the agent verifies it on-chain and mints an NFT. The human burns the role token — and the agent instantly loses the capability. Live on Sepolia, no permission server involved.
Quick start
The package is published on npm, so no clone or build is needed — npx fetches and runs it directly:
# 1. Get a config. The secret-free Sepolia demo config needs no API keys:
curl -fsSLO https://raw.githubusercontent.com/kofujimura/tctc-mcp/main/examples/config.sepolia.agent.json
# 2. Register with your MCP client, e.g. Claude Code
# (read-only mode: only query tools are registered)
claude mcp add tctc -- npx -y tctc-mcp --config "$PWD/config.sepolia.agent.json"
# Admin mode (principal side): grant_role / revoke_role also registered.
# Provide the issuer key ONLY via the environment:
claude mcp add tctc-admin --env TCTC_ADMIN_PRIVATE_KEY=0x... \
-- npx -y tctc-mcp --config "$PWD/config.sepolia.json"Or in a project-scoped .mcp.json:
{ "mcpServers": { "tctc": { "command": "npx",
"args": ["-y", "tctc-mcp", "--config", "examples/config.sepolia.agent.json"] } } }A fuller registration example is in examples/claude.mcp.json. The admin private key is only ever read from the TCTCADMINPRIVATE_KEY environment variable; configs containing anything that looks like a private key are rejected at startup.
Using tctc-mcp from your own app
The only supported entry point is the tctc-mcp bin — spawn it via npx --no-install tctc-mcp (or node_modules/.bin/tctc-mcp). Never reference the package's dist/ files directly: they are internal, their layout is unversioned, and the package's exports field refuses deep imports. A minimal MCP-SDK client example (the pattern for a web backend) is in examples/client-stdio.mjs; the release pipeline verifies the packed bin end-to-end (scripts/verify-pack.mjs).
Web application starter
Want to see tctc-mcp protecting a real API route?
tctc-openai-starter is a standalone Next.js starter that verifies wallet ownership with Sign-In with Ethereum, checks the configured role through tctc-mcp, and calls OpenAI only when the on-chain gate grants access.
Use it as a GitHub template.
Token-gating any MCP server: tctc-gate
The reverse direction lives in this repo too: tctc-gate (npm) is a transparent stdio proxy that puts an ERC-7303 role check in front of any existing MCP server, unmodified — deny comes back with a grant URL that opens the dashboard pre-filled. tctc-mcp lets agents ask about roles; tctc-gate enforces them at the boundary:
npx -y tctc-gate --config gate.json -- npx -y some-mcp-server …Tools
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Tctc: common questions
- Is Tctc MCP server safe?
- Mostly: it is graded B (83/100). Read the Tctc safety report
- How do I install Tctc?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does Tctc need an API key?
- Yes. The registry entry asks for
TCTC_ADMIN_PRIVATE_KEY. - Is Tctc maintained?
- The last commit was 51 days ago (2026-09-14). The latest release is v0.3.3.
- How does Tctc compare with other MCP servers?
- safety score 83/100 (higher than 65% of 48,255 servers); tools 7 (the typical server has 7); tools that change things 0% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.