AI-агенти (MCP)
neurochain-mcp — сервер Model Context Protocol. Він дає AI-асистенту — Claude Code, Claude Desktop чи будь-якому MCP-клієнту — читати мережу і в заданих вами межах діяти в ній.
AI-асистент ⇄ (MCP через stdio) ⇄ neurochain-mcp ⇄ (HTTP) ⇄ gateway :3000 ⇄ нода :9933Сервер — звичайний Node.js у папці neurochain-mcp/ репозиторію (без кроку збірки). Він звертається лише до REST API gateway.
Чому це безпечно
- Записи підписуються сесійним ключем, а не майстер-ключем гаманця. Ключ видає ваш майстер-ключ з дозволеними адресами, лімітом витрат і строком дії, і кожен валідатор перевіряє їх у консенсусі — див. Абстракція акаунтів → Сесійні ключі.
- Сесійний ключ не може керувати списком довіри Sentinel чи підтверджувати утриманий переказ. Якщо Sentinel утримав ризикований переказ, пропустити його можете лише ви.
- Стейкінг, делегування і голосування агентам не доступні.
- Без сесійного ключа сервер працює лише на читання.
Налаштування
1. Встановлення
cd neurochain-mcp
npm install2. Сесійний ключ і конфігурація
У вебгаманці відкрийте панель Agent, створіть сесійний ключ — оберіть адреси, на які він може надсилати (або *), загальний ліміт витрат і скільки блоків він дійсний, — і натисніть Export config. Ви отримаєте:
{
"node_rpc": "http://localhost:3000",
"account": "neuro:<15 hex>.human",
"session_pk": "<публічний ключ сесії, hex>",
"sk_seed_hex": "<seed ключа сесії, hex>",
"scope": "*"
}| Поле | Значення |
|---|---|
node_rpc | Адреса gateway (не порт ноди 9933). Гаманець підставляє адресу своєї сторінки; змініть, якщо gateway працює деінде |
account | Адреса, від імені якої діє агент |
session_pk, sk_seed_hex | Сесійний ключ. Залиште обидва порожніми для режиму лише читання |
scope | Лише для довідки — діє той дозвіл, що записаний у мережі |
Збережіть файл поза репозиторієм і нікому не передавайте: sk_seed_hex — секрет.
3. Реєстрація сервера
Claude Code:
claude mcp add neurochain \
--env NEUROCHAIN_MCP_CONFIG=/absolute/path/to/neurochain-mcp.config.json \
-- node /absolute/path/to/neurochain-mcp/src/index.jsClaude Desktop (claude_desktop_config.json) або .mcp.json проєкту:
{
"mcpServers": {
"neurochain": {
"command": "node",
"args": ["/absolute/path/to/neurochain-mcp/src/index.js"],
"env": { "NEUROCHAIN_MCP_CONFIG": "/absolute/path/to/neurochain-mcp.config.json" }
}
}
}Використовуйте абсолютні шляхи: клієнт запускає сервер зі своєї робочої папки.
Інструменти
Читання
| Інструмент | Параметри | Повертає |
|---|---|---|
nc_get_account | address (за замовчуванням — налаштований акаунт) | Баланс, nonce, кількість транзакцій |
nc_get_txs | address, limit (1–200) | Історію транзакцій |
nc_gas_estimate | — | Базову комісію й оцінки |
nc_list_proposals | status, limit (1–100), offset | Пропозиції управління з підсумками голосів |
nc_list_validators | — | Валідаторів зі стейком і метриками |
nc_get_contract | address (.app) | Власника, хеш коду, оцінку безпеки |
nc_analyze_contract | bytecode_hex | Аналіз VMGuardian — ризик, порушення |
nc_get_session_grants | address | Сесійні ключі акаунта з лімітом і витраченою сумою |
nc_get_held | address | Перекази, утримані Sentinel |
Запис (потрібен сесійний ключ)
| Інструмент | Параметри | Примітки |
|---|---|---|
nc_transfer | to, amount_nro (NRO, з дробовою частиною) | Якщо Sentinel утримав переказ, інструмент скаже, чи він звільниться сам, чи потрібне ваше підтвердження |
nc_call_contract | to (.app), function, args, value (uNRO, за замовчуванням 0) | |
nc_deploy | bytecode_hex, name, description, template, init_args | Проходить шлюз VMGuardian, як будь-яке розгортання |
Кожен запис читає наступний nonce, підписує сесійним ключем і надсилає на POST /api/v1/transactions. Нода перевіряє дозвіл на кожному валідаторі; наприклад, переказ понад ліміт повертається так:
Error: POST /api/v1/transactions failed: HTTP 401 — session spend cap exceededПеревірено
У локальній тестовій мережі: інструменти читання повертають живі дані; nc_transfer на 1 NRO із сесійним ключем з лімітом 5 NRO підтверджено, а в дозволі записано spent: 1000000; наступний переказ на 10 NRO відхилено з помилкою вище; без сесійного ключа інструменти запису відмовляють, нічого не підписуючи.
Відкликання
Відкличте ключ на панелі Agent у гаманці або через POST /api/v1/session/revoke, підписаний майстер-ключем. З наступного блоку все, що підписано цим ключем, відхиляється.