mongodb-atlas-mcp-server

montumodi/mongodb-atlas-mcp-server

3.2

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.

Tools
3
Resources
0
Prompts
0

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 username
  • user_get_all — List all database users
  • user_create — Create a database user
  • user_update — Update a database user
  • user_delete — Delete a database user

Clusters

  • cluster_get — Get cluster details
  • cluster_get_all — List clusters
  • cluster_create — Create cluster
  • cluster_update — Update cluster
  • cluster_delete — Delete cluster
  • cluster_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 ID
  • project_get_by_name — Get project by name
  • project_get_all — List projects
  • project_create — Create project
  • project_delete — Delete project
  • project_get_teams — List teams for a project
  • project_remove_user — Remove a user from a project
  • project_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 snapshot
  • cloud_backup_get_restore_job — Get a snapshot restore job
  • cloud_backup_create_restore_job — Create a snapshot restore job

Organizations

  • organization_get_by_id — Get organization by ID
  • organization_get_all — List organizations
  • organization_get_users — List users in an organization
  • organization_get_projects — List projects in an organization
  • organization_delete — Delete organization
  • organization_rename — Rename organization
  • organization_invite — Invite users to organization

Project Access Lists (current)

  • project_access_list_get_all — List IP access list entries
  • project_access_list_get — Get a specific access list entry
  • project_access_list_create — Add entries to access list
  • project_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 entries
  • project_whitelist_get — Get a whitelist entry
  • project_whitelist_create — Add whitelist entries
  • project_whitelist_update — Update whitelist entries
  • project_whitelist_delete — Delete a whitelist entry

Events

  • events_get_all — List project events
  • events_get — Get event by ID (project scope)
  • events_get_by_org — Get event by ID for an organization
  • events_get_all_by_org — List organization events

Atlas Search

  • atlas_search_get_all — List indexes for a collection
  • atlas_search_create — Create an index
  • atlas_search_get — Get index by ID
  • atlas_search_update — Update index by ID
  • atlas_search_delete — Delete index by ID
  • atlas_search_get_all_analyzers — List analyzers
  • atlas_search_upsert_analyzer — Create/Update analyzers

Atlas Users (Account-level)

  • atlas_user_get_by_name — Get Atlas user by username
  • atlas_user_get_by_id — Get Atlas user by ID
  • atlas_user_get_all — List Atlas users for the project
  • atlas_user_create — Create Atlas user
  • atlas_user_update — Update Atlas user

Alerts

  • alert_get_all — List project alerts
  • alert_get — Get alert by ID
  • alert_acknowledge — Acknowledge alert

Data Lake

  • datalake_get — Get Data Lake by name
  • datalake_get_all — List Data Lakes
  • datalake_create — Create Data Lake
  • datalake_update — Update Data Lake
  • datalake_delete — Delete Data Lake
  • datalake_get_logs_stream — Get query logs (returns base64-encoded gzip data)

Cloud Provider Access

  • cloud_provider_access_get_all — List cloud provider access roles
  • cloud_provider_access_create — Create a role
  • cloud_provider_access_update — Update a role (roleId + body)
  • cloud_provider_access_delete — Delete a role (cloudProvider + roleId)

Installation

  1. Clone this repository:
git clone https://github.com/montumodi/mongodb-atlas-mcp-server.git
cd mongodb-atlas-mcp-server
  1. 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 key
  • MONGODB_ATLAS_PRIVATE_KEY - Your MongoDB Atlas API private key
  • MONGODB_ATLAS_PROJECT_ID - Your MongoDB Atlas project/group ID

Optional Environment Variables

  • MONGODB_ATLAS_BASE_URL - Atlas API base URL (defaults to https://cloud.mongodb.com/api/atlas/v1.0)

Getting Atlas API Keys

  1. Log in to MongoDB Atlas
  2. Go to Organization SettingsAccess ManagerAPI Keys
  3. Click Create API Key
  4. Assign appropriate permissions (Project Read/Write access recommended)
  5. Copy the public and private keys
  6. 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

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

License

MIT

Support

For issues and questions: