crypto-node-interface-mcp
Facilitate secure management and operational querying of remote cryptocurrency daemon software via Remote Procedure Call (RPC) endpoints, empowering AI agents with transactional capabilities and data retrieval functions.
Author

raw391
Quick Info
Actions
Tags
Digital Asset Daemon Management Protocol Server (EXPERIMENTAL)
This Model Context Protocol (MCP) service acts as an abstraction layer for interfacing with various cryptocurrency node RPC endpoints. It furnishes AI systems with controlled access for executing crucial node operations, monitoring network health, and facilitating asset transfers.
⚠️ CRITICAL SECURITY ADVISORY ⚠️
Granting an autonomous system access to cryptocurrency daemons carries inherent risks. Scrutinize the following disclosures before deployment:
- AI operational privileges granted by this service include the capacity to:
- Initiate outgoing transfers of digital assets
- Query sensitive wallet metadata
- Adjust node or wallet configuration parameters
- Access confidential operational details
-
Execute arbitrary daemon-level instructions
-
Identified exposure vectors:
- Irreversible financial loss due to unauthorized asset dispersal
- Compromise of private keys or wallet seeds
- Unintended or malicious alteration of daemon state
-
Exploitation via configuration flaws
-
Mandatory protective countermeasures:
- Dedicate a low-value, segregated wallet exclusively for AI command execution.
- Strictly prohibit linkage to primary or high-value asset holdings.
- Enforce granular, principle-of-least-privilege RPC authorization policies.
- Establish robust, continuous logging and auditing of all AI-originated daemon interactions.
- Conduct periodic security posture reviews of the configuration setup.
- Maintain verifiable, offline backups of critical data structures.
This software is classified as EXPERIMENTAL (BETA). Operation is strictly at the user's sole liability.
Deployment Procedures
Automated Setup via Smithery
For seamless installation into the Claude Desktop environment using Smithery:
bash npx -y @smithery/cli install @raw391/coin_daemon_mcp --client claude
1. Local Package Installation
Install the requisite package using the Node Package Manager:
bash npm install @raw391/coin-daemon-mcp
2. Claude Desktop Configuration Adjustment
Modification of the Claude Desktop settings file is necessary to integrate this service. Locate the configuration file at:
- Windows OS: %APPDATA%\Claude\claude_desktop_config.json
- macOS OS: ~/Library/Application Support/Claude/claude_desktop_config.json
Append the following structure to your configuration object:
{ "mcpServers": { "cryptocurrency": { "command": "npx", "args": [ "-y", "@raw391/coin-daemon-mcp" ], "env": { "CONFIG_PATH": "path/to/your/config.json" } } } }
3. Daemon Configuration File Generation
Define the connection parameters for your target cryptocurrency nodes in a configuration file. Examples are provided below:
Single Node Definition Example
{ "daemons": [ { "coinName": "zcash", "nickname": "zec-main", "rpcEndpoint": "127.0.0.1:8232", "rpcUser": "your-rpc-user", "rpcPassword": "your-rpc-password" } ] }
Multi-Node Specification Example
{ "daemons": [ { "coinName": "zcash", "nickname": "zec-main", "rpcEndpoint": "127.0.0.1:8232", "rpcUser": "zec-user", "rpcPassword": "zec-password" }, { "coinName": "bitcoin", "nickname": "btc-main", "rpcEndpoint": "127.0.0.1:8332", "rpcUser": "btc-user", "rpcPassword": "btc-password" } ] }
Integrated Security Setup (With Filesystem MCP)
For enhanced operational segregation, consider coupling this service with a local filesystem MCP:
{ "mcpServers": { "cryptocurrency": { "command": "npx", "args": [ "-y", "@raw391/coin-daemon-mcp" ], "env": { "CONFIG_PATH": "C:/CryptoConfig/daemon-config.json" } }, "filesystem": { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-filesystem", "C:/CryptoData" ] } } }
4. Daemon Configuration Validation
Ensure the corresponding cryptocurrency daemon's primary configuration file (e.g., zcash.conf or bitcoin.conf) contains the necessary RPC directives:
ini server=1 rpcuser=your-rpc-user rpcpassword=your-rpc-password rpcallowip=127.0.0.1
5. Initializing MCP Utilization
After applying the configuration changes, restart the Claude Desktop application. New functionalities will become accessible, including the ability to: - Dispatch asset transfers - Query account valuations - Manage wallet states - Retrieve real-time daemon operational metrics - Access educational material regarding supported digital currencies - And numerous other capabilities
Service Capabilities Overview
This server exposes functionality across three primary MCP domains:
Executable Tools
- Asset Transfer Mechanisms
send-coins: Executes standard, transparent cryptocurrency transfers.zsend-coins: Facilitates shielded (private) asset transmissions where supported.-
shield-coins: Initiates the conversion of non-private funds into shielded format. -
Wallet Query and Control
get-balance: Retrieves current asset holdings.-
execute-command: Allows execution of any whitelisted RPC method. -
Node Health Monitoring
check-status: Reports the operational synchronization status of the daemon.
Accessible Data Resources
Access to contextual data and support documentation:
- Reference Material
crypto://{coinType}/help: Provides detailed, coin-specific documentation.-
daemon://{name}/help: Offers command-specific assistance for a named daemon instance. -
Transaction Log
daemon://{name}/transactions: Fetches a record of recent on-chain activities.
Workflow Prompts
Templates designed to streamline common operational sequences:
- Transfer Assistance
-
send-transaction-template: Guides the user through the necessary steps to compose a transfer instruction. -
Diagnostic and Reporting Templates
balance-analysis: Generates summaries and insights on fund distribution.daemon-diagnostic: Executes a standardized system health assessment of the node.
Security Protocols
- Asset Segregation
- Mandate creation of isolated wallets dedicated solely to automated system interaction.
- Maintain minimal capital exposure in these active wallets.
-
Prioritize development and testing exclusively on non-mainnet environments.
-
RPC Endpoint Hardening
- Utilize cryptographically strong, non-reusable credentials for RPC access.
- Restrict the list of permissible RPC calls to only those strictly necessary.
- Configure the RPC server to only accept inbound connections originating from the local host interface.
-
Implement continuous monitoring of all RPC access logs for anomalies.
-
Data Integrity Maintenance
- Implement a rigorous, scheduled wallet backup regimen.
- Ensure configuration files (containing sensitive parameters) are stored in secure, access-restricted locations.
- Actively track and verify all outbound transaction events.
- Schedule and execute frequent security evaluations of the entire setup.
Operational Examples
Illustrative scenarios for AI-assisted daemon interaction:
-
System Check: "Ascertain the synchronization status for the Zcash node."
-
Financial Overview: "Provide a consolidated accounting of funds across all configured addresses."
-
Knowledge Retrieval: "Elucidate the technical mechanism underpinning Zcash's private transactions."
-
Transaction Execution: "Please assist in composing an instruction to remit 0.1 ZEC to the destination address xxx."
Troubleshooting Guide
- Connectivity Failures
- Confirm the target daemon process is actively running.
- Double-check RPC username and password against the configuration.
- Validate that the specified network port is correct and open.
-
Verify that loopback interface access is permitted.
-
Authorization Errors
- Review file system permissions for the configuration directories.
- Confirm the RPC user possesses the requisite operational rights.
-
Validate that the
CONFIG_PATHenvironment variable points to the correct file. -
Transaction Failures
- Check for adequate unspent transaction output (UTXO) or available balance.
- Assess network reachability to peers.
- Ensure the local daemon has achieved full blockchain synchronization.
Support Channels
- Issues Tracker: For bug reports and feature suggestions on GitHub.
- Community Forum: For general inquiries and peer-to-peer assistance.
- Security Reports: Direct confidential security vulnerability disclosures via email to security@pooly.ca.
Licensing
This module is distributed under the MIT License, subject to an additional operational disclaimer regarding cryptocurrency activities. Full legal text is available in the [LICENSE] file.
Contribution Guidelines
Refer to [CONTRIBUTING.md] for the requisite protocols for submitting modifications or enhancements.
WIKIPEDIA: XMLHttpRequest (XHR) is an API in the form of a JavaScript object whose methods transmit HTTP requests from a web browser to a web server. The methods allow a browser-based application to send requests to the server after page loading is complete, and receive information back. XMLHttpRequest is a component of Ajax programming. Prior to Ajax, hyperlinks and form submissions were the primary mechanisms for interacting with the server, often replacing the current page with another one.
== History == The concept behind XMLHttpRequest was conceived in 2000 by the developers of Microsoft Outlook. The concept was then implemented within the Internet Explorer 5 browser (1999). However, the original syntax did not use the XMLHttpRequest identifier. Instead, the developers used the identifiers ActiveXObject("Msxml2.XMLHTTP") and ActiveXObject("Microsoft.XMLHTTP"). As of Internet Explorer 7 (2006), all browsers support the XMLHttpRequest identifier. The XMLHttpRequest identifier is now the de facto standard in all the major browsers, including Mozilla's Gecko layout engine (2002), Safari 1.2 (2004) and Opera 8.0 (2005).
=== Standards === The World Wide Web Consortium (W3C) published a Working Draft specification for the XMLHttpRequest object on April 5, 2006. On February 25, 2008, the W3C published the Working Draft Level 2 specification. Level 2 added methods to monitor event progress, allow cross-site requests, and handle byte streams. At the end of 2011, the Level 2 specification was absorbed into the original specification. At the end of 2012, the WHATWG took over development and maintains a living document using Web IDL.
== Usage == Generally, sending a request with XMLHttpRequest has several programming steps.
Create an XMLHttpRequest object by calling a constructor: Call the "open" method to specify the request type, identify the relevant resource, and select synchronous or asynchronous operation: For an asynchronous request, set a listener that will be notified when the request's state changes: Initiate the request by calling the "send" method: Respond to state changes in the event listener. If the server sends response data, by default it is captured in the "responseText" property. When the object stops processing the response, it changes to state 4, the "done" state. Aside from these general steps, XMLHttpRequest has many options to control how the request is sent and how the response is processed. Custom header fields can be added to the request to indicate how the server should fulfill it, and data can be uploaded to the server by providing it in the "send" call. The response can be parsed from the JSON format into a readily usable JavaScript object, or processed gradually as it arrives rather than waiting for the entire text. The request can be aborted prematurely or set to fail if not completed in a specified amount of time.
== Cross-domain requests ==
In the early development of the World Wide Web, it was found possible to brea

