Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# Atlan Agent Toolkit

> [!WARNING]
> **The local Atlan MCP server in this repository is deprecated.** Use the hosted Atlan MCP at **[mcp.atlan.com/mcp](https://mcp.atlan.com/mcp)** instead.
>
> The local install path (cloning this repo or `pip install atlan-mcp-server`) is in maintenance-only mode — no new features, support not guaranteed. The hosted endpoint is the recommended way to integrate Atlan with Claude Desktop, Cursor, Codex, Databricks UC, and other MCP clients.
>
> See the [Atlan MCP overview](https://docs.atlan.com/product/capabilities/atlan-ai/how-tos/remote-mcp-overview) for migration instructions.

[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](code_of_conduct.md)
[![PyPI - Version](https://img.shields.io/pypi/v/atlan-mcp-server.svg)](https://pypi.org/project/atlan-mcp-server)
[![License](https://img.shields.io/github/license/atlanhq/agent-toolkit.svg)](https://github.com/atlanhq/agent-toolkit/blob/main/LICENSE)
Expand Down
5 changes: 5 additions & 0 deletions modelcontextprotocol/README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
# Atlan MCP Server

> [!WARNING]
> **This local MCP server is deprecated.** Use the hosted Atlan MCP at **[mcp.atlan.com/mcp](https://mcp.atlan.com/mcp)** instead.
>
> The local install path (Docker, uv, or `pip install atlan-mcp-server`) is in maintenance-only mode — no new features, support not guaranteed. The hosted endpoint is the recommended way to integrate Atlan with Claude Desktop, Cursor, Codex, Databricks UC, and other MCP clients. See the [Atlan MCP overview](https://docs.atlan.com/product/capabilities/atlan-ai/how-tos/remote-mcp-overview) for setup.

The Atlan [Model Context Protocol](https://modelcontextprotocol.io/introduction) server allows your AI agents to interact with Atlan services.

## Quick Start
Expand Down
46 changes: 45 additions & 1 deletion modelcontextprotocol/server.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import argparse
import json
import os
import sys
from typing import Any, Dict, List
from fastmcp import FastMCP
from tools import (
Expand Down Expand Up @@ -32,7 +33,22 @@
from settings import get_settings


mcp = FastMCP("Atlan MCP Server")
# AICHAT-1153: The `instructions` string is surfaced to MCP clients in the
# `serverInfo` field returned during `initialize`. Some clients inject this
# into the LLM's system prompt context, so it's deliberately kept as a neutral,
# information-only note about the hosted alternative — no alarm words like
# "deprecated" / "maintenance-only" that could cause the LLM to pre-warn or
# refuse tools. The strong deprecation signal lives in the README banner and
# the stderr startup banner instead.
_SERVER_INSTRUCTIONS = (
"This is the local Atlan MCP server. The hosted Atlan MCP at "
"https://mcp.atlan.com/mcp is the recommended way to connect Atlan to "
"MCP clients (Claude Desktop, Cursor, Codex, Databricks UC, etc.). "
"See https://docs.atlan.com/product/capabilities/atlan-ai/how-tos/"
"remote-mcp-overview for setup."
)
Comment thread
Aryamanz29 marked this conversation as resolved.

mcp = FastMCP("Atlan MCP Server", instructions=_SERVER_INSTRUCTIONS)

# Get restricted tools from environment variable or use default
restricted_tools_env = os.getenv("RESTRICTED_TOOLS", "")
Expand Down Expand Up @@ -1305,8 +1321,36 @@ def update_dq_rules_tool(rules):
}


def _print_deprecation_banner() -> None:
"""Print the deprecation banner to stderr on startup.

stderr (never stdout) because stdio transport uses stdout as the JSON-RPC
channel — anything on stdout breaks the protocol. Most MCP clients capture
stderr to their own log file, which is the right place for this notice.
"""
banner = (
"\n"
"==============================================================\n"
" DEPRECATION NOTICE\n"
"--------------------------------------------------------------\n"
" This local Atlan MCP server is deprecated.\n"
" Use the hosted Atlan MCP at https://mcp.atlan.com/mcp instead.\n"
"\n"
" The local install path (clone / pip install atlan-mcp-server)\n"
" is in maintenance-only mode:\n"
" - No new features\n"
" - Support not guaranteed\n"
"\n"
" Migration: https://docs.atlan.com/product/capabilities/\n"
" atlan-ai/how-tos/remote-mcp-overview\n"
"==============================================================\n"
)
print(banner, file=sys.stderr, flush=True)


def main():
"""Main entry point for the Atlan MCP Server."""
_print_deprecation_banner()

settings = get_settings()

Expand Down
Loading