
Atlan
STDIOOfficialModel Context Protocol server for Atlan data integration and asset management
Model Context Protocol server for Atlan data integration and asset management
The Atlan Model Context Protocol server allows your AI agents to interact with Atlan services.
[!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.
Prerequisites:
docker --version
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" ] } } }
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" ] } } }
Prerequisites:
# 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
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.
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>" } } } }
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>" } } } }
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 |
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.
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:
{ "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" ] } } }
{ "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" } } } }
You can restrict any of the following tools:
search_assets_tool
- Asset search functionalityget_assets_by_dsl_tool
- DSL query executiontraverse_lineage_tool
- Lineage traversalupdate_assets_tool
- Asset updates (descriptions, certificates)create_glossaries
- Glossary creationcreate_glossary_categories
- Category creationcreate_glossary_terms
- Term creationRestrict all write operations:
RESTRICTED_TOOLS=update_assets_tool,create_glossaries,create_glossary_categories,create_glossary_terms
For security or performance reasons:
RESTRICTED_TOOLS=get_assets_by_dsl_tool
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
When tools are restricted:
If you don't set the RESTRICTED_TOOLS
environment variable, all tools will be available by default.
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.
-e MCP_TRANSPORT=sse
)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"] } } }
Want to develop locally? Check out our Local Build Guide for a step-by-step walkthrough!
Short answer: It depends on your installation method.
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.
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:
which uv
to verify the installation pathwhereis uv
and use that path