nockchain-mcp
nockchain-agent
Типизированный TypeScript-клиент и MCP-сервер для чтения Nockchain из агента.
Создано Prism. Не аффилировано с Nockchain, Nock Community Co, Zorp или National Compute, не одобрено ими и не управляется ими.
Установка
npm install nockchain-agent-sdkMCP-сервер запускается прямо из npm:
npx nockchain-mcpNode 20 или новее.
Прочитать баланс
import { NockchainClient } from "nockchain-agent-sdk";
const client = new NockchainClient();
const balance = await client.getBalance("2s3K...");
console.log(`${balance.nock} NOCK (${balance.nicks} nicks) across ${balance.notes.length} notes`);Проверить платёж
Выдайте один адрес на каждый счёт, а затем запросите, был ли он оплачен:
import { NockchainClient } from "nockchain-agent-sdk";
const client = new NockchainClient();
const result = await client.verifyPayment({
address: invoiceAddress,
minNock: "1.5",
sinceHeight: 133400,
confirmations: 3,
});
if (result.paid) {
console.log(`${result.confirmedNock} NOCK settled at height ${result.tipHeight}`);
}Использование через MCP-клиент
{
"mcpServers": {
"nockchain": {
"command": "npx",
"args": ["-y", "nockchain-mcp"]
}
}
}Семь инструментов, все только для чтения:
инструмент | что возвращает |
| текущую высоту, с оценкой свежести по каждому эндпоинту |
| что адрес может потратить прямо сейчас |
| был ли этот адрес оплачен, с количеством подтверждений |
| содержимое блока по высоте или идентификатору блока |
| содержимое транзакции или почему узел не смог её декодировать |
| состояние кэша и обновления выбранного эндпоинта, и его таблицу пиров |
| полную таблицу здоровья эндпоинтов |
Зачем это нужно
Два аспекта чтения Nockchain сегодня отнимают больше времени, чем должны.
Балансы возвращаются нулевыми. Публичный вызов WalletGetBalance принимает селектор адреса, и для заметок в текущем формате v1 этот селектор не возвращает ничего. Баланс находится под полем first-name заметки, к которому можно добраться, хэшируя pay-to-pubkey-hash, стоящий за адресом. Важны два варианта деривации, потому что coinbase-заметки блокируются иначе, чем обычные, а реальный баланс — это объединение обоих. getBalance выполняет эту работу и возвращает сумму, которую адрес действительно может потратить.
Публичные узлы незаметно устаревают. Три эндпоинта, измеренные в течение одной минуты 2026-08-25:
эндпоинт | высота | возраст состояния цепочки |
| 133598 | 157 s |
| 133598 | 214 s |
| 133226 | 50625 s, около 14 часов |
Ответ не содержит никаких сведений о том, какой из узлов ответил. Клиент опрашивает каждый эндпоинт из своего пула и отказывается читать через тот, который не проходит порог свежести, выбрасывая типизированную ошибку, называющую измеренные возраста. client.health() возвращает полную таблицу.
Ограничения
Только чтение. Для Nockchain не существует библиотеки подписи, поэтому отправка NOCK требует официального CLI nockchain-wallet. SDK сможет отправить транзакцию, которую CLI уже подготовил. Он не будет создавать или подписывать её.
Баланс — это текущее множество непотраченных заметок. Он показывает, что адрес может потратить на текущей вершине. Потраченная заметка покидает множество, поэтому итог не является записью о том, что адрес получал за всё время существования. Кроме того, ни одна отправка кошелька не содержит в сети memo или метку, поэтому корреляция платежей работает за счёт выдачи одного адреса на один счёт.
Вышестоящий GetTransactionDetails падает на транзакциях, созданных после обновления Logos. Узел отвечает ошибкой декодера вместо самой транзакции. getTransactionDetails перехватывает этот случай и возвращает { ok: false, reason: "upstream_decoder_bug", txId, fallback }, где fallback содержит факты включения, которые GetTransactionBlock и GetBlockDetails всё ещё могут установить, например, высоту блока и его метку времени.
Публичный API — это альфа без аутентификации. Никакого ключа получать не нужно, и никакого ограничения скорости, которое нужно было бы учитывать, нет. Эндпоинты переносятся and отстают без предупреждения.
Пакеты
пакет | содержимое |
клиент и деривация first-name заметок, от которой он зависит | |
stdio MCP-сервер, построенный на его основе |
Примеры
Примеры используют workspace-сборку, поэтому сначала соберите её один раз.
npm install
npm run build
node examples/balance.mjs 2s3K...
node examples/verify-payment.mjs 2s3K... 1.5Оба читают публичную сеть.
Разработка
npm install
npm run build
npm testТесты работают офлайн, на фикстурах, включая эталонные векторы, созданные из вышеперечисленных Rust-крейтов. В наборе тестов не открывается ни одного сокета.
Лицензия
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Provide AI agents and automation tools with contextual access to blockchain data including balance…
Read-only on-chain intel for AI agents on Base: balances, tokens, gas, tx status. No API keys.
Read-only on-chain intelligence for AI agents on Base: balances, tokens, gas, tx status.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/winter0x/nockchain-agent'
If you have feedback or need assistance with the MCP directory API, please join our Discord server