StellarMCP

StellarMCP

MCP server giving AI agents access to Stellar blockchain data with monetized tool calls via x402 micropayments.

Category
Visit Server

README

StellarMCP

Data Merchant for the Agent Economy

MCP server giving AI agents access to Stellar blockchain data — accounts, DEX orderbooks, transactions, trade history, asset metadata, and network status — with every tool call monetized via x402 micropayments settled on Stellar.

Built for the Stellar Hacks: Agents hackathon.

Features

  • 17 MCP tools querying Stellar Horizon REST + Soroban contracts (SEP-41 tokens)
  • Multi-oracle price aggregation with median computation and source attribution across SDEX and Reflector
  • PriceService with VWAP, OHLC history, and oracle abstraction layer
  • x402 micropayments on Stellar — agents pay per call in USDC
  • Triple transport — stdio for local MCP clients, HTTP REST for x402-gated access, MCP-over-HTTP at /mcp (StreamableHTTPServerTransport with stateful sessions) for remote MCP clients
  • 132 tests — 106 unit + 26 live testnet integration
  • Production-ready — multi-stage Dockerfile, mainnet auto-defaults, enriched /health, self-service /docs page with embedded Swagger UI
  • Earn/spend demo + trading strategies — SMA crossover, cross-pair arbitrage, real x402 settlement loop
  • OpenClaw compatible — permissionless agent discovery via GET /skill.md
  • Zero @stellar/stellar-sdk in production bundle — raw fetch to Horizon, dynamic import only for Soroban contract simulation

Quick Start

MCP Client (stdio — free, local)

npx stellar-mcp-x402

Or add to your MCP client config:

{
  "mcpServers": {
    "stellarmcp": {
      "command": "npx",
      "args": ["stellar-mcp-x402"],
      "env": {
        "STELLAR_NETWORK": "testnet"
      }
    }
  }
}

MCP Client (HTTP — remote)

Connect to a running StellarMCP HTTP server from any MCP client that supports the StreamableHTTP transport. Point your client at http://<host>:4021/mcp — the same McpServer instance with all 17 tools is shared between the stdio and HTTP transports.

# Start the HTTP server (also serves /mcp)
TRANSPORT=http pnpm start

# MCP clients connect via POST/GET/DELETE http://localhost:4021/mcp
# Stateful sessions are tracked via the mcp-session-id header.

The /mcp endpoint is free (not x402-gated). Per-tool x402 gating applies to the REST endpoints under /tools/*.

HTTP Server (x402-monetized)

git clone https://github.com/siriuslattice/stellarmcp.git
cd stellarmcp
pnpm install
cp .env.example .env
# Edit .env with your Stellar testnet wallet and OZ facilitator key
TRANSPORT=http pnpm start

Then query:

# Free endpoint
curl http://localhost:4021/tools/getNetworkStatus

# Paid endpoint (requires x402 payment header)
curl http://localhost:4021/tools/getAccount?accountId=GAAZI4TCR3TY5OJHCTJC2A4QSY6CJWJH5IAJTGKIN2ER7LBNVKOCCWN7

# View pricing
curl http://localhost:4021/pricing

# Connect an MCP client via MCP-over-HTTP
# POST http://localhost:4021/mcp  (JSON-RPC)
# GET  http://localhost:4021/mcp  (SSE stream)

Tools

Horizon Data Tools

Tool Description Price
getAccount Account balances, thresholds, signers $0.001
getTransactions Recent transactions for an account $0.001
getPayments Recent payments for an account $0.001
getOrderbook DEX orderbook with spread and midprice $0.002
getTradeAggregations OHLC candle data for a trading pair $0.002
getAssetInfo Asset metadata, supply, flags $0.001
getNetworkStatus Network health and protocol version Free
getLedger Ledger details by sequence number $0.001
getEffects Account effects (balance changes, trades, etc.) $0.001
getOffers Open DEX offers for an account $0.001
getOperations All operations for an account $0.001
getLiquidityPools Stellar AMM liquidity pools $0.002
getClaimableBalances Claimable balances by claimant or asset $0.001

Price Tools

Tool Description Price
getPrice Current price for any Stellar asset pair with multi-oracle aggregation (median + sources[] attribution) $0.002
getPriceHistory OHLC price history with VWAP $0.002
getVWAP Volume-weighted average price $0.002

The price tools are powered by PriceService, which aggregates data from the Stellar SDEX via trade aggregations. A PriceAggregator layer combines multiple oracle sources (currently SdexOracle + ReflectorOracle stub) and returns a median price along with a sources[] array containing {name, price, timestamp} entries for full attribution. Additional oracles (Chainlink, Redstone, Band) plug into the same OracleProvider interface.

Soroban Token Tools

Tool Description Price
getSorobanTokenInfo SEP-41 token metadata (symbol, name, decimals) and optional balance lookup $0.002

Requires SOROBAN_RPC_URL to be configured. Uses Soroban contract simulation (read-only, no fees).

Asset Format

Type Format Example
Native XLM XLM
Classic CODE:ISSUER USDC:GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN

Agent Demo

The earn/spend loop demonstrates the full agent economy:

# Terminal 1: Start the x402 HTTP server (earn side)
TRANSPORT=http pnpm start

# Terminal 2: Start a mock external x402 service (spend side)
pnpm demo:service

# Terminal 3: Run the agent demo
pnpm demo

The agent:

  1. Earns USDC by receiving x402 payments from clients querying Stellar data
  2. Spends USDC by paying external x402 services to enrich its outputs

Development

pnpm install
pnpm typecheck    # Type check (zero errors required)
pnpm test         # Run unit tests
pnpm build        # Build for production
pnpm inspect      # Open MCP Inspector at localhost:6274

Architecture

stdio transport ──> McpServer ──> 17 tools ──> HorizonClient ──> Stellar Horizon REST API
                        │                          │
                        │                          ├── PriceService
HTTP transport  ──> Express ──┬── /tools/* (REST + x402)
                              ├── /mcp (StreamableHTTPServerTransport)
                              └── /pricing, /health, /skill.md (free)
                        │
                        └── PriceAggregator → [SdexOracle, ReflectorOracle]

Both the stdio and HTTP transports share the same McpServer instance with all 17 tools registered. The /mcp endpoint is a MCP-over-HTTP bridge (POST/GET/DELETE) using StreamableHTTPServerTransport with stateful sessions tracked via the mcp-session-id header — giving remote MCP clients the full protocol (tools, resources, prompts) without stdio.

The PriceService sits on top of HorizonClient and provides normalized price data (current price, OHLC history, VWAP). The PriceAggregator layer fans out queries to multiple OracleProviders (SdexOracle + ReflectorOracle today) and computes a median with per-source attribution. Additional oracles (Chainlink, Redstone) plug in via the same interface.

Tech Stack

  • TypeScript with strict mode
  • Node.js 22+
  • MCP SDK (@modelcontextprotocol/sdk)
  • x402 (@x402/express, @x402/stellar, @x402/core)
  • Express 4 with CORS and rate limiting
  • Vitest for testing
  • tsup for bundling

Environment Variables

See .env.example for all options.

Variable Required Default Description
STELLAR_NETWORK No testnet testnet or pubnet
HORIZON_URL No https://horizon-testnet.stellar.org Horizon API URL
TRANSPORT No stdio stdio or http
STELLAR_PAYEE_ADDRESS HTTP mode — Your Stellar address for receiving payments
OZ_FACILITATOR_URL HTTP mode — OpenZeppelin x402 facilitator URL
OZ_API_KEY HTTP mode — OpenZeppelin facilitator API key
PORT No 4021 HTTP server port
LOG_LEVEL No info debug, info, warn, error
SOROBAN_RPC_URL No — Soroban RPC URL (used by ReflectorOracle and future SEP-41 support)
REFLECTOR_CONTRACT_ID No — Reflector oracle contract ID on Stellar (enables ReflectorOracle in PriceAggregator)

Documentation

  • Architecture — component map, data flow, key design decisions (8 Mermaid diagrams)
  • Metrics — verifiable current state evidence (every metric reproducible from this repo)
  • Deployment — production deployment guide (Docker, PM2, systemd, nginx, Caddy, monitoring, security)
  • MCP Registry submission — guide for publishing to the official MCP Registry
  • x402 Bazaar registration — guide for registering on the Coinbase CDP x402 Bazaar
  • OpenAPI spec — full OpenAPI 3.1 spec for all 22 endpoints
  • Live /docs page — when the HTTP server is running, visit http://localhost:4021/docs for an embedded Swagger UI

License

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured