SYSTEM ACTIVE
m mcpmeter
HOME / DOCS / CLIENTS & CODE SAMPLES
DOCS NAV · CLIENTS & CODE SAMPLES
DOC INTEGRATIONS

CLIENTS & CODE SAMPLES

Drop-in configs for every major MCP-compatible client, plus raw HTTP examples in four languages.

v0.1.0 UPDATED 2026-05-09 ~6 MIN READ

CLAUDE DESKTOP

Edit your Claude Desktop config:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json
claude_desktop_config.jsonJSON
{
  "mcpServers": {
    "weather": {
      "url": "https://proxy.mcpmeter.com/weather",
      "headers": {
        "Authorization": "Bearer mcpm_live_…"
      }
    },
    "currency": {
      "url": "https://proxy.mcpmeter.com/currency",
      "headers": { "Authorization": "Bearer mcpm_live_…" }
    }
  }
}

Restart Claude Desktop. The tools appear in the tool drawer next to the chat input.

CLAUDE CODE CLI

Anthropic's CLI tool. Two ways to add the listing — via the helper command or by editing the JSON directly.

Via CLI helper

add an HTTP MCPBASH
claude mcp add weather \
  --transport http \
  https://proxy.mcpmeter.com/weather \
  --header "Authorization: Bearer $MCPM_KEY"

Scope it to the current project (default), your user account, or all sessions with --scope project|user|local.

By editing the config file

Same shape as Claude Desktop. Edit ~/.claude.json (user) or .mcp.json in a project root:

.mcp.jsonJSON
{
  "mcpServers": {
    "weather": {
      "url": "https://proxy.mcpmeter.com/weather",
      "headers": {
        "Authorization": "Bearer mcpm_live_…"
      }
    }
  }
}

Run claude mcp list to confirm the server is registered, then claude to start a session — the tools appear in the tool drawer.

CURSOR

Cursor reads MCP servers from ~/.cursor/mcp.json. The shape is identical to Claude Desktop:

~/.cursor/mcp.jsonJSON
{
  "mcpServers": {
    "weather": {
      "url": "https://proxy.mcpmeter.com/weather",
      "headers": {
        "Authorization": "Bearer mcpm_live_…"
      }
    }
  }
}

Open a new chat (or reload the workspace) for the tools to appear.

GEMINI CLI

Google's open-source CLI for Gemini. Reads MCP servers from ~/.gemini/settings.json (user) or .gemini/settings.json (project). HTTP transport uses the httpUrl field:

~/.gemini/settings.jsonJSON
{
  "mcpServers": {
    "weather": {
      "httpUrl": "https://proxy.mcpmeter.com/weather",
      "headers": {
        "Authorization": "Bearer mcpm_live_…"
      }
    }
  }
}

Restart the CLI, or run /mcp list inside the chat to confirm. Run /mcp refresh to re-discover tools after the proxy listing changes.

OPENAI CODEX CLI

OpenAI's codex CLI uses TOML at ~/.codex/config.toml. HTTP MCP servers are configured per slug:

~/.codex/config.tomlTOML
[mcp_servers.weather]
url = "https://proxy.mcpmeter.com/weather"

[mcp_servers.weather.headers]
Authorization = "Bearer mcpm_live_…"
FALLBACK FOR STDIO-ONLY VERSIONS

Older Codex builds only support stdio MCPs. If yours doesn't recognise a remote url, bridge it with mcp-remote:

[mcp_servers.weather]
command = "npx"
args = ["-y", "mcp-remote", "https://proxy.mcpmeter.com/weather",
        "--header", "Authorization: Bearer ${MCPM_KEY}"]

Restart codex; the tools register on the next session.

CONTINUE.DEV

Continue uses ~/.continue/config.yaml. Add an mcpServers entry:

~/.continue/config.yamlYAML
mcpServers:
  - name: weather
    url: https://proxy.mcpmeter.com/weather
    headers:
      Authorization: Bearer mcpm_live_…

OPENAI APPS SDK

Pass the proxy URL and bearer header to connect:

openai_apps · pythonPYTHON
from openai_apps import connect
import os

mcp = connect(
    "https://proxy.mcpmeter.com/weather",
    headers={"Authorization": f"Bearer {os.environ['MCPM_KEY']}"},
)

OPENROUTER

OpenRouter exposes MCP servers via the tools array on chat-completions requests. Drop the proxy URL + bearer there:

openrouter · tool definitionJSON
{
  "tools": [{
    "type": "mcp",
    "mcp": {
      "server_url": "https://proxy.mcpmeter.com/weather",
      "headers": {
        "Authorization": "Bearer mcpm_live_…"
      }
    }
  }]
}

RAW HTTP

If you're building a custom MCP client, the proxy speaks JSON-RPC 2.0 over HTTP and SSE. The minimal "list tools" call:

curl

tools/listBASH
curl -X POST https://proxy.mcpmeter.com/weather \
  -H "Authorization: Bearer $MCPM_KEY" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Python (httpx)

tools/list · pythonPYTHON
import httpx, os

r = httpx.post(
    "https://proxy.mcpmeter.com/weather",
    headers={"Authorization": f"Bearer {os.environ['MCPM_KEY']}"},
    json={"jsonrpc": "2.0", "id": 1, "method": "tools/list"},
    timeout=30,
)
print(r.json())
print("billed:", r.headers["X-Mcpmeter-Billed"])

Node (fetch)

tools/list · nodeJS
const res = await fetch("https://proxy.mcpmeter.com/weather", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.MCPM_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ jsonrpc: "2.0", id: 1, method: "tools/list" }),
});
console.log(await res.json());
console.log("billed:", res.headers.get("X-Mcpmeter-Billed"));

Go

tools/list · goGO
package main

import (
    "bytes"; "net/http"; "os"; "io"; "fmt"
)

func main() {
    body := []byte(`{"jsonrpc":"2.0","id":1,"method":"tools/list"}`)
    req, _ := http.NewRequest("POST", "https://proxy.mcpmeter.com/weather", bytes.NewReader(body))
    req.Header.Set("Authorization", "Bearer "+os.Getenv("MCPM_KEY"))
    req.Header.Set("Content-Type", "application/json")

    res, _ := http.DefaultClient.Do(req)
    defer res.Body.Close()
    out, _ := io.ReadAll(res.Body)
    fmt.Println(string(out))
    fmt.Println("billed:", res.Header.Get("X-Mcpmeter-Billed"))
}

CALLING A TOOL

Once you've listed tools, call one with tools/call:

tools/callJSON-RPC
{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "get_current",
    "arguments": { "city": "Tbilisi" }
  }
}

The exact tool names and argument schemas come from tools/list — or browse the listing's detail page on the marketplace.