
ecole5/atlas-mcp
Browser automationModel Context Protocol server providing AI access to Apache Atlas data catalog via Apache Knox.
Overview
Model Context Protocol server providing AI access to Apache Atlas data catalog via Apache Knox. - — Knox proxies ATLAS_USER / ATLAS_PASS credentials through to Atlas. - — safe exploration of entities, lineage, types, and glossaries; a small set of write tools for tagging and labeling - — exponential backoff on transient errors - get_atlas_status() — Server health information - get_atlas_metrics() — Entity and tag counts by type - get_atlas_version() — Atlas version - search_entities(query, type_name?, classification?, limit, offset, exclude_deleted) — Basic search; use '*' to browse all - fulltext_search(query, limit, offset, exclude_deleted) — Full-text search across attribute values and descriptions - dsl_search(query, limit, offset) — Atlas DSL queries (e.g. hive_table where db.name="default") - search_by_classification(classification, entity_type?, limit, offset) — Find all entities with a given tag (e.g. PII) - get_entity(guid, ignore_relationships?
README
Atlas MCP Server
Model Context Protocol server providing AI access to Apache Atlas data catalog via Apache Knox.
Features
- Basic authentication — Knox proxies
ATLAS_USER/ATLAS_PASScredentials through to Atlas. - Read-mostly — safe exploration of entities, lineage, types, and glossaries; a small set of write tools for tagging and labeling
- Automatic retries — exponential backoff on transient errors
MCP Tools
Admin / Status
get_atlas_status()— Server health informationget_atlas_metrics()— Entity and tag counts by typeget_atlas_version()— Atlas version
Search
search_entities(query, type_name?, classification?, limit, offset, exclude_deleted)— Basic search; use'*'to browse allfulltext_search(query, limit, offset, exclude_deleted)— Full-text search across attribute values and descriptionsdsl_search(query, limit, offset)— Atlas DSL queries (e.g.hive_table where db.name="default")search_by_classification(classification, entity_type?, limit, offset)— Find all entities with a given tag (e.g.PII)
Entity
get_entity(guid, ignore_relationships?)— Full entity details including classifications and relationshipsget_entity_by_attribute(type_name, attr_name, attr_value)— Lookup byqualifiedNameor other unique attributeget_entity_classifications(guid)— Tags applied to an entityget_entity_labels(guid)— Free-form labels on an entityget_entity_audit(guid, count)— Audit history of attribute and classification changesget_entities_bulk(guids)— Fetch multiple entities in one call (comma-separated GUIDs)
Lineage
get_lineage(guid, direction, depth)— Data lineage graph (INPUT,OUTPUT, orBOTH)get_lineage_by_attribute(type_name, attr_name, attr_value, direction, depth)— Lineage without a GUID
Types
list_entity_types()— All registered entity type nameslist_classification_types()— All classification (tag) type namesget_entity_type_definition(type_name)— Full attribute schema for an entity typeget_classification_definition(classification_name)— Attribute schema for a classification type
Glossary
list_glossaries()— All business glossarieslist_glossary_terms(glossary_guid?, limit, offset)— Terms in a glossary (or all terms)get_glossary_term(term_guid)— Term definition and linked entitiesget_entities_for_glossary_term(term_guid, limit, offset)— Data assets linked to a term
Relationship
get_relationship(guid)— Details of an entity-to-entity relationship
Write operations
add_classification_to_entity(guid, classification_name, attributes?)— Apply a tag to an entityremove_classification_from_entity(guid, classification_name)— Remove a tag from an entityadd_labels_to_entity(guid, labels)— Add free-form labels (comma-separated)
Setup
Option 1: Claude Desktop (Local)
- Clone and install:
git clone
cd Atlas-MCP-Server
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
- Configure Claude Desktop — edit
~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"atlas-mcp-server": {
"command": "/FULL/PATH/TO/Atlas-MCP-Server/.venv/bin/python",
"args": ["-m", "atlas_mcp_server.server"],
"env": {
"ATLAS_GATEWAY_URL": "https:////cdp-proxy-api/atlas/api/atlas/",
"ATLAS_USER": "",
"ATLAS_PASS": ""
}
}
}
}
- Restart Claude Desktop and start asking questions about your data catalog.
Option 2: uvx (Cloudera Agent Studio)
{
"mcpServers": {
"atlas-mcp-server": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/ecole5/atlas-mcp@main",
"run-server"
],
"env": {
"ATLAS_GATEWAY_URL": "https:////cdp-proxy-api/atlas/api/atlas/",
"ATLAS_USER": "",
"ATLAS_PASS": ""
}
}
}
}
Configuration
All configuration is done via environment variables.
Connection
| Variable | Required | Description |
|---|---|---|
ATLAS_GATEWAY_URL |
Yes | Full CDP Knox Atlas API URL (e.g. https:////cdp-proxy-api/atlas/api/atlas/). |
Authentication
| Variable | Required | Description |
|---|---|---|
ATLAS_USER + ATLAS_PASS |
Yes | Basic auth credentials |
On CDP ATLAS_USER is the workload username and ATLAS_PASS is the workload password.
TLS / HTTP
| Variable | Default | Description |
|---|---|---|
ATLAS_VERIFY_SSL |
true |
Set false to disable certificate verification |
ATLAS_CA_BUNDLE |
— | Path to a CA certificate bundle |
HTTP_TIMEOUT_SECONDS |
30 |
Request timeout in seconds |
HTTP_MAX_RETRIES |
3 |
Maximum retry attempts on transient errors |
CDP URL pattern
The ATLAS_GATEWAY_URL is the full Atlas API path through Knox, for example:
https:////cdp-proxy-api/atlas/api/atlas/
A trailing slash is optional.
Example Queries
Once configured, you can ask Claude things like:
- “What entity types are registered in Atlas?”
- “Find all Hive tables in the default database”
- “Show me the lineage for table
default.orders@mycluster” - “Which entities are tagged as PII?”
- “What does the glossary term ‘Customer ID’ mean?”
- “Show me the audit history for entity guid abc-123”
- “Search for all Kafka topics containing ‘events’”
- “Tag entity abc-123 as Confidential”
License
Apache License 2.0
Install
uvx --from git+https://github.com/ecole5/atlas-mcp@main run-serverConfiguration
{
"mcpServers": {
"atlas-mcp-server": {
"command": "/FULL/PATH/TO/Atlas-MCP-Server/.venv/bin/python",
"args": ["-m", "atlas_mcp_server.server"],
"env": {
"ATLAS_GATEWAY_URL": "https://<host>/<topology>/cdp-proxy-api/atlas/api/atlas/",
"ATLAS_USER": "<your_username>",
"ATLAS_PASS": "<your_password>"
}
}
}
}