rootstock-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ROOTSTOCK_RPC_BASE | No | Custom RPC endpoint for Base (chain 8453), e.g. an archive gateway for deep block ranges. | |
| ROOTSTOCK_SIGNER_KEY | No | Signer key that, together with ROOTSTOCK_EXECUTE_CHAINS, opts into guarded execution mode (EIP-1559 signing). The key is never included in any output. When unset, the server runs read-only. | |
| ROOTSTOCK_EXECUTE_KILL | No | Kill switch for execution mode; set to 1 to absolutely disable execution. | |
| ROOTSTOCK_EXECUTE_CHAINS | No | Chain allowlist that, together with ROOTSTOCK_SIGNER_KEY, opts into guarded execution mode. | |
| ROOTSTOCK_RPC_BASE_SEPOLIA | No | Custom RPC endpoint for Base Sepolia (chain 84532). |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
| resources | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| accounts.balancesA | Read up to 32 explicitly provided token balances at one pinned chain block (no automatic portfolio discovery). |
| accounts.eligibilityC | Check on-chain balances against explicitly configured Orchard root/LP rules; not an access grant. |
| accounts.positionsB | Read wallet balance of explicitly named ERC20 or LP token, not full portfolio. |
| analytics.rankingsB | Rank pools by observed indexed swap count, not wallet ELO or APY. |
| analytics.turnoverC | Report turnover only with known, matching volume and TVL denominator. |
| analytics.tvlC | Explain TVL availability based on verified price/reserve inputs; never fabricate USD estimates. |
| analytics.volume_feesC | Aggregate available indexed swap input and fee amounts in raw token units; never presume complete coverage. |
| assets.lookupB | Read explicit ERC20 contract metadata directly from chain. |
| assets.wrapper_underlyingB | Probe ERC4626 asset() directly; unsupported wrappers remain unknown. |
| capabilities.listB | List the implemented read-only capabilities and their schemas. |
| history.eventsC | Query locally indexed Vault swap, pool and liquidity events. |
| history.statusC | Describe event-index checkpoints and local data coverage. |
| observations.statusC | Report which indexed observations exist and which analytics are missing. |
| policy.evaluateC | Fail-closed policy demonstration: reads allowed, writes denied; not signer authorization. |
| pools.inspectC | Read actual pool token addresses via Rootstock Vault; no guessed reserve/TVL. |
| pools.listB | Read Vault PoolRegistered events for an explicitly bounded inclusive block window, with block provenance. |
| pools.observeB | Read pool onchain data plus local indexed registration evidence. |
| quotes.swapD | Return explicit routing prerequisites; quote unavailable without audited Rootstock SOR. |
| registry.abi_catalogA | Return reviewed partial read-only ABI signatures and verified Vault event topics; not a full exact build ABI. |
| registry.abi_selectorC | Return an exact selector for a reviewed read ABI function, not a deploy/transaction authorization. |
| registry.list_contractsC | List Rootstock registry deployments, preserving task identity and deprecated records. |
| registry.list_networksA | List Rootstock network identities and available local source provenance. |
| registry.resolve_deploymentB | Resolve a Rootstock deployment against a pinned canonical local registry; ambiguous names require task. |
| registry.verify_contractB | Check pinned Rootstock contract code exists on the selected chain; not a bytecode audit. |
| rpc.get_healthB | Read the configured Base RPC chain ID, latest block and hash. |
| skills.listA | List bundled Rootstock and Orchard agent skills; no third-party skill installation. |
| skills.readA | Read one bundled SKILL.md by its exact, validated skill name. |
| topology.exploreC | Construct token-pool graph from indexed pools and RPC token lists, labeling missing tokens. |
| topology.rootedC | Provisional rooted Branch/Graft/Whorl classification from observed pools and configured root; not canonical Orchard ranks. |
| transactions.approve_routerB | ERC20 approve whose spender must be an allowlisted Rootstock router. Arbitrary spenders refused. Sim-first, policy-gated. |
| transactions.call_routerC | Broadcast a raw contract call to an allowlisted Rootstock router only. Arbitrary targets refused. Sim-first, policy-gated. |
| transactions.prepareB | Return an unsigned policy-unapproved transaction envelope, only for pinned Rootstock targets. |
| transactions.sendB | Sign and broadcast an ETH value transfer through the policy-gated executor (env signer key, chain+value caps, simulation-first). Caps are structural; no bypass. |
| transactions.simulateB | Explicit eth_call on a pinned Rootstock target; no signing or policy approval. |
| transactions.statusB | Read transaction receipt and unverified finality from RPC. |
| watch.cursorB | Query indexed Vault events after a specific block and log index, preserving intra-block updates. |
| watch.pollB | Check locally indexed events newer than a given block; caller schedules repeated polls. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Implemented read-only capabilities | |
| orchard-data-integrity | |
| orchard-eligibility-rules | |
| orchard-market-observations | |
| orchard-topology-operations | |
| orchard-valuation-provenance | |
| rootstock-abi-catalog | |
| rootstock-agent-permissions | |
| rootstock-agent-security | |
| rootstock-asset-operations | |
| rootstock-chain-indexing | |
| rootstock-cli-engineering | |
| rootstock-mcp-operations | |
| rootstock-policy-runtime | |
| rootstock-pool-discovery | |
| rootstock-receipt-finality | |
| rootstock-rpc-validation | |
| rootstock-skill-auditor | |
| rootstock-source-audit | |
| rootstock-upstream-integration | |
| rootstock-vault-events |
TDQS
Scored across 37 tools
Most tools are namespaced and clearly distinct, but several read/status/event tools overlap: accounts.balances vs accounts.positions, history.events vs watch.poll/watch.cursor, history.status vs observations.status, and pools.inspect/list/observe. The verbose descriptions help clarify boundaries, but an agent could still misselect among these closely related read-only tools.
The entire set follows a consistent namespace.action pattern (e.g. accounts.balances, pools.list, registry.resolve_deployment, transactions.simulate). Multiword actions consistently use snake_case after the namespace dot, with no mixed camelCase or vague verb styles.
37 tools is heavy for the apparent scope, especially since many are niche read-only observability/status/watch tools that could be consolidated. While the server spans multiple domains, the count exceeds the typical well-scoped 3-15 range by a wide margin.
The surface covers a broad lifecycle across accounts, analytics, pools, registry, transactions, policy, and indexing. However, quotes.swap is a deliberate dead end without an audited SOR, and some transaction paths are restricted to allowlisted routers rather than general ERC20 operations, leaving minor gaps.