返回市场
MCP-卢克恩-网

MCP-卢克恩-网

作者:breitreiter2 星标更新:2025-08-11

项目介绍

MCP Lucene.NET

一个使用Lucene.NET进行全文搜索的Model Context Protocol (MCP)服务器,并支持文档分块。

概述

该项目由两个组件组成:

  • /server - 提供基于Lucene.NET索引搜索功能的MCP服务器
  • /idx - 命令行工具,用于将文档(文本文件、PDF)索引到Lucene.NET中

快速开始

1. 索引文档

cd idx
dotnet run -- init -i ./lucene-index
dotnet run -- add -d "manual" -t "用户手册" -f "./manual.pdf"
dotnet run -- add -d "policy" -t "隐私政策" -c "我们的隐私政策..."

2. 启动MCP服务器

cd server
dotnet run ./lucene-index

3. 搜索文档

服务器提供了一个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-lucenenet/server/bin/Release/net8.0/server替换为您编译后的服务器二进制文件的实际路径,将/path/to/your/lucene-index替换为您的Lucene索引目录路径。

文档分块

文档会自动被分割成大约250个单词的片段,每个片段之间有40个单词的重叠部分,以优化搜索相关性和LLM上下文使用。每个片段包括:

  • id: 唯一的片段标识符(例如,“manual-chunk-001”)
  • title: 描述性标题及部分编号
  • content: 大约250个单词的文本
  • source_document: 原始文档ID
  • chunk_index: 顺序片段编号

命令行命令

# 初始化新索引
idx init -i ./lucene-index

# 添加单个文档
idx add -d "doc1" -t "标题" -c "文本内容"
idx add -d "doc2" -t "标题" -f "./document.pdf"

# 批量从JSON添加
idx bulk -i ./lucene-index -j "./documents.json"

JSON格式

[
  {
    "Id": "doc1",
    "Title": "文档标题",
    "Content": "文档内容..."
  }
]

要求

  • .NET 8.0
  • Lucene.NET 4.8.0-beta
  • iText for PDF提取