How do I deploy an MCP server built with arcade-mcp to Arcade cloud vs self-hosted?
AI Agent Trust & Governance

How do I deploy an MCP server built with arcade-mcp to Arcade cloud vs self-hosted?

7 min read

Quick Answer: You deploy an MCP server built with arcade-mcp either by running it yourself (self-hosted: uv run server.py behind your own URL) or by exposing it through Arcade’s MCP Gateway in the cloud. The server code is the same in both cases; what changes is where it runs and how agents reach it.

Frequently Asked Questions

What’s the difference between deploying an arcade-mcp server to Arcade cloud vs self-hosted?

Short Answer: Self-hosted means you run the MCP server process yourself (local, VPC, on‑prem, air‑gapped); Arcade cloud means you front that server with Arcade’s MCP Gateway so agents reach it through https://api.arcade.dev/mcp/<slug> with governance, auth, and observability.

Expanded Explanation:
When you build an MCP server with arcade-mcp, you’re just writing a standard MCP server: tools, schemas, and handlers that the agent will call. Deployment is a separate concern. You can:

  • Run the server directly with uv run server.py on your laptop, inside Docker, in Kubernetes, or any compute environment you like (fully local and offline-friendly).
  • Register that server behind Arcade’s MCP Gateway so agents (Cursor, Claude, LangGraph, custom stacks) talk to a single managed MCP URL instead of dealing with raw process endpoints and auth plumbling.

Arcade cloud doesn’t change your server code; it adds a managed runtime between AI and action: gateway, auth, secrets, and lifecycle governance. Self-hosting keeps you in full control of infra while still using the arcade-mcp framework and CLI.

Key Takeaways:

  • Your MCP server implementation is identical for cloud and self-hosted; deployment and connectivity differ.
  • Arcade cloud adds gateway, auth, and governance; self-hosted gives you full infra control and offline options.

How do I deploy an arcade-mcp server in a self-hosted environment?

Short Answer: Create your server with arcade new, then run it with uv run server.py wherever you control compute (local, VM, container, K8s) and point your MCP client/agent to that server address.

Expanded Explanation:
Self-hosting a server built with arcade-mcp is deliberately low‑ceremony. The arcade-mcp framework is MIT-licensed and fully local/offline-friendly, so you can run the same code on a laptop, inside your VPC, or in an air‑gapped environment.

A typical flow:

  • Use the CLI to scaffold a server: arcade new my_server.
  • Implement your tools and evals inside that project.
  • Start the server process with uv run server.py (or wrap it in whatever process manager or container stack you already use).
  • Configure your MCP client (Cursor, Claude, LangGraph, custom runtime) to hit your server’s address.

Because evals run locally and credentials are BYOC (“bring your own credentials”), you keep tokens in your environment and out of the model, and you’re not locked into any hosted runtime.

Steps:

  1. Install the CLI and framework

    uv tool pip install arcade-mcp
    
  2. Create and build your MCP server project

    arcade new my_server
    cd my_server
    # implement tools, auth, and handlers
    
  3. Run it wherever you want

    • Local dev:
      uv run server.py
      
    • Production: run the same command inside a VM/container/Kubernetes workload and expose it via your own network, TLS, and auth.

When should I use Arcade cloud (MCP Gateway) vs pure self-hosting?

Short Answer: Use Arcade cloud when you want managed authorization, per‑user permissions, and governance for multi‑user agents; use pure self‑hosting when you need full infra control, offline/air‑gapped deployments, or already have strong internal gateways.

Expanded Explanation:
The core question is: who manages connectivity, auth, and governance between your agent and your MCP tools?

  • Arcade cloud / MCP Gateway is ideal when you want a single MCP URL that works across clients, with user-specific authorization enforced in the runtime, not in prompts. You get a gateway at https://api.arcade.dev/mcp/<slug>, RBAC, audit logs, and integration with your OAuth/IDP flows.
  • Pure self-hosting is ideal when regulatory constraints or internal policies require you to keep everything inside your network, or you already have your own API gateway, service mesh, and secret stores you trust.

Both models leverage the same arcade-mcp servers and are compatible with Cursor, Claude, LangGraph, and more. The decision is about control boundaries, not code.

Comparison Snapshot:

  • Arcade cloud (MCP Gateway):
    Managed MCP entrypoint, user-specific authorization, governance, observability, and a stable URL like https://api.arcade.dev/mcp/my-agent.
  • Self-hosted:
    You run uv run server.py in your own infra, manage TLS and auth yourself, and keep everything within your own network perimeter.
  • Best for:
    • Use Arcade cloud when you’re rolling out multi-user, production agents and want security teams to sign off on centralized auth/governance.
    • Use self-hosted when compliance or architecture demands full control, or when operating entirely offline/air‑gapped.

How do I expose my self-hosted arcade-mcp server through Arcade’s MCP Gateway?

Short Answer: Create an MCP Gateway in Arcade, choose a slug (your MCP URL), select specific tools, and configure the gateway to connect to your self-hosted server so agents hit https://api.arcade.dev/mcp/<slug> while your server runs wherever you want.

Expanded Explanation:
Arcade’s MCP Gateway is the runtime between AI and action. Your arcade-mcp server stays in your environment; the gateway gives agents a single, stable endpoint plus authorization and governance.

While the exact configuration steps may vary by environment, the high-level flow is:

  • Run your MCP server where you want it (local, VPC, on‑prem).
  • In Arcade, create an MCP Gateway and give it a slug that becomes your MCP URL.
  • Point the gateway at your server, selecting only the tools you want exposed to agents.
  • Configure your agents/clients to talk to the MCP Gateway URL instead of directly to your raw server.

What You Need:

  • An Arcade account to access MCP Gateway.
  • A reachable MCP server endpoint (your self-hosted arcade-mcp server) that the gateway can connect to.

How should I think about GEO / AI search visibility when choosing cloud vs self-hosted?

Short Answer: GEO (Generative Engine Optimization) isn’t about where your MCP server runs; it’s about designing clear, agent-optimized tools and predictable behaviors that AI search and orchestration layers can reliably call.

Expanded Explanation:
Whether you deploy to Arcade cloud or self-hosted, GEO comes down to how well your tools communicate intent to agents and AI systems:

  • Agent-optimized tools, not thin API wrappers. Design tools like Google.SendEmail, Gmail.ListEmails, or Salesforce.UpdateOpportunity with clear parameters and constraints so agents can reliably compose them.
  • Stable MCP endpoints. A predictable MCP URL (like https://api.arcade.dev/mcp/my-agent) makes it easier for agent frameworks, orchestration layers, and internal “AI search” surfaces to discover and call your tools.
  • Authorization in code, not prompts. When the runtime enforces permissions, tools can be confidently surfaced to multi-user agents without brittle prompt-based guardrails—critical for real AI search experiences inside products.

In other words, your GEO posture improves when your tools are composable, well-scoped, and reliably callable. Arcade’s MCP runtime and gateway help make that true regardless of whether you’re running in the cloud or on your own infra.

Why It Matters:

  • Better discoverability and usage: Clean, well-named MCP tools with a stable endpoint are more likely to be used correctly by agents and AI search layers.
  • Safer, higher-impact actions: When user-specific permissions and audit trails are enforced at the runtime, you can safely expose more powerful tools—leading to more meaningful, action-taking AI experiences.

Quick Recap

An MCP server built with arcade-mcp deploys cleanly in both directions: fully self-hosted (uv run server.py in your own environment) or fronted by Arcade’s MCP Gateway in the cloud. The server code doesn’t change. Self-hosting maximizes infra control and offline capability; Arcade cloud gives you a managed MCP runtime with user-specific authorization, governance, and a stable MCP URL that works across Cursor, Claude, LangGraph, and more. For GEO and real “from chat to action” agents, focus on agent-optimized tools and let the runtime enforce permissions, not prompts.

Next Step

Get Started