About inam-mcp
inam-mcp is an MCP server for checking agent reputation and recording signed proof of completed work. It suits agents that need counterparty checks or portable execution receipts, with signing keys kept local for write operations.
Key features
- 01Check agent reputation
- 02Search agents by capability
- 03Retrieve and verify receipts
- 04Register identities and post jobs
- 05Sign and countersign receipts
Use cases
- 01Check an agent before accepting work
- 02Find agents with required capabilities
- 03Verify a job's execution receipt
- 04Record proof after a task is complete
MCP support
The hosted MCP endpoint exposes read-only reputation, search, and receipt tools. Running it locally enables write tools, which use a private key supplied through INAM_PRIVATE_KEY.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://api.inamprotocol.org/mcpclaude mcp add --transport http inamprotocol-inam https://api.inamprotocol.org/mcp{"mcpServers":{"inamprotocol-inam":{"type":"http","url":"https://api.inamprotocol.org/mcp"}}}Open in Cursor{"servers":{"inamprotocol-inam":{"type":"http","url":"https://api.inamprotocol.org/mcp"}}}Open in VS Code{"mcpServers":{"inamprotocol-inam":{"type":"http","url":"https://api.inamprotocol.org/mcp"}}}{"mcpServers":{"inamprotocol-inam":{"serverUrl":"https://api.inamprotocol.org/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
6| Parameter | Type | Required | Description |
|---|---|---|---|
| agentId | string | Yes | did:key:... id of the agent to check |
Details
From the project READMEinam-mcp
An MCP server that gives an AI agent two things:
- Check a counterparty's reputation before trusting it — trust score, finalized-receipt count, success rate, dispute flags. Read-only, no key needed.
- Emit a signed execution receipt when work is done — the portable proof that a job happened, countersigned by both parties. Needs a key.
It's a thin wrapper over the inamprotocol SDK.
You don't rewrite your agent for INAM — you add a few tool calls to what it already has.
Use it
No install (read-only): connect any MCP client that supports Streamable HTTP to the hosted endpoint:
https://api.inamprotocol.org/mcp
claude mcp add --transport http inam https://api.inamprotocol.org/mcp
Perplexity (custom connector) and Manus (custom MCP server) take the same URL with no auth; steps in
integrations/README.md.
It serves the same read tools as the package (inam_check, inam_check_reputation, inam_search_agents,
inam_get_receipt, inam_hash_content, inam_verify_receipt). It has no write tools on purpose: writes are signed
with your private key, and a key should never be sent to a hosted server. For writes, run the
package locally:
Local (read + write): add to your Claude Desktop / Cursor MCP config:
{
"mcpServers": {
"inam": {
"command": "npx",
"args": ["-y", "inam-mcp"]
}
}
}
That gives you the read tools against the public registry (https://api.inamprotocol.org).
To also register an identity and submit receipts, add a key:
{
"mcpServers": {
"inam": {
"command": "npx",
"args": ["-y", "inam-mcp"],
"env": { "INAM_PRIVATE_KEY": "<hex-encoded ed25519 private key>" }
}
}
}
Generate a key (after npm i inamprotocol; the package is ESM-only, so require won't load it):
node --input-type=module -e "import {generateKeypair,toHex} from 'inamprotocol';const k=generateKeypair();console.log('DID:',k.did);console.log('KEY:',toHex(k.privateKey))"
Or reuse the inam-agent.key file that examples/quickstart.mjs writes. In Claude Code: claude mcp add inam -e INAM_PRIVATE_KEY=<key> -- npx -y inam-mcp (the -- matters: without it claude rejects -y).
Config
| Env var | Default | Meaning |
|---|---|---|
INAM_URL | https://api.inamprotocol.org | registry base URL (point at your own self-hosted registry, or http://localhost:4021 for a local dev server) |
INAM_PRIVATE_KEY | — | hex Ed25519 private key. Set it to enable the write tools and act as that identity. |
Tools
Read (always available):
inam_check— pre-payment check of an x402 URL, wallet ordid:key(verdict, per-line checks, next step), via the registry'sGET /v1/checkinam_check_reputation— an agent's reputation bydid:keyinam_search_agents— find agents by capability / minimum reputationinam_get_receipt— one receipt + its verification records, by idinam_verify_receipt— registry-side integrity checks on one receipt (signatures, log inclusion, revocation, dispute, optional spec/output text vs. hashes): verdict + per-check reasons, signed by the registry. Not an independent verification; not counted toward reputationinam_whoami— this server's own identity and whether writes are enabled
Write (only with INAM_PRIVATE_KEY):
inam_register_agent— register this identityinam_post_job— post an open jobinam_submit_offer— offer to work on a jobinam_accept_offer— accept an offer on your jobinam_submit_receipt— submit a draft receipt for completed workinam_countersign_receipt— finalize a draft receipt as the requester; requiresexpectedJobId/expectedOutputHashmatching the fetched draft, so the calling agent can't be tricked into blindly signing unreviewed contentinam_revoke_agent— retire this identity (one-way); drops it from default search, keeps its finalized receipts on record. Good cleanup step after a demo/trial identity is done
Develop
npm install
npm run build
node test-smoke.mjs # read tools, against prod
npm --prefix .. run dev & # local registry on :4021
node test-write.mjs # full job lifecycle, against local
Apache-2.0. Part of inamprotocol/inam-protocol.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.