ravendb-mcp
by johnib
README.md
# RavenDB MCP Server
A Model Context Protocol (MCP) server that enables AI assistants to interact with RavenDB databases through a standardized interface.
## Overview
This MCP server allows AI assistants to perform common RavenDB operations including:
- Connection management
- Database selection
- Collection listing
- Index management
- Document operations (get, store, delete)
- RQL queries
## Requirements
- Node.js 16+
- RavenDB 7.x
- Authentication using non-secured mode (no authentication)
## Installation
```bash
# Install globally
npm install -g ravendb-mcp
# Or run directly with npx
npx ravendb-mcp
```
## Configuration
### Server Configuration
Configure the server using environment variables or a `.env` file:
```
# Authentication Method (Only non-secured mode is supported)
RAVENDB_AUTH_METHOD=none
# Connection
RAVENDB_URL=http://your-ravendb-server:port
# Optional settings
RAVENDB_QUERY_TIMEOUT=30000 # Query timeout in milliseconds (optional)
```
### Cline MCP Configuration
To configure this MCP server for use with Cline AI, add the following to your MCP configuration:
#### Non-secured Mode Configuration
```json
{
"mcpServers": {
"github.com/johnib/ravendb-mcp": {
"disabled": false,
"timeout": 60,
"command": "npx",
"args": ["-y", "ravendb-mcp"],
"env": {
"RAVENDB_AUTH_METHOD": "none",
"RAVENDB_URL": "http://your-ravendb-server:port"
},
"transportType": "stdio"
}
}
}
```
You can customize the environment variables based on your specific RavenDB setup.
## Available Tools
### Connection Tools
#### initialize-connection
Establishes a connection to a RavenDB server.
```json
{
"server_url": "https://your-ravendb-server:port",
"database": "YourDatabase"
}
```
#### select-database
Switches to a specific database context.
```json
{
"database": "AnotherDatabase"
}
```
### Exploration Tools
#### show-collections
Lists all collections in the current database.
```json
{}
```
#### show-indexes
Lists all indexes in the current database.
```json
{}
```
### Document Operations
#### get-document
Retrieves a document by ID.
```json
{
"id": "employees/1"
}
```
#### store-document
Creates or updates a document.
```json
{
"document": {
"name": "John Doe",
"email": "john@example.com",
"department": "Engineering"
},
"id": "employees/1" // Optional, will be generated if not provided
}
```
#### delete-document
Deletes a document by ID.
```json
{
"id": "employees/1"
}
```
### Query Operations
#### query-documents
Executes RQL queries with results handling.
```json
{
"query": "from Employees where department = 'Engineering'"
}
```
## Example Usage
Here's a typical workflow for interacting with the RavenDB MCP server through an AI assistant:
1. **Connect to the database**
```
Use the initialize-connection tool to connect to your RavenDB server
```
2. **Explore the database structure**
```
Use show-collections to see what collections are available
```
3. **Retrieve documents**
```
Use get-document to fetch specific documents by ID
```
4. **Run queries**
```
Use query-documents to execute RQL queries
```
5. **Modify data**
```
Use store-document to create or update documents
Use delete-document to remove documents
```
## Development
```bash
# Install dependencies
npm install
# Build the project
npm run build
# Run in development mode
npm run dev
# Test with the MCP inspector
npm run inspector
```
## License
MIT
TDQS
A3.5/5.0
Scored across 8 tools
Disambiguation5/5
Each tool targets a distinct operation: CRUD on documents, connection management, database selection, and metadata listing. No two tools have overlapping purposes.
Naming Consistency5/5
All tools follow a consistent verb_noun pattern with lowercase and hyphens (e.g., delete-document, get-document, show-collections). No mixing of styles.
Tool Count5/5
8 tools is well-scoped for a RavenDB server: core CRUD, query, connection setup, database selection, and metadata listing. Not excessive or insufficient.
Completeness4/5
Covers basic document operations (create/read/delete), query, connection, and metadata. Missing explicit index management and bulk operations, but core workflows are complete.
Maintenance
ActivityInactive
ResponsivenessNo issues