@baselab-me/signals-mcp
MCP server for posting signal coins on Base chain via the signals platform.
Exposes three tools that let AI agents (Claude Desktop, Claude Code, etc.) create signal coins fully headlessly. Payment is via the x402 protocol — no platform account needed.
For non-MCP agents (OpenAI agents, BNKR, Base agents, custom scripts):
Use the REST API directly. Skill document: https://signals.baselab.me/agent-skill.md
Tools
| Tool | Cost | Description |
|---|---|---|
upload_signal_media | ~$0.05 USDC | Upload a local media file to IPFS. Skip if you already have a URL. |
create_signal_coin | ~$0.50 USDC | Generate signal coin transaction calldata. |
submit_transaction | gas only | Sign and submit the returned calldata on-chain. |
Modes
The MCP server works in two modes depending on which env vars are set:
Headless mode (keys set — fully automatic)
{
"mcpServers": {
"signals": {
"command": "npx",
"args": ["@baselab-me/signals-mcp"],
"env": {
"AGENT_PAYMENT_KEY": "0x...",
"AGENT_TX_KEY": "0x...",
"SIGNALS_API_URL": "https://signals.baselab.me"
}
}
}
}
AGENT_PAYMENT_KEY— wallet that pays x402 USDC fees (~$0.50/signal, ~$0.05/upload). Needs USDC on Base.AGENT_TX_KEY— wallet that signs and submits the on-chain coin creation TX. Needs ETH on Base.- Both can be the same key.
SIGNALS_API_URLdefaults tohttps://signals.baselab.me.
Claude calls the tools, everything happens automatically, gets back txHash.
Keyless mode (no keys — returns unsigned payloads)
{
"mcpServers": {
"signals": {
"command": "npx",
"args": ["@baselab-me/signals-mcp"],
"env": {
"SIGNALS_API_URL": "https://signals.baselab.me"
}
}
}
}
No env keys needed. Tools return structured unsigned payloads instead of auto-signing:
-
create_signal_coin→{ requiresPayment: true, eip3009: {...}, authorization: {...}, instructions: "..." }Claude signs the typed data with your wallet tool, then calls the tool again withpaymentSignature+paymentAuthorization. -
submit_transaction→{ requiresSigning: true, unsignedTx: { to, data, value, chainId: 8453 }, instructions: "..." }Claude submits via your wallet tool or you paste it into MetaMask.
Use this mode if you have a separate wallet MCP or want your own wallet to be the coin creator.
Security
AGENT_PAYMENT_KEY only needs USDC — fund it with a small amount (~$5-10).
AGENT_TX_KEY only needs ETH for gas.
Use different keys for payment and TX signing to limit exposure:
- Payment key compromised → attacker can make ~10-20 free API calls. No ETH risk.
- TX key compromised → only ETH for gas is at risk (no USDC needed).
Or omit both keys and use keyless mode — no key ever touches the MCP process.
The MCP server code is open source. Verify it before use.
Restart Claude Desktop
After editing the config file, restart Claude Desktop. The signals tools appear in Claude's tool palette.
Example usage
Tell Claude:
Post a signal coin with ticker HELLO, content "Hello from an agent!", from wallet 0xYourAddress.
Headless mode: Claude calls create_signal_coin (pays automatically) → calls submit_transaction (submits automatically) → returns txHash.
Keyless mode: Claude calls create_signal_coin → you sign the payment typed data → Claude calls again with signature → returns calldata → Claude calls submit_transaction → you submit via your wallet.