项目简介
'tiger-docs-mcp-server' 是一个基于 Model Context Protocol (MCP) 实现的应用后端,旨在为大型语言模型(LLM)客户端提供 PostgreSQL 和 TimescaleDB 的文档查询能力。它将数据库中存储的文档内容封装为可供 LLM 调用的“工具”和预设的“Prompt 模板”,实现智能、上下文感知的交互。
主要功能点
- PostgreSQL 文档语义搜索: 允许 LLM 通过自然语言查询 PostgreSQL 文档,系统会根据语义相似度返回最相关的文档片段。
- TimescaleDB 文档语义搜索: 类似地,提供 TimescaleDB 文档的语义搜索功能,帮助 LLM 快速获取专业信息。
- TimescaleDB 指南获取: LLM 可以调用工具获取预定义的 TimescaleDB 操作指南、最佳实践等 Prompt 模板,简化复杂主题的交互。
- 上下文服务: 作为 MCP 服务器,它以标准化的方式向 LLM 提供结构化的上下文信息,增强 LLM 处理特定领域知识的能力。
安装步骤
- 克隆仓库:
如果未带 '--recurse-submodules',请运行:git clone --recurse-submodules https://github.com/timescale/tiger-docs-mcp-server.git cd tiger-docs-mcp-servergit submodule update --init --recursive - 安装依赖并构建:
npm install - 配置环境变量:
复制 '.env.sample' 文件为 '.env',并填写数据库连接信息和 OpenAI API Key。
示例 '.env' 文件内容(请替换为您的实际凭据):cp .env.sample .envPGHOST="your_db_host" PGDATABASE="your_db_name" PGPORT="your_db_port" PGUSER="your_db_user" PGPASSWORD="your_db_password" OPENAI_API_KEY="your_openai_api_key" - 数据导入(可选,但推荐): 此服务器依赖预先导入的 PostgreSQL 和 TimescaleDB 文档数据。您可以运行 'ingest/postgres_docs.py' 和 'ingest/timescale_docs.py' 脚本来填充数据库。 这些脚本需要 Python 环境和相应的依赖(如 'psycopg', 'openai', 'beautifulsoup4' 等),并会从官方源拉取文档并生成嵌入向量。
服务器配置(为MCP客户端配置)
MCP 客户端(如 Claude Desktop)需要通过以下 JSON 配置连接到此服务器。请将 'command' 中的路径替换为您的服务器安装路径。
{ "mcpServers": { "tiger-docs": { "command": "node", "args": [ "/absolute/path/to/tiger-docs-mcp-server/dist/index.js", // 替换为 MCP 服务器的绝对路径 "stdio" ], "env": { "PGHOST": "your_db_host", // 数据库主机名 "PGDATABASE": "your_db_name", // 数据库名称 "PGPORT": "your_db_port", // 数据库端口 "PGUSER": "your_db_user", // 数据库用户名 "PGPASSWORD": "your_db_password", // 数据库密码 "OPENAI_API_KEY": "your_openai_api_key" // OpenAI API 密钥 } } } }
基本使用方法
配置完成后,您的 MCP 客户端(如 Claude Desktop)将能够自动发现并连接到 'tiger-docs' MCP 服务器。
LLM 可以直接调用暴露的工具,例如:
- 语义搜索 PostgreSQL 文档: 提问关于 PostgreSQL 的问题,如“What is the SQL command to create a table?”
- 语义搜索 TimescaleDB 文档: 提问关于 TimescaleDB 的问题,如“How to create a hypertable in TimescaleDB?”
- 获取 TimescaleDB 指南: 请求特定的指南,如“Give me the best practices for TimescaleDB indexing.”
服务器会处理请求,执行语义搜索或返回预定义指南,并将结果作为上下文信息提供给 LLM,从而实现更智能、更专业的对话。
信息
分类
AI与计算