/ Directory / Playground / Gram
● Official speakeasy-api ⚡ Instant

Gram

by speakeasy-api · speakeasy-api/gram

Speakeasy-built control plane — observability, policy, and a registry for agents/MCPs/skills, with deep API-first roots.

Gram comes from Speakeasy (the API-SDK folks). It's a control plane: observe tool calls across agents, enforce policy, manage MCP servers, and treat skills as deployable artifacts. Designed for orgs treating agents like services.

Why use it

Key features

Live Demo

What it looks like in practice

ready

Install

Pick your client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "gram-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@speakeasy/gram"
      ]
    }
  }
}

Open Claude Desktop → Settings → Developer → Edit Config. Restart after saving.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "gram-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@speakeasy/gram"
      ]
    }
  }
}

Cursor uses the same mcpServers schema as Claude Desktop. Project config wins over global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "gram-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@speakeasy/gram"
      ]
    }
  }
}

Click the MCP Servers icon in the Cline sidebar, then "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "gram-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@speakeasy/gram"
      ]
    }
  }
}

Same shape as Claude Desktop. Restart Windsurf to pick up changes.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "gram-mcp",
      "command": "npx",
      "args": [
        "-y",
        "@speakeasy/gram"
      ]
    }
  ]
}

Continue uses an array of server objects rather than a map.

~/.config/zed/settings.json
{
  "context_servers": {
    "gram-mcp": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "@speakeasy/gram"
        ]
      }
    }
  }
}

Add to context_servers. Zed hot-reloads on save.

claude mcp add gram-mcp -- npx -y @speakeasy/gram

One-liner. Verify with claude mcp list. Remove with claude mcp remove.

Use Cases

Real-world ways to use Gram

See what your agents actually call

👤 Developers ⏱ ~15 min intermediate

When to use: You want a real audit of MCP tool usage across your org.

Flow
  1. Wire Gram
    Configure clients to route through Gram.✓ Copied
    → Telemetry flowing
  2. Inspect
    Open Gram dashboard; filter by tool/user.✓ Copied
    → Patterns surface

Outcome: Real picture of agent tool usage.

Combinations

Pair with other MCPs for X10 leverage

gram-mcp + agentgateway

Use Gram for control plane; agentgateway for high-perf data plane

Combine gram-mcp with agentgateway: Use Gram for control plane; agentgateway for high-perf data plane✓ Copied

Tools

What this MCP exposes

ToolInputsWhen to callCost
control-plane (see docs) No callable tools — sits beside the agent 1 call

Cost & Limits

What this costs to run

API quota
Plan-dependent
Tokens per call
N/A
Monetary
Free tier; paid for org features
Tip
Enable trace sampling — full traces get expensive

Security

Permissions, secrets, blast radius

Minimum scopes: gram-admin
Credential storage: OAuth + org tokens
Data egress: Speakeasy SaaS or self-host
Never grant: expose admin to engineering broadly

Troubleshooting

Common errors and fixes

Traces missing

Confirm clients are configured to emit; check sampling

Alternatives

Gram vs others

AlternativeWhen to use it insteadTradeoff
archestraYou want pure registryLess observability

More

Resources

📖 Read the official README on GitHub

🐙 Browse open issues

🔍 Browse all 400+ MCP servers and Skills