io.github.Stakemate369/8004swap-mcp
MCP server exposing 8004Swap (no-KYC agent-to-agent RFQ swap) as tools any MCP agent can call.
Installation
Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).
@stakemate/8004swap-mcp-serverclaude mcp add 8004swap-mcp -e 'AGENT_PRIVATE_KEY=<your agent_private_key>' -e 'RELAY_URL=<RELAY_URL>' -e 'RPC_URL=<RPC_URL>' -- npx -y @stakemate/8004swap-mcp-server@0.1.0
{
"mcpServers": {
"8004swap-mcp": {
"command": "npx",
"args": [
"-y",
"@stakemate/8004swap-mcp-server@0.1.0"
],
"env": {
"AGENT_PRIVATE_KEY": "<your agent_private_key>",
"RELAY_URL": "<RELAY_URL>",
"RPC_URL": "<RPC_URL>"
}
}
}
}
Variables d'environnement
AGENT_PRIVATE_KEYsecret Dedicated wallet private key for this agent (testnet). Required only for tools that sign: request_quote, fill_quote, register_agent. check_agent_status works without it. Never reuse a key that holds funds outside this testnet.RELAY_URL8004Swap Relay WebSocket URL. Defaults to the current Base Sepolia testnet deployment if omitted.RPC_URLBase Sepolia RPC URL. Defaults to https://sepolia.base.org if omitted.
Documentation
Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.
8004Swap
Non-custodial RFQ exchange built only for autonomous agents (not humans). Every trade is a direct match between two agents (maker/taker), settled atomically on-chain — no pre-funded liquidity pool, following the 0x Protocol / CoW Swap pattern.
Differentiator: no-KYC access + on-chain reputation via ERC-8004, not just another exchange with a bot layer bolted onto infra that still requires human KYC.
Status: testnet (Base Sepolia). No real funds at risk. No formal audit yet.
Architecture
Maker agent ──┐ ┌── Taker agent
│ WebSocket (RFQ, off-chain │
▼ EIP-712 signature, gasless) ▼
┌─────────────────────────────────────────────┐
│ Relay (relay/) │
│ RFQ matching, best-price ranking │
└─────────────────────┬─────────────────────────┘
│ signed quote
▼
┌───────────────────────────┐
│ Settlement.sol │ ← atomic settlement,
│ (contracts/Settlement.sol)│ Chainlink oracle,
└─────────────┬───────────────┘ risk caps
│ isActive() / recordFill()
▼
┌───────────────────────────┐
│ Registry.sol │ ← who's allowed to trade
│ (contracts/Registry.sol) │
└───────────────────────────┘
- Registry.sol — registry of authorized agents (self-registration,
msg.senderproves key control). Owner can pause globally. - Settlement.sol — settles an EIP-712-signed
Quote. Requires a Chainlink oracle registered per pair (deny-by-default), checks staleness, applies risk caps (maxTradeAmount,maxVolumePerWindow) and an optional anti-sybil fee (feeBps). - relay/ — WebSocket server that authenticates agents (login signature), matches
RFQs by token pair, and returns the best signed quote to the taker, who settles
on-chain by calling
fillQuotedirectly. - sdk/ (
@stakemate/8004swap-agent-sdk) — TypeScript client that wraps the WS handshake, EIP-712 signing and on-chain settlement, for anyone integrating an agent without reimplementing the protocol from scratch. Seesdk/README.md. - sdk-python/ (
8004swap-agent-sdk) — same thing, in Python (eth_account+websockets+web3.py). Seesdk-python/README.md. - mcp-server/ (
@stakemate/8004swap-mcp-server) — exposes the protocol as MCP tools (request_quote,fill_quote,check_agent_status,register_agent), so any MCP-capable agent can trade directly without a human in the loop. Seemcp-server/README.md.
See PROTOCOL.md for the exact Relay message format.
Running locally
Contracts (Foundry)
forge build
forge test
Relay
cd relay
npm install
cp .env.example .env # fill in BASE_RPC_URL, REGISTRY_ADDRESS
npm run dev
Agent examples (maker/taker) live in relay/examples/ — they run against the local
or hosted Relay. To integrate a new agent, prefer sdk/ (@stakemate/8004swap-agent-sdk), which
wraps the same flow as those examples as a library.
Contract deployment
forge script script/DeploySepolia.s.sol --rpc-url <sepolia_rpc> --private-key <key> --broadcast
script/Deploy.s.sol is the mainnet version (4 pairs against USDC) — do not run
without an explicit decision, contracts have not gone through a formal audit yet.
Current network (Base Sepolia)
- Registry:
0x7Bb793b6Ada038cf9c26c6BB54cA15Db6BD35ed1 - Settlement:
0x5Cc2558dF13739c05cb57Caf0E9cfe1629a6a945 - Active pair: WETH/test-USDC
Contributing
Open to external contributors — contracts, relay, SDKs in other languages, support
for new chains. See CONTRIBUTING.md.
License
MIT
Questions fréquentes
Qu'est-ce que io.github.Stakemate369/8004swap-mcp ?
MCP server exposing 8004Swap (no-KYC agent-to-agent RFQ swap) as tools any MCP agent can call.
Comment installer io.github.Stakemate369/8004swap-mcp ?
Il s'exécute sur votre machine. Dans Claude Code : claude mcp add 8004swap-mcp -e 'AGENT_PRIVATE_KEY=<your agent_private_key>' -e 'RELAY_URL=<RELAY_URL>' -e 'RPC_URL=<RPC_URL>' -- npx -y @stakemate/8004swap-mcp-server@0.1.0. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.
Faut-il une clé API pour io.github.Stakemate369/8004swap-mcp ?
Oui. Il attend AGENT_PRIVATE_KEY, à renseigner dans sa configuration.
io.github.Stakemate369/8004swap-mcp est-il open source ?
Oui. Son code est sur GitHub sous licence MIT.
Qui maintient io.github.Stakemate369/8004swap-mcp ?
Il est publié par Stakemate369. AI.tn le référence sans le maintenir ni le recommander.
Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.