Nano Currency MCP Server
纳米货币 MCP 服务器
该模型上下文协议 (MCP) 服务器使 MCP 兼容客户端(包括一些 AI 代理)能够通过 Nano 节点 RPC 发送 Nano 货币并检索帐户和区块信息。
AI 代理越来越多地采用 MCP 标准,因此该服务器可以让他们能够根据其所有者的请求发送 Nano,或者在某些设置中自主发送 Nano 🤖
MCP是什么?
模型上下文协议 (MCP) 是一个开放框架,它为应用程序向大型语言模型 (LLM) 传递上下文定义了一种标准化方法。
Related MCP server: Nerve RPC MCP
❔什么是纳米货币?
Nano 是一种旨在实现快速、可扩展且无手续费交易的数字货币。它旨在解决传统加密货币常见的问题,例如手续费高、处理时间慢,使其成为日常点对点支付的高效选择。了解更多信息,请访问nano.org
🚨 继续之前 🚨
注意:LLM 可能会产生幻觉并且并不总是按照您想要的方式运行,因此请使用少量 Nano 测试该服务器。
🛠️ MCP 服务器提供的工具
🔧 nano_send - 发送指定数量的 Nano 货币
🔧 nano_account_info - 检索有关特定 Nano 帐户/地址的详细信息
🔧 nano_my_account_info - 检索有关您预定义的 Nano 帐户/地址的详细信息
🔧 block_info - 检索有关特定 Nano 块的详细信息
先决条件
确保您已安装带有 NPM 的Node.js。
设置
git clone https://github.com/kilkelly/nano-currency-mcp-server.git
cd nano-currency-mcp-server
npm install您需要一个 MCP 客户端来连接到 MCP 服务器(稍后将以 Claude Desktop 的设置为例介绍 MCP 客户端)。每个客户端都有其独特的连接 MCP 服务器的方式。对于您选择的客户端,您需要了解如何设置 MCP 服务器的环境变量。了解之后,您需要设置以下环境变量才能使用 Nano Currency MCP 服务器。
环境变量
NANO_RPC_URL - 用于与 Nano 节点 RPC 通信的 URL。该 URL 可以是本地或远程托管的端点。此 URL 值是必填项。
NANO_WORK_GENERATION_URL - 用于与支持work_generate RPC 命令的端点通信以生成工作任务的 URL。若未指定,则默认为NANO_RPC_URL 。由工具 🔧 nano_send使用。
NANO_PRIVATE_KEY - Nano 私钥,用于签署发送交易并生成 Nano 地址。注意:🚨并非钱包种子🚨。请使用持有少量 Nano 余额的账户私钥进行测试。工具 🔧 nano_send和 🔧 nano_my_account_info会用到它。
NANO_MAX_SEND_AMOUNT - 单笔交易可发送的最大金额(以 nano/Ӿ 为单位)。出于安全考虑,默认最大发送金额为 0.01 nano (Ӿ0.01)。您必须明确设置此变量才能授予发送更高金额的权限。工具使用:🔧 nano_send
Claude 桌面设置
1.安装并运行Claude Desktop
2.打开“设置”菜单

3. 单击Developer选项卡,然后Edit Config按钮打开 Claude 配置文件claude_desktop_config.json的位置

4. 在您选择的文本编辑器中打开claude_desktop_config.json并输入以下内容,但将值替换为您的唯一配置:
{
"mcpServers": {
"nano_currency": {
"command": "ENTER_FULL_FILE_PATH_TO_NODE_DOT_EXE_ON_YOUR_SYSTEM",
"args": [
"ENTER_FULL_FILE_PATH_TO_NANO_CURRENCY_JS_FILE_FROM_THIS_REPOSITORY"
],
"env": {
"NANO_RPC_URL": "ENTER_YOUR_NANO_RPC_URL",
"NANO_WORK_GENERATION_URL": "ENTER_YOUR_NANO_WORK_GENERATION_URL",
"NANO_PRIVATE_KEY": "ENTER_YOUR_NANO_PRIVATE_KEY",
"NANO_MAX_SEND_AMOUNT": "ENTER_A_NEW_MAX_SEND_AMOUNT"
}
}
}
}笔记:
ENTER_FULL_FILE_PATH_TO_NODE_DOT_EXE_ON_YOUR_SYSTEM 应该指向 Node.js 安装中的
node.exe可执行文件,例如C:\\Program Files\\nodejs\\node.exeENTER_FULL_FILE_PATH_TO_NANO_CURRENCY_JS_FILE_FROM_THIS_REPOSITORY 应该指向此存储库中的
nano-currency.js文件,例如C:\\projects\\nano-currency-mcp-server\\nano-currency.js如果您使用的是 Windows,则需要在文件路径中使用双反斜杠,例如
C:\\Program Files\\nodejs\\node.exeENTER_YOUR_NANO_RPC_URL 和 ENTER_YOUR_NANO_WORK_GENERATION_URL 通常可能为同一值,在这种情况下,只需完全省略 NANO_WORK_GENERATION_URL 行即可。例如,ENTER_YOUR_NANO_RPC_URL 可能类似于
http://localhost:7076输入您的 NANO_PRIVATE_KEY - 🚨这不是钱包种子🚨,而是您控制的 Nano 地址的私钥。此密钥用于签署 Nano 交易以及从中派生您的 Nano 地址。请使用包含少量 Nano 的地址的私钥进行测试。
ENTER_A_NEW_MAX_SEND_AMOUNT 是可选的,但如果您想覆盖默认的发送最大值 0.01 纳米 (Ӿ0.01),可以使用它。请仅输入数值(不带“nano”或“Ӿ”)。建议在测试时不要设置此选项或将其设置为低于默认值,因为这会阻止因 LLM 幻觉而发送超出预期的纳米量。
5. 保存对claude_desktop_config.json的更改并重新启动 Claude Desktop
6. 如果您已正确配置所有内容,则启动 Claude Desktop 时您将看到以下图标

单击图标可获取已安装工具的描述

7. 通过向 Claude Desktop 提示与纳米相关的提示来试用这些工具
https://github.com/user-attachments/assets/c877cc5a-0847-416c-b169-a988cac796f9
🚨免责声明🚨
与处理现实世界价值(此处指 Nano)时一样,使用此软件时务必谨慎。作者和贡献者对任何因有意或无意使用本软件功能而导致的资金损失概不负责。
执照
麻省理工学院
Available Tools
4 toolsblock_infoB
Retrieve detailed information about a specific Nano block.
| Name | Required | Description | Default |
|---|---|---|---|
| hash | Yes | Hash for the Nano block to get information about |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action is to 'Retrieve' information, implying a read-only operation, but doesn't clarify aspects like authentication needs, rate limits, error handling, or what 'detailed information' entails. This leaves significant gaps in understanding the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and appropriately sized, making it easy to parse and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (single parameter, no output schema, no annotations), the description is minimally adequate. However, it lacks details on return values or behavioral traits, which could be important for an AI agent to use it effectively, especially with no output schema to clarify results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the 'hash' parameter clearly documented. The description adds no additional meaning beyond the schema, such as format examples or constraints, so it meets the baseline for high schema coverage without compensating value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Retrieve' and the resource 'detailed information about a specific Nano block', making the purpose evident. However, it doesn't explicitly differentiate from sibling tools like 'nano_account_info' or 'nano_my_account_info', which likely retrieve different types of information, so it misses full sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as 'nano_account_info' or 'nano_send'. It lacks context about prerequisites, scenarios, or exclusions, leaving the agent with no usage direction beyond the basic purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nano_account_infoA
Retrieve detailed information about a specific Nano account/address, including balance (in Nano and raw units), representative, and frontier block.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Nano address/account to get information about |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions retrieval of information but doesn't disclose behavioral traits such as whether this is a read-only operation, potential rate limits, authentication needs, or error handling. For a tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the purpose and details without waste. Every part earns its place by specifying what is retrieved and the included data points.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 parameter, no output schema, no annotations), the description is adequate for basic use. However, it lacks completeness for more advanced needs, such as explaining return values or behavioral aspects, which could be important in a broader context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the parameter 'address' documented as 'Nano address/account to get information about.' The description adds minimal value beyond this, as it doesn't provide additional context like format examples or constraints. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Retrieve') and resource ('Nano account/address') with specific details about what information is returned ('balance, representative, and frontier block'). It distinguishes from sibling tools like 'block_info' (which retrieves block information) and 'nano_send' (which sends transactions).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by specifying 'specific Nano account/address,' suggesting it's for querying individual accounts. However, it doesn't explicitly state when to use this versus alternatives like 'nano_my_account_info' (which might retrieve info for a predefined account) or provide exclusions, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nano_my_account_infoA
Retrieve detailed information about my Nano account/address, including balance (in Nano and raw units), representative, and frontier block. This is the account that is used to send Nano from.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It clearly indicates this is a read-only operation ('retrieve'), but doesn't disclose behavioral traits like authentication requirements, rate limits, error conditions, or response format. The description adds some context about the account being used for sending Nano, but lacks comprehensive behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly concise with two sentences that each earn their place. The first sentence states the purpose and specific data returned, while the second provides important contextual clarification about which account is being referenced.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read tool with no annotations and no output schema, the description is adequate but has gaps. It explains what information will be retrieved but doesn't describe the response format, error conditions, or authentication requirements. Given the simplicity of the tool (0 params), it's minimally viable but could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so the baseline is 4. The description appropriately doesn't discuss parameters since none exist, focusing instead on what information will be retrieved about the account.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific verb 'retrieve' and resource 'detailed information about my Nano account/address', listing specific data fields (balance, representative, frontier block). It distinguishes from sibling tools by specifying 'my account' (vs. nano_account_info for general accounts) and clarifying this is the sending account.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool: to get information about the user's own Nano account. It distinguishes from nano_account_info (general accounts) and nano_send (sending transactions), though doesn't explicitly state when NOT to use it or mention block_info as an alternative for block-level data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nano_sendC
Send a specified amount of Nano currency from a predefined account to a destination Nano address.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Amount of Nano to send (max 0.05 by default) | |
| destination_address | Yes | Nano address to send the nano to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the action is a send (mutation) and mentions a default max amount (0.05), but lacks critical behavioral details: whether it requires specific permissions, if transactions are reversible, rate limits, error handling, or what the response contains. The 'predefined account' hint is vague about ownership or setup.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It front-loads the core action and includes key constraints (predefined account, destination address) without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what happens on success/failure, return values, or error conditions. The 'predefined account' is ambiguous, and behavioral risks (e.g., irreversible transactions) are unaddressed, leaving gaps for safe agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are fully documented in the schema. The description adds no additional meaning beyond implying the amount has a default max (0.05), which is already in the schema's description for 'amount'. No syntax or format details beyond the schema are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Send') and resource ('Nano currency'), specifying it's from a predefined account to a destination address. It distinguishes from siblings like 'block_info' or 'nano_account_info' which are read operations, but doesn't explicitly differentiate from potential send alternatives (none listed).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives is provided. The description mentions a 'predefined account' but doesn't clarify if this is the only sending method available or if there are prerequisites like authentication. Sibling tools are all read-only, so usage context is implied but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
v1.0.0- First observed
block_info - First observed
nano_account_info - First observed
nano_my_account_info - First observed
nano_send
TDQS
Scored across 4 tools
There is significant overlap between 'nano_account_info' and 'nano_my_account_info', as both retrieve account information with only the source differing (specific vs. predefined). This ambiguity could lead to misselection, especially since 'nano_my_account_info' is essentially a subset of 'nano_account_info' with a fixed account. The other tools are distinct, but this core overlap reduces clarity.
The naming follows a consistent snake_case pattern with 'nano_' prefix for most tools, making them readable and predictable. However, 'block_info' deviates by lacking the 'nano_' prefix, which slightly breaks the convention. Overall, the naming is mostly consistent with only minor deviations.
With 4 tools, the count is borderline thin for a currency server, as it covers only basic retrieval and sending. While it includes essential operations, it feels slightly under-scoped for a full Nano currency interface, lacking tools for transactions like receiving, history, or network status, which might be expected in this domain.
The tool set has significant gaps for a Nano currency server. It includes account info retrieval and sending, but misses critical operations such as receiving transactions, checking transaction history, monitoring network status, or managing multiple accounts. This incompleteness could cause agent failures when trying to perform common currency-related tasks beyond basic queries and transfers.
Maintenance
Related MCP Connectors
Persistent memory, knowledge graph, task management and more for AI agents via MCP.
- ManiloOAuthapp.manilo
Log, query, and edit expenses, budgets, and accounts in Manilo from any MCP-compatible AI assistant.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Tenzro Network MCP server: wallet, identity, payments, inference, staking, bridges, verification.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceMCP server for NANO cryptocurrency operations, enabling AI agents to generate wallets, send/receive transactions, check balances, and more via JSON-RPC.108 npm3MIT
- FlicenseNot gradedqualityDmaintenanceExposes Nerve blockchain JSON-RPC and REST APIs as MCP tools, enabling AI agents to receive, pay, swap, and query balances with local account management and no gas fees.1-
- AlicenseAqualityBmaintenanceSelf-custodied Nano wallet + x402 payment client and merchant server for AI agents, enabling micropayments, on-ledger settlement, and paid endpoints.6686 PyPI3MIT
- AlicenseBqualityAmaintenanceEnables AI agents to hold XNO and make feeless, instant per-API-call payments via the public rpc.nano.to node, including wallet management, paid tool execution, and a self-hostable x402 payment facilitator.7MIT