小贴士:按下Ctrl+D 或 ⌘+D,一键收藏本站,方便下次快速访问!
MIT License
2
最近更新:1个月前

提供基于RDF(Turtle)知识图谱探索与分析会话接口的Model Context Protocol (MCP)服务器,支持本地文件模式或SPARQL端点模式。

RDF Explorer v1.0.0

概述

一个模型上下文协议(MCP)服务器,为基于RDF(Turtle)的知识图谱提供本地文件模式或SPARQL端点模式下的探索分析对话接口。该服务器在AI应用(主机/客户端)与RDF数据之间建立沟通桥梁,支持通过SPARQL查询进行图谱探索和数据分析。是知识图谱研究和AI数据准备的理想工具。

组件

工具

服务器实现SPARQL查询和搜索功能:

  • execute_on_endpoint

    • 在外部端点上直接执行SPARQL查询
    • 输入:
      • endpoint (字符串): 要查询的SPARQL端点URL
      • query (字符串): 要执行的SPARQL查询
      • ctx (Context): FastMCP上下文对象
    • 返回:以换行符分隔的查询结果字符串,或错误信息
  • sparql_query

    • 在当前图谱或活动外部端点上执行SPARQL查询
    • 输入:
      • query (字符串): 要执行的SPARQL查询
      • ctx (Context): FastMCP上下文对象
      • use_service (布尔值): 本地模式下是否使用SERVICE子句进行联邦查询(默认: True)
    • 返回:以换行符分隔的查询结果字符串,或错误信息
  • graph_stats

    • 计算并返回图谱统计信息(JSON格式)
    • 输入:
      • ctx (Context): FastMCP上下文对象
    • 返回:包含图谱统计信息的JSON字符串(如三元组数量、唯一主语等)
  • count_triples

    • 统计图谱中的三元组数量。SPARQL端点模式下禁用;请改用自定义提示
    • 输入:
      • ctx (Context): FastMCP上下文对象
    • 返回:三元组数量字符串,或错误信息
  • full_text_search

    • 在图谱或端点上执行全文搜索,避免使用专有语法
    • 输入:
      • search_term (字符串): 搜索关键词
      • 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 (字符串): 探索性查询名称(如'classes', 'relationships/URI')
    • 返回:查询结果的JSON字符串
  • explore://report: 生成探索性查询的Markdown报告

    • 返回:Markdown格式的报告字符串

提示

服务器公开以下提示:

  • analyze_graph_structure: 使用模式数据启动图谱结构分析

    • 返回:指导图谱结构分析的消息列表
  • find_relationships: 为给定主语生成查找关系的SPARQL查询

    • 返回:查找关系的SPARQL查询字符串
  • text_to_sparql: 将文本提示转换为SPARQL查询并执行,包含令牌限制检查

    • prompt (字符串): 要转换为SPARQL的文本提示
    • 返回:带使用统计的查询结果,或错误信息

安装配置

在Claude Desktop上安装

开始前请确保已安装Claude Desktop

  1. 前往: 设置 > 开发者 > 编辑配置

  2. claude_desktop_config.json中添加以下内容:
    MacOS路径: ~/Library/Application Support/Claude/claude_desktop_config.json
    Windows路径: %APPDATA%/Claude/claude_desktop_config.json

使用本地RDF Turtle文件时,添加--triple-file参数:

json 复制代码
{
  "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参数:

json 复制代码
{
  "mcpServers": {
    "rdf_explorer": {
      "command": "C:\\path\\to\\venv\\Scripts\\python.exe",
      "args": ["C:\\path\\to\\server.py", "--sparql-endpoint", "https://example.com/sparql"]
    }
  }
}
  1. 重启Claude Desktop后即可开始查询和探索图谱数据

  2. 提示:"RDF Explorer当前运行在什么模式下?"

使用示例

本地文件模式查询示例

可提出以下类型问题:

  • "显示销售部门所有员工"
  • "找出年龄最大的5位客户"
  • "列出上个月购买超过3件产品的用户"
  • "列出所有实体"
  • "使用DBpedia端点列出Michael Jackson的10首歌曲"
  • "使用Wikidata端点列出5个城市"
  • "统计三元组数量"
  • "分析图谱结构"
  • "查询..."
  • "搜索'{文本}'"
  • "查找'{URI}'的关系"
  • "RDF Explorer当前运行在什么模式下?"

SPARQL端点模式查询示例

可提出以下类型问题:

  • "使用DBpedia端点列出Michael Jackson的10首歌曲"
  • "使用Wikidata端点列出5个城市"
  • "查询..."
  • "搜索'{文本}'"
  • "查找'{URI}'的关系"
  • "RDF Explorer当前运行在什么模式下?"

开发

复制代码
# 克隆仓库
git clone https://github.com/emekaokoye/mcp-rdf-explorer.git
cd mcp-rdf-explorer

# 创建虚拟环境
python -m venv venv
source venv/bin/activate
# Windows: venv\Scripts\activate

# 安装开发依赖
pip install -r requirements.txt

# 运行测试
pytest test_rdf_explorer.py -v

许可证

本MCP服务器采用MIT许可证授权。这意味着您可以自由使用、修改和分发该软件,但需遵守MIT许可证的条款。更多详情请参阅项目仓库中的许可证文件。