Back to Journal

Calling Theta EdgeCloud directly from Claude — a working MCP setup

4 min readJacob
  • EdgeCloud
  • MCP
  • Claude
  • Builder Log

This is the first entry in what I'm planning as a running builder log on Thetasimplified — the experiments, the things I'm trying, the stuff that works and the stuff that doesn't. The site is mostly about data and explanation. The journal is where I show the actual work.

This week I connected Claude to Theta EdgeCloud through MCP. The result: I can write a prompt in the Claude chat, Claude routes the request to Theta's GPU network, and the output comes back into the conversation. No browser tabs. No glue scripts. No copying outputs between tools.

Here's exactly what I did.

What MCP actually is

MCP — Model Context Protocol — is an open standard from Anthropic that lets AI assistants like Claude connect to external tools and services. Think of it as a way to extend Claude with new capabilities by plugging in servers that expose their own functions.

In this case, Theta EdgeCloud has its own MCP server. When Claude is connected to it, Claude can see the available services (image generation, LLM inference, transcription, etc.) and call them as if they were native tools.

Setting it up

The setup itself was the easy part. The Theta EdgeCloud MCP server is configured through Claude's connector settings — once it's added, Claude has access to a set of new functions: list_services, infer, get_request_status, and so on.

For my use case there was no API key juggling I had to do manually inside the chat. Once the connector is authorized, Claude calls the tools through the connection. From a builder perspective, that's the unlock — the chat itself becomes the orchestration layer.

The first real test

I wanted the first test to actually demonstrate something visual, not just text. Text generation is everywhere. The thing that makes EdgeCloud interesting is GPU compute for media — image generation, video, transcription. So I went with image generation via FLUX.

The prompt I wrote in Claude:

Generate an image using Theta EdgeCloud: cyberpunk Stockholm skyline at dusk, neon-lit Gamla Stan rooftops, holographic signs in Swedish, futuristic spires rising above Riddarfjärden, flying vehicles between buildings, reflections on the water, deep blue and magenta sky, volumetric fog, cinematic wide shot, ultra detailed, 8k, dramatic lighting, blade runner aesthetic

The "Generate an image using Theta EdgeCloud" prefix wasn't strictly necessary — Claude could have figured it out — but I wanted the routing intent visible in the chat so I'd have a clean record of what was happening.

How the flow actually went

Claude received the prompt and made a series of decisions on its own:

  1. Picked the model. It called list_services first, saw FLUX and Stable Diffusion XL Turbo as the two image options, and chose FLUX based on the cinematic prompt style.
  2. Set the parameters. It picked a 1344×768 widescreen aspect ratio (cinematic), 28 inference steps, guidance value 3.5 — reasonable defaults for FLUX.
  3. Called Theta's infrastructure. The actual infer call went out to the EdgeCloud MCP server with my prompt and those parameters.
  4. Polled for completion. Image generation isn't instant. Claude received a request ID, then checked status until the job moved from processing to success.
  5. Returned the image URL. The output came back as a URL hosted on thetaedgecloud.com — useful as a piece of evidence that the request actually went through Theta's network and not somewhere else.

Total time from prompt to image: under a minute.

The output

The image at the top of this post is what came back. Cyberpunk Stockholm skyline, Riddarholmskyrkan tower in the center, water on the left, a flying vehicle on the right. Neon signs across the rooftops trying — and failing — to spell Swedish words. The skyline reads as Stockholm. The mood reads as Blade Runner. The signs read as gibberish. That's FLUX being FLUX — image models are still bad at text.

I kept the first generation rather than re-rolling. Two reasons. First, the composition was strong on the first attempt. Second, the gibberish neon signs are a useful signal that this is genuine model output, not something I touched up afterwards.

Why this matters

For me, the interesting part isn't the image. It's the workflow. The same MCP connection that generated this image can run LLM inference, transcribe audio, and chain operations together. Claude becomes the orchestration layer that decides which Theta service to call and stitches the results into a single conversation.

That's a fundamentally different way of using decentralized GPU compute than what I'd seen before. Most decentralized compute platforms still expect you to manage API keys, write integration code, and copy outputs between tools. With MCP, the conversation itself is the integration.

— Jacob