An MCP server that lets LLMs search the Couchbase documentation from your MCP client. It exposes a single tool, ask_couchbase_docs, which forwards your question to a hosted retrieval-augmented (RAG) documentation agent and returns an answer with source links.
No Couchbase cluster or credentials required. The server talks only to the documentation agent backend, not to your data.
| Tool Name | Description |
|---|---|
ask_couchbase_docs |
Answer a question about any Couchbase product, feature, SDK, service, tutorial, or example by searching the official documentation. Returns a natural-language answer followed by the documentation source URLs. |
Ask complete, self-contained questions — the backend has no conversation history, so include the product, version, and language where relevant (e.g. "How do I create a primary index with the Python SDK in Couchbase Server 7.6?").
- Python 3.10 or higher.
- uv installed to run the server.
- An MCP client such as Claude Desktop, Cursor, or VS Code.
The server can be run from the prebuilt PyPI package or from source with uv. It works with zero configuration — the public documentation agent is used by default.
{
"mcpServers": {
"couchbase-guru": {
"command": "uvx",
"args": ["couchbase-guru"]
}
}
}If you already have other MCP servers configured, add this entry to the existing
mcpServersobject.
Clone the repository:
git clone https://github.com/Couchbase-Ecosystem/couchbase-guru.gitThen point your MCP client at it:
{
"mcpServers": {
"couchbase-guru": {
"command": "uv",
"args": [
"--directory",
"path/to/cloned/repo/couchbase-guru/",
"run",
"src/mcp_server.py"
]
}
}
}
path/to/cloned/repo/couchbase-guru/should be the path to the cloned repository on your machine. Don't forget the trailing slash.
All options are optional and can be set via CLI argument or environment variable:
| CLI Argument | Environment Variable | Description | Default |
|---|---|---|---|
--transport |
CB_MCP_TRANSPORT |
Transport mode: stdio or http |
stdio |
--host |
CB_MCP_HOST |
Host for HTTP transport mode | 127.0.0.1 |
--port |
CB_MCP_PORT |
Port for HTTP transport mode | 8000 |
--agent-base-url |
CB_AGENT_BASE_URL |
Base URL of the documentation agent backend. Set this to run against your own self-hosted agent; if unset, the public agent is used. | Public agent |
--agent-ip-salt |
CB_AGENT_IP_SALT |
Secret salt used to pseudonymize client IPs (HTTP transport). Set a shared value for consistent hashing across multiple instances; a local salt is generated when unset. | Auto-generated |
Check the installed version with:
uvx couchbase-guru --versionBy default the server uses a shared, public documentation agent, so most users need no setup. If you run your own agent backend, point the server at it:
uvx couchbase-guru --agent-base-url https://your-agent.example.comThe public agent applies fair-use rate limits. To support this, the server sends a pseudonymous device identifier to the backend (in the User-Agent header):
- stdio: a random id generated once and stored in a per-user file on your machine.
- HTTP: a salted, one-way hash of the connecting IP — the raw address is never sent.
No question content or personal data is persisted by the MCP server itself. If you prefer not to share a rate-limit signal, self-host the agent (see above).
Claude Desktop
- Edit the configuration file (see the MCP quickstart guide):
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
- Add the configuration to the
mcpServerssection. - Restart Claude Desktop.
Logs: ~/Library/Logs/Claude (macOS) or %APPDATA%\Claude\Logs (Windows).
Cursor
- In Cursor, go to Cursor Settings > Tools & Integrations > MCP Tools.
- Add the configuration manually, or use the one-click Install in Cursor link.
- Save, then refresh to confirm the server is enabled.
Logs: in the bottom panel, click Output and select Cursor MCP from the dropdown.
Windsurf Editor
- Open Command Palette > Windsurf MCP Configuration Panel (or Settings > Advanced > Cascade > Model Context Protocol (MCP) Servers).
- Click Add Server > Add custom server and add the configuration.
- Save, then refresh to confirm the server is enabled.
See the Windsurf MCP documentation for details.
VS Code
-
Create
.vscode/mcp.jsonin your workspace (or run MCP: Open User Configuration for a global config). -
VS Code uses
serversas the top-level key (notmcpServers):{ "servers": { "couchbase-guru": { "command": "uvx", "args": ["couchbase-guru"] } } } -
Once saved, use the inline action list to
Start/Stop/manage the server.
See the VS Code MCP docs for details.
JetBrains IDEs
- Install the AI Assistant or Junie plugin.
- Navigate to Settings > Tools > AI Assistant or Junie > MCP Server.
- Click "+", add the configuration, and click Save, then Apply.
Logs: Help > Show Log in Finder (Explorer) > mcp > couchbase-guru.
The server can run in Streamable HTTP mode so multiple clients can connect to one instance. Check that your MCP client supports this transport first.
uvx couchbase-guru --transport=http --port=8000The server will be available at http://localhost:8000/mcp:
{
"mcpServers": {
"couchbase-guru-http": {
"url": "http://localhost:8000/mcp"
}
}
}This mode does not include authorization support.
Build the image:
docker build -t couchbase-guru .Run it (stdio by default; no credentials needed):
{
"mcpServers": {
"couchbase-guru-docker": {
"command": "docker",
"args": ["run", "--rm", "-i", "couchbase-guru"]
}
}
}For HTTP transport, publish the port and set the transport:
docker run --rm -i \
-e CB_MCP_TRANSPORT=http \
-e CB_MCP_HOST=0.0.0.0 \
-e CB_MCP_PORT=8000 \
-p 8000:8000 \
couchbase-guru- The use of large language models and similar technology involves risks, including the potential for inaccurate or harmful outputs.
- Couchbase does not review or evaluate the quality or accuracy of such outputs, and such outputs may not reflect Couchbase's views.
- You are solely responsible for determining whether to use large language models and related technology, and for complying with any applicable license terms, terms of use, and your organization's policies.
- Confirm that
uv/uvxis installed and on yourPATH. You may need to provide an absolute path touv/uvxin thecommandfield. - If a search times out, the documentation backend may be busy — retry in a moment.
- To rule out the public backend, run against your own agent with
--agent-base-url. - If running from source after updating the repo, run
uv syncto refresh dependencies. - Check your MCP client's logs (locations above) for errors.
Unit tests run offline (the backend is mocked):
uv sync --extra dev
uv run pytest tests/Integration tests exercise the tool end-to-end against a live agent backend and are opt-in:
CB_MCP_RUN_INTEGRATION=1 uv run pytest tests/test_docs_tools.pyBy default they use the public agent; set CB_AGENT_BASE_URL to target a different backend.
Contributions are welcome! To report a bug, request a feature, or contribute improvements, open a GitHub issue.
See CONTRIBUTING.md for developer setup (environment with uv, linting/formatting with Ruff, pre-commit hooks, and project structure).
# Clone and set up
git clone https://github.com/Couchbase-Ecosystem/couchbase-guru.git
cd couchbase-guru
# Install with development dependencies
uv sync --extra dev
# Install pre-commit hooks
uv run pre-commit installWe appreciate your interest in this project! It is Couchbase community-maintained, which means it is not officially supported by our support team. Our engineers monitor and maintain this repo and will try to resolve issues on a best-effort basis. Please keep all inquiries within GitHub.