Thank you for your interest in contributing! This guide covers the plugin itself — rules, MCP configuration, and tooling. For contributing skills, see the cockroachdb-skills CONTRIBUTING.md instead; skills are maintained upstream and synced here automatically.
- Cursor installed
- MCP Toolbox for Databases v1.0.0+ (
brew install mcp-toolbox) - A running CockroachDB instance (local or cloud)
git clone --recurse-submodules https://github.com/cockroachdb/cursor-plugin.git
cd cursor-pluginSet your connection environment variables:
export COCKROACHDB_HOST=localhost
export COCKROACHDB_PORT=26257
export COCKROACHDB_USER=root
export COCKROACHDB_PASSWORD=
export COCKROACHDB_DATABASE=defaultdb
export COCKROACHDB_SSLMODE=disable.cursor-plugin/
plugin.json # Plugin manifest (version managed by Release Please)
mcp.json # MCP server definitions (stdio, HTTP, Cloud)
tools.yaml # MCP Toolbox source and tool definitions
rules/ # Cursor rule files (.mdc format)
skills/ # Copied from cockroachdb-skills submodule (do not edit directly)
submodules/
cockroachdb-skills/ # Upstream skills submodule
assets/
logo.svg # Plugin logo
| Area | Examples |
|---|---|
| Rules | New .mdc rule files, improved pattern guidance |
| MCP config | New backend integrations, connection improvements |
| Tools | New tool definitions in tools.yaml |
| Bug fixes | Config issues, env var handling, manifest fixes |
| Documentation | README improvements, inline comments |
- New skills → cockroachdb-skills repo
- Toolbox bugs → MCP Toolbox repo
- Cursor bugs → Cursor forum
-
Fork the repository and create a feature branch:
git checkout -b fix/describe-your-change
-
Make your changes — match the existing code style and conventions.
-
Test locally — install the plugin in Cursor and verify your change works.
-
Commit using Conventional Commits:
git commit -m "fix: correct env var reference in mcp.json" git commit -m "feat: add new rule for changefeed patterns" git commit -m "docs: clarify Cloud MCP setup in README"
-
Open a Pull Request against
main.
This repo uses Release Please for automated versioning and changelogs. Your commit prefix determines what happens:
| Prefix | Effect | Example |
|---|---|---|
fix: |
Patch release (0.1.x) | fix: correct sslmode default in mcp.json |
feat: |
Minor release (0.x.0) | feat: add changefeed rule set |
docs: |
No release | docs: update README with new backend |
chore: |
No release | chore: update submodule reference |
Important:
- Never bump the version in
plugin.jsonor.release-please-manifest.jsonmanually — Release Please owns these files. - Use
fix:orfeat:only for changes that should appear in the changelog and trigger a release.
- Rule files live in
rules/using Cursor's.mdcformat. - Each rule should focus on a specific domain (SQL patterns, app patterns, etc.).
- Reference MCP tools by their full names (e.g.,
cockroachdb-execute-sql,list_clusters). - Include "Available MCP Tools" sections so the agent knows what tools it can use.
mcp.json(no dot prefix) defines MCP server backends for Cursor.- Use
${ENV_VAR}syntax for environment variable references. - The
tools.yamlfile uses Toolbox v1.1.0 map-based format with${VAR:default}syntax for defaults.
Skills are synced from the upstream cockroachdb-skills submodule by a weekly CI workflow. Do not edit files in skills/ directly — changes will be overwritten. Contribute new skills to the upstream repo instead.
- Use GitHub Issues for bugs and feature requests.
- Include your plugin version (
plugin.json→version), Cursor version, and OS. - For connection issues, include the MCP backend you're using (Toolbox, Cloud MCP, or ccloud).
By contributing, you agree that your contributions will be licensed under the Apache-2.0 License.