# Google MCP Toolbox Comparison

## Overview

[Google's MCP Toolbox](https://github.com/googleapis/mcp-toolbox) (15K stars, Go) is a YAML-driven MCP server that provides instant database access tools for 20+ databases (Postgres, MySQL, BigQuery, Snowflake, MongoDB, Redis, Elasticsearch, etc.). Its defining feature is zero-code tool definition via YAML configuration.

---

## How Google Toolbox works

1. **YAML-driven configuration**: Tools, database connections (sources), and toolsets are defined entirely in `tools.yaml` — no code required. The server binary reads the YAML, establishes database connections, and exposes MCP tools.

2. **Prebuilt tool configs**: `--prebuilt=postgres` gives you `list_tables`, `describe_table`, `execute_sql` tools instantly. No schema definition needed.

3. **Multi-SDK**: Python, TypeScript, Go, and Java SDKs for client integration. Broadest language coverage of any MCP server.

4. **Connection pooling**: Database connection pools are managed by the server, with IAM auth for Google Cloud services.

5. **Built-in OTel**: Traces and metrics exported via OpenTelemetry out of the box.

---

## How our system differs

| Aspect              | Google Toolbox                        | Coda MCP Server                    |
| ------------------- | ------------------------------------- | ---------------------------------- |
| **Tool definition** | YAML configuration                    | TypeScript code (Zod schemas)      |
| **Domain**          | Generic database access               | Domain-specific royalties platform |
| **Execution**       | Direct SQL execution                  | HTTP proxy to Express API          |
| **Databases**       | 20+ (Postgres, MySQL, BigQuery, etc.) | None (tools query REST APIs)       |
| **Auth**            | IAM / database credentials            | Bearer token forwarded             |
| **OTel**            | Built-in                              | Custom `TelemetryProvider`         |
| **Languages**       | Go server + 4 client SDKs             | TypeScript only                    |

---

## What we are NOT adopting and why

1. **YAML-driven tools**: Our tools have complex business logic (GraphQL schema search, multi-source revenue aggregation, adjustment validation workflows) that cannot be expressed as SQL queries. YAML works for database access; it doesn't work for orchestration.

2. **Multi-database support**: Our platform accesses data through REST APIs and GraphQL, not direct database queries. Direct database access would bypass business logic, access control, and data transformation layers.

---

## What we are adopting

### 1. Prebuilt tool configs concept (adapted)

Google Toolbox's prebuilt configs let users get started in one command. Our `pnpm mcp:setup` serves a similar purpose — one command to configure the MCP client. The concept of "zero-config for the common case" is validated by both implementations.

### 2. OTel as a first-class concern

Google Toolbox ships with OTel enabled by default. Our OTel support is opt-in (`CODA_MCP_OTEL_ENDPOINT`), which is appropriate for a local dev tool, but reinforces that OTel is table stakes for enterprise MCP servers.

---

## References

- [googleapis/mcp-toolbox](https://github.com/googleapis/mcp-toolbox) (GitHub)
- [mcp-toolbox.dev](https://mcp-toolbox.dev/) (Docs)

---

_Comparison conducted 2026-05-10._
