> ## Documentation Index
> Fetch the complete documentation index at: https://platform.atlan.com/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> To act on Atlan objects, use the Atlan MCP server at https://api.atlan.com/mcp or the SDK. To install or publish skills from a terminal, use the `aireg` CLI; `aireg --map json` prints its command map. The `atlanai` CLI is deprecated. Run a read-only identity check before any write.
> The docs MCP server at /mcp searches these docs only. It cannot read or change Atlan objects.
> SDK packages: Python `atlanai` (PyPI) and TypeScript `@atlanai/sdk` (npm). Show Python first, then TypeScript.
> These docs cover Atlan AI Registry, Atlan's hosted product. The AI registry specification and aireg CLI are maintained separately. /open-source lists publicly reachable signed installers and explains that the source repository and hosted CLI reference currently require GitHub access. Do not claim the repository or its reference docs are publicly accessible. Use these docs for Atlan-specific setup such as the adapter, sign-in and workspaces.

# Framework integration limitations

> Known limitations and Preview status for each agent framework integration with Atlan.

Known limitations by framework. Each integration is in Preview unless otherwise noted.

## LangGraph

* The MCP integration is in Preview and is not enabled for every Atlan account.
* The MCP adapter is stateless by default and creates a fresh MCP session for each tool invocation.
* Tool errors can return to the model as tool messages; connection and authentication failures still raise.
* For Deep Agents, each tool the agent runs appears as a tool step, but the handler does not yet record the tool calls a model requests in its response.
* The integration inherits LangChain and LangGraph lifecycle and model costs.

## CrewAI

* This integration is in Preview and is not enabled for every Atlan account.
* Cached tool lists can outlive a permission change until the connection is rebuilt.
* CrewAI may continue a task when an MCP server is unavailable, depending on the surrounding crew configuration.
* Tool calls follow the authenticated Atlan identity and workspace.

## Google ADK

* The MCP integration is in Preview and is not enabled for every Atlan account.
* Deployed ADK agents must define the agent and `McpToolset` synchronously, and the toolset must be closed with the agent.
* Tool calls follow the authenticated Atlan identity and workspace. Model, runtime, and deployment charges remain outside Atlan.
* If `opentelemetry-instrumentation-google-genai` is also installed, a model span it emits without ADK's identifiers counts as a separate call, so its tokens and cost count twice. Current releases carry ADK's identifiers and count once.
* Runs with `RunConfig(support_cfc=True)` show zero tokens and cost for their model calls.
* Checked with `google-adk` 1.14.1, 2.9.2, and 2.10.0 in Python.

Not all `google-adk` releases install alongside `atlanai[tracing]`:

| `google-adk` | Installs with `atlanai[tracing]` |
| - | - |
| 1.0 to 1.14 | Yes |
| 1.15 to 1.23 | No |
| 1.24 to 1.25 | Yes |
| 1.26 to 1.31 | No |
| 1.32 and later, including 2.x | Yes |

`atlanai[tracing]` requires `opentelemetry-sdk` 1.39 or later. The `No` releases pin an older version; install with `pip install "atlanai[tracing]>=0.3.4" google-adk` and confirm the resolver succeeds. To trace a `No` release, export ADK's spans with your own OpenTelemetry exporter: [Send OTLP traces](/api/how-tos/send-otlp-traces.md).

## OpenAI Agents SDK

* The MCP integration is in Preview and is not enabled for every Atlan account.
* Tool availability follows the authenticated Atlan identity, and tool-list caching can hide permission changes until the connection restarts.
* The model can choose not to call a tool unless your agent policy requires it.
* The tracing path is checked in Python only.
* Apply your organization's data-handling policy before sending content to a model provider.

## pi

* Zero-code tracing needs pi to load synchronously during `init()`. That means compiled JavaScript on Node.js 20.19 or later in the 20 line, or 22.12 or later, with no loader hooks such as `tsx`. Under a loader, pi is wrapped once it loads, and prompts that start before then are not traced. The SDK logs a warning that names the reason.
* pi instrumentation runs on Node.js only. On other runtimes the SDK logs a warning and traces nothing.
* `prompt()` and `continue()` return a new promise that settles with the same value or error as pi's own, so code that compares the returned promise object to pi's sees a different one. A rejection you don't handle still raises `unhandledRejection`.
* Only `prompt()` and `continue()` are traced. For work outside them, create your own spans, as in [Create spans for agent run](/tools/sdk/how-tos/tracing.md).
* In short-lived processes, flush before exit, as in [Export traces from serverless](/tools/sdk/how-tos/serverless.md).

## Pydantic AI

* On Pydantic AI 1.x, the default instrumentation version is 2, which uses older span names.
* On Pydantic AI 1.x, the run's total token usage appears on the agent step and on each model call, so the run total is counted twice.
* System instructions do not yet appear as an **Instructions** row in the trace timeline.

## Vercel AI SDK

* Spans cover what the AI SDK emits through `experimental_telemetry`. Work outside AI SDK calls needs your own spans, as in [Create spans for agent run](/tools/sdk/how-tos/tracing.md).
* In serverless runtimes, flush before the function returns, as in [Export traces from serverless](/tools/sdk/how-tos/serverless.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.