Skip to main content
Glama
kilkelly

Nano Currency MCP Server

by kilkelly

ナノ通貨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値は必須です。

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 - 1回のトランザクションで送信できる最大金額(ナノ/Ҿ単位)。安全のため、デフォルトの最大送信金額は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.js

  • Windows を使用している場合は、ファイル パスに二重のバックスラッシュを使用する必要があります (例C:\\Program Files\\nodejs\\node.exe

  • ENTER_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) を上書きしたい場合に使用できます。数値のみを入力してください (「nano」または「Ҿ」は不要です)。テスト時には、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)を扱う際は、常に注意してこのソフトウェアを使用してください。作者および貢献者は、意図的か否かを問わず、このソフトウェアの機能の使用によって望ましくない資金の損失が発生した場合でも、一切責任を負いません。

ライセンス

マサチューセッツ工科大学

Available Tools

4 tools
block_infoB

Retrieve detailed information about a specific Nano block.

ParametersJSON Schema
NameRequiredDescriptionDefault
hashYesHash for the Nano block to get information about

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesNano address/account to get information about

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesAmount of Nano to send (max 0.05 by default)
destination_addressYesNano address to send the nano to

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

  1. 4 tool updatesv1.0.0
    • First observedblock_info
    • First observednano_account_info
    • First observednano_my_account_info
    • First observednano_send

TDQS

B3.1/5.0

Scored across 4 tools

Disambiguation2/5

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.

Naming Consistency4/5

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.

Tool Count3/5

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.

Completeness2/5

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

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    MCP server for NANO cryptocurrency operations, enabling AI agents to generate wallets, send/receive transactions, check balances, and more via JSON-RPC.
    108 npm
    3
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Exposes 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
    -
  • A
    license
    B
    quality
    A
    maintenance
    Enables 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.
    7
    MIT