RustChain MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@RustChain MCP Serverview recent transactions"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
RustChain MCP Server
An MCP (Model Context Protocol) server for RustChain that allows Claude Code and other MCP-capable clients to query the blockchain and perform core actions directly from the terminal.
Features
Required Tools (Implemented)
✅
rustchain_balance- Get RTC balance of any address✅
rustchain_miners- List active miners on the network✅
rustchain_epoch- Get current epoch information✅
rustchain_health- Check health status of all nodes✅
rustchain_transfer- Transfer RTC (requires private key)
Bonus Tools (Implemented)
✅
rustchain_ledger- View recent transactions✅
rustchain_bounties- Get open bounty information
Related MCP server: rustchain-mcp-server
Installation
Prerequisites
Node.js 18+
npm or yarn
Install from Source
# Clone the repository
git clone https://github.com/Async777/rustchain-mcp-server.git
cd rustchain-mcp-server
# Install dependencies
npm install
# Build the project
npm run buildConfiguration
Add to Claude Code
# Add the MCP server to Claude Code
claude mcp add rustchain node /path/to/rustchain-mcp-server/dist/index.jsOr manually edit your Claude Code configuration:
{
"mcpServers": {
"rustchain": {
"command": "node",
"args": ["/path/to/rustchain-mcp-server/dist/index.js"]
}
}
}Usage Examples
Once configured, you can use these tools in Claude Code:
# Check your balance
What is my RTC balance for address RTCc29259460d01e6aca70b16f044852dddd0369c0d?
# List miners
Show me the top 5 miners on RustChain
# Check network health
Is the RustChain network healthy?
# Get epoch info
What is the current epoch?
# View recent transactions
Show me the last 10 ledger entriesNode Configuration
The server uses the following node priority:
Primary:
https://50.28.86.131Fallback 1:
https://rustchain.orgFallback 2:
https://node2.rustchain.org
If the primary node is unavailable, the server automatically tries fallback nodes.
API Endpoints Used
Tool | Endpoint |
rustchain_balance |
|
rustchain_miners |
|
rustchain_epoch |
|
rustchain_health |
|
rustchain_transfer |
|
rustchain_ledger |
|
Security Notes
Private Keys: The
rustchain_transfertool requires your private key. Only use this in secure environments.Node Verification: The server validates node health before performing sensitive operations.
Fallback Protection: If all nodes are unreachable, operations fail gracefully with clear error messages.
Development
# Run in development mode (auto-rebuild)
npm run dev
# Build for production
npm run build
# Start the server
npm startBounty Information
This project was built for RustChain Bounty #1152:
Bounty: 75-100 RTC
Scope: MCP Server for RustChain
Repository: https://github.com/Scottcjn/rustchain-bounties/issues/1152
License
MIT
Author
Async777
Wallet: RTCc29259460d01e6aca70b16f044852dddd0369c0d
Available Tools
7 toolsrustchain_balanceB
Get the RTC balance of a wallet address or miner_id
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Wallet address (RTCxxxx... format) or miner_id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden and discloses almost nothing: no authentication requirements, no indication of whether a miner_id is resolved live or cached, no error behavior for a malformed or nonexistent address, and no note on the returned value's units. The only added behavior is that both an address and a miner_id are valid inputs.
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?
A single front-loaded sentence with no filler, stating the verb, resource, and accepted identifier types. Nothing can be trimmed without losing information.
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 one-parameter read tool with no output schema, the description is minimally sufficient, but it omits the return shape (numeric RTC amount and any decimals/units) and how it relates to the sibling ledger tool that may also expose balance data.
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 the parameter is already fully documented in the schema, and the description merely restates the same 'address or miner_id' duality without adding format, resolution, or fallback semantics. 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 names a specific verb and resource ('Get the RTC balance') plus the accepted subject ('wallet address or miner_id'), so an agent immediately knows what it returns. It does not explicitly distinguish itself from the sibling rustchain_ledger, which could plausibly also report balances, so it falls short of a 5.
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?
Usage is implied by the name and by the accepted identifiers, but there is no explicit when-to-use guidance, no statement of when this is preferred over rustchain_ledger or rustchain_miners, and no note about what to do if the address is unknown.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rustchain_bountiesC
Get open bounty information from RustChain
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by status: open, closed, all (default: open) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. 'Get' implies a read-only fetch, but nothing is said about authentication, pagination, rate limits, or the shape of returned bounty data, which are material for an agent deciding how to call it.
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?
A single front-loaded sentence with no filler, which is appropriately tight for a one-parameter lookup tool. It is terse to the point of under-specification, but nothing in it is wasted.
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 simple one-optional-parameter read tool with full schema coverage and no output schema, the description is minimally adequate. It leaves the open/closed/all flexibility implied by the schema unexplained and offers no behavioral context, so it is viable but thin.
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 the status parameter and its open/closed/all semantics are already fully documented in the schema. The description adds no syntax or default details beyond what the schema provides, so the baseline of 3 applies.
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?
States a clear verb (Get) and resource (bounty information) scoped to RustChain, which distinguishes it from siblings like rustchain_balance, rustchain_miners, and rustchain_ledger. The only blemish is that it says 'open' while the schema exposes closed/all filters, so the stated scope is narrower than the tool's actual capability.
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?
There is no when-to-use, when-not-to-use, or alternative routing guidance. The description gives no condition that would tell an agent to prefer this over rustchain_ledger or rustchain_health; usage is only implied by the word 'bounty'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rustchain_epochB
Get current epoch information
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 communicates only that this is a read, without disclosing auth requirements, rate limits, caching behavior, or what 'epoch' means in this system and what the response contains.
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?
A single short sentence with no filler, and the core verb-resource pair is front-loaded. It is efficient but arguably too thin given the absence of supporting fields.
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 simple no-parameter read tool this is minimally adequate, but with no annotations and no output schema the description should at least hint at what epoch information is returned. It leaves that entirely unspecified.
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 zero parameters, so there is nothing for the description to clarify beyond the schema. Baseline of 4 applies for a no-parameter tool.
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?
States a specific verb ('Get') and resource ('current epoch information'), so the agent knows this is a read of epoch state. It does not, however, differentiate itself from sibling read tools such as rustchain_health or rustchain_ledger, so it falls short of a 5.
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?
There is no statement of when to use this tool versus rustchain_health or rustchain_ledger, and no exclusions or prerequisites. Usage is only implied by the verb 'Get'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rustchain_healthB
Check the health status of RustChain nodes
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 does not state whether this is a read-only operation, what it returns, or how 'health' is determined. For a monitoring tool with zero annotation coverage, this is a notable gap.
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?
A single, efficient sentence that front-loads the verb and resource. No waste, though it is perhaps too terse to be fully helpful.
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?
With no annotations, no output schema, and no parameter details, the description should do more to explain what 'health' means, what the return looks like, and any behavioral constraints. It is under-specified for even a simple monitoring tool.
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?
Zero parameters, so baseline is 4. There are no parameter semantics to clarify; the description appropriately does not invent any.
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?
States a specific verb (Check) and resource (health status of RustChain nodes). It is reasonably distinguishable from siblings like rustchain_balance or rustchain_miners, though it does not explicitly name them.
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 call this tool versus others, no mention of prerequisites, rate limits, or what 'health' entails. Usage is only implied by the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rustchain_ledgerC
Get recent ledger transactions
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of transactions to fetch (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden and delivers almost nothing: it does not state that this is a read-only operation, what 'recent' means (ordering, window, cursor), how pagination works, or whether results are address-scoped or global. An agent cannot predict the result set from this text.
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?
A single compact sentence with no filler and the resource front-loaded. It is efficient, though its brevity is partly under-specification rather than genuine concision.
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 tool with no annotations and no output schema, the description should explain ordering, scope, and return shape, but it does none of these. The agent is left guessing what a 'transaction' record contains and whether the list is global or tied to a specific account.
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?
There is a single optional 'limit' parameter with 100% schema description coverage, including its default of 10. The description adds no meaning beyond the schema, so the baseline 3 applies.
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?
States a specific verb ('Get') and resource ('ledger transactions') with a scope qualifier ('recent'). It is clear what the tool returns, but it does nothing to distinguish itself from siblings like rustchain_transfer or rustchain_balance, which an agent might also consult for ledger-related data.
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 gives no guidance on when to use this over rustchain_transfer, rustchain_balance, or rustchain_epoch. There is no stated condition, no alternative named, and no mention of prerequisites such as authentication or address filtering.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rustchain_minersC
Get list of active miners on the network
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of miners to return (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It only conveys that the list is scoped to 'active' miners; it says nothing about ordering, pagination beyond the limit param, or auth requirements. For a read-only list tool this is thin but not misleading.
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?
A single front-loaded sentence with zero filler. Appropriately sized for the tool's simplicity, though it is so brief that it omits useful detail.
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 simple list tool with one optional param, no annotations, and no output schema, the description is minimally viable. It omits what a miner record contains and whether results are ordered or capped, which an agent would benefit from knowing.
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% and the single optional 'limit' parameter is fully documented in the schema (including its default of 10). The description adds no meaning beyond that, so the baseline 3 applies.
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?
States a specific verb ('Get list of') and resource ('active miners on the network'), which is clearly distinct from the balance/epoch/health/transfer/ledger/bounties siblings. It doesn't explicitly name a sibling for differentiation, but the resource is unambiguous enough that an agent can place it.
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?
There is no guidance on when to use this versus the other rustchain_* tools, no prerequisites, and no exclusions. The statement is purely descriptive of what it returns.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rustchain_transferC
Transfer RTC to another address (requires private key)
| Name | Required | Description | Default |
|---|---|---|---|
| memo | No | Optional memo for the transfer | |
| amount | Yes | Amount of RTC to transfer | |
| to_address | Yes | Recipient address (RTCxxxx... format) | |
| from_private_key | Yes | Sender's private key |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden for a destructive financial operation. It notes the private-key requirement, but says nothing about irreversibility, fees, confirmation prompts, or what happens if the transfer fails or the key is invalid.
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?
A single front-loaded sentence with no filler; the core action and its key constraint are both stated immediately.
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 value-transfer operation with no annotations and no output schema, the description is materially incomplete: it omits irreversibility, fee/amount-units semantics, and any indication of the success/failure response an agent should expect.
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 all four parameters are already documented in the schema, making 3 the baseline. The description's "requires private key" merely restates what the schema's required field already conveys, adding no new semantic detail such as amount precision or address validation.
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 states a concrete verb and resource ("Transfer RTC to another address") and is unambiguous about what the tool does. It is the only mutation tool among siblings that are all read-style (balance, miners, epoch, health, ledger, bounties), so it stands apart, though the description never explicitly differentiates itself.
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?
There is no guidance on when to use this versus alternatives, no prerequisites beyond the parenthetical private-key note, and no mention of failure handling or confirmation steps. Usage is only implied by the verb itself.
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.
7 tool updates
v1.0.0- First observed
rustchain_balance - First observed
rustchain_bounties - First observed
rustchain_epoch - First observed
rustchain_health - First observed
rustchain_ledger - First observed
rustchain_miners - First observed
rustchain_transfer
TDQS
Scored across 7 tools
Each tool targets a distinct resource or action: balance, miners, epoch, health, transfer, ledger, bounties. Boundaries are clear, with no overlapping purposes that would cause misselection.
All tools use the same rustchain_ prefix and snake_case naming, mostly noun-based resources with one action verb. The pattern is predictable and consistent.
Seven tools are well-scoped for a blockchain network server, covering core queries plus transfer without obvious redundancy. Each tool earns its place.
Core read operations (balance, miners, epoch, health, ledger, bounties) and transfer are covered, but transaction detail and bounty lifecycle actions (claim/create) are missing. These are minor gaps an agent can work around.
Maintenance
Related MCP Connectors
Read-only MCP server for The Quiet Protocol's engines, benchmarks, proof, and business data.
Hosted MCP server for live Bittensor chain reads and self-custodial on-chain writes.
Public read-only MCP server for HODLXXI agent identity, trust, receipts, and verification.
Tenzro Network MCP server: wallet, identity, payments, inference, staking, bridges, verification.
Related MCP Servers
- AlicenseAqualityAmaintenanceRead-only MCP server for querying DERO blockchain — blocks, smart contracts, transactions, network info. Privacy-first, runs locally.3390 npm2MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to interact with the RustChain blockchain, including checking node health, querying wallet balances, listing miners, retrieving epoch information, and browsing open bounties.-
- FlicenseNot gradedqualityDmaintenanceEnables querying and interacting with the RustChain blockchain from Claude Code or any MCP-compatible client, including balance checks, miners, epoch info, health, and transfers.-

robinscan-mcpofficial
AlicenseNot gradedqualityBmaintenanceMCP server for querying Robinhood Chain blockchain data, including network stats, transactions, token transfers, and stock prices.MIT