Amazon SageMaker Catalog MCP Server

Amazon SageMaker Catalog MCP Server

Auto-generates MCP tools for all Amazon DataZone API operations, enabling natural language management of SageMaker Catalog resources.

Category
访问服务器

README

Amazon SageMaker Catalog MCP Server

MCP server for Amazon SageMaker Catalog (DataZone) with 100% API coverage via auto-generation from the botocore service model.

This server automatically generates MCP tools for all 175+ DataZone API operations by reading the service model from botocore at startup. When AWS adds new operations, simply update boto3 — no code changes needed.

Features

  • 100% API coverage: Every DataZone operation is exposed as an MCP tool
  • Auto-updating: New operations appear automatically when boto3 is updated
  • Compatible: Includes all tools from the official awslabs/amazon-datazone-mcp-server, plus 126+ more
  • Dual transport: Supports stdio (local) and Streamable HTTP (remote)
  • Standard AWS credentials: Uses the standard boto3 credential chain
  • Correct parameter schemas: Each tool exposes the exact input schema from the AWS API (not a generic kwargs wrapper)

Installation

# From source
git clone https://github.com/difeorte/amazon-sagemaker-catalog-mcp-server.git
cd amazon-sagemaker-catalog-mcp-server
pip install .

# For development
pip install -e ".[dev]"

Prerequisites

AWS Credentials

The server uses the standard boto3 credential chain:

  1. Environment variables (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY)
  2. AWS credentials file (~/.aws/credentials)
  3. AWS SSO config (~/.aws/config with sso_session)
  4. Instance profile (EC2, ECS, Lambda)

IAM Permissions

The IAM role or user needs DataZone permissions. For a read-only catalog agent (browse, search, subscribe):

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "datazone:List*",
        "datazone:Get*",
        "datazone:Search*",
        "datazone:CreateSubscriptionRequest"
      ],
      "Resource": "*"
    }
  ]
}

For full access (create/update/delete resources), use datazone:* — but scope it down based on your use case. The server exposes all 175+ operations, so the IAM policy is what controls what the agent can actually do.

SageMaker Unified Studio Domains

For catalog operations like search_listings, create_subscription_request, etc., the IAM role must be added as a project member in the SageMaker Unified Studio portal. This is a one-time setup per role per project. Without project membership, administrative operations (list_domains, get_domain, list_projects) still work, but catalog-level operations will return AccessDeniedException.

Environment Variables

Variable Description Default
AWS_REGION AWS region for API calls boto3 default
AWS_PROFILE AWS profile name default
MCP_TRANSPORT Transport type (stdio or streamable-http) stdio
MCP_PORT Port for HTTP transport 8000

Usage

With stdio (local, default)

sagemaker-catalog-mcp-server

With Streamable HTTP (remote)

sagemaker-catalog-mcp-server --transport streamable-http --port 8000

CLI Options

--transport {stdio,streamable-http}  Transport type (default: stdio)
--port PORT                          Port for HTTP transport (default: 8000)
--region REGION                      AWS region
--profile PROFILE                    AWS profile name

MCP Client Configuration (Kiro, Claude Desktop, etc.)

Add to your MCP client configuration (e.g., .kiro/settings/mcp.json):

{
  "mcpServers": {
    "sagemaker-catalog": {
      "command": "sagemaker-catalog-mcp-server",
      "args": ["--region", "us-east-1"],
      "env": {
        "AWS_PROFILE": "your-profile"
      }
    }
  }
}

Or if running from source without installing:

{
  "mcpServers": {
    "sagemaker-catalog": {
      "command": "/path/to/project/.venv/bin/python",
      "args": ["-m", "sagemaker_catalog_mcp_server"],
      "env": {
        "AWS_REGION": "us-east-1",
        "AWS_PROFILE": "your-profile",
        "PYTHONPATH": "/path/to/project/src"
      }
    }
  }
}

Available Tools

The server exposes 175+ tools, one for each DataZone API operation. Examples:

Tool Description
list_domains Lists Amazon DataZone domains
get_domain Gets a domain
create_project Creates a project
search_listings Searches published assets in the catalog
create_subscription_request Requests access to a data asset
get_asset Gets asset details (technical + business metadata)
create_glossary Creates a business glossary
list_data_sources Lists data sources in a project

For the complete list, start the server and use your MCP client's tool listing feature.

Important Considerations

  • Project membership setup — To add an IAM role as a project member programmatically, the data domain unit that owns the project must first have the "Add to project member pool" policy enabled by the domain unit owner. Without this policy, the API returns AccessDeniedException. Currently, adding project members is done from the SageMaker Unified Studio portal.

  • Tested on SageMaker Catalog — This server has been tested on SageMaker Catalog (which runs on Amazon DataZone). It has not been tested on standalone DataZone V1 domains.

Querying Subscribed Data

When a subscription is approved, SageMaker Unified Studio creates resource links in the consumer project's Lakehouse database (e.g., central_data_lake_<envId>). To query subscribed data, the agent must chain-assume the project execution role (datazone_usr_role_<projectId>_<envId>) and use the project's Athena workgroup. The data appears under the local Lakehouse database, not the producer's catalog ID.

Compatibility

This server is an unofficial extended version inspired by awslabs/amazon-datazone-mcp-server (v0.1.1). All 49 tools from the official server are available with the same names and parameters, plus 126+ additional tools covering the rest of the API.

Development

# Install dev dependencies
pip install -e ".[dev]"

# Run tests
pytest -v

Architecture

The server uses a code generation approach at startup:

  1. ServiceModelParser reads service-2.json from botocore (supports .json.gz)
  2. ToolGenerator creates MCP tool definitions with correct JSON Schema for each operation
  3. ToolExecutor executes operations against AWS via boto3 with response serialization
  4. Low-level MCP SDK (mcp.server.lowlevel.Server) handles the protocol, ensuring each tool gets its exact inputSchema from the AWS API

This means the server automatically supports new API operations when boto3 is updated.

License

Apache 2.0

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选