MongoDB MCP Server
Um servidor para realizar operações CRUD em um banco de dados MongoDB.
Documentação
MongoDB MCP Server
Servidor MongoDB MCP (Model Context Protocol) baseado nas ferramentas FastMCP e uv, fornecendo funcionalidades completas de operações CRUD.
Funcionalidades
- ✅ Gerenciamento de conexão: Conectar e desconectar do banco de dados MongoDB
- ✅ Criar documentos: Inserir novos documentos em coleções
- ✅ Ler documentos: Consultar documentos de coleções, com suporte a filtros e paginação
- ✅ Atualizar documentos: Atualizar documentos em coleções, com suporte a upsert
- ✅ Excluir documentos: Excluir documentos de coleções
- ✅ Tratamento de erros: Tratamento de erros e registro de logs abrangentes
- ✅ Serialização de dados: Processamento automático de tipos especiais do MongoDB, como ObjectId
Instalação de dependências
Instale as dependências do projeto usando uv:
# 安装 uv(如果还没安装)
curl -LsSf https://astral.sh/uv/install.sh | sh
# 安装项目依赖
uv pip install -e .
Ou usando pip:
pip install -e .
Descrição das ferramentas
1. connect - Conectar ao banco de dados
Conecta ao banco de dados MongoDB.
Parâmetros:
connection_string(str): String de conexão do MongoDBdatabase_name(str): Nome do banco de dados
Exemplo:
{
"connection_string": "mongodb://localhost:27017",
"database_name": "myapp"
}
2. disconnect - Desconectar
Desconecta a conexão atual do MongoDB.
Parâmetros: Nenhum
3. create - Criar documento
Cria um novo documento na coleção especificada.
Parâmetros:
collection_name(str): Nome da coleçãodocument(dict): Conteúdo do documento a ser inserido
Exemplo:
{
"collection_name": "users",
"document": {
"name": "张三",
"age": 25,
"email": "zhangsan@example.com"
}
}
4. read - Ler documentos
Lê documentos da coleção especificada.
Parâmetros:
collection_name(str): Nome da coleçãofilter(dict, opcional): Condições de filtro da consultalimit(int, opcional): Limite de quantidade retornadaskip(int, opcional): Número de documentos a pular
Exemplo:
{
"collection_name": "users",
"filter": {"age": {"$gte": 18}},
"limit": 10,
"skip": 0
}
5. update - Atualizar documento
Atualiza documentos na coleção especificada.
Parâmetros:
collection_name(str): Nome da coleçãofilter(dict): Condições de atualizaçãoupdate(dict): Operação de atualizaçãoupsert(bool, opcional): Se deve criar caso o documento não exista, padrão é false
Exemplo:
{
"collection_name": "users",
"filter": {"name": "张三"},
"update": {"$set": {"age": 26}},
"upsert": false
}
6. delete - Excluir documento
Exclui documentos da coleção especificada.
Parâmetros:
collection_name(str): Nome da coleçãofilter(dict): Condições de exclusão
Exemplo:
{
"collection_name": "users",
"filter": {"age": {"$lt": 18}}
}
Como usar
Executar como servidor MCP
# 直接运行
python -m my_mongo_mcp.server
# 或者使用安装的脚本
my-mongo-mcp
Usar no Claude Desktop
Adicione no arquivo de configuração do Claude Desktop:
{
"mcpServers": {
"mongodb": {
"command": "python",
"args": ["-m", "my_mongo_mcp.server"],
"env": {}
}
}
}
Uso programático
Consulte o arquivo example_usage.py:
python example_usage.py
Exemplos de uso
Operações CRUD básicas
-
Conectar ao banco de dados
工具: connect 参数: {"connection_string": "mongodb://localhost:27017", "database_name": "testdb"} -
Criar documento de usuário
工具: create 参数: { "collection_name": "users", "document": {"name": "李四", "age": 30, "city": "上海"} } -
Consultar usuário
工具: read 参数: { "collection_name": "users", "filter": {"city": "上海"}, "limit": 5 } -
Atualizar informações do usuário
工具: update 参数: { "collection_name": "users", "filter": {"name": "李四"}, "update": {"$set": {"age": 31}} } -
Excluir usuário
工具: delete 参数: { "collection_name": "users", "filter": {"name": "李四"} } -
Desconectar
工具: disconnect
Observações
- Certifique-se de que o servidor MongoDB esteja em execução antes de usar
- Todas as operações exigem conexão prévia ao banco de dados
- Tipos especiais como ObjectId são convertidos automaticamente para strings
- Suporta toda a sintaxe padrão de consulta do MongoDB
- Mensagens de erro são retornadas em chinês
Requisitos do sistema
- Python 3.8+
- MongoDB 3.6+
- fastmcp 0.2.0+
- pymongo 4.6.0+
Solução de problemas
-
Falha na conexão
- Verifique se o serviço MongoDB está iniciado
- Valide se a string de conexão está correta
- Verifique a conexão de rede e as configurações de firewall
-
Erros de permissão
- Certifique-se de que o usuário do MongoDB tenha permissões suficientes
- Verifique as permissões de acesso ao banco de dados e às coleções
-
Erros de tipo de dados
- Certifique-se de que o formato dos dados JSON esteja correto
- Preste atenção aos requisitos de formato do ObjectId "# mongodb-mcp-server"