大项目中的 Context 检索困境
当项目规模膨胀至几十万行代码时,让 AI 盲目执行 grep 或遍历目录会消耗大量时间与上下文 Token。
将代码 AST、注释与函数签名预先索引至 Meilisearch,并通过 MCP 对外暴露高性能搜索接口,可以让 Agent 在几毫秒内准确定位相关模块。
1. 部署 Meilisearch 本地实例
通过 Docker 极速拉取运行:
docker run -d --name meilisearch -p 7700:7700 \
-e MEILI_MASTER_KEY=local-dev-master-key \
getmeili/meilisearch:v1.6
2. 编写代码分块与索引脚本
将代码文件按照函数与类级别分块(Chunking),提取名称、入参、Docstring 并批量存入 Meilisearch 索引。
3. 编写 Meilisearch MCP Server
暴露 search_code(query, language, max_results) 工具:
server.setRequestHandler(CallToolRequestSchema, async (req) => {
if (req.params.name === "search_code") {
const { query, language } = req.params.arguments as any;
const client = new MeiliSearch({ host: "http://127.0.0.1:7700", apiKey: "local-dev-master-key" });
const index = client.index("codebase");
const results = await index.search(query, {
filter: language ? `language = ${language}` : undefined,
limit: 5,
});
return {
content: [{ type: "text", text: JSON.stringify(results.hits, null, 2) }],
};
}
});
Agent 在重构复杂函数时,可直接通过该工具召回相关调用方与测试用例,效率提升数倍。