Skip to main content
Glama
knishioka

Treasure Data MCP Server

by knishioka

Treasure Data MCP 服务器

为 Claude Code 和 Claude Desktop 提供 Treasure Data API 集成的模型上下文协议 (MCP) 服务器。

免责声明:本软件为个人开发项目,与 Treasure Data Inc. 没有任何关联、认可或关系。本软件“按原样”提供,不提供任何形式的担保,使用风险自负。作者对因使用本软件而导致的任何后果概不负责。

可用的 MCP 工具

该 MCP 服务器提供以下与 Treasure Data 交互的工具:

数据库管理

  1. td_list_databases

    td_list_databases(verbose=False, limit=30, offset=0, all_results=False)
    • 获取 Treasure Data 帐户中支持分页的数据库

    • 参数

      • verbose :如果为 True,则返回完整详细信息;如果为 False,则仅返回名称(默认)

      • limit :要检索的数据库的最大数量(默认为 30)

      • offset :开始检索的索引(默认为 0)

      • all_results :如果为 True,则检索所有数据库,忽略限制和偏移量

    • 例子

      # Get only database names (default, first 30 databases) td_list_databases # Get full database details td_list_databases verbose=True # Pagination options td_list_databases limit=10 offset=20 # Get all databases regardless of the number td_list_databases all_results=True
  2. td_获取数据库

    td_get_database(database_name)
    • 获取有关特定数据库的详细信息

    • 参数

      • database_name :要检索信息的数据库的名称

    • 例子

      # Get information about a specific database td_get_database database_name=my_database_name
  3. td_list_tables

    td_list_tables(database_name, verbose=False, limit=30, offset=0, all_results=False)
    • 获取特定 Treasure Data 数据库中的表并支持分页

    • 参数

      • database_name :从中检索表的数据库的名称

      • verbose :如果为 True,则返回完整详细信息;如果为 False,则仅返回名称(默认)

      • limit :要检索的最大表数(默认为 30)

      • offset :开始检索的索引(默认为 0)

      • all_results :如果为 True,则检索所有表,忽略限制和偏移量

    • 例子

      # Get only table names in a database (default, first 30 tables) td_list_tables database_name=my_database_name # Get detailed information about tables in a database td_list_tables database_name=my_database_name verbose=True # Pagination options td_list_tables database_name=my_database_name limit=10 offset=20 # Get all tables in a database td_list_tables database_name=my_database_name all_results=True

工作流项目管理

  1. td_list_projects

    td_list_projects(verbose=False, limit=30, offset=0, all_results=False, include_system=False)
    • 在您的 Treasure Data 帐户中获取支持分页的工作流项目

    • 参数

      • verbose :如果为 True,则返回完整详细信息;如果为 False,则仅返回名称和 ID(默认)

      • limit :要检索的最大项目数(默认为 30)

      • offset :开始检索的索引(默认为 0)

      • all_results :如果为 True,则检索忽略限制和偏移的所有项目

      • include_system :如果为 True,则包含系统生成的项目(带有“sys”元数据);默认为 False

    • 例子

      # Get basic project info (default, first 30 projects) td_list_projects # Get detailed project information td_list_projects verbose=True # Pagination options td_list_projects limit=10 offset=20 # Get all projects regardless of the number td_list_projects all_results=True # Include system-generated projects td_list_projects include_system=True
  2. td_get_project

    td_get_project(project_id)
    • 获取有关特定工作流项目的详细信息

    • 注意:此命令仅提供基本的项目元数据。如需获取详细内容和文件,请使用 td_download_project_archive 命令,然后依次使用 td_list_project_files 和 td_read_project_file 命令。

    • 参数

      • project_id :要检索信息的工作流项目的 ID

    • 例子

      # Get information about a specific project td_get_project project_id=123456
  3. td_download_project_archive

    td_download_project_archive(project_id)
    • 下载项目的存档(tar.gz)并返回有关下载的信息

    • 建议检查详细的项目内容,包括 SQL 查询和工作流定义

    • 参数

      • project_id :要下载的工作流项目的 ID

    • 例子

      # Download a project's archive td_download_project_archive project_id=123456
  4. td_list_project_files

    td_list_project_files(archive_path)
    • 列出项目档案中包含的所有文件

    • 参数

      • archive_path :下载的项目档案(.tar.gz 文件)的路径

    • 例子

      # List files in a downloaded project archive td_list_project_files archive_path=/tmp/td_project_123/project_123456.tar.gz
  5. td_读取_项目文件

    td_read_project_file(archive_path, file_path)
    • 从项目档案中读取特定文件的内容

    • 参数

      • archive_path :下载的项目档案(.tar.gz 文件)的路径

      • file_path :要读取的档案中的文件路径

    • 例子

      # Read a specific file from a project archive td_read_project_file archive_path=/tmp/td_project_123/project_123456.tar.gz file_path=workflow.dig

Related MCP server: HackathonWatch MCP Server

设置说明

验证

此 MCP 服务器需要 Treasure Data API 密钥进行身份验证,该密钥应通过TD_API_KEY环境变量提供。您也可以使用TD_ENDPOINT环境变量指定 Treasure Data 端点(默认为api.treasuredata.com )。

使用 Claude Code 进行设置

  1. 克隆存储库

    git clone https://github.com/knishioka/td-mcp-server.git
  2. 使用 Claude Code CLI 添加 MCP 服务器

    # Navigate to your project directory cd your-project-directory # Add the MCP server (use absolute path to server.py) claude mcp add td -e TD_API_KEY=${TD_API_KEY} -e TD_ENDPOINT=api.treasuredata.com -- mcp run /absolute/path/to/td-mcp-server/td_mcp_server/server.py

使用 Claude Desktop 进行设置

通过编辑配置文件 ( claude_desktop_config.json ) 配置此 MCP 服务器以便与 Claude Desktop 一起使用:

{ "mcpServers": { "td": { "command": "uv", "args": [ "--directory", "/absolute/path/to/td-mcp-server", "run", "td_mcp_server/server.py" ], "env": { "TD_API_KEY": "YOUR_API_KEY", "TD_ENDPOINT": "api.treasuredata.com" } } } }

安装和要求

该项目需要 Python 3.11+ 和以下包:

  • 请求

  • 派丹蒂克

  • 甲基氯丙烯

使用 pip 安装依赖项:

pip install -r requirements.txt

或者使用 uv:

uv pip install -e .

直接运行服务器

您可以直接运行 MCP 服务器:

# Set your API key export TD_API_KEY="your-api-key" # For US region (default) export TD_ENDPOINT="api.treasuredata.com" # For Japan region # export TD_ENDPOINT="api.treasuredata.co.jp" # Run with MCP CLI mcp run td_mcp_server/server.py

发展

运行测试

# Run all tests pytest # Run tests with coverage report pytest --cov=td_mcp_server # Run tests for a specific module pytest tests/unit/test_api.py

代码格式化和 Linting

# Run linting with Ruff uv run ruff check td_mcp_server tests # Format code with Ruff uv run ruff format td_mcp_server tests # Run pre-commit hooks on all files uv run pre-commit run --all-files

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/knishioka/td-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server