Skip to main content
Glama

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 build

Configuration

Add to Claude Code

# Add the MCP server to Claude Code
claude mcp add rustchain node /path/to/rustchain-mcp-server/dist/index.js

Or 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 entries

Node Configuration

The server uses the following node priority:

  1. Primary: https://50.28.86.131

  2. Fallback 1: https://rustchain.org

  3. Fallback 2: https://node2.rustchain.org

If the primary node is unavailable, the server automatically tries fallback nodes.

API Endpoints Used

Tool

Endpoint

rustchain_balance

GET /wallet/balance?miner_id={address}

rustchain_miners

GET /miners?limit={n}

rustchain_epoch

GET /epoch/current

rustchain_health

GET /health

rustchain_transfer

POST /wallet/transfer

rustchain_ledger

GET /ledger?limit={n}

Security Notes

  • Private Keys: The rustchain_transfer tool 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 start

Bounty Information

This project was built for RustChain Bounty #1152:

License

MIT

Author

Async777

  • Wallet: RTCc29259460d01e6aca70b16f044852dddd0369c0d

Available Tools

7 tools
rustchain_balanceB

Get the RTC balance of a wallet address or miner_id

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesWallet address (RTCxxxx... format) or miner_id

TDQS

B3.3/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 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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter by status: open, closed, all (default: open)

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 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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/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 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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3/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 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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of transactions to fetch (default: 10)

TDQS

C2.9/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 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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of miners to return (default: 10)

TDQS

C2.9/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 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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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)

ParametersJSON Schema
NameRequiredDescriptionDefault
memoNoOptional memo for the transfer
amountYesAmount of RTC to transfer
to_addressYesRecipient address (RTCxxxx... format)
from_private_keyYesSender's private key

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 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

  1. 7 tool updatesv1.0.0
    • First observedrustchain_balance
    • First observedrustchain_bounties
    • First observedrustchain_epoch
    • First observedrustchain_health
    • First observedrustchain_ledger
    • First observedrustchain_miners
    • First observedrustchain_transfer

TDQS

A3.5/5.0

Scored across 7 tools

Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

Seven tools are well-scoped for a blockchain network server, covering core queries plus transfer without obvious redundancy. Each tool earns its place.

Completeness4/5

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

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to interact with the RustChain blockchain, including checking node health, querying wallet balances, listing miners, retrieving epoch information, and browsing open bounties.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables querying and interacting with the RustChain blockchain from Claude Code or any MCP-compatible client, including balance checks, miners, epoch info, health, and transfers.
    -