Skip to main content

Atlan Model Context Protocol server for interacting with Atlan services

Project description

Atlan MCP Server

The Atlan Model Context Protocol server allows your AI agents to interact with Atlan services.

Quick Start

  1. Generate Atlan API key by following the documentation.
  2. Select one of the following approaches based on your preference:

[!NOTE] Make sure to replace <YOUR_API_KEY>, <YOUR_INSTANCE>, and <YOUR_AGENT_ID> with your actual Atlan API key, instance URL, and agent ID(optional) in the configuration file respectively.

Install via Docker

Prerequisites:

Add to Claude Desktop

Go to Claude > Settings > Developer > Edit Config > claude_desktop_config.json and add:

{
  "mcpServers": {
    "atlan": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "ATLAN_API_KEY=<YOUR_API_KEY>",
        "-e",
        "ATLAN_BASE_URL=https://<YOUR_INSTANCE>.atlan.com",
        "-e",
        "ATLAN_AGENT_ID=<YOUR_AGENT_ID>",
        "ghcr.io/atlanhq/atlan-mcp-server:latest"
      ]
    }
  }
}

Add to Cursor

Open Cursor > Settings > Tools & Integrations > New MCP Server to include the following:

{
  "mcpServers": {
    "atlan": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "ATLAN_API_KEY=<YOUR_API_KEY>",
        "-e",
        "ATLAN_BASE_URL=https://<YOUR_INSTANCE>.atlan.com",
        "-e",
        "ATLAN_AGENT_ID=<YOUR_AGENT_ID>",
        "ghcr.io/atlanhq/atlan-mcp-server:latest"
      ]
    }
  }
}

Install via uv

Prerequisites:

  • Install uv:
    # macOS/Linux
    curl -LsSf https://astral.sh/uv/install.sh | sh
    
    # Windows (PowerShell)
    powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
    
    # Alternative: if you already have Python/pip
    pip install uv
    
  • Verify installation:
    uv --version
    

[!NOTE] With uv, uvx automatically fetches the latest version each time you run it. For more predictable behavior, consider using the Docker option.

Add to Claude Desktop

Go to Claude > Settings > Developer > Edit Config > claude_desktop_config.json to include the following:

{
  "mcpServers": {
    "atlan": {
      "command": "uvx",
      "args": ["atlan-mcp-server"],
      "env": {
        "ATLAN_API_KEY": "<YOUR_API_KEY>",
        "ATLAN_BASE_URL": "https://<YOUR_INSTANCE>.atlan.com",
        "ATLAN_AGENT_ID": "<YOUR_AGENT_ID>"
      }
    }
  }
}

Add to Cursor

Open Cursor > Settings > Tools & Integrations > New MCP Server to include the following:

{
  "mcpServers": {
    "atlan": {
      "command": "uvx",
      "args": ["atlan-mcp-server"],
      "env": {
        "ATLAN_API_KEY": "<YOUR_API_KEY>",
        "ATLAN_BASE_URL": "https://<YOUR_INSTANCE>.atlan.com",
        "ATLAN_AGENT_ID": "<YOUR_AGENT_ID>"
      }
    }
  }
}

Available Tools

Tool Description
search_assets Search for assets based on conditions
get_assets_by_dsl Retrieve assets using a DSL query
traverse_lineage Retrieve lineage for an asset
update_assets Update asset attributes (user description and certificate status)
create_glossaries Create glossaries
create_glossary_categories Create glossary categories
create_glossary_terms Create glossary terms
create_dq_rules Create data quality rules on Table, View, MaterialisedView, or SnowflakeDynamicTable assets (column-level, table-level, custom SQL)
update_dq_rules Update existing data quality rules (threshold, priority, conditions, etc.)
schedule_dq_rules Schedule data quality rule execution for assets using cron expressions
delete_dq_rules Delete one or multiple data quality rules by GUID
query_asset Execute SQL queries on table/view assets

Tool Access Control

The Atlan MCP Server includes a configurable tool restriction middleware that allows you to control which tools are available to users. This is useful for implementing role-based access control or restricting certain operations in specific environments.

Restricting Tools

You can restrict access to specific tools using the RESTRICTED_TOOLS environment variable. Provide a comma-separated list of tool names that should be blocked:

Docker Configuration

{
  "mcpServers": {
    "atlan": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "ATLAN_API_KEY=<YOUR_API_KEY>",
        "-e",
        "ATLAN_BASE_URL=https://<YOUR_INSTANCE>.atlan.com",
        "-e",
        "ATLAN_AGENT_ID=<YOUR_AGENT_ID>",
        "-e",
        "RESTRICTED_TOOLS=get_assets_by_dsl_tool,update_assets_tool",
        "ghcr.io/atlanhq/atlan-mcp-server:latest"
      ]
    }
  }
}

uv Configuration

{
  "mcpServers": {
    "atlan": {
      "command": "uvx",
      "args": ["atlan-mcp-server"],
      "env": {
        "ATLAN_API_KEY": "<YOUR_API_KEY>",
        "ATLAN_BASE_URL": "https://<YOUR_INSTANCE>.atlan.com",
        "ATLAN_AGENT_ID": "<YOUR_AGENT_ID>",
        "RESTRICTED_TOOLS": "get_assets_by_dsl_tool,update_assets_tool"
      }
    }
  }
}

Available Tool Names for Restriction

You can restrict any of the following tools:

  • search_assets_tool - Asset search functionality
  • get_assets_by_dsl_tool - DSL query execution
  • traverse_lineage_tool - Lineage traversal
  • update_assets_tool - Asset updates (descriptions, certificates)
  • create_glossaries - Glossary creation
  • create_glossary_categories - Category creation
  • create_glossary_terms - Term creation
  • create_dq_rules_tool - Data quality rule creation
  • update_dq_rules_tool - Data quality rule updates
  • schedule_dq_rules_tool - Data quality rule scheduling
  • delete_dq_rules_tool - Data quality rule deletion

Common Use Cases

Read-Only Access

Restrict all write operations:

RESTRICTED_TOOLS=update_assets_tool,create_glossaries,create_glossary_categories,create_glossary_terms,create_dq_rules_tool,update_dq_rules_tool,schedule_dq_rules_tool,delete_dq_rules_tool

Disable DSL Queries

For security or performance reasons:

RESTRICTED_TOOLS=get_assets_by_dsl_tool

Minimal Access

Allow only basic search:

RESTRICTED_TOOLS=get_assets_by_dsl_tool,update_assets_tool,traverse_lineage_tool,create_glossaries,create_glossary_categories,create_glossary_terms,create_dq_rules_tool,update_dq_rules_tool,schedule_dq_rules_tool,delete_dq_rules_tool

How It Works

When tools are restricted:

  1. Hidden from listings: Restricted tools won't appear when clients request available tools
  2. Execution blocked: If someone tries to execute a restricted tool, they'll receive a clear error message
  3. Logged: All access decisions are logged for monitoring and debugging

No Restrictions (Default)

If you don't set the RESTRICTED_TOOLS environment variable, all tools will be available by default.

Transport Modes

The Atlan MCP Server supports three transport modes, each optimized for different deployment scenarios. For more details about MCP transport modes, see the official MCP documentation.

Transport Mode Use Case Benefits When to Use
stdio (Default) Local development, IDE integrations Simple, direct communication Claude Desktop, Cursor IDE
SSE (Server-Sent Events) Remote deployments, web browsers Real-time streaming, web-compatible Cloud deployments, web clients
streamable-http HTTP-based remote connections Standard HTTP, load balancer friendly Kubernetes, containerized deployments

For comprehensive deployment instructions, configuration examples, and production best practices, see our Deployment Guide.

Production Deployment

  • Host the Atlan MCP container image on the cloud/platform of your choice
  • Make sure you add all the required environment variables
  • Choose the appropriate transport mode for your deployment scenario. SSE Transport is recommended for production (-e MCP_TRANSPORT=sse)
  • For detailed deployment scenarios and configurations, refer to the Deployment Guide

Remote MCP Configuration

We currently do not have a remote MCP server for Atlan generally available.

You can use the mcp-remote local proxy tool to connect it to your remote MCP server.

This lets you to test what an interaction with your remote MCP server will be like with a real-world MCP client.

{
  "mcpServers": {
    "math": {
      "command": "npx",
      "args": ["mcp-remote", "https://hosted-domain"]
    }
  }
}

Develop Locally

Want to develop locally? Check out our Local Build Guide for a step-by-step walkthrough!

Need Help?

Frequently Asked Questions

Do I need Python installed?

Short answer: It depends on your installation method.

  • Docker (Recommended): No Python installation required on your host machine. The container includes everything needed.
  • uv: A Python runtime is needed, but uv will automatically download and manage Python 3.11+ for you if it's not already available.

Technical details: The Atlan MCP server is implemented as a Python application. The Model Context Protocol itself is language-agnostic, but our current implementation requires Python 3.11+ to run.

Troubleshooting

  1. If Claude Desktop shows an error similar to spawn uv ENOENT {"context":"connection","stack":"Error: spawn uv ENOENT\n at ChildProcess._handle.onexit, it is most likely this issue where Claude is unable to find uv. To fix it:
    • Make sure uv is installed and available in your PATH
    • Run which uv to verify the installation path
    • Update Claude's configuration to point to the exact uv path by running whereis uv and use that path

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

atlan_mcp_server-0.3.1.tar.gz (106.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

atlan_mcp_server-0.3.1-py3-none-any.whl (125.9 kB view details)

Uploaded Python 3

File details

Details for the file atlan_mcp_server-0.3.1.tar.gz.

File metadata

  • Download URL: atlan_mcp_server-0.3.1.tar.gz
  • Upload date:
  • Size: 106.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for atlan_mcp_server-0.3.1.tar.gz
Algorithm Hash digest
SHA256 9959a18b337ec20c838d2ecdc90418aeeffc78b1effdbb03e11a1500e2db33cc
MD5 984caa1db1fce89409b4997e1f248e6e
BLAKE2b-256 f02649f05336bd2309e4169b517326fa13de46dc0f04c8283570669f898b1056

See more details on using hashes here.

File details

Details for the file atlan_mcp_server-0.3.1-py3-none-any.whl.

File metadata

File hashes

Hashes for atlan_mcp_server-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 74245691d18b95ff103ec789c65ba562e3ea3b3675b5c1762f1dc94a0dedbd7b
MD5 18323adfb8066fd482376ab73927f4d9
BLAKE2b-256 ce3d89e403302dc164b7fb508a3bb8f8d512e9688808d5790828175919970ab2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page