Command Palette

Search for a command to run...

UnylyUnyly
Весь каталог

MongoDB That Works Server

БесплатноНе проверен

Enables interaction with MongoDB databases through CRUD operations, aggregation, and schema discovery, with automatic field validation and ObjectId conversion.

GitHubEmbed

Описание

Enables interaction with MongoDB databases through CRUD operations, aggregation, and schema discovery, with automatic field validation and ObjectId conversion.

README

A reliable MongoDB MCP (Model Context Protocol) server that provides seamless MongoDB integration for Claude Desktop with built-in schema discovery and field validation.

Features

  • 🔍 Schema Discovery: Automatically analyze collection structures
  • Field Validation: Prevent field name mistakes
  • 📊 Full MongoDB Support: Find, aggregate, insert, update, delete operations
  • 🚀 High Performance: Efficient connection pooling and query optimization
  • 🔐 Secure: Support for MongoDB Atlas and authentication
  • 🎯 Type-Safe: Built with TypeScript and Zod validation

Installation

Install from npm

npm install -g @sourabhshegane/mongodb-mcp-that-works

Configuration

Add to your Claude Desktop configuration file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "mongodb": {
      "command": "npx",
      "args": ["-y", "@sourabhshegane/mongodb-mcp-that-works@latest"],
      "env": {
        "MONGODB_URI": "mongodb+srv://username:[email protected]/database",
        "MONGODB_DATABASE": "your_database_name"
      }
    }
  }
}

Configuration Options

  • MONGODB_URI: Your MongoDB connection string (required)
  • MONGODB_DATABASE: Default database name (optional)

Available Tools

1. listCollections

List all collections in the database.

// Example
mcp.listCollections({ filter: {} })

2. find

Find documents in a collection with filtering, sorting, and pagination.

// Example
mcp.find({
  collection: "users",
  filter: { status: "active" },
  sort: { createdAt: -1 },
  limit: 10
})

3. findOne

Find a single document.

// Example
mcp.findOne({
  collection: "users",
  filter: { email: "[email protected]" }
})

4. aggregate

Run aggregation pipelines.

// Example
mcp.aggregate({
  collection: "orders",
  pipeline: [
    { $match: { status: "completed" } },
    { $group: { _id: "$userId", total: { $sum: "$amount" } } }
  ]
})

5. count

Count documents matching a filter.

// Example
mcp.count({
  collection: "products",
  filter: { inStock: true }
})

6. distinct

Get distinct values for a field.

// Example
mcp.distinct({
  collection: "orders",
  field: "status"
})

7. insertOne

Insert a single document.

// Example
mcp.insertOne({
  collection: "users",
  document: { name: "John Doe", email: "[email protected]" }
})

8. updateOne

Update a single document.

// Example
mcp.updateOne({
  collection: "users",
  filter: { _id: "123" },
  update: { $set: { status: "active" } }
})

9. deleteOne

Delete a single document.

// Example
mcp.deleteOne({
  collection: "users",
  filter: { _id: "123" }
})

10. getSchema

Analyze collection structure and discover field names.

// Example
mcp.getSchema({
  collection: "users",
  sampleSize: 100
})

// Returns:
{
  "collection": "users",
  "sampleSize": 100,
  "fields": {
    "_id": {
      "types": ["ObjectId"],
      "examples": ["507f1f77bcf86cd799439011"],
      "frequency": "100/100",
      "percentage": 100
    },
    "email": {
      "types": ["string"],
      "examples": ["[email protected]"],
      "frequency": "100/100",
      "percentage": 100
    }
  }
}

Best Practices

  1. Use Schema Discovery First: Before querying, run getSchema to understand field names
  2. Handle ObjectIds: The server automatically converts string IDs to ObjectIds
  3. Use Projections: Limit returned fields to improve performance
  4. Batch Operations: Use aggregation pipelines for complex queries

Examples

Basic Usage

// Get schema first to avoid field name mistakes
const schema = await mcp.getSchema({ collection: "reports" });

// Use correct field names from schema
const reports = await mcp.find({
  collection: "reports",
  filter: { organization_id: "64ba7374f8b63db2083b2665" },
  limit: 10
});

Advanced Aggregation

const analytics = await mcp.aggregate({
  collection: "orders",
  pipeline: [
    { $match: { createdAt: { $gte: new Date("2024-01-01") } } },
    { $group: {
      _id: { $dateToString: { format: "%Y-%m", date: "$createdAt" } },
      revenue: { $sum: "$amount" },
      count: { $sum: 1 }
    }},
    { $sort: { _id: 1 } }
  ]
});

Troubleshooting

Connection Issues

  • Verify your MongoDB URI is correct
  • Check network connectivity to MongoDB Atlas
  • Ensure IP whitelist includes your current IP

Field Name Errors

  • Always use getSchema to discover correct field names
  • Remember MongoDB is case-sensitive
  • Check for typos in nested field paths (e.g., "user.profile.name")

Performance

  • Use indexes for frequently queried fields
  • Limit result sets with limit parameter
  • Use projections to return only needed fields

License

MIT License - see LICENSE file for details

Changelog

v0.1.0

  • Initial release
  • Full MongoDB CRUD operations
  • Schema discovery tool
  • Automatic ObjectId conversion
  • TypeScript support

Made out of pain since the official MongoDB MCP didn't work for me

from github.com/sourabhfb/mongodb-mcp-that-works

Установка MongoDB That Works Server

У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.

▸ github.com/sourabhfb/mongodb-mcp-that-works

FAQ

MongoDB That Works Server MCP бесплатный?

Да, MongoDB That Works Server MCP бесплатный — установка в пару кликов через Unyly без оплаты.

Нужен ли API-ключ для MongoDB That Works Server?

Нет, MongoDB That Works Server работает без API-ключей и переменных окружения.

MongoDB That Works Server — hosted или self-hosted?

Доступен hosted-вариант: Unyly запускает сервер в облаке, локальная установка не обязательна.

Как установить MongoDB That Works Server в Claude Desktop, Claude Code или Cursor?

Открой MongoDB That Works Server на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.

Похожие MCP

Compare MongoDB That Works Server with

Не уверен что выбрать?

Найди свой стек за 60 секунд

Автор?

Embed-бейдж для README

Похожее

Все в категории development