用途
function-lookup-mcp 是一个 MCP(Model Context Protocol)服务器,供 AI 智能体在编写或修改代码时查询代码声明。其目标是从任意 API 中获取准确的函数签名,减少 AI 对未知或刚更新源文件的臆测(幻觉)。
主要能力
- 提供代码声明的全文搜索,可检索函数、类、结构体、枚举及其他代码元素。
- 使用 SQLite(含 FTS5 支持)与 universal ctags 建立和维护索引。
- 支持 universal ctags 能够解析的多种语言,包括 Python、C、Go、C++、JavaScript、Rust、Java 等。
- 提供的 MCP 工具函数包括:
- search_declarations(name: str, offset: int = 0, limit: int = 10):按名称搜索代码声明。
- list_indexed_apis():列出所有已建立索引的 API 文件。
- list_api_files(api_name: str, offset: int = 0, limit: int = 100):列出特定 API 的全部唯一文件路径。
- list_functions_by_file(file_path: str, offset: int = 0, limit: int = 100):列出指定文件中找到的所有函数。
- generate_ctags(include_directory: str):从源文件生成 ctags 并加入索引。
使用方式
- 环境依赖:Universal Ctags 6.2.0;SQLite 需支持 FTS5(资料注明 Python 3.13 已内置)。
- 扩展索引:可以要求编码智能体对头文件目录建立索引。索引过程会遵循项目的 .gitignore,避免纳入不需要的文件。
- 也可以使用 universal ctags 手动生成 ctags 文件。
- 或者将已有的 ctags 文件放入 apis/ 目录并重启 MCP 服务器,即可更新索引。
适用场景
- AI 编码智能体需要查询函数签名、类声明、结构体、枚举等代码元素的准确信息。
- 需要在多语言代码库中快速进行声明级全文搜索。
- 希望防止 AI 在未见过或近期修改的源文件上编造函数签名。
限制
- 具体安装命令、配置方式和完整部署步骤在已有资料中暂未提供。
- 收费情况、支持平台、使用效果等资料中暂未提供。