Skip to main content
Glama

Soroban MCP Server

An MCP (Model Context Protocol) server that gives AI coding agents direct, structured access to Soroban smart contracts and the Stellar network — so agents can build, test, deploy, and inspect contracts without shelling out blindly to the CLI and parsing raw text output.

Demo: (drop a terminal recording or gif here once you have a working build)


Why this exists

AI coding agents are increasingly used to write and debug smart contracts, but today they either guess at CLI syntax or parse unstructured terminal output to decide whether a build succeeded, what a contract's state looks like, or why a deployment failed.

This server exposes those operations as typed, validated MCP tools with structured results and clear error messages — making agent-assisted Soroban development faster and more reliable.


Related MCP server: Official Solana MCP Server

Features

Tool

Description

build_contract

Builds a Soroban project; returns structured compiler diagnostics (file, line, error code, message)

run_tests

Runs cargo test; returns a structured pass/fail report with failure messages

deploy_contract

Deploys a compiled .wasm to testnet or futurenet

invoke_contract

Simulates a contract function call; returns result + resource cost (CPU, memory, fee)

get_contract_state

Reads a contract's persistent/instance/temporary storage entries

get_account_info

Returns balance, sequence number, and signers for a Stellar account

Resources exposed:

  • soroban://network/{network}/status — current ledger height and health

  • soroban://contract/{id}/abi — contract ABI/spec from on-chain WASM metadata

  • soroban://contract/{id}/transactions — recent transaction history


Installation

npm install -g soroban-mcp-server

Or run directly without installing:

npx soroban-mcp-server

Prerequisites:

  • Node.js ≥ 20

  • stellar-cli on your PATH (required for build_contract and deploy_contract)


Configuration

Add to your MCP client config (e.g. Claude Code's mcp.json):

{
  "mcpServers": {
    "soroban": {
      "command": "npx",
      "args": ["soroban-mcp-server"],
      "env": {
        "STELLAR_NETWORK": "testnet"
      }
    }
  }
}

Env var

Description

Default

STELLAR_NETWORK

testnet, futurenet, or mainnet (read-only ops only on mainnet)

testnet

RPC_URL

Override the default RPC endpoint

network default

SOROBAN_CLI_PATH

Path to the Soroban/Stellar CLI binary

stellar

LOG_LEVEL

debug, info, warn, error

info


Usage example

Once connected to your MCP client, an agent can run a full build-test-deploy cycle:

"Build this contract, run the tests, and if they pass, deploy it to testnet and give me the contract ID."

The agent calls build_contract → run_tests → deploy_contract in sequence, using the structured output of each step to decide whether to proceed — without you needing to copy-paste terminal output back and forth.

Tool call examples

Build a contract:

{
  "tool": "build_contract",
  "arguments": { "project_path": "./contracts/my_token" }
}

Run tests with a filter:

{
  "tool": "run_tests",
  "arguments": { "project_path": "./contracts/my_token", "filter": "test_transfer" }
}

Check an account:

{
  "tool": "get_account_info",
  "arguments": { "public_key": "GABC...", "network": "testnet" }
}

Invoke a contract function:

{
  "tool": "invoke_contract",
  "arguments": {
    "contract_id": "CXXX...",
    "function_name": "balance",
    "args": [{ "type": "address", "value": "GABC..." }],
    "network": "testnet"
  }
}

Error handling

Every tool returns structured errors with a code field instead of raw stack traces:

{
  "error": "Insufficient balance to complete the transaction. Fund the account at https://friendbot.stellar.org",
  "code": "INSUFFICIENT_BALANCE"
}

Known error codes: BUILD_FAILED, WASM_NOT_FOUND, INVALID_WASM, NETWORK_TIMEOUT, NETWORK_UNREACHABLE, RPC_ERROR, INVALID_CONTRACT_ID, CONTRACT_NOT_FOUND, CONTRACT_INVOCATION_FAILED, INSUFFICIENT_BALANCE, ACCOUNT_NOT_FOUND, INVALID_PUBLIC_KEY, CLI_NOT_FOUND, CLI_EXECUTION_FAILED, TEST_EXECUTION_FAILED.


Development

git clone https://github.com/your-org/soroban-mcp-server
cd soroban-mcp-server
npm install

npm run typecheck   # TypeScript strict check
npm run lint        # ESLint
npm test            # Unit tests (all network/CLI calls mocked)

# Live testnet integration tests (requires network access)
INTEGRATION=true npm run test:integration

Roadmap

This project is built to grow alongside the Soroban ecosystem. Planned areas of expansion (and a source of ongoing, scoped contribution issues):

  • TTL management — bump_contract_ttl tool to extend contract state lifetimes

  • Signing support — submit state-changing transactions, not just simulate them

  • Additional wallets/signers — Freighter, hardware wallets

  • Richer error diagnosis — new failure modes as the protocol evolves

  • Prompt templates — common contract patterns (token, escrow, multisig)

  • Local devnet support — quickstart Docker integration for offline development


Contributing

See CONTRIBUTING.md. Issues are labeled by scope and complexity — issues tagged good-first-issue are a great place to start.


License

MIT

Available Tools

6 tools
build_contractA

Builds a Soroban smart contract project using the Stellar CLI. Returns structured compiler diagnostics (file, line, error code, message) — not raw rustc text.

Inputs: project_path (required), network.

deploy_contractA

Deploys a compiled .wasm file to testnet or futurenet using the Stellar CLI. Returns the contract ID and transaction hash. Mainnet is intentionally not supported here.

Inputs: wasm_path (required), source_account (required), network, ignore_checks.

get_account_infoA

Returns balance, sequence number, and signers for a Stellar account. Includes a testnet funding link if the account is not found.

Inputs: public_key (required), network.

get_contract_stateA

Reads and returns storage entries (persistent, instance, temporary) for a Soroban contract. Keys and values are decoded to human-readable strings where possible.

Inputs: contract_id (required), limit, network, durability.

invoke_contractA

Simulates a Soroban contract function call via RPC. Returns the function result AND simulated resource cost (CPU instructions, memory, min fee). For read-only calls no signing is needed.

Inputs: contract_id (required), function_name (required), args, network, +1 more.

run_testsA

Runs the Soroban contract test suite with cargo test. Returns a structured pass/fail report (test name, status, duration, failure message).

Inputs: project_path (required), filter.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.2/5.0

    Scored across 6 tools

    Disambiguation5/5

    Each tool targets a distinct resource and action: building, testing, account info, contract state, deployment, and invocation. There is no overlap in purpose, and the descriptions make it easy for an agent to select the right tool.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern in snake_case (build_contract, run_tests, get_account_info, get_contract_state, deploy_contract, invoke_contract). This creates a predictable and uniform naming convention.

    Tool Count5/5

    Six tools is a well-scoped count for a Soroban smart contract development server. Each tool covers a core step in the contract lifecycle without being redundant or overwhelming.

    Completeness5/5

    The toolset covers the essential workflow: build, test, deploy, invoke, inspect state, and manage account access. While additional tools could be added (e.g., listing contracts), the existing set is sufficient for common development tasks and has no obvious dead ends.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables interaction with Stellar Classic and Soroban smart contracts, allowing users to manage accounts, process payments, and handle asset operations. It provides comprehensive tools for building, deploying, and retrieving the interfaces of smart contracts on the Stellar network.
      38 npm
      18
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Bridges the Linkdfund smart contract layer to MCP-compatible AI clients, exposing Soroban escrow management, milestone tracking, and cross-layer expenditure audit tools as callable XDR envelopes.
      ISC