by Alation
Enables AI agents to access and leverage metadata from the Alation Data Catalog for tasks such as asset curation, search, and data analysis.
The SDK provides a set of Python libraries and server components that let AI agents query, retrieve, and modify catalog metadata stored in Alation. It includes core API client, LangChain adapters, and an MCP‑compatible server exposing catalog context to any MCP client.
pip install alation-ai-agent-sdk # core SDK
pip install alation-ai-agent-langchain # LangChain integration
pip install alation-ai-agent-mcp # MCP server
ServiceAccountAuthParams
or UserAccountAuthParams
and instantiate AlationAPI
.get_context
, bulk_retrieval
, lineage
, etc., either directly through the core SDK or via LangChain agents.alation-ai-agent-mcp
; the server will expose the catalog context over the Model Context Protocol for external clients.alation_context
, get_data_products
, bulk_retrieval
, check_job_status
, update_catalog_metadata
, generate_data_product
, lineage
, get_custom_fields_definitions
, and get_data_dictionary_instructions
.generate_data_product
and schema retrieval.Q: Which Python version is required?
A: Python 3.10 or higher.
Q: How do I authenticate if I don't have service‑account credentials?
A: Use UserAccountAuthParams
as described in the authentication guide.
Q: Is there a way to retrieve custom field definitions?
A: Yes, the get_custom_fields_definitions
tool returns all custom field metadata (admin) or built‑in fields (non‑admin).
Q: Can I run the MCP server in a container?
A: The MCP server is a Python package; you can containerize it like any Python app by installing the package and executing the provided entry point.
Q: What if I need lineage but the feature is in beta?
A: Enable the beta lineage feature on your Alation instance via support, then activate the lineage tool in the SDK.
The Alation AI Agent SDK enables AI agents to access and leverage metadata from the Alation Data Catalog.
This SDK empowers AI agents to:
The project is organized into multiple components:
alation-ai-agent-sdk
)The core SDK provides the foundation for interacting with the Alation API. It handles authentication, request formatting, and response parsing.
alation-ai-agent-langchain
)This component integrates the SDK with the LangChain framework, enabling the creation of sophisticated AI agents that can reason about your data catalog.
Learn more about the LangChain Integration
alation-ai-agent-mcp
)The MCP integration provides an MCP-compatible server that exposes Alation's context capabilities to any MCP client.
Learn more about the MCP Integration
# Install core SDK
pip install alation-ai-agent-sdk
# Install LangChain integration
pip install alation-ai-agent-langchain
# Install MCP integration
pip install alation-ai-agent-mcp
The library needs to be configured with your Alation instance credentials. Depending on your authentication mode, you can use either UserAccountAuthParams
or ServiceAccountAuthParams
.
from alation_ai_agent_sdk import AlationAPI, ServiceAccountAuthParams
# Initialize the SDK with Service Account Authentication
auth_params = ServiceAccountAuthParams(
client_id="your_client_id",
client_secret="your_client_secret"
)
alation_api = AlationAPI(
base_url="https://your-alation-instance.com",
auth_method="service_account",
auth_params=auth_params
)
If you cannot obtain service account credentials (admin only), see the User Account Authentication Guide for instructions.
Functionality
Usage
response = alation_ai_sdk.get_context(
"What certified data set is used to make decisions on providing credit for customers?"
)
Input Parameters
question
(string): The natural language querysignature
(optional dict): The configuration controlling which objects and their fieldsReturns
Functionality
Usage
response = alation_ai_sdk.get_data_products(
"12345" # Example product ID
)
response = alation_ai_sdk.get_data_products(
"Show me all data products related to sales"
)
Input Parameters
product_id
(string, optional): The ID of the product for direct lookupquery
(string, optional): A natural language query to discover data productsReturns
Functionality
Usage
# Get tables from a specific datasource
bulk_signature = {
"table": {
"fields_required": ["name", "description", "columns"],
"search_filters": {
"fields": {"ds": [123]} # Specific datasource
},
"limit": 100,
"child_objects": {
"columns": {
"fields": ["name", "data_type", "description"]
}
}
}
}
response = sdk.bulk_retrieval(signature=bulk_signature)
Input Parameters
signature
(dict): The configuration controlling which objects and their fieldsReturns
Functionality
Input Parameters
job_id
(int): The identifier of the asychronous job.Returns
Supported object types
glossary_term
: Individual glossary terms (corresponds to document objects)glossary_v3
: Glossary collections (corresponds to doc-folder objects, i.e., Document Hubs)Functionality
Input Parameters
id
, otype
, field_id
, and the new value
.Returns
Functionality
Input Parameters
Returns
NOTE: This BETA feature must be enabled on the Alation instance. Please contact Alation support to do this. Additionally, the lineage tool within the SDK must be explicitly enabled.
Functionality
Input Parameters
root_node
(dict) The starting object. Must contain id
and otype
.direction
(upsteam|downstream) The direction to resolve the lineage graph from.limit
(optional int) Defaults to 1,000.batch_size
(optional int) Defaults to 1,000.max_depth
(optional int) The maximumn depth to transerve of the graph. Defaults to 10.allowed_otypes
(optional string[]) Controls which types of nodes are allowed in the graph.pagination
(optional dict) Contains information about the request including cursor identifier.show_temporal_objects
(optional bool) Defaults to false.design_time
(optional 1,2,3) 1 for design time objects. 2 for run time objects. 3 for both design and run time objects.excluded_schema_ids
(optional int[]) Remove nodes if they belong to these schemas.time_from
(optional timestamp w/o timezone) Controls the start point of a time period.time_to
(optional timestamp w/o timezone) Controls the ending point of a time period.Returns
Functionality
Input Parameters
No parameters required
Returns
Functionality
Input Parameters
No parameters required
Returns
Complete instruction set with custom fields and examples for generating data dictionary.
The SDK's alation-context
and bulk_retrieval
tools support customizing response content using signatures. This powerful feature allows you to specify which fields to include and how to filter the catalog results. For instance:
# Define a signature for searching only tables that optionally
# include joins and filters if relevant to the user question
signature = {
"table": {
"fields_required": ["name", "title", "description"],
"fields_optional": ["common_joins", "common_filters"]
}
}
# Use the signature with your query
response = sdk.get_context(
"What are our sales tables?",
signature
)
For more information about signatures, refer to Using Signatures
Direct usage examples for the Alation AI Agent SDK:
Enable agentic experiences with the Alation Data Catalog.
Harness the SDK to build complex agents and workflows.
The number of published agent frameworks and toolkits appears to be increasing every day. If you don't happen to see the framework or toolkit you're using here, it's still possible to adapt alation-ai-agent-sdk
to your needs. It may be as simple as writing a wrapping function where a decorator is applied.
While we want to reach as many developers as possible and make it as convenient as possible, we anticipate a long tail distribution of toolkits and won't be able to write adapters for every case. If you'd like support for a specific toolkit, please create an issue to discuss.
Please log in to share your review and rating for this MCP.
Explore related MCPs that share similar capabilities and solve comparable challenges
by modelcontextprotocol
An MCP server implementation that provides a tool for dynamic and reflective problem-solving through a structured thinking process.
by danny-avila
Provides a self‑hosted ChatGPT‑style interface supporting numerous AI models, agents, code interpreter, image generation, multimodal interactions, and secure multi‑user authentication.
by block
Automates engineering tasks on local machines, executing code, building projects, debugging, orchestrating workflows, and interacting with external APIs using any LLM.
by RooCodeInc
Provides an autonomous AI coding partner inside the editor that can understand natural language, manipulate files, run commands, browse the web, and be customized via modes and instructions.
by pydantic
A Python framework that enables seamless integration of Pydantic validation with large language models, providing type‑safe agent construction, dependency injection, and structured output handling.
by lastmile-ai
Build effective agents using Model Context Protocol and simple, composable workflow patterns.
by mcp-use
A Python SDK that simplifies interaction with MCP servers and enables developers to create custom agents with tool‑calling capabilities.
by nanbingxyz
A cross‑platform desktop AI assistant that connects to major LLM providers, supports a local knowledge base, and enables tool integration via MCP servers.
by gptme
Provides a personal AI assistant that runs directly in the terminal, capable of executing code, manipulating files, browsing the web, using vision, and interfacing with various LLM providers.