Build a Model Context Protocol (MCP) server in Rust that enables AI agents to query balances and execute token swaps on Ethereum.
MCPpedia last refreshed this data
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"eth-mcp-server": {
"command": "<see-readme>",
"args": []
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
This project implements a Model Context Protocol (MCP) server in Rust that provides Ethereum-related tooling for AI agents. It exposes balance queries, token price lookup, and Uniswap swap simulation through a simple MCP interface.
No automated test available for this server. Check the GitHub README for setup instructions.
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
No package registry to scan.
Click any tool to inspect its schema.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in finance
Let AI agents create, discover, and track tokens across chains via Printr.
Real-time financial market data: stocks, forex, crypto, commodities, and economic indicators
MaverickMCP - Personal Stock Analysis MCP Server
Brazilian public procurement (PNCP) and Federal Revenue CNPJ data — 16 tools, 4 prompts.
MCP Security Weekly
Get CVE alerts and security updates for Eth Mcp Server and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
This project implements a Model Context Protocol (MCP) server in Rust that provides Ethereum-related tooling for AI agents. It exposes balance queries, token price lookup, and Uniswap swap simulation through a simple MCP interface.
The goal is to demonstrate practical Rust engineering, modular design, and correct usage of Ethereum RPC.
The server acts as an MCP-compatible backend. When an AI agent calls a tool, the server performs on-chain queries via Ethereum RPC.
MCP Client → MCP Server → Ethereum RPC → Uniswap Contracts
┌──────────────────────┐
│ AI Agent │
│ (decision making) │
└─────────┬────────────┘
│ MCP Request
▼
┌──────────────────────-┐
│ MCP Server │
│ (ServerHandler) │
│──────────────────────-│
│ - call_tool() │
│ - list_tools() │
└─────────┬────────────-┘
│
┌─────────┼────────────------------─┐
▼ ▼ ▼
┌───────────────┐ ┌───────────────┐ ┌───────────────┐
│ BalanceModule │ │ PriceModule │ │ SwapModule │
│ get_balance │ │ get_price │ │ simulate_swap │
└───────────────┘ └───────────────┘ └───────────────┘
│
▼
┌─────────────────┐
│ Ethereum Node │
│ (ethers.rs) │
└─────────────────┘
Note: The server does not execute real transactions. Swap functionality uses
eth_callto simulate execution safely.
get_balanceQueries:
get_token_priceswap_tokenseth_callethers-rsserde / serde_jsontracing (logging)rmcp)Create a .env file:
INFURA_URL=
WALLET_ADDRESS=
USDC=
The keys is only used for constructing simulation transactions, not broadcasted.
cargo build
cargo run
main.rs)cargo run --bin test_client
{
"method": "call_tool",
"params": {
"name": "get_balance",
"arguments": {
"address": "0xYourWalletAddress",
"token": "0xUSDCContractAddress"
}
}
}
{
"result": {
"eth_balance": "0.52",
"tokens": [
{
"symbol": "USDC",
"balance": "123.45"
}
]
}
}
{
"method": "call_tool",
"params": {
"name": "get_price",
"arguments": {
"token": null
}
}
}
{
"result": {
"price": "1850.23"
}
}
{
"method": "call_tool",
"params": {
"name": "swap_tokens",
"arguments": {
"from_token": "ETH",
"to_token": "USDC",
"amount_in": "0.001",
"slippage": 0.5
}
}
}
{
"result": {
"amount_o
... [View full README on GitHub](https://github.com/jordanlixu/eth-mcp-server#readme)