montumodi/mongodb-atlas-mcp-server
If you are the rightful owner of mongodb-atlas-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The MongoDB Atlas MCP Server is a Model Context Protocol server that provides access to the MongoDB Atlas API, enabling interaction with various MongoDB Atlas resources through MCP tools.
MongoDB Atlas MCP Server
A Model Context Protocol (MCP) server that provides access to the MongoDB Atlas API. This server wraps the mongodb-atlas-api-client package to expose MongoDB Atlas functionality through MCP tools.
Features
This MCP server exposes most of the mongodb-atlas-api-client surface as MCP tools.
Database Users
user_get
— Get a database user by usernameuser_get_all
— List all database usersuser_create
— Create a database useruser_update
— Update a database useruser_delete
— Delete a database user
Clusters
cluster_get
— Get cluster detailscluster_get_all
— List clusterscluster_create
— Create clustercluster_update
— Update clustercluster_delete
— Delete clustercluster_get_advanced_configuration
— Get processArgs (advanced config)cluster_update_advanced_configuration
— Update processArgs (advanced config)cluster_test_primary_failover
— Initiate a test primary failover
Projects
project_get_by_id
— Get project by IDproject_get_by_name
— Get project by nameproject_get_all
— List projectsproject_create
— Create projectproject_delete
— Delete projectproject_get_teams
— List teams for a projectproject_remove_user
— Remove a user from a projectproject_assign_teams
— Assign teams to a project
Cloud Backups
cloud_backup_get_snapshots
— List cloud backup snapshots (replicaset)cloud_backup_get_snapshot
— Get a specific snapshotcloud_backup_get_restore_job
— Get a snapshot restore jobcloud_backup_create_restore_job
— Create a snapshot restore job
Organizations
organization_get_by_id
— Get organization by IDorganization_get_all
— List organizationsorganization_get_users
— List users in an organizationorganization_get_projects
— List projects in an organizationorganization_delete
— Delete organizationorganization_rename
— Rename organizationorganization_invite
— Invite users to organization
Project Access Lists (current)
project_access_list_get_all
— List IP access list entriesproject_access_list_get
— Get a specific access list entryproject_access_list_create
— Add entries to access listproject_access_list_update
— Upsert access list entries (POST semantics)project_access_list_delete
— Delete an access list entry
Project Whitelist (legacy)
project_whitelist_get_all
— List whitelist entriesproject_whitelist_get
— Get a whitelist entryproject_whitelist_create
— Add whitelist entriesproject_whitelist_update
— Update whitelist entriesproject_whitelist_delete
— Delete a whitelist entry
Events
events_get_all
— List project eventsevents_get
— Get event by ID (project scope)events_get_by_org
— Get event by ID for an organizationevents_get_all_by_org
— List organization events
Atlas Search
atlas_search_get_all
— List indexes for a collectionatlas_search_create
— Create an indexatlas_search_get
— Get index by IDatlas_search_update
— Update index by IDatlas_search_delete
— Delete index by IDatlas_search_get_all_analyzers
— List analyzersatlas_search_upsert_analyzer
— Create/Update analyzers
Atlas Users (Account-level)
atlas_user_get_by_name
— Get Atlas user by usernameatlas_user_get_by_id
— Get Atlas user by IDatlas_user_get_all
— List Atlas users for the projectatlas_user_create
— Create Atlas useratlas_user_update
— Update Atlas user
Alerts
alert_get_all
— List project alertsalert_get
— Get alert by IDalert_acknowledge
— Acknowledge alert
Data Lake
datalake_get
— Get Data Lake by namedatalake_get_all
— List Data Lakesdatalake_create
— Create Data Lakedatalake_update
— Update Data Lakedatalake_delete
— Delete Data Lakedatalake_get_logs_stream
— Get query logs (returns base64-encoded gzip data)
Cloud Provider Access
cloud_provider_access_get_all
— List cloud provider access rolescloud_provider_access_create
— Create a rolecloud_provider_access_update
— Update a role (roleId + body)cloud_provider_access_delete
— Delete a role (cloudProvider + roleId)
Installation
- Clone this repository:
git clone https://github.com/montumodi/mongodb-atlas-mcp-server.git
cd mongodb-atlas-mcp-server
- Install dependencies:
npm install
Configuration
Before using the server, you need to set up environment variables with your MongoDB Atlas API credentials:
Required Environment Variables
MONGODB_ATLAS_PUBLIC_KEY
- Your MongoDB Atlas API public keyMONGODB_ATLAS_PRIVATE_KEY
- Your MongoDB Atlas API private keyMONGODB_ATLAS_PROJECT_ID
- Your MongoDB Atlas project/group ID
Optional Environment Variables
MONGODB_ATLAS_BASE_URL
- Atlas API base URL (defaults tohttps://cloud.mongodb.com/api/atlas/v1.0
)
Getting Atlas API Keys
- Log in to MongoDB Atlas
- Go to Organization Settings → Access Manager → API Keys
- Click Create API Key
- Assign appropriate permissions (Project Read/Write access recommended)
- Copy the public and private keys
- Find your Project ID in the project settings
Example Configuration
export MONGODB_ATLAS_PUBLIC_KEY="your-public-key"
export MONGODB_ATLAS_PRIVATE_KEY="your-private-key"
export MONGODB_ATLAS_PROJECT_ID="your-project-id"
Or create a .env
file:
MONGODB_ATLAS_PUBLIC_KEY=your-public-key
MONGODB_ATLAS_PRIVATE_KEY=your-private-key
MONGODB_ATLAS_PROJECT_ID=your-project-id
Usage
Running the Server
npm start
Using with MCP Clients
This server implements the Model Context Protocol and can be used with any MCP-compatible client. The server communicates over stdin/stdout.
Example Tool Usage
Get All Clusters
{
"name": "cluster_get_all",
"arguments": {
"options": {
"itemsPerPage": 10
}
}
}
Create a Database User
{
"name": "user_create",
"arguments": {
"body": {
"username": "newuser",
"password": "securepassword123",
"roles": [
{
"databaseName": "myapp",
"roleName": "readWrite"
}
],
"databaseName": "admin"
}
}
}
Get Project Events
Get Data Lake Logs (example)
Note: The logs are returned as base64-encoded gzip data in the text
response. Decode base64 and then gunzip to read.
{
"name": "datalake_get_logs_stream",
"arguments": { "dataLakeName": "MyDataLake" }
}
{
"name": "events_get_all",
"arguments": {
"options": {
"itemsPerPage": 20,
"eventType": ["CLUSTER"]
}
}
}
Error Handling
The server provides detailed error messages for:
- Missing or invalid API credentials
- Network connectivity issues
- Invalid parameters
- MongoDB Atlas API errors
Development
Running in Development Mode
npm run dev
Testing
npm test
Dependencies
- @modelcontextprotocol/sdk - MCP SDK for server implementation
- mongodb-atlas-api-client - MongoDB Atlas API client library
API Reference
This server exposes MongoDB Atlas API functionality through MCP tools. For detailed information about the underlying Atlas API, refer to:
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
License
MIT
Support
For issues and questions:
- Check the MongoDB Atlas API Documentation
- Review the mongodb-atlas-api-client documentation
- Open an issue in this repository