Nano Currency MCP Server
Servidor MCP de Nano Currency
Este servidor de Protocolo de Contexto de Modelo (MCP) brinda a los clientes compatibles con MCP (que incluyen algunos agentes de IA) la capacidad de enviar moneda Nano y recuperar información de cuentas y bloques a través del RPC del nodo Nano.
Los agentes de IA están adoptando cada vez más el estándar MCP, por lo que este servidor puede brindarles la capacidad de enviar Nano a pedido de su propietario o de forma autónoma en algunas configuraciones 🤖
❔ ¿Qué es MCP?
El Protocolo de Contexto de Modelo (MCP) es un marco abierto que define un enfoque estandarizado para que las aplicaciones entreguen contexto a los Modelos de Lenguaje Grandes (LLM).
Related MCP server: Nerve RPC MCP
❔ ¿Qué es la Nano Moneda?
Nano es una moneda digital diseñada para permitir transacciones rápidas, escalables y sin comisiones. Su objetivo es abordar problemas comunes de las criptomonedas tradicionales, como las altas comisiones y los tiempos de procesamiento lentos, convirtiéndola en una opción eficiente para los pagos entre pares (P2P) cotidianos. Más información en nano.org
🚨Antes de continuar🚨
Precaución: Los LLM pueden alucinar y no siempre funcionar como desea, así que pruebe este servidor con pequeñas cantidades de Nano.
🛠️ Herramientas proporcionadas por el servidor MCP
🔧 nano_send - Envía una cantidad específica de moneda Nano
🔧 nano_account_info : recupera información detallada sobre una cuenta/dirección Nano específica
🔧 nano_my_account_info - Recupera información detallada sobre su cuenta/dirección Nano predefinida
🔧 block_info - Recupera información detallada sobre un bloque Nano específico
Prerrequisitos
Asegúrese de tener Node.js con NPM instalado.
Configuración
git clone https://github.com/kilkelly/nano-currency-mcp-server.git
cd nano-currency-mcp-server
npm installNecesitará un cliente MCP para conectarse al servidor MCP (consulte la configuración de Claude Desktop más adelante como ejemplo de cliente MCP). Cada cliente tiene su propia forma de conectarse a los servidores MCP. Para el cliente elegido, deberá averiguar cómo se configuran las variables de entorno de un servidor MCP. Una vez que sepa cómo hacerlo, deberá configurar las siguientes variables de entorno para usar el servidor MCP de Nano Currency.
Variables de entorno
NANO_RPC_URL : URL que debe usarse para comunicarse con un nodo RPC de Nano. Puede ser un punto final local o remoto. Este valor de URL es obligatorio .
NANO_WORK_GENERATION_URL : URL que debe usarse para comunicarse con un endpoint compatible con el comando RPC work_generate para la generación de trabajos. Si no se especifica, el valor predeterminado es NANO_RPC_URL . Usado por la herramienta 🔧 nano_send
NANO_PRIVATE_KEY : Clave privada de Nano que se usará para firmar las transacciones de envío y obtener la dirección de Nano. Precaución: 🚨 NO ES LA SEMILLA DE LA BILLETERA 🚨. Pruebe con la clave privada de una cuenta con un saldo bajo de Nano. Usada por las herramientas 🔧 nano_send y 🔧 nano_my_account_info
NANO_MAX_SEND_AMOUNT : Cantidad máxima (en nano/unidades) que se puede enviar en una sola transacción. Por seguridad, la cantidad máxima de envío predeterminada es 0,01 nano (0,01). Debe configurar esta variable explícitamente para permitir el envío de cantidades mayores. Utilizada por las herramientas: 🔧 nano_send
Configuración del escritorio de Claude
1. Instale y ejecute Claude Desktop
2. Abra el menú Configuración

3. Haga clic en la pestaña Developer y luego en el botón Edit Config para abrir la ubicación del archivo de configuración de Claude claude_desktop_config.json

4. Abra claude_desktop_config.json en el editor de texto de su elección e ingrese lo siguiente, pero cambie los valores por su configuración única:
{
"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"
}
}
}
}Notas:
ENTER_FULL_FILE_PATH_TO_NODE_DOT_EXE_ON_YOUR_SYSTEM debe apuntar al ejecutable
node.exeen su instalación de Node.js, por ejemploC:\\Program Files\\nodejs\\node.exeINGRESAR_RUTA_COMPLETA_DEL_ARCHIVO_NANO_CURRENCY_JS_DESDE_ESTE_REPOSITORIO debe apuntar al archivo
nano-currency.jsen este repositorio, por ejemploC:\\projects\\nano-currency-mcp-server\\nano-currency.jsSi está usando Windows, debe usar barras invertidas dobles en las rutas de sus archivos, por ejemplo
C:\\Program Files\\nodejs\\node.exeENTER_YOUR_NANO_RPC_URL y ENTER_YOUR_NANO_WORK_GENERATION_URL suelen tener el mismo valor; en ese caso, omita la línea NANO_WORK_GENERATION_URL por completo. Un ejemplo de ENTER_YOUR_NANO_RPC_URL podría ser algo como
http://localhost:7076INGRESE SU CLAVE PRIVADA DE NANO: Esta NO ES UNA SEMILLA DE BILLETERA, sino la clave privada de una dirección de Nano que usted controla. Esta clave se utiliza para firmar transacciones de Nano y para obtener su dirección de Nano. Pruebe con una clave privada de una dirección que contenga una pequeña cantidad de Nano.
ENTER_A_NEW_MAX_SEND_AMOUNT es opcional, pero puede usarlo si desea anular el máximo de envío predeterminado, que es 0.01 nano (Ҿ0.01). Introduzca solo un valor numérico (sin "nano" ni "Ҿ"). Se recomienda no configurarlo o configurarlo por debajo del valor predeterminado durante las pruebas, ya que esto evitará enviar cantidades de nano mayores a las esperadas debido a posibles alucinaciones LLM.
5. Guarde los cambios en claude_desktop_config.json y reinicie Claude Desktop
6. Si has configurado todo correctamente verás el siguiente icono al iniciar Claude Desktop

Haga clic en el icono para obtener una descripción de las herramientas instaladas

7. Pruebe las herramientas indicando a Claude Desktop con indicaciones relacionadas con nano
https://github.com/user-attachments/assets/c877cc5a-0847-416c-b169-a988cac796f9
🚨 Descargo de responsabilidad 🚨
Como siempre al trabajar con valores reales, en este caso Nano, tenga cuidado al usar este software. Los autores y colaboradores no se responsabilizan del uso, intencional o no, de las funciones de este software que provoque una pérdida indeseada de fondos.
Licencia
Instituto Tecnológico de Massachusetts (MIT)
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