CockroachDB MCP Server

# CockroachDB MCP Server This MCP server connects to a CockroachDB instance, exposing database and table schemas as resources, running SQL queries as tools, and providing prompts for query analysis. ## Features ### Resources - `postgres://{host}/databases/{database}` - Get information about a specific database - `postgres://{host}/databases/{database}/tables/{table}/schema` - Get the schema for a specific table - `postgres://{host}/cluster-metadata/{resource}` - Get cluster metadata (requires auth token) - Currently supports: `nodes` - Information about cluster nodes ### Tools - `query` - Execute a SQL query with options for execution plan analysis ## Installation 1. Clone this repository 2. Install dependencies: ```bash pnpm install ``` 3. Build the project: ```bash npx tsc ``` > **Note:** You must build the project with `tsc` before using the MCP server locally. ## Configuration The server requires a database URL as a command-line argument and optionally accepts an auth token for accessing admin UI endpoints: ```bash node dist/server.js postgres://user:password@host:port/database [auth_token] ``` The auth token is required for accessing cluster metadata resources. ## Using with Claude for Desktop 1. Open your Claude for Desktop App configuration: - macOS: `~/Library/Application Support/Claude/claude_desktop_config.json` - Windows: `%APPDATA%\Claude\claude_desktop_config.json` 2. Add your server configuration: ```json { "mcpServers": { "cockroachdb": { "command": "node", "args": [ "/path/to/cockroachdb-mcp-server/dist/server.js", "postgres://user:password@host:port/database", "your_auth_token" ] } } } ``` 3. Restart Claude for Desktop ## Using with Cline 1. Open your Cline configuration file from the extension settings under "MCP Servers". Select "Configure MCP Servers". 2. Add your server configuration: ```json { "mcpServers": { "crdb": { "command": "node", "args": [ "/path/to/cockroachdb-mcp-server/dist/server.js", "postgres://root@127.0.0.1:26257/testdb", "your_auth_token" ] } } } ``` 3. Restart Cline or start a new session ## Example Queries Here are some example queries you can ask Claude: 1. "What databases are available in my CockroachDB instance?" 2. "Can you show me the schema for the 'users' table in the 'testdb' database?" 3. "Run this query on my database: SELECT * FROM users LIMIT 10" 4. "Debug this query and suggest improvements: SELECT * FROM orders WHERE customer_id = 123" 5. "Show me information about all nodes in my CockroachDB cluster" ## Security Considerations - Be careful when configuring database access. Consider using a read-only user for the connection if you only need to query data. - The auth token is used to access the CockroachDB admin UI API. Make sure to keep this token secure. ## Troubleshooting - If you encounter connection issues, verify your database credentials and ensure the CockroachDB instance is accessible from your machine. - For SQL errors, check the server logs for detailed error messages. - If Claude can't see the server, verify the configuration file is properly formatted and the path to the server.js file is correct. - For cluster metadata resources, ensure you've provided a valid auth token and that the admin UI is accessible on port 8080.