Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"name": "sql-server",
"owner": {
"name": "Google LLC",
"email": "data-cloud-ai-integrations@google.com"
},
"metadata": {
"description": "Connect and interact with a SQL Server database and data."
},
"plugins": [
{
"name": "sql-server",
"source": "./"
}
]
}
62 changes: 62 additions & 0 deletions .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
{
"name": "sql-server",
"version": "0.1.6",
"description": "Connect to SQL Server",
"author": {
"name": "Google LLC",
"email": "data-cloud-ai-integrations@google.com"
},
"repository": "https://github.com/gemini-cli-extensions/sql-server",
"license": "Apache-2.0",
"userConfig": {
"mssql_host": {
"title": "Host",
"description": "Host or IP address of the SQL Server",
"type": "string",
"sensitive": false
},
"mssql_port": {
"title": "Port",
"description": "Port number of the SQL Server",
"type": "string",
"sensitive": false
},
"mssql_database": {
"title": "Database",
"description": "Name of the database",
"type": "string",
"sensitive": false
},
"mssql_user": {
"title": "User",
"description": "Username of the database user",
"type": "string",
"sensitive": false
},
"mssql_password": {
"title": "Password",
"description": "Password of the database user",
"type": "string",
"sensitive": true
}
},
"mcpServers": {
"sql_server": {
"command": "npx",
"args": [
"-y",
"@toolbox-sdk/server@1.8.0",
"--prebuilt",
"mssql",
"--stdio"
],
"env": {
"MSSQL_HOST": "${user_config.mssql_host}",
"MSSQL_PORT": "${user_config.mssql_port}",
"MSSQL_DATABASE": "${user_config.mssql_database}",
"MSSQL_USER": "${user_config.mssql_user}",
"MSSQL_PASSWORD": "${user_config.mssql_password}"
}
}
}
}
21 changes: 21 additions & 0 deletions .codex-plugin/.mcp.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"mcpServers": {
"sql_server": {
"command": "npx",
"args": [
"-y",
"@toolbox-sdk/server@1.8.0",
"--prebuilt",
"mssql",
"--stdio"
],
"env_vars": [
"MSSQL_HOST",
"MSSQL_PORT",
"MSSQL_DATABASE",
"MSSQL_USER",
"MSSQL_PASSWORD"
]
}
}
}
12 changes: 12 additions & 0 deletions .codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"name": "sql-server",
"version": "0.1.6",
"description": "Connect to SQL Server",
"author": {
"name": "Google LLC",
"email": "data-cloud-ai-integrations@google.com"
},
"repository": "https://github.com/gemini-cli-extensions/sql-server",
"license": "Apache-2.0",
"mcpServers": "./.codex-plugin/.mcp.json"
}
51 changes: 35 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,11 @@ Learn more about [Gemini CLI Extensions](https://github.com/google-gemini/gemini

Before you begin, ensure you have the following:

* [Gemini CLI](https://github.com/google-gemini/gemini-cli) installed with version **+v0.6.0**.
* Setup Gemini CLI [Authentication](https://github.com/google-gemini/gemini-cli/tree/main?tab=readme-ov-file#-authentication-options).
* One of the supported agent harnesses, installed and authenticated:
* [Gemini CLI](https://github.com/google-gemini/gemini-cli) (v0.6.0+)
* [Claude Code](https://code.claude.com)
* [Codex](https://developers.openai.com/codex)
* [Antigravity CLI](https://antigravity.google)
* [Node.js](https://nodejs.org/) (the MCP server runs via `npx`).
* A running SQL Server instance.
* A user with database-level permissions to execute queries.
Expand All @@ -34,35 +37,51 @@ Before you begin, ensure you have the following:

### Installation

To install the extension, use the command:
All harnesses use the same plugin; the MCP server runs via `npx` (no binary to download). Install with your harness of choice:

**Gemini CLI**

```bash
gemini extensions install https://github.com/gemini-cli-extensions/sql-server
```

**Claude Code**

```bash
claude plugin marketplace add gemini-cli-extensions/sql-server
claude plugin install sql-server@sql-server
```

**Codex**

```bash
codex plugin marketplace add gemini-cli-extensions/sql-server
codex plugin add sql-server@sql-server
```

**Antigravity**

```bash
agy plugin install https://github.com/gemini-cli-extensions/sql-server
```

See [Configuration](#configuration) for how each harness supplies the connection settings.

### Configuration

You will be prompted to configure the following settings during installation. These settings are saved in an `.env` file within the extension's directory.
The plugin connects to SQL Server using these settings:

* `MSSQL_HOST`: (Optional) The SQL Server host. Defaults to `localhost`.
* `MSSQL_PORT`: (Optional) The SQL Server port. Defaults to `1433`.
* `MSSQL_DATABASE`: The name of the database to connect to.
* `MSSQL_USER`: The database username.
* `MSSQL_PASSWORD`: The password for the database user.

To view or update your configuration:

**List Settings:**
* Terminal: `gemini extensions list`
* Gemini CLI: `/extensions list`

**Update Settings:**
* Terminal: `gemini extensions config sql-server [setting name] [--scope <scope>]`
* `setting name`: (Optional) The single setting to configure.
* `scope`: (Optional) The scope of the setting in (`user` or `workspace`). Defaults to `user`.
* Currently, you must restart the Gemini CLI for changes to take effect. We recommend using `gemini --resume` to resume your session.
How you supply them depends on the harness:

Alternatively, you can manually set these environment variables before starting the Gemini CLI:
* **Gemini CLI**: prompted on install and saved to the extension's `.env`. View or update later with `gemini extensions list` / `gemini extensions config sql-server [setting] [--scope user|workspace]` (restart the CLI to apply).
* **Claude Code**: pass `--config KEY=VALUE` on install (repeatable), or run `/plugin` inside Claude Code.
* **Codex** and **Antigravity**: export the variables in your shell before starting:

#### PowerShell
```powershell
Expand Down
16 changes: 16 additions & 0 deletions mcp.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/mcp.schema.json",
"mcpServers": {
"sql_server": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@toolbox-sdk/server@1.8.0",
"--prebuilt",
"mssql",
"--stdio"
]
}
}
}
14 changes: 14 additions & 0 deletions mcp_config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"mcpServers": {
"sql_server": {
"command": "npx",
"args": [
"-y",
"@toolbox-sdk/server@1.8.0",
"--prebuilt",
"mssql",
"--stdio"
]
}
}
}
47 changes: 47 additions & 0 deletions plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
{
"name": "sql-server",
"version": "0.1.6",
"description": "Connect to SQL Server",
"author": {
"name": "Google LLC",
"email": "data-cloud-ai-integrations@google.com"
},
"repository": "https://github.com/gemini-cli-extensions/sql-server",
"license": "Apache-2.0",
"extensions": {
"com.google.cloud.data.agent-plugins": {
"config": [
{
"key": "MSSQL_HOST",
"title": "Host",
"description": "Host or IP address of the SQL Server"
},
{
"key": "MSSQL_PORT",
"title": "Port",
"description": "Port number of the SQL Server"
},
{
"key": "MSSQL_DATABASE",
"title": "Database",
"description": "Name of the database"
},
{
"key": "MSSQL_USER",
"title": "User",
"description": "Username of the database user"
},
{
"key": "MSSQL_PASSWORD",
"title": "Password",
"description": "Password of the database user",
"sensitive": true
}
],
"gemini": {
"contextFileName": "SQL-SERVER.md",
"mcpServerName": "sql_server"
}
}
}
}
Loading