Polars API 文档搜索 MCP 服务器
使用说明
项目简介
Polars API 文档搜索 MCP 服务器是一个基于 Model Context Protocol (MCP) 构建的应用后端,它利用 Python 的反射机制自动发现 Polars 库的 API 组件(类、函数、子模块),并提供工具供 LLM 客户端查询 Polars API 的签名和描述信息。该服务器旨在为 LLM 应用提供便捷的 Polars 库 API 文档检索能力,帮助开发者更高效地使用 Polars 库。
主要功能点
- 自动发现 Polars API 组件: 能够自动检测 Polars 库中的公共类、函数和子模块,无需手动维护文档数据库。
- API 文档搜索: 支持通过组件名称或关键词搜索 Polars API 文档,返回结构化的 JSON 数据,包含 API 签名和描述。
- 精确 API 查找: 可以根据 API 引用 (如 "DataFrame.filter") 精确查找特定 API 的信息。
- 模糊查询: 支持关键词模糊搜索 API 文档,方便用户根据功能描述查找相关 API。
- API 验证: 可以验证给定的 Polars API 引用是否有效。
安装步骤
- 环境准备: 确保已安装 Python 3.11 或更高版本。
- 安装依赖: 建议使用 'uv' 或 'pip' 等工具安装项目依赖,虽然仓库中没有明确的 requirements.txt 文件,但根据代码内容,你需要确保安装了 'polars' 和 'mcp' 库。可以使用以下命令安装:
或者,如果你已经安装了 'uv',可以使用仓库 README 中提供的命令,它会隐式处理依赖安装。uv pip install polars mcp-server # 使用 uv # 或 pip install polars mcp-server # 使用 pip
服务器配置
为了让 MCP 客户端(例如 Claude)连接到此 MCP 服务器,你需要配置客户端的 'mcpServers' 字段。以下是根据仓库 'README.md' 提供的配置信息,并添加了详细的参数注释:
{ "mcpServers": { "polarsapifinder": { // 服务器名称,客户端用于标识和调用 "command": "uv", // 启动服务器的命令,这里使用 uv (或 python,如果你的环境中 python 指向 Python 3.11+) "args": [ // 启动命令的参数列表 "--directory", // 指定工作目录 "/PATH/TO/polars-docs-mcp", // 请替换为 'polarsdocsfinder.py' 文件所在的实际目录的绝对路径 "run", // uv 的子命令,表示运行 Python 脚本 "polarsdocsfinder.py" // 要运行的 Python 脚本文件名 ] } } }
注意: 请将 '/PATH/TO/polars-docs-mcp' 替换为你实际存放 'polarsdocsfinder.py' 文件的目录的绝对路径。
基本使用方法
-
启动 MCP 服务器: 在终端中,导航到 'polarsdocsfinder.py' 文件所在的目录,并根据你的环境运行以下命令启动服务器 (与客户端配置中的 'command' 和 'args' 保持一致):
uv run polarsdocsfinder.py # 或者,如果你的环境中 python 指向 Python 3.11+ 且安装了 mcp-server 和 polars python polarsdocsfinder.py服务器启动后,它将监听来自 MCP 客户端的 JSON-RPC 请求。
-
配置 MCP 客户端: 在你的 MCP 客户端(例如 Claude)中,根据上面提供的 '服务器配置' 信息配置 'mcpServers'。
-
通过客户端调用工具: 在 MCP 客户端中,你可以通过以下工具名称和参数来调用 Polars API 文档搜索服务器的功能:
- 'list_polars_components()': 列出所有可用的 Polars API 组件。无需参数。
- 'search_polars_docs(api_refs: list[str] | None, query: str | None, max_results: int = 1000)': 搜索 Polars API 文档。
- 'api_refs': 可选参数,API 引用列表,例如 '["DataFrame"]' 或 '["Expr.add"]'。
- 'query': 可选参数,关键词查询字符串,例如 '"join"'。
- 'max_results': 可选参数,最大返回结果数量,默认为 1000。
- 'verify_polars_api(api_ref: str)': 验证 Polars API 引用是否有效。
- 'api_ref': 要验证的 API 引用字符串,例如 '"DataFrame.filter"'。
LLM 可以根据这些工具的描述和参数,生成合适的 JSON-RPC 请求来调用服务器的功能,从而检索 Polars API 文档信息。
示例: 在支持 MCP 协议的 LLM 应用中,你可以指示 LLM 使用 'search_polars_docs' 工具,并提供关键词 "读取 CSV 文件" 或 API 引用 "pl.read_csv",来查询 Polars 库中读取 CSV 文件的相关 API 文档。