An MCP server for MonkDB
Project description
Official MonkDB MCP Server
An MCP (Modular Command Protocol) server for interacting with MonkDB, enabling Claude like LLMs to execute database-related tools such as querying, table inspection, and server health checks.
[!CAUTION] Treat your MCP database user as you would any external client connecting to your database, granting only the minimum necessary privileges. Avoid using default or admin users in production environments.
Features
Tools
-
run_select_query- Execute SQL queries on your MonkDB cluster.
- Input:
sql(string): The SQL query to execute. - Rejects non-select queries
-
list_tables- List all tables in
monkdbschema.
- List all tables in
-
health_check- Does a health check ping on MonkDB.
- Returns either
okor an error message.
-
get_server_version- Returns the server version of MonkDB.
-
describe_table- Describe a table's columns in MonkDB.
Configuration
-
Open the Claude Desktop configuration file located at:
- On macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - On Windows:
%APPDATA%/Claude/claude_desktop_config.json
- On macOS:
-
Add the following:
{
"mcpServers": {
"mcp-monkdb": {
"command": "uv",
"args": [
"run",
"--with",
"mcp-monkdb",
"--python",
"3.13",
"mcp-monkdb"
],
"env": {
"MONKDB_HOST": "<monkdb-host>",
"MONKDB_API_PORT": "<monkdb-port>",
"MONKDB_USER": "<monkdb-user>",
"MONKDB_PASSWORD": "<monkdb-password>",
// Optional OTEL Configuration
"MONKDB_OTEL_ENABLED": "true",
"MONKDB_OTEL_EXPORTER_OTLP_ENDPOINT": "https://your-otel-endpoint:4318",
"MONKDB_OTEL_SERVICE_NAME": "mcp-monkdb",
"MONKDB_OTEL_AUTH_HEADER": "Authorization=Bearer your-token-here"
}
}
}
}
Update the environment variables to point to your own MonkDB cluster.
-
Locate the command entry for
uvand replace it with the absolute path to theuvexecutable. This ensures that the correct version ofuvis used when starting the server. On a mac, you can find this path usingwhich uv. -
Restart Claude Desktop to apply the changes.
Note: you may also use poetry instead of uv.
{
"mcpServers": {
"mcp-monkdb": {
"command": "poetry",
"args": [
"run",
"python",
"-m",
"mcp_monkdb"
],
"env": {
"MONKDB_HOST": "<monkdb-host>",
"MONKDB_API_PORT": "<monkdb-port>",
"MONKDB_USER": "<monkdb-user>",
"MONKDB_PASSWORD": "<monkdb-password>",
// Optional OTEL Configuration
"MONKDB_OTEL_ENABLED": "true",
"MONKDB_OTEL_EXPORTER_OTLP_ENDPOINT": "https://your-otel-endpoint:4318",
"MONKDB_OTEL_SERVICE_NAME": "mcp-monkdb",
"MONKDB_OTEL_AUTH_HEADER": "Authorization=Bearer your-token-here"
}
}
}
}
Environment Variables
The following environment variables are used to configure the MonkDB connection and optional OpenTelemetry (OTEL) tracing.
Required Variables
MONKDB_HOST: The hostname or IP address of your MonkDB server.MONKDB_USER: The username for authentication.MONKDB_PASSWORD: The password for authentication.MONKDB_API_PORT: The API port of MonkDB (default is4200).
Optional Variables
MONKDB_SCHEMA: The schema of MonkDB. Defaults tomonkdb. Tables under this schema are protected by RBAC policies.
Optional OTEL Tracing Variables
To enable distributed tracing using OpenTelemetry:
MONKDB_OTEL_ENABLED: Set totrueto enable tracing.MONKDB_OTEL_EXPORTER_OTLP_ENDPOINT: The OTLP HTTP endpoint (e.g.http://localhost:4318orhttps://your-collector.com:4318).MONKDB_OTEL_SERVICE_NAME: Logical name for trace viewers (e.g.,mcp-monkdb).MONKDB_OTEL_AUTH_HEADER: (Optional) Auth header if your OTEL collector requires it.
Format:Authorization=Bearer <token>orapi-key=XYZ123.
Note
If you're using a local OTEL collector with no auth,MONKDB_OTEL_AUTH_HEADERcan be omitted.
Example .env Configuration
MONKDB_HOST=xx.xx.xx.xxx
MONKDB_USER=testuser
MONKDB_PASSWORD=testpassword
MONKDB_API_PORT=4200
MONKDB_SCHEMA=monkdb
# OpenTelemetry tracing (optional)
MONKDB_OTEL_ENABLED=true
MONKDB_OTEL_EXPORTER_OTLP_ENDPOINT=https://my-otel-collector:4318
MONKDB_OTEL_SERVICE_NAME=mcp-monkdb
MONKDB_OTEL_AUTH_HEADER=Authorization=Bearer xyz123
These can also be configured directly inside your Claude Desktop config:
{
"mcpServers": {
"mcp-monkdb": {
"command": "poetry",
"args": ["run", "python", "-m", "mcp_monkdb"],
"env": {
"MONKDB_HOST": "<monkdb-host>",
"MONKDB_API_PORT": "<monkdb-port>",
"MONKDB_USER": "<monkdb-user>",
"MONKDB_PASSWORD": "<monkdb-password>",
"MONKDB_OTEL_ENABLED": "true",
"MONKDB_OTEL_EXPORTER_OTLP_ENDPOINT": "https://your-otel-host:4318",
"MONKDB_OTEL_SERVICE_NAME": "mcp-monkdb",
"MONKDB_OTEL_AUTH_HEADER": "Authorization=Bearer your-token"
}
}
}
}
Traced Operations
| Operation | ToolTraced? | Captured Attributes |
|---|---|---|
| run_select_query | ✅ | monkdb.query, monkdb.query.type (select), monkdb.query.rows, status |
Running tests
cd in to mcp_monkdb folder and then run the below command to execute unit tests.
python3 -m unittest discover -s tests
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcp_monkdb-0.2.1.tar.gz.
File metadata
- Download URL: mcp_monkdb-0.2.1.tar.gz
- Upload date:
- Size: 39.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.1 CPython/3.13.2 Darwin/24.5.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
47edf4a6e655519c9c19b6e7d83ed7eb01ef02468a177379578bf91a87b42053
|
|
| MD5 |
b99f79eabfd3e79fd4ec2cadf8211485
|
|
| BLAKE2b-256 |
7eb838b7ca31de7da8877343ed03e34bd859b17964b2916f197310b626a81ba7
|
File details
Details for the file mcp_monkdb-0.2.1-py3-none-any.whl.
File metadata
- Download URL: mcp_monkdb-0.2.1-py3-none-any.whl
- Upload date:
- Size: 8.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.1 CPython/3.13.2 Darwin/24.5.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2bf39c9314fbc209d469e7f12af5609ce7a146d34e81fc146a71f088e360e0af
|
|
| MD5 |
8fd060a1afda091807cf8d08c3cb3db7
|
|
| BLAKE2b-256 |
e3da7c3e06c572fc36e2fc59e60c80fb9fbd0b311c5e317ec5ef858bca62c2b4
|