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)는 빠르고 확장 가능하며 수수료 없는 거래를 지원하도록 설계된 디지털 화폐입니다. 높은 수수료와 느린 처리 속도 등 기존 암호화폐의 일반적인 문제점을 해결하여 일상적인 P2P 결제에 효율적인 대안을 제시합니다. nano.org 에서 자세히 알아보세요.
🚨 진행하기 전에 🚨
주의: LLM은 환각을 보일 수 있으며 항상 원하는 대로 작동하지 않을 수 있으므로 소량의 Nano로 이 서버를 테스트하세요.
🛠️ MCP 서버에서 제공하는 도구
🔧 nano_send - 지정된 양의 나노 화폐를 보냅니다.
🔧 nano_account_info - 특정 Nano 계정/주소에 대한 자세한 정보를 검색합니다.
🔧 nano_my_account_info - 미리 정의된 Nano 계정/주소에 대한 자세한 정보를 검색합니다.
🔧 block_info - 특정 나노 블록에 대한 자세한 정보를 검색합니다.
필수 조건
NPM이 설치된 Node.js 가 있는지 확인하세요.
설정
지엑스피1
MCP 서버에 연결하려면 MCP 클라이언트가 필요합니다(나중에 MCP 클라이언트 예시로 Claude Desktop 설정을 참조하세요). 각 클라이언트는 MCP 서버에 연결하는 고유한 방법을 가지고 있습니다. 선택한 클라이언트의 MCP 서버 환경 변수 설정 방법을 알아야 합니다. 설정 방법을 알게 되면 Nano Currency MCP 서버를 사용하려면 다음 환경 변수를 설정해야 합니다.
환경 변수
NANO_RPC_URL - Nano 노드 RPC와 통신하는 데 사용할 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 - 단일 거래에서 전송할 수 있는 최대 금액(나노/ปุ 단위). 안전을 위해 기본 최대 전송 금액은 0.01나노(ปุ 0.01)입니다. 더 높은 금액을 전송할 수 있는 권한을 부여하려면 이 변수를 명시적으로 설정해야 합니다. 다음 도구에서 사용됩니다: 🔧 nano_send
클로드 데스크탑 설정
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.exe을 가리켜야 합니다.ENTER_FULL_FILE_PATH_TO_NANO_CURRENCY_JS_FILE_FROM_THIS_REPOSITORY는 이 저장소의
nano-currency.js파일을 가리켜야 합니다(예C:\\projects\\nano-currency-mcp-server\\nano-currency.jsWindows를 사용하는 경우 파일 경로에 이중 백슬래시를 사용해야 합니다(예
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과 같은 형식일 수 있습니다.ENTER_YOUR_NANO_PRIVATE_KEY - 이 키는 🚨 지갑 시드가 아닙니다 .🚨 사용자가 관리하는 Nano 주소의 개인 키 입니다. 이 키는 Nano 거래에 서명하고 Nano 주소를 생성할 때 사용됩니다. 소량의 Nano가 포함된 주소의 개인 키로 테스트해 보세요.
ENTER_A_NEW_MAX_SEND_AMOUNT는 선택 사항이지만, 기본 전송 최대값인 0.01나노(0.01)를 재정의하려는 경우 사용할 수 있습니다. 숫자 값만 입력하세요("나노" 또는 "0.01"). 테스트 시에는 이 값을 설정하지 않거나 기본값보다 낮게 설정하는 것이 좋습니다. LLM 환각으로 인해 예상보다 많은 양의 나노가 전송되는 것을 방지할 수 있기 때문입니다.
5. claude_desktop_config.json 에 대한 변경 사항을 저장하고 Claude Desktop을 다시 시작합니다.
6. 모든 것을 올바르게 구성했다면 Claude Desktop을 시작할 때 다음 아이콘이 표시됩니다.

아이콘을 클릭하면 설치된 도구에 대한 설명을 볼 수 있습니다.

7. Claude Desktop에 nano 관련 프롬프트를 표시하여 도구를 사용해 보세요.
https://github.com/user-attachments/assets/c877cc5a-0847-416c-b169-a988cac796f9
🚨 면책 조항 🚨
실제 가치(이 경우 Nano)를 다룰 때는 항상 그렇듯이 이 소프트웨어를 사용할 때 주의하십시오 . 저자와 기여자는 의도적이든 의도치 않든 이 소프트웨어의 기능을 사용하여 원치 않는 자금 손실을 초래하는 경우 책임을 지지 않습니다.
특허
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