{
  "name": "PgBeam",
  "description": "A hosted, policy-enforced MCP server for safe Postgres access. Every tool call runs against the agent credential's policy (read-only enforcement, table allowlists, PII masking, query budgets, kill-switch) and is recorded in a full audit trail. Works with any Postgres, with zero code changes. Reachable over MCP (Streamable HTTP), not an A2A core binding: see the interface's protocolBinding.",
  "supportedInterfaces": [
    {
      "url": "https://{project}.proxy.pgbeam.app/mcp",
      "protocolBinding": "https://pgbeam.com/bindings/mcp-streamable-http/v1",
      "protocolVersion": "1.0"
    }
  ],
  "provider": {
    "organization": "PgBeam",
    "url": "https://pgbeam.com"
  },
  "version": "1.0.0",
  "documentationUrl": "https://pgbeam.com/docs/mcp",
  "iconUrl": "https://pgbeam.com/icon.svg",
  "capabilities": {
    "streaming": true,
    "pushNotifications": false,
    "extendedAgentCard": false,
    "extensions": [
      {
        "uri": "https://pgbeam.com/bindings/mcp-streamable-http/v1",
        "description": "The interface above is a Model Context Protocol server over Streamable HTTP. Connect with an MCP client, authenticate with a scoped PgBeam agent credential, and call the tools listed as skills. Full connection metadata is in the MCP server card.",
        "required": true,
        "params": {
          "mcpProtocolVersions": [
            "2025-11-25",
            "2025-06-18",
            "2025-03-26",
            "2024-11-05"
          ],
          "serverCard": "https://pgbeam.com/.well-known/mcp/server-card.json",
          "discovery": "https://pgbeam.com/.well-known/mcp.json"
        }
      }
    ]
  },
  "securitySchemes": {
    "agentCredential": {
      "httpAuthSecurityScheme": {
        "scheme": "Bearer",
        "description": "Per-agent bearer token (pba_...) issued in the PgBeam dashboard. See https://pgbeam.com/auth.md to provision one."
      }
    }
  },
  "securityRequirements": [
    {
      "schemes": {
        "agentCredential": {
          "list": []
        }
      }
    }
  ],
  "defaultInputModes": [
    "application/json",
    "text/plain"
  ],
  "defaultOutputModes": [
    "application/json",
    "text/plain"
  ],
  "skills": [
    {
      "id": "briefing",
      "name": "briefing",
      "description": "Get oriented in one call: a compact summary of the schema the credential may see, everything my_permissions reports, and short guidance on querying within those limits. No arguments.",
      "tags": [
        "postgres",
        "database",
        "sql",
        "mcp"
      ]
    },
    {
      "id": "query",
      "name": "query",
      "description": "Run SQL. Policy errors surface verbatim, written to be LLM-readable so the agent can correct itself.",
      "tags": [
        "postgres",
        "database",
        "sql",
        "mcp"
      ]
    },
    {
      "id": "validate_sql",
      "name": "validate_sql",
      "description": "Check a statement's table and column references against the schema the credential may see, without running it. Returns issues (unknown table, unknown column, ambiguous) with ranked suggestions, so the agent self-corrects a hallucinated name before it costs a failed query.",
      "tags": [
        "postgres",
        "database",
        "sql",
        "mcp"
      ]
    },
    {
      "id": "list_tables",
      "name": "list_tables",
      "description": "List tables in a schema, shaped for an LLM.",
      "tags": [
        "postgres",
        "database",
        "sql",
        "mcp"
      ]
    },
    {
      "id": "describe_table",
      "name": "describe_table",
      "description": "Columns, types, primary and foreign keys, indexes, and approximate row count.",
      "tags": [
        "postgres",
        "database",
        "sql",
        "mcp"
      ]
    },
    {
      "id": "explain",
      "name": "explain",
      "description": "EXPLAIN (FORMAT JSON) for a statement.",
      "tags": [
        "postgres",
        "database",
        "sql",
        "mcp"
      ]
    },
    {
      "id": "schema_catalog",
      "name": "schema_catalog",
      "description": "One call returns the whole schema, LLM-optimized: tables with columns, primary and foreign keys, indexes, approximate row counts, and comments. Only tables and columns this credential may see are included; masked columns are flagged. Paginates for large schemas.",
      "tags": [
        "postgres",
        "database",
        "sql",
        "mcp"
      ]
    },
    {
      "id": "my_permissions",
      "name": "my_permissions",
      "description": "What this credential is allowed to do, so the agent does not learn its limits by being blocked: access mode, permitted statement kinds, table allowlist and denylist, row-filtered tables, masked columns, budgets, and how writes are routed. No arguments, no database round-trip.",
      "tags": [
        "postgres",
        "database",
        "sql",
        "mcp"
      ]
    },
    {
      "id": "search_docs",
      "name": "search_docs",
      "description": "Search the PgBeam documentation and return matching pages as {title, url, snippet}. Find how PgBeam works: connecting, masking, query budgets, the kill-switch, and more.",
      "tags": [
        "postgres",
        "database",
        "sql",
        "mcp"
      ]
    },
    {
      "id": "read_doc",
      "name": "read_doc",
      "description": "Return the markdown of a single PgBeam documentation page by slug or url (chain from a search_docs result).",
      "tags": [
        "postgres",
        "database",
        "sql",
        "mcp"
      ]
    }
  ]
}