Daniel LightRAG MCP服务器是一个全面的MCP(模型上下文协议)服务器,它与LightRAG API实现了100%功能集成。提供涵盖4大类别、共计22个完全可用的工具,可用于完整的文档管理、查询、知识图谱操作和系统管理。
安装服务器:
pip install -e .
启动LightRAG服务器(确保它在http://localhost:9621上运行)
配置你的MCP客户端(例如Claude Desktop):
{
"mcpServers": {
"daniel-lightrag": {
"command": "python",
"args": ["-m", "daniel_lightrag_mcp"]
}
}
}
测试连接:
使用get_health工具验证一切是否正常工作。
# 基本安装
pip install -e .
# 安装开发依赖
pip install -e ".[dev]"
启动MCP服务器:
daniel-lightrag-mcp
使用环境变量配置服务器:
export LIGHTRAG_BASE_URL="http://localhost:9621"
export LIGHTRAG_API_KEY="your-api-key" # 可选
export LIGHTRAG_TIMEOUT="30" # 可选
export LOG_LEVEL="INFO" # 可选
daniel-lightrag-mcp
服务器默认期望LightRAG在http://localhost:9621上运行。在运行此MCP服务器之前,请确保你的LightRAG服务器已启动。
添加到你的MCP客户端(例如Claude Desktop):
{
"mcpServers": {
"daniel-lightrag": {
"command": "python",
"args": ["-m", "daniel_lightrag_mcp"],
"env": {
"LIGHTRAG_BASE_URL": "http://localhost:9621",
"LIGHTRAG_API_KEY": "lightragsecretkey"
}
}
}
}
有关详细的配置选项,请参阅 MCP_CONFIGURATION_GUIDE.md。
insert_text将文本内容插入到LightRAG中。 参数:
text(必需):要插入的文本内容示例:
{
"text": "这是关于机器学习算法及其在现代人工智能系统中的应用的重要信息。"
}
insert_texts将多个文本文档插入到LightRAG中。 参数:
texts(必需):文本文档数组,可包含可选的标题和元数据示例:
{
"texts": [
{
"title": "人工智能概述",
"content": "人工智能正在改变各个行业...",
"metadata": {"category": "技术", "author": "研究员"}
},
{
"content": "机器学习算法需要大量的数据集..."
}
]
}
upload_document将文档文件上传到LightRAG。 参数:
file_path(必需):要上传的文件路径示例:
{
"file_path": "/path/to/document.pdf"
}
scan_documents在LightRAG中扫描新文档。 参数:无
示例:
{}
get_documents从LightRAG中检索所有文档。 参数:无
示例:
{}
get_documents_paginated分页检索文档。 参数:
page(必需):页码(从1开始)page_size(必需):每页的文档数量(1 - 100)示例:
{
"page": 1,
"page_size": 20
}
delete_document按ID删除特定文档。 参数:
document_id(必需):要删除的文档ID示例:
{
"document_id": "doc_12345"
}
clear_documents清除LightRAG中的所有文档。 参数:无
示例:
{}
query_text使用文本查询LightRAG。 参数:
query(必需):查询文本mode(可选):查询模式 - "naive"、"local"、"global" 或 "hybrid"(默认:"hybrid")only_need_context(可选):是否仅返回上下文而不进行生成(默认:false)示例:
{
"query": "机器学习的主要概念有哪些?",
"mode": "hybrid",
"only_need_context": false
}
query_text_stream从LightRAG流式获取查询结果。 参数:
query(必需):查询文本mode(可选):查询模式 - "naive"、"local"、"global" 或 "hybrid"(默认:"hybrid")only_need_context(可选):是否仅返回上下文而不进行生成(默认:false)示例:
{
"query": "解释人工智能的发展历程",
"mode": "global"
}
get_knowledge_graph从LightRAG中检索知识图谱。 参数:无
示例:
{}
get_graph_labels从知识图谱中获取标签。 参数:无
示例:
{}
check_entity_exists检查实体是否存在于知识图谱中。 参数:
entity_name(必需):要检查的实体名称示例:
{
"entity_name": "机器学习"
}
update_entity更新知识图谱中的实体。 参数:
entity_id(必需):要更新的实体IDproperties(必需):要更新的属性示例:
{
"entity_id": "entity_123",
"properties": {
"description": "更新后的机器学习描述",
"category": "人工智能技术"
}
}
update_relation更新知识图谱中的关系。 参数:
relation_id(必需):要更新的关系IDproperties(必需):要更新的属性示例:
{
"relation_id": "rel_456",
"properties": {
"strength": 0.9,
"type": "implements"
}
}
delete_entity从知识图谱中删除实体。 参数:
entity_id(必需):要删除的实体ID示例:
{
"entity_id": "entity_789"
}
delete_relation从知识图谱中删除关系。 参数:
relation_id(必需):要删除的关系ID示例:
{
"relation_id": "rel_101"
}
get_pipeline_status从LightRAG中获取管道状态。 参数:无
示例:
{}
get_track_status按ID获取跟踪状态。 参数:
track_id(必需):要获取状态的跟踪ID示例:
{
"track_id": "track_abc123"
}
get_document_status_counts获取文档状态计数。 参数:无
示例:
{}
clear_cache清除LightRAG缓存。 参数:无
示例:
{}
get_health检查LightRAG服务器的健康状况。 参数:无
示例:
{}
{"tool": "get_health", "arguments": {}}
{
"tool": "insert_texts",
"arguments": {
"texts": [
{
"title": "人工智能研究论文",
"content": "最近变压器架构的进展在自然语言理解任务中显示出显著的改进...",
"metadata": {"category": "研究", "year": 2024}
}
]
}
}
{
"tool": "query_text",
"arguments": {
"query": "变压器架构最近有哪些进展?",
"mode": "hybrid"
}
}
{"tool": "get_knowledge_graph", "arguments": {}}
{
"tool": "check_entity_exists",
"arguments": {"entity_name": "变压器架构"}
}
{"tool": "get_knowledge_graph", "arguments": {}}
{"tool": "get_graph_labels", "arguments": {}}
{
"tool": "update_entity",
"arguments": {
"entity_id": "transformer_arch_001",
"properties": {
"description": "用于序列处理的高级神经网络架构",
"applications": ["自然语言处理", "计算机视觉", "语音识别"],
"year_introduced": 2017
}
}
}
{
"tool": "update_relation",
"arguments": {
"relation_id": "rel_improves_002",
"properties": {
"improvement_factor": 2.5,
"confidence": 0.92,
"evidence": "多项基准研究"
}
}
}
{"tool": "get_health", "arguments": {}}
{"tool": "get_pipeline_status", "arguments": {}}
{"tool": "get_document_status_counts", "arguments": {}}
{
"tool": "get_track_status",
"arguments": {"track_id": "upload_batch_001"}
}
{"tool": "clear_cache", "arguments": {}}
服务器提供全面的错误处理,带有详细的错误信息:
所有错误包括:
{
"tool": "insert_text",
"error_type": "LightRAGConnectionError",
"message": "无法连接到LightRAG服务器 http://localhost:9621",
"timestamp": 1703123456.789,
"status_code": null,
"response_data": {}
}
{
"error_type": "LightRAGConnectionError",
"message": "拒绝连接到 http://localhost:9621",
"status_code": null
}
{
"error_type": "LightRAGValidationError",
"message": "query_text缺少必需的参数: ['query']",
"validation_errors": [
{
"loc": ["query"],
"msg": "字段必填",
"type": "value_error.missing"
}
]
}
{
"error_type": "LightRAGAPIError",
"message": "未找到文档",
"status_code": 404,
"response_data": {
"detail": "ID为 'doc_123' 的文档不存在"
}
}
curl http://localhost:9621/health
python -m daniel_lightrag_mcp &
sleep 2
pkill -f daniel_lightrag_mcp
python -c "import daniel_lightrag_mcp; print('OK')"
pip install -e .LIGHTRAG_BASE_URL环境变量LIGHTRAG_API_KEY环境变量LIGHTRAG_TIMEOUT=60环境变量启用详细日志记录:
export LOG_LEVEL=DEBUG
python -m daniel_lightrag_mcp
本服务器经过全面测试和优化,实现了100%的功能。主要改进包括:
有关完整的技术细节,请参阅 IMPLEMENTATION_GUIDE.md。
本项目采用MIT许可证。