Search the Couchbase documentation from your MCP client via a hosted documentation agent.
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?").
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.git
Then 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 --version
By 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.com
The 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):
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).
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.jsonmcpServers section.Logs: ~/Library/Logs/Claude (macOS) or %APPDATA%\Claude\Logs (Windows).
Logs: in the bottom panel, click Output and select Cursor MCP from the dropdown.
See the Windsurf MCP documentation for details.
Create .vscode/mcp.json in your workspace (or run MCP: Open User Configuration for a global config).
VS Code uses servers as the top-level key (not mcpServers):
{
"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.
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=8000
The 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
uv/uvx is installed and on your PATH. You may need to provide an absolute path to uv/uvx in the command field.--agent-base-url.uv sync to refresh dependencies.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.py
By 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 install
We 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.
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
uvx couchbase-guruMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-couchbase-ecosystem-couchbase-guru": {
"command": "uvx",
"args": [
"couchbase-guru"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referencecouchbase-gurupypiio.github.Couchbase-Ecosystem/couchbase-guru works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.