本项目是Teradata官方提供的一个MCP服务器模板,旨在通过Model Context Protocol (MCP) 标准化方式,将Teradata数据库的功能(如查询、获取元数据)暴露给大型语言模型(LLM)客户端。它实现了MCP的核心功能,允许LLM通过工具调用与Teradata数据库进行交互,从而构建能够理解和操作Teradata数据的智能应用。
主要功能点
- 数据库访问工具: 提供执行SQL查询、列出数据库、列出表、查看表结构(DDL)、预览表数据等工具。
- Prompt 模板: 定义了用于指导LLM与数据库交互的Prompt模板,包含工具列表、工作流程、会话流程和错误处理指导。
- 多种传输协议支持: 支持Stdio和SSE (Server-Sent Events) 两种MCP传输协议。
- 会话管理与日志记录: 集成了日志记录功能,便于监控和调试。
安装步骤
- 确保已安装 Python 环境。推荐使用 'uv' 工具管理虚拟环境和依赖。可以从 https://github.com/astral-sh/uv 获取安装指南。
- 克隆仓库:
git clone https://github.com/Teradata/teradata-mcp-server.git cd teradata-mcp-server - 创建并激活虚拟环境,安装依赖:
uv sync # On Windows: # .venv\Scripts\activate # On Mac/Linux: # source .venv/bin/activate - 配置数据库连接及服务器设置:
- 将 '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'
基本使用方法
- 启动服务器:
- 如果使用 Stdio ('.env' 中 'SSE=False'): 无需手动启动,MCP客户端连接时会自动启动。
- 如果使用 SSE ('.env' 中 'SSE=True'): 在终端中执行 'uv run ./src/teradata_mcp_server/server.py' 启动服务器。
- 连接客户端: 在您的MCP客户端(如兼容MCP的LLM应用或IDE插件)中,按照上述"服务器配置"提供的信息配置并连接到此Teradata MCP服务器。
- LLM交互: 配置完成后,您的LLM客户端将能够发现并使用服务器提供的工具(如 'execute_read_query', 'read_database_list' 等)与Teradata数据库进行交互。例如,您可以向LLM提问关于Teradata数据库的数据查询问题。
信息
分类
数据库与文件