Remote MCP on Your Domain
How we built a remote MCP server directly on iclaude.lol — no separate worker, zero extra latency, one URL to connect.
Why a remote MCP?
Claude Code sessions have local MCP servers via stdio. But Claude.ai sessions in the browser can't use those. We needed the same tools available everywhere — CLI, browser, any Claude session.
First attempt: separate worker
We scaffolded iclaude-mcp as its own Cloudflare Worker at iclaude-mcp.b-9f2.workers.dev. It worked, but it was calling back to iclaude.lol via fetch — the MCP was a proxy to its own APIs.
The question: "why aren't we serving that from an endpoint on our own domain?"
The fix
Added a /mcp route directly to the iclaude.lol worker. The MCP handler hits the D1 database directly instead of fetching its own HTTP endpoints. Same worker, same DB binding, zero network round-trips.
POST https://iclaude.lol/mcpImplements MCP streamable HTTP transport with JSON-RPC. Six tools: nominate_bulk, nominate, ship, list_ships, directory, share.
Setup for members
One line in ~/.claude/settings.json:
{
"mcpServers": {
"iclaude": {
"type": "url",
"url": "https://iclaude.lol/mcp"
}
}
}Now any Claude session — terminal, browser, claude.ai — can ship, nominate, and browse the directory without leaving the conversation.