@echorift/mcp
v0.1.0
Published
MCP server for EchoRift infrastructure primitives (BlockWire, CronSynth, Switchboard, Arbiter)
Maintainers
Readme
EchoRift MCP Server
Official MCP server for EchoRift infrastructure primitives (BlockWire, CronSynth, Switchboard, Arbiter). Makes EchoRift's agent infrastructure callable as MCP tools so any MCP client can treat EchoRift like a native capability layer.
Quick Start
Install & Run (stdio mode)
npx @echorift/mcpEnvironment Variables
# BlockWire (optional, defaults to https://blockwire.echorift.xyz)
BLOCKWIRE_BASE_URL=https://blockwire.echorift.xyz
# CronSynth (optional, defaults to https://cronsynth.echorift.xyz)
CRONSYNTH_BASE_URL=https://cronsynth.echorift.xyz
CRONSYNTH_X402_SESSION=your-x402-session-token
# Switchboard (optional, defaults to https://switchboard.echorift.xyz/api/v1)
SWITCHBOARD_BASE_URL=https://switchboard.echorift.xyz/api/v1
SWITCHBOARD_AGENT_ID=0x...
SWITCHBOARD_PRIVATE_KEY=0x... # For automatic signing
# Arbiter (optional, defaults to https://arbiter.echorift.xyz)
ARBITER_BASE_URL=https://arbiter.echorift.xyz
# Feature flags
ECHORIFT_ENABLE_TREASURY=0 # Set to 1 to enable treasury toolsMCP Client Configuration
Canonical Config (Stdio Mode - Recommended)
Use this configuration for Claude Desktop or any MCP client supporting stdio transport:
{
"mcpServers": {
"echorift": {
"command": "npx",
"args": ["@echorift/mcp"],
"env": {
"CRONSYNTH_X402_SESSION": "your-session",
"SWITCHBOARD_AGENT_ID": "0x...",
"SWITCHBOARD_PRIVATE_KEY": "0x..."
}
}
}
}Remote Config (HTTP Endpoint)
For clients supporting remote HTTP endpoints:
{
"mcpServers": {
"echorift": {
"url": "https://mcp.echorift.xyz/api/mcp",
"transport": "http"
}
}
}Note: Stdio mode is recommended for production use. Remote HTTP support is available but may have limitations with serverless platforms.
Remote Endpoint Setup
The server supports both stdio (local) and remote HTTP endpoints. Stdio mode is recommended for production use as it provides better reliability and lower latency.
Stdio Mode (Recommended)
Stdio mode runs the server locally as a child process:
npx @echorift/mcpThis is the most reliable and performant option. See "MCP Client Configuration" above for config snippet.
Remote HTTP Endpoint
For remote deployments (e.g., Vercel), the server exposes an HTTP endpoint:
Endpoint: https://mcp.echorift.xyz/api/mcp
Transport Type: streamable-http (compatible with MCP remote clients)
Usage:
{
"mcpServers": {
"echorift": {
"url": "https://mcp.echorift.xyz/api/mcp",
"transport": "http"
}
}
}Note: Full HTTP/SSE transport requires long-running connections, which can be challenging with serverless platforms. Stdio mode is recommended for production use, but remote endpoint is available for clients that require it.
Deploying to Vercel
- Clone and deploy:
git clone https://github.com/echorift/echorift-mcp.git
cd echorift-mcp
vercel deploySet environment variables in Vercel dashboard:
CRONSYNTH_X402_SESSIONSWITCHBOARD_AGENT_IDSWITCHBOARD_PRIVATE_KEY- Other optional service URLs
Configure domain: Point
mcp.echorift.xyzto your Vercel deploymentVerify: Visit
https://mcp.echorift.xyz/api/mcp(GET request) to verify server info
MCP Client Configuration
Different MCP clients support different transport modes:
- Claude Desktop: Supports stdio mode (recommended)
- Custom clients: May support HTTP/SSE or Streamable HTTP
Refer to your MCP client's documentation for remote server configuration options.
Tools
BlockWire Tools
blockwire_subscribe_prepare_tx- Generate on-chain transaction payload for webhook subscriptionblockwire_feed- Pull recent blockchain events via x402 endpoint
CronSynth Tools
cronsynth_schedule_create- Create a scheduled webhook trigger with cron expressioncronsynth_schedule_list- List all scheduled webhook triggerscronsynth_schedule_delete- Delete a scheduled webhook trigger
Switchboard Tools
switchboard_task_enqueue- Enqueue a task to a swarm queueswitchboard_task_claim- Claim a task from a swarm queueswitchboard_task_complete- Mark a claimed task as complete
Arbiter Tools
arbiter_lock_acquire- Acquire a distributed lock with fencing tokenarbiter_lock_release- Release a distributed lock using fencing tokenarbiter_leader_get- Get current leader for a swarmarbiter_election_run- Run a leader election for a swarm
Resources
echorift://queues- Switchboard swarm queues and statsechorift://cron/jobs- CronSynth scheduled jobsechorift://blockwire/subscriptions- BlockWire webhook subscriptionsechorift://arbiter/locks- Active Arbiter distributed locks
Prompts
swarm-safe-cron- Create a swarm-safe task pipeline with cron schedulingchain-event-router- Subscribe to chain events and route tasks by event typedistributed-locking- Set up distributed locking for exclusive resource access
Capability Map
Quick reference for common needs:
- Need timers? →
cronsynth_schedule_create - Need exclusive portfolio writes? →
arbiter_lock_acquire - Need a work queue? →
switchboard_task_* - Need chain event ingestion? →
blockwire_*
📖 Full Capability Map - Detailed guide with examples and use cases
📋 OpenAPI Specification - Complete API schema
Security Model
- What data leaves the machine? All tool calls are forwarded to EchoRift API endpoints. Authentication credentials (x402 sessions, private keys) should be kept secure via environment variables.
- What is gated? Treasury tools require
ECHORIFT_ENABLE_TREASURY=1to prevent accidental exposure in shared clients. - Auth modes:
- Mode A (recommended): MCP server holds keys and signs requests automatically
- Mode B: Caller provides auth headers in tool params (bring-your-own-auth)
License
MIT
