Skip to main content
Glama
johnib

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