|
| 1 | +# Upgrading to MCP Toolbox for Databases v1.0.0 |
| 2 | + |
| 3 | +Welcome to the v1.0.0 release of the MCP Toolbox for Databases! |
| 4 | + |
| 5 | +This release stabilizes our core APIs and standardizes our protocol alignments. |
| 6 | +As part of this milestone, we have introduced several breaking changes and |
| 7 | +deprecations that require updates to your configuration and code. |
| 8 | + |
| 9 | +**📖 New Versioning Policy** |
| 10 | +We have officially published our [Versioning Policy](https://googleapis.github.io/genai-toolbox/dev/about/versioning/). Moving forward, we follow standard versioning conventions to classify updates: |
| 11 | +* **Major (vX.0.0):** Breaking changes requiring manual updates. |
| 12 | +* **Minor (v1.X.0):** New, backward-compatible features and deprecation notices. |
| 13 | +* **Patch (v1.0.X):** Backward-compatible bug fixes and security patches. |
| 14 | + |
| 15 | +This guide outlines what has changed and the steps you need to take to upgrade. |
| 16 | + |
| 17 | +## 🚨 Breaking Changes (Action Required) |
| 18 | + |
| 19 | +### 1. Endpoint Transition: `/api` disabled by default |
| 20 | +The legacy `/api` endpoint for the native Toolbox protocol is now disabled by default. All official SDKs have been updated to use the `/mcp` endpoint, which aligns with the standard Model Context Protocol (MCP) specification. |
| 21 | + |
| 22 | +If you still require the legacy `/api` endpoint, you must explicitly activate it using a new command-line flag. |
| 23 | + |
| 24 | +* **Usage:** `./toolbox --enable-api` |
| 25 | +* **Migration:** You must update all custom implementations to use the `/mcp` |
| 26 | + endpoint exclusively, as the `/api` endpoint is now deprecated. If your workflow |
| 27 | + relied on a non-standard feature that is missing from the new implementation, please submit a |
| 28 | + feature request on our [GitHub Issues page](https://github.com/googleapis/genai-toolbox/issues). |
| 29 | +* **UI Dependency:** Until the UI is officially migrated, it still requires the API to function. You must run the toolbox with both flags: `./toolbox --ui --enable-api`. |
| 30 | + |
| 31 | +### 2. Strict Tool Naming Validation (SEP986) |
| 32 | +Tool names are now strictly validated against [ModelContextProtocol SEP986 guidelines](https://github.com/alexhancock/modelcontextprotocol/blob/main/docs/specification/draft/server/tools.mdx#tool-names) prior to MCP initialization. |
| 33 | +* **Migration:** Ensure all your tool names **only** contain alphanumeric characters, hyphens (`-`), underscores (`_`), and periods (`.`). Any other special characters will cause initialization to fail. |
| 34 | + |
| 35 | +### 3. Removed CLI Flags |
| 36 | +The legacy snake_case flag `--tools_file` has been completely removed. |
| 37 | +* **Migration:** Update your deployment scripts to use `--config` instead. |
| 38 | + |
| 39 | +### 4. Singular `kind` Values in Configuration |
| 40 | +_(This step applies only if you are currently using the new flat format.)_ |
| 41 | + |
| 42 | +All primitive kind fields in configuration files have been updated to use singular nouns instead of plural. For example, `kind: sources` is now `kind: source`, and `kind: tools` is now `kind: tool`. |
| 43 | + |
| 44 | +* **Migration:** Update your configuration files to use the singular form for all `kind` |
| 45 | +values. _(Note: If you transitioned to the flat format using the `./toolbox migrate` command, this step was handled automatically.)_ |
| 46 | + |
| 47 | + |
| 48 | +### 5. Configuration Schema: `authSources` renamed |
| 49 | +The `authSources` field is no longer supported in configuration files. |
| 50 | +* **Migration:** Rename all instances of `authSources` to `authService` in your |
| 51 | + configuration files. |
| 52 | + |
| 53 | +### 6. CloudSQL for SQL Server: `ipAddress` removed |
| 54 | +The `ipAddress` field for the CloudSQL for SQL Server source was redundant and has been removed. |
| 55 | +* **Migration:** Remove the `ipAddress` field from your CloudSQL for SQL Server configurations. |
| 56 | + |
| 57 | + |
| 58 | +## ⚠️ Deprecations & Modernization |
| 59 | + |
| 60 | +### 1. Flat Configuration Format Introduced |
| 61 | +We have introduced a new, streamlined "flat" format for configuration files. While the older nested format is still supported for now, **all new features will only be added to the flat format.** |
| 62 | + |
| 63 | +**Schema Restructuring (`kind` vs. `type`):** |
| 64 | +Along with the flat format, the configuration schema has been reorganized. The |
| 65 | +old `kind` field (which specified the specific primitive types, like |
| 66 | +`alloydb-postgres`) has been renamed to `type`. The `kind` field is now strictly |
| 67 | +used to declare the core primitive of the block (e.g., `source` or `tool`). |
| 68 | + |
| 69 | +**Example of the new flat format:** |
| 70 | + |
| 71 | +```yaml |
| 72 | +kind: source |
| 73 | +name: my-source |
| 74 | +type: alloydb-postgres |
| 75 | +project: my-project |
| 76 | +region: my-region |
| 77 | +instance: my-instance |
| 78 | +--- |
| 79 | +kind: tool |
| 80 | +name: my-simple-tool |
| 81 | +type: postgres-execute-sql |
| 82 | +source: my-source |
| 83 | +description: this is a tool that executes the sql provided. |
| 84 | +``` |
| 85 | +
|
| 86 | +**Migration:** |
| 87 | +
|
| 88 | +You can automatically migrate your existing nested configurations to the new flat format using the CLI. Run the following command: |
| 89 | +
|
| 90 | +```Bash |
| 91 | +./toolbox migrate --config <path-to-your-config> |
| 92 | +``` |
| 93 | +_Note: You can also use the `--configs` or `--config-folder` flags with this command._ |
| 94 | + |
| 95 | +### 2. Deprecated CLI Flags |
| 96 | +The following CLI flags are deprecated and will be removed in a future release. Please update your scripts: |
| 97 | + |
| 98 | +* `--tools-file` ➡️ Use `--config` |
| 99 | +* `--tools-files` ➡️ Use `--configs` |
| 100 | +* `--tools-folder` ➡️ Use `--config-folder` |
| 101 | + |
| 102 | +## 💡 Other Notable Updates |
| 103 | +* **Enhanced Error Handling:** Errors are now strictly categorized between Agent Errors (allowing the LLM to self-correct) and Client/Server Errors (which signal a hard stop). |
| 104 | + |
| 105 | +* **Telemetry Updates:** The /mcp endpoint telemetry has been revised to fully comply with the [OpenTelemetry semantic conventions for MCP](https://opentelemetry.io/docs/specs/semconv/gen-ai/mcp/). |
| 106 | + |
| 107 | +* **MCP Authorization Support:** The Model Context Protocol's [authorization specification](https://modelcontextprotocol.io/specification/2025-11-25/basic/authorization) is now fully supported. |
| 108 | + |
| 109 | +* **Database Name Validation:** Removed the "required field" validation for the database name in CloudSQL for MySQL and generic MySQL sources. |
| 110 | + |
| 111 | +* **Prebuilt Tools:** Toolsets have been resized for better performance. |
| 112 | +## 📚 Documentation Moved |
| 113 | +Our official documentation has a new home! Please update your bookmarks to [mcp-toolbox.dev](http://mcp-toolbox.dev). |
0 commit comments