本项目是Teradata官方提供的一个MCP服务器模板,旨在通过Model Context Protocol (MCP) 标准化方式,将Teradata数据库的功能(如查询、获取元数据)暴露给大型语言模型(LLM)客户端。它实现了MCP的核心功能,允许LLM通过工具调用与Teradata数据库进行交互,从而构建能够理解和操作Teradata数据的智能应用。

主要功能点

  • 数据库访问工具: 提供执行SQL查询、列出数据库、列出表、查看表结构(DDL)、预览表数据等工具。
  • Prompt 模板: 定义了用于指导LLM与数据库交互的Prompt模板,包含工具列表、工作流程、会话流程和错误处理指导。
  • 多种传输协议支持: 支持Stdio和SSE (Server-Sent Events) 两种MCP传输协议。
  • 会话管理与日志记录: 集成了日志记录功能,便于监控和调试。

安装步骤

  1. 确保已安装 Python 环境。推荐使用 'uv' 工具管理虚拟环境和依赖。可以从 https://github.com/astral-sh/uv 获取安装指南。
  2. 克隆仓库:
    git clone https://github.com/Teradata/teradata-mcp-server.git
    cd teradata-mcp-server
  3. 创建并激活虚拟环境,安装依赖:
    uv sync
    # On Windows:
    # .venv\Scripts\activate
    # On Mac/Linux:
    # source .venv/bin/activate
  4. 配置数据库连接及服务器设置:
    • 将 'env' 文件重命名为 '.env'。
    • 更新 '.env' 文件中的 'DATABASE_URI',格式为 'teradata://username:password@host:1025/databasename'。
    • 根据需要设置 'SSE' (True/False)、'SSE_HOST' (默认为 '127.0.0.1') 和 'SSE_PORT' (默认为 '8001')。

服务器配置

MCP客户端(如VS Code Copilot、Open WebUI等)连接到此服务器时,需要提供服务器的启动命令和参数。根据'.env'中的'SSE'设置,配置信息如下:

  • 使用 Stdio 协议 ('.env' 中 'SSE=False'):
    • 'type': 'stdio'
    • 'command': 'uv'
    • 'args': '["--directory", "/src/teradata_mcp_server", "run", "server.py"]' (注意: '/src/teradata_mcp_server' 需要替换为您的本地仓库中 'src/teradata_mcp_server' 目录的绝对路径)
  • 使用 SSE 协议 ('.env' 中 'SSE=True'):
    • 'type': 'sse'
    • 'url': 'http://127.0.0.1:8001/sse' (如果修改了'.env'中的'SSE_HOST'或'SSE_PORT',请相应修改URL)
    • 需要先在终端中启动服务器:'uv run ./src/teradata_mcp_server/server.py'

基本使用方法

  1. 启动服务器:
    • 如果使用 Stdio ('.env' 中 'SSE=False'): 无需手动启动,MCP客户端连接时会自动启动。
    • 如果使用 SSE ('.env' 中 'SSE=True'): 在终端中执行 'uv run ./src/teradata_mcp_server/server.py' 启动服务器。
  2. 连接客户端: 在您的MCP客户端(如兼容MCP的LLM应用或IDE插件)中,按照上述"服务器配置"提供的信息配置并连接到此Teradata MCP服务器。
  3. LLM交互: 配置完成后,您的LLM客户端将能够发现并使用服务器提供的工具(如 'execute_read_query', 'read_database_list' 等)与Teradata数据库进行交互。例如,您可以向LLM提问关于Teradata数据库的数据查询问题。

信息

分类

数据库与文件