MCP Lucene 服务器是基于 Java 实现的 Model Context Protocol (MCP),借助 Apache Lucene 提供高效的搜索和检索功能。它支持对文档进行插入、查询、删除和列出等操作,方便用户管理和查询文档。
git clone https://github.com/your-repository/mcp-lucene.git
cd mcp-lucene
mvn clean install
java -jar target/mcp-lucene.jar
启动服务器后,默认监听 http://localhost:8080
端口。
FROM java:8-jdk
COPY target/mcp-lucene.jar /app/
WORKDIR /app
ENTRYPOINT ["java", "-jar", "mcp-lucene.jar"]
docker build -t mcp-lucene .
docker run -p 8080:8080 mcp-lucene
POST /mcp/v1/upsert
Content-Type: application/json
{
"documents": [
{
"id": "doc1",
"text": "这是第一个文档的内容。",
"metadata": {
"类别": "示例",
"语言": "中文"
}
},
...
]
}
POST /mcp/v1/query
Content-Type: application/json
{
"queries": [
{
"query": "搜索关键词",
"top_k": 5,
"filter": {
"语言": "中文"
}
}
]
}
POST /mcp/v1/delete
Content-Type: application/json
{
"ids": ["doc1", "doc2"]
}
POST /mcp/v1/list
Content-Type: application/json
{
"ids": ["doc1", "doc2"]
}
curl http://localhost:8080/mcp/v1/status
curl -X POST \
http://localhost:8080/mcp/v1/upsert \
-H 'Content-Type: application/json' \
-d '
{
"documents": [
{
"id": "doc1",
"text": "这是第一个文档。",
"metadata": {
"类别": "示例",
"语言": "中文"
}
},
{
"id": "doc2",
"text": "这是第二个文档。",
"metadata": {
"类别": "测试",
"语言": "中文"
}
}
]
}'
curl -X POST \
http://localhost:8080/mcp/v1/query \
-H 'Content-Type: application/json' \
-d '
{
"queries": [
{
"query": "测试",
"top_k": 3,
"filter": {
"语言": "中文"
}
}
]
}'
curl -X POST \
http://localhost:8080/mcp/v1/delete \
-H 'Content-Type: application/json' \
-d '
{
"ids": ["doc1"]
}'
curl -X POST \
http://localhost:8080/mcp/v1/list \
-H 'Content-Type: application/json' \
-d '
{
"ids": ["doc1", "doc2"]
}'
通过 application.properties
文件配置服务器属性:
示例配置:
server.port=8081
server.servlet.thread-count=20
mcp-lucene/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/example/MCPServer.java
│ │ └── resources/
│ │ └── application.properties
│ └── test/
│ └── JavaTestCases.java
└── pom.xml
项目使用 Maven 管理依赖,核心依赖包括:
MCPServer.java
:主服务类,包含启动逻辑和 REST 接口定义。DocumentService.java
:文档存储与检索的业务逻辑实现。项目遵循 Apache License 2.0 协议,详细内容请参考 LICENSE 文件。