MCP-RDF Explorer 知识图谱探索者
模型上下文协议(MCP)服务器为以本地文件模式或SPARQL端点探索和分析RDF龟语法知识图提供了对话式接口。
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"rdf_explorer": {
"args": [
"C:\\path\\to\\server.py",
"--sparql-endpoint",
"https://example.com/sparql"
],
"command": "C:\\path\\to\\venv\\Scripts\\python.exe"
}
}
}
服务介绍
RDF Explorer v1.0.0
概述
这是一个 Model Context Protocol (MCP) 服务器,提供了一个对话界面,用于在本地文件模式或 SPARQL 端点模式下探索和分析基于 RDF(Turtle)的知识图谱。该服务器促进了 AI 应用程序(主机/客户端)与 RDF 数据之间的通信,通过 SPARQL 查询来探索图数据和分析图数据。它是一个完美的工具,适用于知识图谱研究和 AI 数据准备。
组件
工具
服务器实现了 SPARQL 查询和搜索功能:
-
execute_on_endpoint- 直接在一个外部端点上执行 SPARQL 查询
- 输入:
endpoint(str): 要查询的 SPARQL 端点 URL。query(str): 要执行的 SPARQL 查询。ctx(Context): FastMCP 上下文对象。
- 返回:查询结果以换行符分隔的字符串,或者错误消息。
-
sparql_query- 在当前图或活动的外部端点上执行 SPARQL 查询
- 输入:
query(str): 要执行的 SPARQL 查询。ctx(Context): FastMCP 上下文对象。use_service(bool): 在本地模式下是否使用 SERVICE 子句进行联合查询(默认值:True)。
- 返回:查询结果以换行符分隔的字符串,或者错误消息。
-
graph_stats- 计算并返回关于图的统计数据,格式为 JSON
- 输入:
ctx(Context): FastMCP 上下文对象。
- 返回:包含图统计数据(例如三元组数量、唯一主题)的 JSON 字符串。
-
count_triples- 计算图中的三元组数量。在 SPARQL 端点模式下禁用;请改用自定义提示。
- 输入:
ctx(Context): FastMCP 上下文对象。
- 返回:三元组的数量作为字符串,或者错误消息。
-
full_text_search- 对图或端点执行全文搜索,避免专有语法。
- 输入:
search_term(str): 要搜索的术语。ctx(Context): FastMCP 上下文对象。
- 返回:搜索结果以换行符分隔的字符串,或者错误消息。
-
health_check- 检查三元组存储连接的健康状况。
- 输入:
ctx(Context): FastMCP 上下文对象。
- 返回:如果连接良好则返回 'Healthy',否则返回 'Unhealthy: '。
-
get_mode- 获取 RDF Explorer 的当前模式。对于知识图谱和语义技术用户来说,这有助于验证数据源。
- 输入:
ctx(Context): FastMCP 上下文对象。
- 返回:指示模式和数据集或端点的消息。
资源
服务器公开了以下资源:
-
schema://all: 从图中检索模式信息(类和属性)。- 返回:以换行符分隔的模式元素(类和属性)字符串。
-
queries://{template_name}: 按名称检索预定义的SPARQL查询模板。- 返回:SPARQL查询字符串或'Template not found'。
-
explore://{query_name}: 按名称执行探索性SPARQL查询并以JSON格式返回结果。query_name(str): 探索性查询的名称(例如,'classes', 'relationships/URI')。- 返回:查询结果的JSON字符串。
-
explore://report: 生成探索性查询的Markdown报告。- 返回:Markdown格式的报告字符串。
提示
服务器公开以下提示:
-
analyze_graph_structure: 使用模式数据启动图结构分析。- 返回:指导图结构分析的消息列表。
-
find_relationships: 生成一个SPARQL查询,以查找给定主体的关系。- 返回:用于查找关系的SPARQL查询字符串。
-
text_to_sparql: 将文本提示转换为SPARQL查询并执行它,并检查令牌限制。prompt(str): 要转换为SPARQL的文本提示。- 返回:带有使用统计信息的查询结果,或错误消息。
设置
配置
在Claude Desktop上安装
开始之前,请确保已安装Claude Desktop。
-
进入:设置 > 开发者 > 编辑配置
-
向您的
claude_desktop_config.json添加以下内容:
在MacOS上:~/Library/Application Support/Claude/claude_desktop_config.json
在Windows上:%APPDATA%/Claude/claude_desktop_config.json
要与本地RDF Turtle文件一起使用,请使用此版本并加上--triple-file参数
{
"mcpServers": {
"rdf_explorer": {
"command": "C:\\path\\to\\venv\\Scripts\\python.exe",
"args": ["C:\\path\\to\\server.py", "--triple-file", "your_file.ttl"]
}
}
}
要与SPARQL端点一起使用,请使用此版本并加上--sparql-endpoint参数
{
"mcpServers": {
"rdf_explorer": {
"command": "C:\\path\\to\\venv\\Scripts\\python.exe",
"args": ["C:\\path\\to\\server.py", "--sparql-endpoint", "https://example.com/sparql"]
}
}
}
-
重启Claude Desktop并开始查询和探索图数据。
-
提示:“RDF Explorer运行在哪种模式下?”
使用示例
以下是您可以如何使用自然语言探索RDF数据的一些示例:
在本地文件模式下查询数据
您可以提出如下问题:
- “显示销售部门的所有员工”
- “找出最老的5位客户”
- “谁在过去一个月内购买了超过3件产品?”
- “列出所有实体”
- “使用DBpedia端点,列出Michael Jackson的10首歌曲”
- “使用Wikidata端点,列出5个城市”
- “计数三元组”
- “分析图结构”
- “选择...”
- “搜索'{text}'”
- “查找'{URI}'的关系”
- “RDF Explorer运行在哪种模式下?”
在SPARQL端点模式下查询数据
您可以提出如下问题:
- “使用DBpedia端点,列出Michael Jackson的10首歌曲”
- “使用Wikidata端点,列出5个城市”
- “选择...”
- “搜索'{text}'”
- “查找'{URI}'的关系”
- “RDF Explorer运行在哪种模式下?”
开发
# clone the repository
git clone https://github.com/emekaokoye/mcp-rdf-explorer.git
cd mcp-rdf-explorer
# setup a virtual environment
python -m venv venv
source venv/bin/activate
# windows: venv\Scripts\activate
# install development dependencies
pip install -r requirements.txt
# run tests
pytest test_rdf_explorer.py -v
许可证
此MCP服务器依据MIT许可证发布。这意味着您可以根据MIT许可证的条款和条件自由地使用、修改和分发该软件。更多详情,请参阅项目仓库中的许可证文件。