Quickstart
Three ways to connect to the Lockstep MCP server, depending on your setup.
1. Claude Desktop (easiest)
Add Lockstep to your claude_desktop_config.json:
{
"mcpServers": {
"lockstep": {
"command": "node",
"args": ["/path/to/lockstep-MCP/server/dist/index.js"],
"env": {
"RPC_URL": "https://sepolia.base.org",
"LOCKSTEP_REGISTRY_ADDRESS": "0xd79a8569CDB6Aad548a91D0C3a9Bc3457C92014F",
"LOCKSTEP_HOOK_ADDRESS": "0x98A2F2FbB313790a8fd115Dead91bfA1B7E8Ca40",
"LOCKSTEP_INTERNAL_HOOK_ADDRESS": "0xde93d8B38548fE7ea498783b3E032AdCE05680c0",
"LOCKSTEP_ROUTER_ADDRESS": "0xE4af644160310f81C0171A2F040CDb43bE2BE70B"
}
}
}
}Restart Claude Desktop. Ask it: "List active Lockstep proposals" — it should call the list_proposals tool automatically.
2. Custom TypeScript client
Minimal example using @modelcontextprotocol/sdk/client:
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
const transport = new StdioClientTransport({
command: "node",
args: ["./lockstep-MCP/server/dist/index.js"],
});
const client = new Client(
{ name: "my-bot", version: "1.0.0" },
{ capabilities: {} }
);
await client.connect(transport);
const result = await client.callTool({
name: "list_proposals",
arguments: { status: "funding", limit: 10 },
});
console.log(result.content);3. Trading agent template
If you already cloned the trading agent template from examples/trading-agent/, you just need to fill in agent-config.yaml with the correct contract addresses and run:
npm install
npm run startThe agent connects to the Lockstep MCP server automatically via stdio transport. See the trading agent template page for full details.
Contract addresses
The addresses above are for Base Sepolia (testnet). For mainnet deployment, replace them with the production addresses listed in the protocol's deployment artifacts.