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.

@brianball 2026-08-31 03:23:57 mcp cloudflare architecture

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/mcp

Implements 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.

← More posts Share on X →