Lunr搜索MCP服务器
用于静态文档站点的模型上下文协议(MCP)服务器,使用 月亮.js 搜索索引。
此MCP服务器提供了从任何文件中搜索和检索文档的工具 带有Lunr.js搜索索引的静态网站,包括使用 多库萨斯.
⚠️ 需要配置:此MCP服务器要求您至少配置一个 通过Lunr.js搜索索引URL LUNR_SITES 环境变量。这行不通 没有这种配置。
特性
- 搜索文档:在整个文档网站上查找相关页面
- 检索页面:获取带有源URL的markdown格式的完整页面内容
- 多站点支持:使用Lunr.js索引同时配置多个站点
- 双索引支持:自动处理具有多个搜索索引的网站
- 动态工具生成:为每个配置的站点自动创建MCP工具
先决条件
安装要求
- 安装 紫外线 来自Astral或
- 使用以下命令安装Python 3.10或更高版本
uv python install 3.10(或更新版本)
快速安装
| 光标 | VS代码 |
|---|
安装
Kiro命令行界面
在MCP客户端中配置MCP服务器(如 Kiro命令行界面)配置(~/.kiro/settings/mcp.json):
{
"mcpServers": {
"lunr": {
"command": "uvx",
"args": ["lunr-mcp@latest"],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR",
"LUNR_SITES": "mysite=https://your-site.com/search-index.json"
},
"disabled": false,
"autoApprove": ["search_mysite", "get_mysite_page"]
}
}
}多个站点
要配置多个文档站点,请执行以下操作:
{
"mcpServers": {
"lunr": {
"command": "uvx",
"args": ["lunr-mcp@latest"],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR",
"LUNR_SITES": "site1=https://site1.com/search-index.json,site2=https://site2.com/search-index.json"
},
"disabled": false,
"autoApprove": ["search_site1", "get_site1_page", "search_site2", "get_site2_page"]
}
}
}Windows安装
对于Windows用户,MCP服务器配置格式略有不同:
{
"mcpServers": {
"lunr": {
"disabled": false,
"timeout": 60,
"type": "stdio",
"command": "uv",
"args": [
"tool",
"run",
"--from",
"lunr-mcp@latest",
"lunr-mcp.exe"
],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR",
"LUNR_SITES": "mysite=https://your-site.com/search-index.json"
}
}
}
}环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
FASTMCP_LOG_LEVEL | 日志记录级别(调试、信息、警告、错误、严重) | 警告 |
LUNR_SITES | 以逗号分隔的站点配置列表 key=search_index_url | (无-必填) |
LUNR_MCP_LOG | 启用文件日志记录 /tmp/lunr_mcp_*.log (1,true,yes) | 已禁用 |
日志记录
服务器提供两种类型的日志记录:
客户端日志记录 (始终启用):
- 通过MCP协议向LLM发送信息消息
- 包括操作状态、警告和错误
- 帮助法学硕士了解正在发生的事情
文件记录 (可选):
- 默认情况下已禁用
- 启用
LUNR_MCP_LOG=1登录到/tmp/lunr_mcp_YYYYMMDD_HHMMSS.log - 记录所有请求、响应、URL、HTTP状态代码和错误
- 可用于调试问题
启用文件日志记录的示例:
{
"env": {
"LUNR_MCP_LOG": "1",
"LUNR_SITES": "mysite=https://your-site.com/search-index.json"
}
}演出
大型文档网站:搜索索引非常大(>10000个项目)的网站使用异步加载,超时1.5秒:
- 如果索引未就绪,第一次搜索将返回“正在加载”消息
- LLM可以重试搜索(后台加载索引)
- 加载后,索引将被缓存,搜索将立即进行
- 典型的大型站点(20k+个项目)在3-5秒内加载
搜索功能
此MCP服务器提供Lunr.js索引的基本搜索功能:
- 短语匹配:优先考虑精确的短语匹配(相关性最高)
- 单词匹配:当精确短语不匹配时,回退到匹配单个单词
- 评分:结果按相关性排序(首先是精确匹配,然后是字数)
企业网络支持
对于具有代理服务器的公司环境:
{
"env": {
"HTTPS_PROXY": "http://proxy.company.com:8080",
"HTTP_PROXY": "http://proxy.company.com:8080"
}
}对于经过身份验证的代理:
{
"env": {
"HTTPS_PROXY": "http://username:password@proxy.company.com:8080"
}
}基本用法
示例查询(替换 mysite 使用您配置的站点密钥):
- “在mysite文档中搜索身份验证”
- “如何在mysite中配置API?”
- “mysite提供了哪些功能?”
发展
来源
git clone https://github.com/ojacques/lunr-mcp.git
cd lunr-mcp
pip install -e .
lunr-mcp出版
当在GitHub上创建新版本时,此包会自动发布到PyPI:
- 更新版本
pyproject.toml - 在GitHub上创建一个带有标签的新版本(例如。,
v0.1.0) - GitHub Actions将自动构建并发布到PyPI
注意:需要为存储库配置PyPI可信发布。
许可证
麻省理工学院
