Configuration

How to configure different MCP clients to use FlashMCP. Every client that supports the Streamable HTTP transport can connect to FlashMCP with a single URL — no local servers, no SDKs, no build steps.

URL format

Every FlashMCP URL follows the same structure:

URL format
https://flashmcp.dev/{targetHost}[/basePath][?spec={specPath}]
Component Required Description
targetHost Yes The API's hostname. Must contain a dot (e.g. api.example.com).
basePath No Optional path prefix if the API lives under a sub-path (e.g. /v2).
spec No Explicit path to the OpenAPI spec. Supports relative paths (/openapi.json) and absolute URLs (https://...). Skips auto-discovery.

Here are a few example URLs to illustrate the pattern:

  • https://flashmcp.dev/api.example.com — simplest form, auto-discovers the spec
  • https://flashmcp.dev/api.example.com/v2 — with a base path
  • https://flashmcp.dev/api.example.com?spec=/openapi.json — with an explicit spec path
  • https://flashmcp.dev/api.example.com?spec=https://raw.githubusercontent.com/org/repo/main/spec.json — with a cross-domain spec URL

Claude Desktop

Add a FlashMCP server to your claude_desktop_config.json. This file is located at:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Basic configuration

claude_desktop_config.json
{
  "mcpServers": {
    "petstore": {
      "url": "https://flashmcp.dev/petstore3.swagger.io"
    }
  }
}

With authentication headers

FlashMCP forwards Authorization, X-API-Key, and any X-* headers to the upstream API. Pass them in the headers object:

claude_desktop_config.json
{
  "mcpServers": {
    "stripe": {
      "url": "https://flashmcp.dev/api.stripe.com",
      "headers": {
        "Authorization": "Bearer sk_live_..."
      }
    }
  }
}

With explicit spec path

claude_desktop_config.json
{
  "mcpServers": {
    "petstore": {
      "url": "https://flashmcp.dev/petstore3.swagger.io?spec=/api/v3/openapi.json"
    }
  }
}

Claude Code

Claude Code uses a .mcp.json file in your project root (or home directory for global config). Add a FlashMCP server with the url type:

.mcp.json
{
  "mcpServers": {
    "petstore": {
      "type": "url",
      "url": "https://flashmcp.dev/petstore3.swagger.io"
    },
    "github": {
      "type": "url",
      "url": "https://flashmcp.dev/api.github.com",
      "headers": {
        "Authorization": "Bearer ghp_..."
      }
    }
  }
}

Cursor

In Cursor, go to Settings > MCP and add a new server. Select the Streamable HTTP transport type and enter the FlashMCP URL.

Alternatively, add a .cursor/mcp.json file to your project root:

.cursor/mcp.json
{
  "mcpServers": {
    "petstore": {
      "type": "url",
      "url": "https://flashmcp.dev/petstore3.swagger.io"
    },
    "stripe": {
      "type": "url",
      "url": "https://flashmcp.dev/api.stripe.com",
      "headers": {
        "Authorization": "Bearer sk_live_..."
      }
    }
  }
}

VS Code

VS Code supports MCP servers via its settings. Open your User Settings (JSON) or Workspace Settings (JSON) and add:

settings.json
{
  "mcp": {
    "servers": {
      "petstore": {
        "type": "url",
        "url": "https://flashmcp.dev/petstore3.swagger.io"
      },
      "internal-api": {
        "type": "url",
        "url": "https://flashmcp.dev/api.internal.co/v2",
        "headers": {
          "X-API-Key": "your-api-key"
        }
      }
    }
  }
}

You can also add MCP servers to a .vscode/mcp.json file in your workspace for project-scoped configuration:

.vscode/mcp.json
{
  "servers": {
    "petstore": {
      "type": "url",
      "url": "https://flashmcp.dev/petstore3.swagger.io"
    }
  }
}

Generic MCP client

FlashMCP works with any MCP client that supports the Streamable HTTP transport. There is nothing client-specific about the setup — just point your client's server URL to FlashMCP.

All you need is the URL. If your MCP client can connect to a remote HTTP server, it can use FlashMCP. No special SDK, plugin, or adapter required.

The connection details are always the same:

Setting Value
Transport Streamable HTTP
Server URL https://flashmcp.dev/{targetHost}
Auth headers Forwarded to the upstream API (optional)

Explicit spec path

By default, FlashMCP auto-discovers your API's OpenAPI spec using multiple lightweight methods (apis.guru directory, Link headers, well-known endpoints). If auto-discovery doesn't find your spec, or you want to point to a specific version, use the ?spec= query parameter.

When to use ?spec=

  • Auto-discovery doesn't find your spec
  • You want to target a specific version of the spec
  • Your spec is hosted on a different domain (e.g. GitHub, docs subdomain)
  • You have multiple specs and want to choose which one to use

Relative paths

A relative path is resolved against the target host. Use this when the spec is served by the same API:

Relative spec path
# Fetches the spec from https://petstore3.swagger.io/api/v3/openapi.json
https://flashmcp.dev/petstore3.swagger.io?spec=/api/v3/openapi.json

Absolute URLs

Many APIs host their specs on a different domain — GitHub raw content, a docs subdomain, or a CDN. Use an absolute URL (starting with https://) to fetch the spec directly from that location:

Absolute spec URL (cross-domain)
# Spec hosted on GitHub, API calls go to api.stripe.com
https://flashmcp.dev/api.stripe.com?spec=https://raw.githubusercontent.com/stripe/openapi/master/openapi/spec3.json

Cross-domain specs are common. Roughly 90% of major APIs host their OpenAPI spec on a different domain than their API endpoint. The absolute URL option exists for exactly this reason.

In a client config file, the full URL with an absolute spec looks like this:

claude_desktop_config.json
{
  "mcpServers": {
    "stripe": {
      "url": "https://flashmcp.dev/api.stripe.com?spec=https://raw.githubusercontent.com/stripe/openapi/master/openapi/spec3.json",
      "headers": {
        "Authorization": "Bearer sk_live_..."
      }
    }
  }
}

Base path

Some APIs are hosted under a path prefix rather than at the root of their domain. Add the base path as additional path segments after the target host:

Base path examples
# API at https://example.com/api/v2/...
https://flashmcp.dev/example.com/api/v2

# API at https://services.example.com/billing/...
https://flashmcp.dev/services.example.com/billing

# Base path + explicit spec
https://flashmcp.dev/example.com/api/v2?spec=/api/v2/openapi.json

The base path is prepended to every API call FlashMCP makes to the upstream. For example, if the spec defines a /users endpoint and your base path is /api/v2, FlashMCP will call https://example.com/api/v2/users.

When to use a base path

  • The API is versioned via URL path (e.g. /v2, /api/v3)
  • Multiple services share a domain under different prefixes
  • The API lives under a sub-path on a shared platform

Tip: If the API's OpenAPI spec already includes the base path in its servers[0].url, you usually don't need to specify it again in the FlashMCP URL. FlashMCP reads the base URL from the spec. Only add a base path when the spec doesn't include it or when you need to override it.