RDF知识图谱探索工具

一个提供对话式界面的MCP服务器,用于探索和分析基于RDF(Turtle)的知识图谱,支持本地文件模式和SPARQL端点模式,适用于知识图谱研究和AI数据准备。

  • by emekaokoye
  • Python
  • 本地部署
  • 56 星标
  • 更新于
在 GitHub 查看 emekaokoye/mcp-rdf-explorer

使用说明

RDF资源管理器v1.0.0

概述

一种模型上下文协议(MCP)服务器,为在本地文件模式或SPARQL端点模式下探索和分析基于RDF(Turtle)的知识图提供会话接口。该服务器促进了AI应用程序(主机/客户端)和RDF数据之间的通信,通过SPARQL查询进行图探索和分析图数据。知识图谱研究和人工智能数据准备的完美工具。

组件

工具

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

  • execute_on_endpoint

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

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

    • 计算并返回JSON格式的图形统计数据
    • 输入:
      • ctx (上下文):FastMCP上下文对象。
    • 返回:包含图形统计信息的JSON字符串(例如,三重计数、唯一主题)。
  • count_triples

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

    • 对图形或端点执行全文搜索,避免使用专有语法。
    • 输入:
      • search_term (str):要搜索的术语。
      • ctx (上下文):FastMCP上下文对象。
    • 返回:以换行符分隔的字符串或错误消息的形式搜索结果。
  • health_check

    • 检查三元组存储连接的运行状况。
    • 输入:
      • ctx (上下文):FastMCP上下文对象。
    • 返回:如果连接良好,则返回“健康”,返回“不健康: “否则。
  • get_mode

    • 获取RDF Explorer的当前模式。可用于知识图谱和语义技术用户验证数据源。
    • 输入:
      • ctx (上下文):FastMCP上下文对象。
    • 返回:指示模式和数据集或端点的消息。

资源

服务器公开以下资源:

  • schema://all:从图中检索模式信息(类和属性)。

    • 返回:以换行符分隔的模式元素(类和属性)字符串。
  • queries://{template_name}:按名称检索预定义的SPARQL查询模板。

    • 返回:SPARQL查询字符串或“找不到模板”。
  • 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桌面上安装

开始之前,请确保 克劳德桌面 已安装。

  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 参数

{
  "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"]
    }
  }
}
  1. 重新启动Claude Desktop并开始查询和探索图形数据。

  2. 提示:“RDF资源管理器正在以何种模式运行?”

使用示例

以下是如何使用自然语言探索RDF数据的示例:

在本地文件模式下查询数据

你可以问这样的问题:

  • “显示销售部门的所有员工”
  • “查找前5位最老客户”
  • “谁在上个月购买了3件以上的产品?”
  • “列出所有实体”
  • “使用DBpedia端点,列出迈克尔·杰克逊的10首歌曲”
  • “使用维基数据端点,列出5个城市”
  • “数三”
  • “分析图形结构”
  • “选择…”
  • 搜索“{text}”
  • “查找“{URI}”的关系”
  • “RDF资源管理器运行的模式是什么?”

在SPARQL端点模式下查询数据

你可以问这样的问题:

  • “使用DBpedia端点,列出迈克尔·杰克逊的10首歌曲”
  • “使用维基数据端点,列出5个城市”
  • “选择…”
  • 搜索“{text}”
  • “查找“{URI}”的关系”
  • “RDF资源管理器运行的模式是什么?”

发展

# 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许可证的条款和条件自由使用、修改和分发软件。有关更多详细信息,请参阅 许可证 项目存储库中的文件。