MCP-Lucene。网
使用Lucene进行全文搜索的模型上下文协议(MCP)服务器。NET,支持文档分块。
概述
该项目由两部分组成:
/server-MCP服务器,通过Lucene提供搜索功能。NET索引/idx-用于将文档(文本文件、PDF)索引到Lucene中的CLI工具。网
快速开始
1.索引文件
cd idx
dotnet run -- init -i ./lucene-index
dotnet run -- add -d "manual" -t "User Manual" -f "./manual.pdf"
dotnet run -- add -d "policy" -t "Privacy Policy" -c "Our privacy policy..."2.启动MCP服务器
cd server
dotnet run ./lucene-index3.搜索文档
服务器暴露了一个 Search 返回包含相关文档块的JSON的工具。
MCP配置
要在Claude Desktop或其他MCP客户端中配置服务器,请将以下内容添加到MCP配置中:
{
"mcpServers": {
"lucene-search": {
"command": "/path/to/mcp-lucene-net/server/bin/Release/net8.0/server",
"args": [
"/path/to/your/lucene-index"
],
"env": {}
}
}
}替换 /path/to/mcp-lucene-net/server/bin/Release/net8.0/server 使用编译后的服务器二进制文件的实际路径 /path/to/your/lucene-index 带有Lucene索引目录的路径。
文档分块
文档会自动拆分为约250个单词块,重叠40个单词,以优化搜索相关性和LLM上下文使用。每个块包括:
id:唯一块标识符(例如“manual-chunk-001”)title:带有零件号的描述性标题content:约250字文本source_document:原始文档IDchunk_index:顺序块编号
CLI命令
# Initialize new index
idx init -i ./lucene-index
# Add single document
idx add -d "doc1" -t "Title" -c "Text content"
idx add -d "doc2" -t "Title" -f "./document.pdf"
# Bulk add from JSON
idx bulk -i ./lucene-index -j "./documents.json"JSON格式
[
{
"Id": "doc1",
"Title": "Document Title",
"Content": "Document content..."
}
]需求
- .NET 8.0
- Lucene。净4.8.0倍
- iText用于PDF提取
