{
  "data": {
    "a": {
      "slug": "mcp-toolbox-databases",
      "name": "MCP Toolbox for Databases",
      "vendor": "Google",
      "vendorUrl": "https://mcp-toolbox.dev",
      "kind": "mcp",
      "category": "data",
      "summary": "MCP Toolbox for Databases is Google's open-source MCP server for more than 30 data sources, among them BigQuery, AlloyDB, Cloud SQL, Spanner and PostgreSQL. It runs as a binary or container with prebuilt or custom tools from tools.yaml.",
      "url": "https://www.anchorterminal.com/tools/mcp-toolbox-databases",
      "markdownUrl": "https://www.anchorterminal.com/tools/mcp-toolbox-databases.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/mcp-toolbox-databases.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/mcp-toolbox-databases.json",
      "dns": "mcp-toolbox-databases.grade.anchorterminal.com",
      "repo": "https://github.com/googleapis/mcp-toolbox",
      "license": "Apache-2.0",
      "transports": [
        "stdio",
        "streamable-http"
      ],
      "packages": [
        {
          "registry": "npm",
          "name": "@toolbox-sdk/server"
        },
        {
          "registry": "pypi",
          "name": "toolbox-core"
        },
        {
          "registry": "npm",
          "name": "@toolbox-sdk/core"
        }
      ],
      "auth": "mixed",
      "authNotes": "Toolbox holds the source credentials (database users and passwords from environment variables, or Google Application Default Credentials and IAM for Google sources). Clients need nothing by default. Optional MCP authorisation makes Toolbox an OAuth 2.1 resource server that validates JWT bearer tokens against a configured authorisation server and required scopes, and publishes protected-resource metadata. authServices can also bind tool parameters to a signed-in user's claims. The HTTP server listens on 127.0.0.1 by default, but --allowed-origins and --allowed-hosts default to *.",
      "pricing": "free",
      "pricingNotes": "Free and Apache-2.0, run on your own machine or your own Cloud Run service. Google Cloud sources bill for their own usage (BigQuery queries, Cloud SQL instances); Toolbox itself has no price.",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "Self-hosted MCP server with nothing to buy (checked 2026-11-06).",
        "endpoints": []
      },
      "toolCount": 29,
      "popularity": {
        "githubStars": 16818,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://mcp-toolbox.dev/",
      "llmsTxt": "https://mcp-toolbox.dev/llms.txt",
      "registryName": "io.github.googleapis/mcp-toolbox",
      "capabilities": [
        "db.sql",
        "db.document",
        "db.admin"
      ],
      "tags": [
        "self-hosted",
        "free",
        "open-source",
        "mcp",
        "stdio",
        "http",
        "mcp-registry",
        "llms-txt",
        "google-cloud",
        "bigquery",
        "postgres",
        "toolsets",
        "read-only-mode",
        "opentelemetry",
        "go"
      ],
      "lastRelease": "2026-11-05",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 77.7,
        "grade": "BB",
        "agentReady": true,
        "rank": 27,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 2,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 82,
          "maintenance": 95,
          "payments": 60,
          "reliability": 80,
          "schema": 85,
          "security": 75,
          "transparency": 64
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-06"
        },
        "negative": 0,
        "verdict": "One self-hosted server reaches 57 source types, with engine-level read-only locks, toolsets, optional OAuth 2.1 and fortnightly semver releases under Apache-2.0. Prebuilt sets list 9 to 41 tools, origin and host checks default to any, and 432 issues and pull requests are open.",
        "bestFor": "Agents and coding assistants that need one server across Google Cloud data services and common databases, or production agents with curated SQL tools.",
        "strengths": [
          "57 source types and 39 prebuilt configurations, from BigQuery and AlloyDB to PostgreSQL, MySQL, MongoDB and Snowflake",
          "Read-only mode locks the database session, hides write tools and sets readOnlyHint",
          "Custom tools in tools.yaml fix SQL and bind parameters to the signed-in user's claims",
          "Optional MCP authorisation as an OAuth 2.1 resource server with protected-resource metadata",
          "v1.16.0 on 5 November 2026 after eight releases in 90 days, in the MCP registry"
        ],
        "weaknesses": [
          "--allowed-origins and --allowed-hosts default to *, which the docs call unsafe",
          "Prebuilt PostgreSQL set lists 29 tools and AlloyDB 41 unless a toolset is chosen",
          "432 open issues and pull requests",
          "Some prebuilt descriptions are a single line with no guidance on when not to use the tool"
        ],
        "agentNotes": [
          "Load one toolset (such as data) rather than the whole prebuilt set to keep context small",
          "Turn on the source's read-only mode for exploration; write tools then disappear from tools/list",
          "Start the HTTP server with --allowed-hosts and --allowed-origins set; the defaults accept any",
          "Prefer custom tools with fixed SQL over execute_sql for production agents"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 77.7
          }
        ],
        "editorialScores": {
          "ergonomics": 82,
          "maintenance": 95,
          "payments": 60,
          "reliability": 80,
          "schema": 85,
          "security": 75,
          "transparency": 77
        },
        "provenanceScore": 50,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-06",
            "maintenance": "2026-11-06",
            "payments": "2026-11-06",
            "reliability": "2026-11-06",
            "schema": "2026-11-06",
            "security": "2026-11-06",
            "transparency": "2026-11-06"
          },
          "last": "2026-11-06",
          "oldest": "2026-11-06",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "npx @toolbox-sdk/server --prebuilt postgres --stdio",
        "config": {
          "mcpServers": {
            "postgres": {
              "args": [
                "-y",
                "@toolbox-sdk/server",
                "--prebuilt",
                "postgres",
                "--stdio"
              ],
              "command": "npx",
              "env": {
                "POSTGRES_DATABASE": "mydb",
                "POSTGRES_HOST": "localhost",
                "POSTGRES_PASSWORD": "password",
                "POSTGRES_USER": "user"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/db.sql",
        "tool": "https://letme.dev/mcp-toolbox-databases"
      },
      "area": "developer",
      "provenance": {
        "legalEntity": "Google LLC",
        "domain": "mcp-toolbox.dev",
        "domainRegistered": "",
        "endpointOnVendorDomain": true,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://github.com/googleapis/mcp-toolbox/blob/main/CHANGELOG.md",
        "securityTxt": "none",
        "checked": "2026-11-06",
        "notes": [
          "Source files carry \"Copyright 2025 Google LLC\" under Apache-2.0, and the repository is in the googleapis organisation.",
          "SECURITY.md routes reports to g.co/vulnz with a five-working-day response and discloses through GitHub Security Advisories.",
          "mcp-toolbox.dev/robots.txt allows all crawlers and serves llms.txt. Its registration date wasn't found through RDAP.",
          "No terms or privacy policy specific to Toolbox, which sends nothing to Google unless GCP telemetry export or a Google source is configured."
        ],
        "score": 50
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/mcp-toolbox-databases.json",
      "live": {
        "slug": "mcp-toolbox-databases",
        "versions": [
          {
            "registry": "github",
            "name": "googleapis/mcp-toolbox",
            "version": "v1.16.0",
            "released": "2026-11-05",
            "seenAt": "2026-11-06T23:43:21.921228545Z"
          },
          {
            "registry": "mcp-registry",
            "name": "io.github.googleapis/mcp-toolbox",
            "version": "1.16.0",
            "seenAt": "2026-11-07T18:16:28.95801333Z"
          },
          {
            "registry": "npm",
            "name": "@toolbox-sdk/core",
            "version": "1.2.0",
            "seenAt": "2026-11-06T23:43:21.731206096Z"
          },
          {
            "registry": "npm",
            "name": "@toolbox-sdk/server",
            "version": "1.16.0",
            "seenAt": "2026-11-06T23:43:19.586944944Z"
          },
          {
            "registry": "pypi",
            "name": "toolbox-core",
            "version": "1.4.0",
            "released": "2026-09-01",
            "seenAt": "2026-11-06T23:43:20.432816729Z"
          }
        ],
        "githubStars": 16819,
        "npmWeekly": 37825,
        "pypiWeekly": 81244,
        "securityTxt": {
          "url": "https://mcp-toolbox.dev/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T15:59:31.533747335Z"
        },
        "llmsTxt": {
          "url": "https://mcp-toolbox.dev/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:32:57.733544718Z"
        },
        "pages": [
          {
            "url": "https://raw.githubusercontent.com/googleapis/mcp-toolbox/main/CHANGELOG.md",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:21:14.273833915Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "a1a131225627"
          }
        ],
        "updatedAt": "2026-11-07T18:16:28.95801333Z"
      }
    },
    "answer": "MCP Toolbox for Databases scores 77.7 (BB) on agent readiness against Postgres MCP Pro's 37 (F), and leads in 5 of 7 scored categories.",
    "b": {
      "slug": "postgres-mcp-pro",
      "name": "Postgres MCP Pro",
      "vendor": "Crystal DBA",
      "vendorUrl": "https://www.crystaldba.ai",
      "kind": "mcp",
      "category": "data",
      "summary": "PostgreSQL server with configurable read/write access plus DBA tooling (index tuning with hypopg, EXPLAIN analysis, top-query and workload analysis, health checks).",
      "url": "https://www.anchorterminal.com/tools/postgres-mcp-pro",
      "markdownUrl": "https://www.anchorterminal.com/tools/postgres-mcp-pro.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/postgres-mcp-pro.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/postgres-mcp-pro.json",
      "dns": "postgres-mcp-pro.grade.anchorterminal.com",
      "repo": "https://github.com/crystaldba/postgres-mcp",
      "license": "MIT",
      "transports": [
        "stdio",
        "sse"
      ],
      "packages": [
        {
          "registry": "pypi",
          "name": "postgres-mcp"
        },
        {
          "registry": "oci",
          "name": "crystaldba/postgres-mcp"
        }
      ],
      "auth": "none",
      "authNotes": "No MCP-level auth; connects with a Postgres DATABASE_URI (environment variable or argument). The default access mode is unrestricted. --access-mode=restricted parses each statement against an allowlist, forces read-only transactions and stops queries after 30 seconds; an open report (#178) shows it can still read server files through a function in the FROM clause.",
      "pricing": "free",
      "pricingNotes": "Open source; no hosted offering.",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No payments.",
        "endpoints": []
      },
      "toolCount": 9,
      "popularity": {
        "githubStars": 3200,
        "npmWeekly": null,
        "pypiWeekly": 228655,
        "asOf": "2026-09-26"
      },
      "docsUrl": "https://github.com/crystaldba/postgres-mcp#readme",
      "capabilities": [
        "db.sql",
        "db.admin"
      ],
      "tags": [
        "community",
        "local",
        "open-source",
        "python",
        "read-only-mode"
      ],
      "lastRelease": "2025-05-16",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 37,
        "grade": "F",
        "agentReady": false,
        "rank": 1357,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 16,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 57,
          "maintenance": 8,
          "payments": 60,
          "reliability": 41,
          "schema": 56,
          "security": 26,
          "transparency": 65
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": -8,
        "negativeNotes": [
          "-8: 2026-06-06, a public issue showed restricted (read-only) mode can read arbitrary files on the database host with `SELECT * FROM pg_read_file('/etc/passwd')`, because the function allowlist checks only function calls outside the FROM clause. It needs a role with pg_read_server_files or superuser. Nearly four months later the issue has no maintainer reply and the fix (#200, opened 2026-08-16) is unmerged (https://github.com/crystaldba/postgres-mcp/issues/178; https://github.com/crystaldba/postgres-mcp/pull/200)."
        ],
        "verdict": "Index tuning with hypopg, EXPLAIN with hypothetical indexes, top queries and seven health checks. No release since 0.3.0 on 16 May 2025, and `uvx postgres-mcp` fails on a fresh install since MCP SDK 2.0.",
        "bestFor": "An operator who wants an agent to diagnose and tune a self-managed Postgres, with a pinned install and a low-privilege role.",
        "strengths": [
          "Index tuning with hypopg, EXPLAIN with hypothetical indexes, top queries and seven health checks",
          "Restricted mode parses statements with pglast, blocks `COMMIT`, `ROLLBACK` and `EXPLAIN ANALYZE`, runs read-only and stops queries after 30 seconds",
          "Nine tools at roughly 1,300 tokens of definitions by our estimate",
          "MIT licence, Docker image and CI with lint, type checks and tests against a real Postgres"
        ],
        "weaknesses": [
          "No release since 0.3.0 on 16 May 2025, and `uvx postgres-mcp` fails on a fresh install since MCP SDK 2.0",
          "Unrestricted is the default and every README example uses it",
          "Open restricted-mode bypass (#178) reads server files when the role has pg_read_server_files or superuser",
          "No security policy, no maintainer reply on the security report, 37 open issues and 35 open pull requests",
          "`execute_sql` has no row limit, and the released package carries no tool annotations"
        ],
        "agentNotes": [
          "Launch with `uvx --with 'mcp\u003c2' postgres-mcp`. Plain `uvx postgres-mcp` now fails with \"No module named 'mcp.server.fastmcp'\"",
          "Pass `--access-mode=restricted` explicitly. The default is unrestricted",
          "Connect with a role that lacks superuser and pg_read_server_files. Restricted mode alone doesn't stop server file reads",
          "Put `LIMIT` in every `execute_sql` query. The server returns every row",
          "Don't set `analyze: true` on `explain_query` for writes in unrestricted mode. It runs the statement"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 2.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "F",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 37
          }
        ],
        "editorialScores": {
          "ergonomics": 57,
          "maintenance": 8,
          "payments": 60,
          "reliability": 41,
          "schema": 56,
          "security": 26,
          "transparency": 65
        },
        "provenanceScore": 64,
        "checked": {
          "categories": {
            "ergonomics": "2026-10-01",
            "maintenance": "2026-10-01",
            "payments": "2026-10-01",
            "reliability": "2026-10-01",
            "schema": "2026-10-01",
            "security": "2026-10-01",
            "transparency": "2026-10-01"
          },
          "last": "2026-10-01",
          "lastMoved": "2026-10-27",
          "oldest": "2026-10-01",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "claudeCode": "claude mcp add postgres -e DATABASE_URI=${DATABASE_URI} -- uvx --with 'mcp\u003c2' postgres-mcp --access-mode=restricted",
        "config": {
          "mcpServers": {
            "postgres": {
              "args": [
                "--with",
                "mcp\u003c2",
                "postgres-mcp",
                "--access-mode=restricted"
              ],
              "command": "uvx",
              "env": {
                "DATABASE_URI": "${DATABASE_URI}"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/db.sql",
        "tool": "https://letme.dev/postgres-mcp-pro"
      },
      "area": "developer",
      "provenance": {
        "legalEntity": "Crystal Corp.",
        "domain": "crystaldba.ai",
        "domainRegistered": "2024-11-25",
        "domainNote": "The licence names Crystal Corp. www.crystaldba.ai loaded on 1 October 2026 but showed no terms, privacy policy or contact links. A commenter on issue #187 says Crystal DBA was acquired by Temporal, which we couldn't confirm.",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://github.com/crystaldba/postgres-mcp/releases",
        "securityTxt": "none",
        "checked": "2026-10-01",
        "score": 64
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/postgres-mcp-pro.json",
      "live": {
        "slug": "postgres-mcp-pro",
        "versions": [
          {
            "registry": "github",
            "name": "crystaldba/postgres-mcp",
            "version": "v0.3.0",
            "released": "2025-05-16",
            "seenAt": "2026-11-06T23:57:33.769190094Z"
          },
          {
            "registry": "pypi",
            "name": "postgres-mcp",
            "version": "0.3.0",
            "released": "2025-05-16",
            "seenAt": "2026-11-06T23:57:33.526788218Z"
          }
        ],
        "githubStars": 3460,
        "pypiWeekly": 149294,
        "securityTxt": {
          "url": "https://crystaldba.ai/.well-known/security.txt",
          "state": "unknown",
          "checkedAt": "2026-11-07T16:01:20.401737924Z"
        },
        "domain": {
          "domain": "crystaldba.ai",
          "registered": "2024-11-25",
          "source": "https://rdap.identitydigital.services/rdap/domain/crystaldba.ai",
          "checkedAt": "2026-11-01T14:22:09.560132777Z"
        },
        "github": {
          "repo": "crystaldba/postgres-mcp",
          "checkedAt": "2026-11-02T08:42:28.299989226Z",
          "stars": 3449,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-08-17T05:06:35Z",
          "openIssues": 55,
          "openPRs": 43,
          "issuesOpened90d": 17,
          "issuesClosed90d": 2,
          "prsMerged90d": 1,
          "ci": {
            "branch": "main",
            "runs": 9,
            "success": 8,
            "failure": 1,
            "other": 0,
            "latest": "success",
            "latestAt": "2026-08-16T05:39:03Z"
          },
          "replies": {
            "sampled": 25,
            "unanswered": 23,
            "medianDays": 9.3
          }
        },
        "updatedAt": "2026-11-07T16:01:20.401737924Z"
      }
    },
    "edges": [
      {
        "by": 87,
        "category": "maintenance",
        "leads": "mcp-toolbox-databases",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "v1.16.0 on 5 November 2026, one day before this check (30). Eight releases from v1.10.0 (27 August) to v1.16.0 in the 90 days (20). Pull requests merge daily and new tools land in each fortnightly release, though 432 issues and pull requests are open (20). io.github.googleapis/mcp-toolbox is in the official registry at 1.16.0 (15). Release automation, lint, tests and conformance workflows (10). 30 + 20 + 20 + 15 + 10 = 95.",
          "b": "Last release 0.3.0 on 16 May 2025 (0). No release in the last 90 days. Main has a batch of 11 merges from 19 to 22 January 2026 and one commit on 15 August 2026 (0). 37 open issues and 35 open pull requests, a request for a release (#162) open since March 2026 and no maintainer reply on the security report. A commenter on #187 says the project is unmaintained since Crystal DBA's acquisition by Temporal, which we couldn't confirm (5). Not in the official MCP registry. A lookup for io.github.crystaldba/postgres-mcp returns 404 (0). Dependencies were refreshed on main in January, but the published package has the unbounded `mcp` dependency that now breaks it (3)."
        },
        "scores": {
          "a": 95,
          "b": 8
        }
      },
      {
        "by": 49,
        "category": "security",
        "leads": "mcp-toolbox-databases",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "Source credentials stay in Toolbox, Google sources use IAM, and optional MCP authorisation validates OAuth 2.1 JWTs with required scopes. --allowed-origins and --allowed-hosts default to *, which the CLI docs themselves call unsafe even on localhost, though the default bind is 127.0.0.1 (20). Read-only mode is enforced at the engine, write tools are suppressed, and custom tools can fix SQL and bind parameters to the signed-in user (18). The security docs cover prompt injection and screening through Model Armor (12). OpenTelemetry traces and metrics per call when exported (10). Google's vulnerability intake with a stated response time and GitHub advisories (15). 20 + 18 + 12 + 10 + 15 = 75.",
          "b": "One database URI from `DATABASE_URI` or the command line, with whatever privileges its role has. The SSE and HTTP transports have no authentication and bind to localhost by default (10). Restricted mode parses every statement with pglast against an allowlist of statement types and functions, runs it in a read-only transaction and stops it after 30 seconds. But unrestricted is the default, every config example in the README uses it, and #178 (opened 6 June 2026) shows restricted mode reading server files through a function in the FROM clause. The fix (#200) is unmerged (10). The README discusses LLM-generated damage at length but says nothing about instructions hidden in table data, and rows reach the model unmarked (3). Restricted-mode queries are tagged `/* crystaldba */`, so they can be picked out in Postgres logs and pg_stat_statements (3). No SECURITY.md, and the #178 reporter says private advisories aren't enabled (0)."
        },
        "scores": {
          "a": 75,
          "b": 26
        }
      },
      {
        "by": 39,
        "category": "reliability",
        "leads": "mcp-toolbox-databases",
        "name": "Reliability",
        "reasons": {
          "a": "Scored as local software the owner runs. A Go binary, a container in Artifact Registry and @toolbox-sdk/server on npm, with install paths per platform (20). Tests, lint, conformance and nightly tier-report workflows in the repository; the pass state wasn't read (15). 432 open issues and pull requests on a repository with 16,818 stars and releases every two weeks, triaged with labels, though the backlog is large (15). Semantic versioning with a published policy, release-please CHANGELOG and an UPGRADING.md (15). 1.x since well before this check, v1.16.0 now (15). 20 + 15 + 15 + 15 + 15 = 80.",
          "b": "Scored as a local stdio package. postgres-mcp on PyPI and the crystaldba/postgres-mcp Docker image, Python 3.12 or later stated. But PyPI's only current release, 0.3.0 from May 2025, asks for `mcp[cli]\u003e=1.5.0` with no ceiling, and since MCP Python SDK 2.0.0 shipped on 28 July 2026 a fresh `uvx postgres-mcp` pulls it and fails with \"No module named 'mcp.server.fastmcp'\" (#187). The `\u003c2.0` pin landed on main on 15 August and hasn't been released (10). CI runs ruff, pyright and pytest with a Postgres container on every push and pull request, with 25 unit test files. We couldn't see whether main passes (20). 37 open issues, among them the broken install, failures on custom schemas (#181) and two unmerged pull requests for connection-pool leaks (#177, #195) (6). Semver tags with no changelog (5). Pre-1.0 (0)."
        },
        "scores": {
          "a": 80,
          "b": 41
        }
      },
      {
        "by": 29,
        "category": "schema",
        "leads": "mcp-toolbox-databases",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "Every tool's parameters are typed in tools.yaml and published as JSON Schema over MCP (25). mcp-toolbox.dev serves llms.txt (10). Prebuilt descriptions vary from one line (\"Use this tool to execute a single SQL statement.\") to detailed, and few say when not to use a tool (12). Typed parameters with required flags; execute_sql takes free SQL (12). Many examples, samples and codelabs; error responses are thinly documented (11). Semver, a dated CHANGELOG and versioned docs (15). 25 + 10 + 12 + 12 + 11 + 15 = 85.",
          "b": "FastMCP builds typed JSON Schema for all nine tools from Python type hints (25 less 5, since `hypothetical_indexes` is a list of free-form dicts) (20). No llms.txt. The README is Markdown on GitHub with a tool table (5). `explain_query` warns that `analyze` runs the query and `analyze_db_health` lists its checks, but most descriptions are one line (\"List objects in a schema\") and none says when not to use a tool (10). `method` is an enum. `object_type`, `health_type` and `sort_by` are free strings with valid values only in the prose, `limit` has no bounds and `execute_sql` gives `sql` a default of \"all\" (7). `explain_query` carries two worked examples. Errors come back as \"Error: \u003cPostgres message\u003e\" text (9). Semver tags, no changelog (5)."
        },
        "scores": {
          "a": 85,
          "b": 56
        }
      },
      {
        "by": 25,
        "category": "ergonomics",
        "leads": "mcp-toolbox-databases",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "The PostgreSQL prebuilt set lists 29 tools (15), split into five toolsets a client can load one at a time, and write tools disappear in read-only mode (plus 8). Results are bounded per tool, some prebuilt tools take limits, and BigQuery tools compact empty schema fields (14). Errors come back as tool errors; paths are sanitised from file errors since 1.15.0 (12). readOnlyHint and destructiveHint are set per tool and switch with the source's read-only state (18). Prebuilt sets need only environment variables, and SDKs exist in Python, JavaScript, Go and Java (15). 23 + 14 + 12 + 18 + 15 = 82.",
          "b": "Nine tools with about 2,500 characters of descriptions, roughly 1,300 tokens of definitions by our estimate (23). `get_top_queries` takes a `limit`, but `execute_sql` returns every row and the index tools append a `_langfuse_trace` block by default unless `POSTGRES_MCP_INCLUDE_LANGFUSE_TRACE=false` (6). Restricted mode explains its refusals (`Only SELECT, ANALYZE, VACUUM, EXPLAIN, SHOW and other read-only statements are allowed`) and its 30-second timeout suggests simplifying the query. Errors arrive as ordinary text rather than flagged tool errors (13). Annotations exist on main since January 2026 but not in the released 0.3.0, and on main `explain_query` claims `readOnlyHint` though `analyze: true` executes the statement in unrestricted mode (5). Sensible defaults, at most one required parameter per tool. Python only, plus Docker (10)."
        },
        "scores": {
          "a": 82,
          "b": 57
        }
      }
    ],
    "facts": [
      {
        "a": "MCP server",
        "b": "MCP server",
        "name": "Kind"
      },
      {
        "a": "Google",
        "b": "Crystal DBA",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "stdio, Streamable HTTP",
        "b": "stdio, SSE (legacy)",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "None",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Free",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Apache-2.0",
        "b": "MIT",
        "name": "Licence"
      },
      {
        "a": "29",
        "b": "9",
        "name": "Tools exposed"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "io.github.googleapis/mcp-toolbox",
        "b": "not listed",
        "name": "MCP registry"
      },
      {
        "a": "2026-11-05",
        "b": "2025-05-16",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "no document linked",
        "name": "Terms last updated"
      },
      {
        "a": "no document linked",
        "b": "no document linked",
        "name": "Privacy policy last updated"
      },
      {
        "a": "17k stars",
        "b": "3.2k stars, 229k PyPI/wk",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "2.5/5 (2)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "MCP Toolbox for Databases scores 77.7 (BB) on agent readiness against Postgres MCP Pro's 37 (F), and leads in 5 of 7 scored categories.",
        "question": "Which is better for AI agents, MCP Toolbox for Databases or Postgres MCP Pro?"
      },
      {
        "answer": "MCP Toolbox for Databases takes an API key or an OAuth sign-in. Postgres MCP Pro needs no key.",
        "question": "Do MCP Toolbox for Databases and Postgres MCP Pro need an API key?"
      },
      {
        "answer": "MCP Toolbox for Databases runs on your own machine, with no hosted endpoint listed. Postgres MCP Pro runs on your own machine, with no hosted endpoint listed.",
        "question": "Can an agent call MCP Toolbox for Databases and Postgres MCP Pro without installing anything?"
      },
      {
        "answer": "Yes. MCP Toolbox for Databases is open source (Apache-2.0). Postgres MCP Pro is open source (MIT).",
        "question": "Are MCP Toolbox for Databases and Postgres MCP Pro open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 80 against 41",
          "Schema \u0026 documentation, 85 against 56",
          "Agent ergonomics, 82 against 57",
          "Security \u0026 auth, 75 against 26",
          "Maintenance \u0026 community, 95 against 8"
        ],
        "also": [
          "Agent-ready, a grade of BB or better",
          "No incidents deducted, where Postgres MCP Pro loses 8 points for them"
        ],
        "goodFor": "Agents and coding assistants that need one server across Google Cloud data services and common databases, or production agents with curated SQL tools.",
        "slug": "mcp-toolbox-databases",
        "watchFor": "--allowed-origins and --allowed-hosts default to *, which the docs call unsafe"
      },
      {
        "aheadOn": null,
        "also": [
          "No key needed to call it"
        ],
        "goodFor": "An operator who wants an agent to diagnose and tune a self-managed Postgres, with a pinned install and a low-privilege role.",
        "slug": "postgres-mcp-pro",
        "watchFor": "No release since 0.3.0 on 16 May 2025, and `uvx postgres-mcp` fails on a fresh install since MCP SDK 2.0"
      }
    ],
    "history": {
      "mcp-toolbox-databases": null,
      "postgres-mcp-pro": [
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-27",
          "delta": 0.3,
          "from": 36.7,
          "fromGrade": "F",
          "to": 37,
          "toGrade": "F"
        }
      ]
    },
    "job": {
      "capability": "db.sql",
      "name": "SQL databases"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/clickhouse-mcp-server-vs-mcp-toolbox-databases.json",
        "title": "ClickHouse MCP Server vs MCP Toolbox for Databases",
        "url": "https://www.anchorterminal.com/compare/clickhouse-mcp-server-vs-mcp-toolbox-databases"
      },
      {
        "json": "https://www.anchorterminal.com/compare/clickhouse-mcp-server-vs-postgres-mcp-pro.json",
        "title": "ClickHouse MCP Server vs Postgres MCP Pro",
        "url": "https://www.anchorterminal.com/compare/clickhouse-mcp-server-vs-postgres-mcp-pro"
      },
      {
        "json": "https://www.anchorterminal.com/compare/dbhub-vs-mcp-toolbox-databases.json",
        "title": "DBHub vs MCP Toolbox for Databases",
        "url": "https://www.anchorterminal.com/compare/dbhub-vs-mcp-toolbox-databases"
      },
      {
        "json": "https://www.anchorterminal.com/compare/dbhub-vs-postgres-mcp-pro.json",
        "title": "DBHub vs Postgres MCP Pro",
        "url": "https://www.anchorterminal.com/compare/dbhub-vs-postgres-mcp-pro"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mcp-toolbox-databases-vs-neon-mcp.json",
        "title": "MCP Toolbox for Databases vs Neon MCP Server",
        "url": "https://www.anchorterminal.com/compare/mcp-toolbox-databases-vs-neon-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mcp-toolbox-databases-vs-obsessiondb.json",
        "title": "MCP Toolbox for Databases vs ObsessionDB",
        "url": "https://www.anchorterminal.com/compare/mcp-toolbox-databases-vs-obsessiondb"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mcp-toolbox-databases-vs-planetscale-mcp.json",
        "title": "MCP Toolbox for Databases vs PlanetScale MCP Server",
        "url": "https://www.anchorterminal.com/compare/mcp-toolbox-databases-vs-planetscale-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mcp-toolbox-databases-vs-postgres-reference-server-archived.json",
        "title": "MCP Toolbox for Databases vs PostgreSQL (archived MCP reference server)",
        "url": "https://www.anchorterminal.com/compare/mcp-toolbox-databases-vs-postgres-reference-server-archived"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mcp-toolbox-databases-vs-snowflake-managed.json",
        "title": "MCP Toolbox for Databases vs Snowflake-managed MCP server",
        "url": "https://www.anchorterminal.com/compare/mcp-toolbox-databases-vs-snowflake-managed"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mcp-toolbox-databases-vs-supabase-mcp.json",
        "title": "MCP Toolbox for Databases vs Supabase API + MCP",
        "url": "https://www.anchorterminal.com/compare/mcp-toolbox-databases-vs-supabase-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/neon-mcp-vs-postgres-mcp-pro.json",
        "title": "Neon MCP Server vs Postgres MCP Pro",
        "url": "https://www.anchorterminal.com/compare/neon-mcp-vs-postgres-mcp-pro"
      },
      {
        "json": "https://www.anchorterminal.com/compare/obsessiondb-vs-postgres-mcp-pro.json",
        "title": "ObsessionDB vs Postgres MCP Pro",
        "url": "https://www.anchorterminal.com/compare/obsessiondb-vs-postgres-mcp-pro"
      },
      {
        "json": "https://www.anchorterminal.com/compare/planetscale-mcp-vs-postgres-mcp-pro.json",
        "title": "PlanetScale MCP Server vs Postgres MCP Pro",
        "url": "https://www.anchorterminal.com/compare/planetscale-mcp-vs-postgres-mcp-pro"
      },
      {
        "json": "https://www.anchorterminal.com/compare/postgres-mcp-pro-vs-postgres-reference-server-archived.json",
        "title": "Postgres MCP Pro vs PostgreSQL (archived MCP reference server)",
        "url": "https://www.anchorterminal.com/compare/postgres-mcp-pro-vs-postgres-reference-server-archived"
      },
      {
        "json": "https://www.anchorterminal.com/compare/postgres-mcp-pro-vs-snowflake-managed.json",
        "title": "Postgres MCP Pro vs Snowflake-managed MCP server",
        "url": "https://www.anchorterminal.com/compare/postgres-mcp-pro-vs-snowflake-managed"
      },
      {
        "json": "https://www.anchorterminal.com/compare/postgres-mcp-pro-vs-supabase-mcp.json",
        "title": "Postgres MCP Pro vs Supabase API + MCP",
        "url": "https://www.anchorterminal.com/compare/postgres-mcp-pro-vs-supabase-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mongodb-mcp-vs-postgres-mcp-pro.json",
        "title": "MongoDB MCP Server vs Postgres MCP Pro",
        "url": "https://www.anchorterminal.com/compare/mongodb-mcp-vs-postgres-mcp-pro"
      },
      {
        "json": "https://www.anchorterminal.com/compare/postgres-mcp-pro-vs-redis-mcp.json",
        "title": "Postgres MCP Pro vs Redis MCP",
        "url": "https://www.anchorterminal.com/compare/postgres-mcp-pro-vs-redis-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mcp-toolbox-databases-vs-mongodb-mcp.json",
        "title": "MCP Toolbox for Databases vs MongoDB MCP Server",
        "url": "https://www.anchorterminal.com/compare/mcp-toolbox-databases-vs-mongodb-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mcp-toolbox-databases-vs-redis-mcp.json",
        "title": "MCP Toolbox for Databases vs Redis MCP",
        "url": "https://www.anchorterminal.com/compare/mcp-toolbox-databases-vs-redis-mcp"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 39,
        "edge": "mcp-toolbox-databases",
        "key": "reliability",
        "mcp-toolbox-databases": 80,
        "name": "Reliability",
        "postgres-mcp-pro": 41,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 29,
        "edge": "mcp-toolbox-databases",
        "key": "schema",
        "mcp-toolbox-databases": 85,
        "name": "Schema \u0026 documentation",
        "postgres-mcp-pro": 56,
        "weight": 13
      },
      {
        "by": 25,
        "edge": "mcp-toolbox-databases",
        "key": "ergonomics",
        "mcp-toolbox-databases": 82,
        "name": "Agent ergonomics",
        "postgres-mcp-pro": 57,
        "weight": 13
      },
      {
        "by": 49,
        "edge": "mcp-toolbox-databases",
        "key": "security",
        "mcp-toolbox-databases": 75,
        "name": "Security \u0026 auth",
        "postgres-mcp-pro": 26,
        "weight": 14
      },
      {
        "by": 0,
        "edge": "",
        "key": "payments",
        "mcp-toolbox-databases": 60,
        "name": "Payments \u0026 pricing",
        "postgres-mcp-pro": 60,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 87,
        "edge": "mcp-toolbox-databases",
        "key": "maintenance",
        "mcp-toolbox-databases": 95,
        "name": "Maintenance \u0026 community",
        "postgres-mcp-pro": 8,
        "weight": 7
      },
      {
        "by": 1,
        "edge": "postgres-mcp-pro",
        "key": "transparency",
        "mcp-toolbox-databases": 64,
        "name": "Transparency \u0026 trust",
        "postgres-mcp-pro": 65,
        "weight": 7
      }
    ],
    "summary": "MCP Toolbox for Databases scores 77.7 (BB) on agent readiness against Postgres MCP Pro's 37 (F), and leads in 5 of 7 scored categories. Both do sql databases.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "mcp-toolbox-databases": "One self-hosted server reaches 57 source types, with engine-level read-only locks, toolsets, optional OAuth 2.1 and fortnightly semver releases under Apache-2.0. Prebuilt sets list 9 to 41 tools, origin and host checks default to any, and 432 issues and pull requests are open.",
      "postgres-mcp-pro": "Index tuning with hypopg, EXPLAIN with hypothetical indexes, top queries and seven health checks. No release since 0.3.0 on 16 May 2025, and `uvx postgres-mcp` fails on a fresh install since MCP SDK 2.0."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/mcp-toolbox-databases-vs-postgres-mcp-pro",
    "json": "https://www.anchorterminal.com/compare/mcp-toolbox-databases-vs-postgres-mcp-pro.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/mcp-toolbox-databases-vs-postgres-mcp-pro.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/mcp-toolbox-databases-vs-postgres-mcp-pro.min.md"
  },
  "markdown": "MCP Toolbox for Databases scores 77.7 (BB) on agent readiness against Postgres MCP Pro's 37 (F), and leads in 5 of 7 scored categories. Both do sql databases.\n\n- MCP Toolbox for Databases: grade BB, 77.7/100, rank #27 of 1486. Markdown https://www.anchorterminal.com/tools/mcp-toolbox-databases.md · JSON https://www.anchorterminal.com/api/v1/tools/mcp-toolbox-databases.json\n- Postgres MCP Pro: grade F, 37/100, rank #1357 of 1486. Markdown https://www.anchorterminal.com/tools/postgres-mcp-pro.md · JSON https://www.anchorterminal.com/api/v1/tools/postgres-mcp-pro.json\n- Best database, file and memory tools for AI agents: https://www.anchorterminal.com/best/data/index.md\n- All 97 databases comparisons: https://www.anchorterminal.com/compare/data/index.md\n\n## Which one, for what\n\n### MCP Toolbox for Databases (BB)\n\nGood for: Agents and coding assistants that need one server across Google Cloud data services and common databases, or production agents with curated SQL tools.\n\nAhead on:\n- Reliability, 80 against 41\n- Schema \u0026 documentation, 85 against 56\n- Agent ergonomics, 82 against 57\n- Security \u0026 auth, 75 against 26\n- Maintenance \u0026 community, 95 against 8\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\n- No incidents deducted, where Postgres MCP Pro loses 8 points for them\n\nWatch for: --allowed-origins and --allowed-hosts default to *, which the docs call unsafe\n\n### Postgres MCP Pro (F)\n\nGood for: An operator who wants an agent to diagnose and tune a self-managed Postgres, with a pinned install and a low-privilege role.\n\nAlso in its favour:\n- No key needed to call it\n\nWatch for: No release since 0.3.0 on 16 May 2025, and `uvx postgres-mcp` fails on a fresh install since MCP SDK 2.0\n\n\n## Why the edge\n\n### Maintenance \u0026 community: MCP Toolbox for Databases +87\n\n- MCP Toolbox for Databases (95): v1.16.0 on 5 November 2026, one day before this check (30). Eight releases from v1.10.0 (27 August) to v1.16.0 in the 90 days (20). Pull requests merge daily and new tools land in each fortnightly release, though 432 issues and pull requests are open (20). io.github.googleapis/mcp-toolbox is in the official registry at 1.16.0 (15). Release automation, lint, tests and conformance workflows (10). 30 + 20 + 20 + 15 + 10 = 95.\n- Postgres MCP Pro (8): Last release 0.3.0 on 16 May 2025 (0). No release in the last 90 days. Main has a batch of 11 merges from 19 to 22 January 2026 and one commit on 15 August 2026 (0). 37 open issues and 35 open pull requests, a request for a release (#162) open since March 2026 and no maintainer reply on the security report. A commenter on #187 says the project is unmaintained since Crystal DBA's acquisition by Temporal, which we couldn't confirm (5). Not in the official MCP registry. A lookup for io.github.crystaldba/postgres-mcp returns 404 (0). Dependencies were refreshed on main in January, but the published package has the unbounded `mcp` dependency that now breaks it (3).\n\n### Security \u0026 auth: MCP Toolbox for Databases +49\n\n- MCP Toolbox for Databases (75): Source credentials stay in Toolbox, Google sources use IAM, and optional MCP authorisation validates OAuth 2.1 JWTs with required scopes. --allowed-origins and --allowed-hosts default to *, which the CLI docs themselves call unsafe even on localhost, though the default bind is 127.0.0.1 (20). Read-only mode is enforced at the engine, write tools are suppressed, and custom tools can fix SQL and bind parameters to the signed-in user (18). The security docs cover prompt injection and screening through Model Armor (12). OpenTelemetry traces and metrics per call when exported (10). Google's vulnerability intake with a stated response time and GitHub advisories (15). 20 + 18 + 12 + 10 + 15 = 75.\n- Postgres MCP Pro (26): One database URI from `DATABASE_URI` or the command line, with whatever privileges its role has. The SSE and HTTP transports have no authentication and bind to localhost by default (10). Restricted mode parses every statement with pglast against an allowlist of statement types and functions, runs it in a read-only transaction and stops it after 30 seconds. But unrestricted is the default, every config example in the README uses it, and #178 (opened 6 June 2026) shows restricted mode reading server files through a function in the FROM clause. The fix (#200) is unmerged (10). The README discusses LLM-generated damage at length but says nothing about instructions hidden in table data, and rows reach the model unmarked (3). Restricted-mode queries are tagged `/* crystaldba */`, so they can be picked out in Postgres logs and pg_stat_statements (3). No SECURITY.md, and the #178 reporter says private advisories aren't enabled (0).\n\n### Reliability: MCP Toolbox for Databases +39\n\n- MCP Toolbox for Databases (80): Scored as local software the owner runs. A Go binary, a container in Artifact Registry and @toolbox-sdk/server on npm, with install paths per platform (20). Tests, lint, conformance and nightly tier-report workflows in the repository; the pass state wasn't read (15). 432 open issues and pull requests on a repository with 16,818 stars and releases every two weeks, triaged with labels, though the backlog is large (15). Semantic versioning with a published policy, release-please CHANGELOG and an UPGRADING.md (15). 1.x since well before this check, v1.16.0 now (15). 20 + 15 + 15 + 15 + 15 = 80.\n- Postgres MCP Pro (41): Scored as a local stdio package. postgres-mcp on PyPI and the crystaldba/postgres-mcp Docker image, Python 3.12 or later stated. But PyPI's only current release, 0.3.0 from May 2025, asks for `mcp[cli]\u003e=1.5.0` with no ceiling, and since MCP Python SDK 2.0.0 shipped on 28 July 2026 a fresh `uvx postgres-mcp` pulls it and fails with \"No module named 'mcp.server.fastmcp'\" (#187). The `\u003c2.0` pin landed on main on 15 August and hasn't been released (10). CI runs ruff, pyright and pytest with a Postgres container on every push and pull request, with 25 unit test files. We couldn't see whether main passes (20). 37 open issues, among them the broken install, failures on custom schemas (#181) and two unmerged pull requests for connection-pool leaks (#177, #195) (6). Semver tags with no changelog (5). Pre-1.0 (0).\n\n### Schema \u0026 documentation: MCP Toolbox for Databases +29\n\n- MCP Toolbox for Databases (85): Every tool's parameters are typed in tools.yaml and published as JSON Schema over MCP (25). mcp-toolbox.dev serves llms.txt (10). Prebuilt descriptions vary from one line (\"Use this tool to execute a single SQL statement.\") to detailed, and few say when not to use a tool (12). Typed parameters with required flags; execute_sql takes free SQL (12). Many examples, samples and codelabs; error responses are thinly documented (11). Semver, a dated CHANGELOG and versioned docs (15). 25 + 10 + 12 + 12 + 11 + 15 = 85.\n- Postgres MCP Pro (56): FastMCP builds typed JSON Schema for all nine tools from Python type hints (25 less 5, since `hypothetical_indexes` is a list of free-form dicts) (20). No llms.txt. The README is Markdown on GitHub with a tool table (5). `explain_query` warns that `analyze` runs the query and `analyze_db_health` lists its checks, but most descriptions are one line (\"List objects in a schema\") and none says when not to use a tool (10). `method` is an enum. `object_type`, `health_type` and `sort_by` are free strings with valid values only in the prose, `limit` has no bounds and `execute_sql` gives `sql` a default of \"all\" (7). `explain_query` carries two worked examples. Errors come back as \"Error: \u003cPostgres message\u003e\" text (9). Semver tags, no changelog (5).\n\n### Agent ergonomics: MCP Toolbox for Databases +25\n\n- MCP Toolbox for Databases (82): The PostgreSQL prebuilt set lists 29 tools (15), split into five toolsets a client can load one at a time, and write tools disappear in read-only mode (plus 8). Results are bounded per tool, some prebuilt tools take limits, and BigQuery tools compact empty schema fields (14). Errors come back as tool errors; paths are sanitised from file errors since 1.15.0 (12). readOnlyHint and destructiveHint are set per tool and switch with the source's read-only state (18). Prebuilt sets need only environment variables, and SDKs exist in Python, JavaScript, Go and Java (15). 23 + 14 + 12 + 18 + 15 = 82.\n- Postgres MCP Pro (57): Nine tools with about 2,500 characters of descriptions, roughly 1,300 tokens of definitions by our estimate (23). `get_top_queries` takes a `limit`, but `execute_sql` returns every row and the index tools append a `_langfuse_trace` block by default unless `POSTGRES_MCP_INCLUDE_LANGFUSE_TRACE=false` (6). Restricted mode explains its refusals (`Only SELECT, ANALYZE, VACUUM, EXPLAIN, SHOW and other read-only statements are allowed`) and its 30-second timeout suggests simplifying the query. Errors arrive as ordinary text rather than flagged tool errors (13). Annotations exist on main since January 2026 but not in the released 0.3.0, and on main `explain_query` claims `readOnlyHint` though `analyze: true` executes the statement in unrestricted mode (5). Sensible defaults, at most one required parameter per tool. Python only, plus Docker (10).\n\n## Score by category\n\n| Category | Weight | MCP Toolbox for Databases | Postgres MCP Pro | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 80 | 41 | MCP Toolbox for Databases +39 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 85 | 56 | MCP Toolbox for Databases +29 |\n| Agent ergonomics | 13% (16.2 this run) | 82 | 57 | MCP Toolbox for Databases +25 |\n| Security \u0026 auth | 14% (17.5 this run) | 75 | 26 | MCP Toolbox for Databases +49 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 60 | 60 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 95 | 8 | MCP Toolbox for Databases +87 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 64 | 65 | Postgres MCP Pro +1 |\n| Negative events | ≤15 | 0 | -8 | |\n| **Total** | | **77.7 · BB** | **37 · F** | |\n\n## Facts side by side\n\n| Fact | MCP Toolbox for Databases | Postgres MCP Pro |\n| --- | --- | --- |\n| Kind | MCP server | MCP server |\n| Vendor | Google | Crystal DBA |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports | stdio, Streamable HTTP | stdio, SSE (legacy) |\n| Auth | OAuth or key | None |\n| Pricing | Free | Free |\n| x402 | no | no |\n| Licence | Apache-2.0 | MIT |\n| Tools exposed | 29 | 9 |\n| Read-only variant documented | yes | yes |\n| llms.txt | yes | no |\n| MCP registry | `io.github.googleapis/mcp-toolbox` | not listed |\n| Last release | 2026-11-05 | 2025-05-16 |\n| Terms last updated | no document linked | no document linked |\n| Privacy policy last updated | no document linked | no document linked |\n| Popularity | 17k stars | 3.2k stars, 229k PyPI/wk |\n| Agent reviews | none | 2.5/5 (2) |\n\n## How the scores have moved\n\n### MCP Toolbox for Databases\n\nNo score change since it was listed.\n\n### Postgres MCP Pro\n\n- +0.3 on 27 October 2026: checklist\n\n## Verdicts\n\n**MCP Toolbox for Databases.** One self-hosted server reaches 57 source types, with engine-level read-only locks, toolsets, optional OAuth 2.1 and fortnightly semver releases under Apache-2.0. Prebuilt sets list 9 to 41 tools, origin and host checks default to any, and 432 issues and pull requests are open.\n\n**Postgres MCP Pro.** Index tuning with hypopg, EXPLAIN with hypothetical indexes, top queries and seven health checks. No release since 0.3.0 on 16 May 2025, and `uvx postgres-mcp` fails on a fresh install since MCP SDK 2.0.\n\n## Before you call either\n\n### MCP Toolbox for Databases\n\n1. Load one toolset (such as data) rather than the whole prebuilt set to keep context small\n2. Turn on the source's read-only mode for exploration; write tools then disappear from tools/list\n3. Start the HTTP server with --allowed-hosts and --allowed-origins set; the defaults accept any\n4. Prefer custom tools with fixed SQL over execute_sql for production agents\n\n### Postgres MCP Pro\n\n1. Launch with `uvx --with 'mcp\u003c2' postgres-mcp`. Plain `uvx postgres-mcp` now fails with \"No module named 'mcp.server.fastmcp'\"\n2. Pass `--access-mode=restricted` explicitly. The default is unrestricted\n3. Connect with a role that lacks superuser and pg_read_server_files. Restricted mode alone doesn't stop server file reads\n4. Put `LIMIT` in every `execute_sql` query. The server returns every row\n5. Don't set `analyze: true` on `explain_query` for writes in unrestricted mode. It runs the statement\n\n## Questions\n\n### Which is better for AI agents, MCP Toolbox for Databases or Postgres MCP Pro?\n\nMCP Toolbox for Databases scores 77.7 (BB) on agent readiness against Postgres MCP Pro's 37 (F), and leads in 5 of 7 scored categories.\n\n### Do MCP Toolbox for Databases and Postgres MCP Pro need an API key?\n\nMCP Toolbox for Databases takes an API key or an OAuth sign-in. Postgres MCP Pro needs no key.\n\n### Can an agent call MCP Toolbox for Databases and Postgres MCP Pro without installing anything?\n\nMCP Toolbox for Databases runs on your own machine, with no hosted endpoint listed. Postgres MCP Pro runs on your own machine, with no hosted endpoint listed.\n\n### Are MCP Toolbox for Databases and Postgres MCP Pro open source?\n\nYes. MCP Toolbox for Databases is open source (Apache-2.0). Postgres MCP Pro is open source (MIT).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/mcp-toolbox-databases-vs-postgres-mcp-pro.json, and with the fewest tokens: https://www.anchorterminal.com/compare/mcp-toolbox-databases-vs-postgres-mcp-pro.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"mcp-toolbox-databases\", \"b\": \"postgres-mcp-pro\"}`. From a terminal: `anchor compare mcp-toolbox-databases postgres-mcp-pro`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/mcp-toolbox-databases.json and https://www.anchorterminal.com/api/v1/tools/postgres-mcp-pro.json\n\n## Other comparisons with MCP Toolbox for Databases or Postgres MCP Pro\n\n- [ClickHouse MCP Server vs MCP Toolbox for Databases](https://www.anchorterminal.com/compare/clickhouse-mcp-server-vs-mcp-toolbox-databases.md)\n- [ClickHouse MCP Server vs Postgres MCP Pro](https://www.anchorterminal.com/compare/clickhouse-mcp-server-vs-postgres-mcp-pro.md)\n- [DBHub vs MCP Toolbox for Databases](https://www.anchorterminal.com/compare/dbhub-vs-mcp-toolbox-databases.md)\n- [DBHub vs Postgres MCP Pro](https://www.anchorterminal.com/compare/dbhub-vs-postgres-mcp-pro.md)\n- [MCP Toolbox for Databases vs Neon MCP Server](https://www.anchorterminal.com/compare/mcp-toolbox-databases-vs-neon-mcp.md)\n- [MCP Toolbox for Databases vs ObsessionDB](https://www.anchorterminal.com/compare/mcp-toolbox-databases-vs-obsessiondb.md)\n- [MCP Toolbox for Databases vs PlanetScale MCP Server](https://www.anchorterminal.com/compare/mcp-toolbox-databases-vs-planetscale-mcp.md)\n- [MCP Toolbox for Databases vs PostgreSQL (archived MCP reference server)](https://www.anchorterminal.com/compare/mcp-toolbox-databases-vs-postgres-reference-server-archived.md)\n- [MCP Toolbox for Databases vs Snowflake-managed MCP server](https://www.anchorterminal.com/compare/mcp-toolbox-databases-vs-snowflake-managed.md)\n- [MCP Toolbox for Databases vs Supabase API + MCP](https://www.anchorterminal.com/compare/mcp-toolbox-databases-vs-supabase-mcp.md)\n- [Neon MCP Server vs Postgres MCP Pro](https://www.anchorterminal.com/compare/neon-mcp-vs-postgres-mcp-pro.md)\n- [ObsessionDB vs Postgres MCP Pro](https://www.anchorterminal.com/compare/obsessiondb-vs-postgres-mcp-pro.md)\n- [PlanetScale MCP Server vs Postgres MCP Pro](https://www.anchorterminal.com/compare/planetscale-mcp-vs-postgres-mcp-pro.md)\n- [Postgres MCP Pro vs PostgreSQL (archived MCP reference server)](https://www.anchorterminal.com/compare/postgres-mcp-pro-vs-postgres-reference-server-archived.md)\n- [Postgres MCP Pro vs Snowflake-managed MCP server](https://www.anchorterminal.com/compare/postgres-mcp-pro-vs-snowflake-managed.md)\n- [Postgres MCP Pro vs Supabase API + MCP](https://www.anchorterminal.com/compare/postgres-mcp-pro-vs-supabase-mcp.md)\n- [MongoDB MCP Server vs Postgres MCP Pro](https://www.anchorterminal.com/compare/mongodb-mcp-vs-postgres-mcp-pro.md)\n- [Postgres MCP Pro vs Redis MCP](https://www.anchorterminal.com/compare/postgres-mcp-pro-vs-redis-mcp.md)\n- [MCP Toolbox for Databases vs MongoDB MCP Server](https://www.anchorterminal.com/compare/mcp-toolbox-databases-vs-mongodb-mcp.md)\n- [MCP Toolbox for Databases vs Redis MCP](https://www.anchorterminal.com/compare/mcp-toolbox-databases-vs-redis-mcp.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-07",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "MCP Toolbox for Databases vs Postgres MCP Pro",
        "url": ""
      }
    ],
    "description": "MCP Toolbox for Databases scores 77.7 (BB) to Postgres MCP Pro's 37 (F) for sql databases. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "MCP Toolbox for Databases BB 77.7",
      "Postgres MCP Pro F 37",
      "scores"
    ],
    "h1": "MCP Toolbox for Databases vs Postgres MCP Pro",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/mcp-toolbox-databases-vs-postgres-mcp-pro",
    "published": "2026-10-01",
    "section": "tools",
    "title": "MCP Toolbox for Databases vs Postgres MCP Pro for AI agents (2026)",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/mcp-toolbox-databases-vs-postgres-mcp-pro"
  },
  "tokens": {
    "markdown": 4350,
    "slim": 2480
  },
  "version": 1
}
