inam-mcp
MCP-сервер, который предоставляет AI-агенту две возможности:
-
Проверять репутацию контрагента, прежде чем ему доверять: оценка доверия, количество подтверждённых квитанций, доля успешно завершённых работ, отметки о спорах. Только чтение, ключ не нужен.
-
Создавать подписанную квитанцию о выполнении работы — переносимое подтверждение того, что задача была выполнена и обе стороны подписали документ. Для этого нужен ключ.
Сервер представляет собой тонкую обёртку над SDK inamprotocol.
Для работы с INAM не нужно переписывать агента — достаточно добавить несколько вызовов инструментов к уже существующим.
Использование
Без установки (только чтение): подключите любой MCP-клиент с поддержкой Streamable HTTP к размещённой конечной точке:
https://api.inamprotocol.org/mcp
claude mcp add --transport http inam https://api.inamprotocol.org/mcp
Perplexity (пользовательский коннектор) и Manus (пользовательский MCP-сервер) используют тот же URL без авторизации. Инструкции приведены в integrations/README.md.
Сервер предоставляет те же инструменты для чтения, что и пакет (inam_check, inam_check_reputation, inam_search_agents, inam_get_receipt, inam_hash_content, inam_verify_receipt). Инструментов для записи намеренно нет: операции записи подписываются вашим приватным ключом, который нельзя отправлять на размещённый сервер. Для записи запустите пакет локально:
Локально (чтение и запись): добавьте эту конфигурацию в MCP-настройки Claude Desktop или Cursor:
{
"mcpServers": {
"inam": {
"command": "npx",
"args": ["-y", "inam-mcp"]
}
}
}
Это даст доступ к инструментам чтения в публичном реестре (https://api.inamprotocol.org).
Чтобы также зарегистрировать идентификатор и отправлять квитанции, добавьте ключ:
{
"mcpServers": {
"inam": {
"command": "npx",
"args": ["-y", "inam-mcp"],
"env": { "INAM_PRIVATE_KEY": "<hex-encoded ed25519 private key>" }
}
}
}
Создайте ключ (после npm i inamprotocol; пакет поддерживает только ESM, поэтому загрузить его через require не получится):
node --input-type=module -e "import {generateKeypair,toHex} from 'inamprotocol';const k=generateKeypair();console.log('DID:',k.did);console.log('KEY:',toHex(k.privateKey))"
Можно также использовать файл inam-agent.key, созданный скриптом examples/quickstart.mjs. В Claude Code выполните команду claude mcp add inam -e INAM_PRIVATE_KEY= -- npx -y inam-mcp (параметр -- обязателен: без него claude отклонит -y).
Конфигурация
| Переменная окружения | Значение по умолчанию | Описание |
|---|---|---|
INAM_URL | https://api.inamprotocol.org | Базовый URL реестра. Можно указать адрес собственного реестра или http://localhost:4021 для локального сервера разработки. |
INAM_PRIVATE_KEY | — | Приватный ключ Ed25519 в шестнадцатеричном формате. Укажите его, чтобы включить инструменты записи и действовать от имени этого идентификатора. |
Инструменты
Чтение (доступны всегда):
-
inam_check— проверка перед оплатой URL x402, кошелька илиdid:key: вердикт, проверки по каждому пункту и следующий шаг. ИспользуетGET /v1/checkреестра. -
inam_check_reputation— получение репутации агента поdid:key. -
inam_search_agents— поиск агентов по возможностям и минимальному уровню репутации. -
inam_get_receipt— получение одной квитанции и записей о её проверке по идентификатору. -
inam_verify_receipt— проверка целостности квитанции на стороне реестра: подписи, включение в журнал, отзыв, спор и, при необходимости, соответствие текста спецификации или результата хешам. Возвращает вердикт и причины по каждой проверке, подписанные реестром. Это не независимая проверка; она не учитывается при расчёте репутации. -
inam_whoami— сведения о собственном идентификаторе сервера и о том, включены ли инструменты записи.
Запись (только при наличии INAM_PRIVATE_KEY):
-
inam_register_agent— регистрация этого идентификатора. -
inam_post_job— публикация открытой задачи. -
inam_submit_offer— предложение выполнить задачу. -
inam_accept_offer— принятие предложения по вашей задаче. -
inam_submit_receipt— отправка черновика квитанции о выполненной работе. -
inam_countersign_receipt— заверение черновика квитанции заказчиком. Для этого значенияexpectedJobIdиexpectedOutputHashдолжны совпадать с данными полученного черновика. Это не позволяет вызывающему агенту подписать содержимое, которое он не проверил. -
inam_revoke_agent— прекращение использования этого идентификатора; действие необратимо. Идентификатор исключается из результатов поиска по умолчанию, но его подтверждённые квитанции сохраняются в реестре. Так можно завершить работу с тестовым идентификатором после демонстрации или пробного периода.
Разработка
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. Часть проекта inamprotocol/inam-protocol.