Skip to main content
Glama
harryelv

MongoDB MCP Server

by harryelv
README.md
# MongoDB MCP Server

A Model Context Protocol (MCP) server that enables Cursor IDE to query MongoDB databases for debugging and development.

## Features

- **List Collections**: See all collections in your database
- **Find Documents**: Query documents with filters and limits
- **Count Documents**: Count documents matching specific criteria

## Installation for Cursor IDE

### Option 1: NPX (Recommended - No local installation needed)

Add to your `.cursor/mcp.json`:

```json
{
  "mcpServers": {
    "mongodb": {
      "command": "npx",
      "args": ["-y", "@harryelv/mongodb-mcp-server"],
      "env": {
        "MONGODB_CONNECTION_STRING": "mongodb://localhost:27017",
        "MONGODB_DATABASE": "your_database_name"
      }
    }
  }
}
```

### Option 2: Local Development

If you want to modify the source code:

```bash
git clone https://github.com/harryelv/mongodb-mcp-server.git
cd mongodb-mcp-server
npm install
npm run build
```

Then add to your `.cursor/mcp.json`:

```json
{
  "mcpServers": {
    "mongodb": {
      "command": "node",
      "args": ["/path/to/mongodb-mcp-server/dist/server.js"],
      "env": {
        "MONGODB_CONNECTION_STRING": "mongodb://localhost:27017",
        "MONGODB_DATABASE": "your_database_name"
      }
    }
  }
}
```

## Configuration

### Environment Variables

- `MONGODB_CONNECTION_STRING`: MongoDB connection string (default: `mongodb://localhost:27017`)
- `MONGODB_DATABASE`: Database name to connect to (default: `test`)

### Usage in Cursor

After configuration, restart Cursor and use Agent Mode to ask questions like:

- "List all collections in my database"
- "Find users where age is greater than 25"
- "Count how many orders have status pending"
- "Show me 10 products from the products collection"

## Tools Available

### listCollections
Lists all collections in the database.
- No parameters required

### findDocuments
- `collection` (string): Collection name
- `filter` (object, optional): MongoDB filter query
- `limit` (number, optional): Max documents to return (default: 10)

### countDocuments  
- `collection` (string): Collection name
- `filter` (object, optional): MongoDB filter query

## Example Usage

```
// In Cursor Agent Mode, you can ask:
"Show me all collections"
"Find 5 users from the users collection"
"Count documents in orders collection where status is 'pending'"
```

## Security

- This server is **read-only** by design - it only provides query capabilities
- No write, update, or delete operations are supported
- Use MongoDB user accounts with read-only permissions for additional security

## Development

### Prerequisites
- Node.js 18+
- MongoDB server
- TypeScript

### Build Commands
```bash
npm run build    # Compile TypeScript
npm run dev      # Run in development mode
npm start        # Run compiled server
```

## Contributing

1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## Links

- **GitHub**: https://github.com/harryelv/mongodb-mcp-server
- **npm Package**: https://www.npmjs.com/package/@harryelv/mongodb-mcp-server