项目简介

本项目是一个实现了 Model Context Protocol (MCP) 的服务器,专门用于连接 Ontotext GraphDB 数据库。它允许兼容 MCP 的 LLM (大型语言模型) 客户端以结构化的方式访问 GraphDB 中的数据和功能, enabling LLMs to explore RDF graphs and execute SPARQL queries.

主要功能

该服务器向 LLM 客户端暴露了以下能力:

资源 (Resources):

  • 类列表: 获取 GraphDB 仓库中所有 RDF 类及其实例计数、标签和注释。
  • 属性列表: 获取仓库中所有谓词 (属性) 及其使用计数、标签和注释。
  • 统计信息: 提供仓库的总三元组数、主题、谓词、对象和图的数量统计。
  • 样本数据: 获取仓库中的三元组样本数据。
  • 图内容: 获取特定图的样本数据以及该图的三元组、主题、谓词计数和本体类信息。

工具 (Tools):

  • sparqlQuery: 允许 LLM 执行只读的 SPARQL 查询,并可指定查询的图和结果格式 (JSON, XML, CSV)。
  • listGraphs: 列出仓库中所有可用的图。

安装步骤

要安装和运行此 MCP 服务器,请按照以下步骤操作:

  1. 克隆仓库:
    git clone https://github.com/keonchennl/mcp-graphdb.git
    cd mcp-graphdb
  2. 安装依赖:
    yarn install
    或使用 npm:
    npm install
  3. 构建项目:
    yarn build
    或使用 npm:
    npm run build

这将在 'dist' 目录下生成可执行的 JavaScript 文件。

服务器配置

MCP 服务器需要知道如何连接您的 GraphDB 实例。您可以创建一个名为 '.env' 的文件,在其中设置以下环境变量:

GRAPHDB_ENDPOINT=http://localhost:7200  # GraphDB 服务器的地址和端口
GRAPHDB_REPOSITORY=myRepository         # 要连接的仓库名称
GRAPHDB_USERNAME=username               # (可选) GraphDB 认证用户名
GRAPHDB_PASSWORD=password               # (可选) GraphDB 认证密码

或者,您可以在启动服务器时通过命令行参数提供 Endpoint 和 Repository:

node dist/index.js http://localhost:7200 myRepository

命令行参数的优先级高于环境变量。

对于 MCP 客户端(如 Claude Desktop),您需要在客户端的配置中添加此 MCP 服务器。典型的配置(JSON 格式)类似于:

{
  "mcpServers": {
    "graphdb_server_name": {             // 给这个 MCP 服务器起一个唯一的名称
      "command": "node",                 // 启动服务器的命令,通常是 node
      "args": [                          // 启动命令的参数
        "/path/to/mcp-graphdb/dist/index.js", // 服务器主文件路径
        "http://localhost:7200",         // (可选) GraphDB Endpoint,也可通过环境变量配置
        "myRepository"                   // (可选) GraphDB Repository,也可通过环境变量配置
      ],
      "env": {                           // (可选) 服务器运行所需的环境变量
        "GRAPHDB_USERNAME": "username",
        "GRAPHDB_PASSWORD": "password"
      }
    }
  }
}

请根据您的实际安装路径和 GraphDB 配置修改 '/path/to/mcp-graphdb/dist/index.js' 以及相关的 Endpoint, Repository, Username 和 Password。

基本使用方法

安装并配置好服务器后,启动兼容的 MCP 客户端(如 Claude Desktop)。客户端将通过配置中的 'command' 和 'args' 启动此 GraphDB MCP 服务器。

一旦连接建立,LLM 即可通过客户端界面发现并使用此服务器提供的资源和工具。例如,LLM 可以:

  • 自动发现 'sparqlQuery' 工具并生成 SPARQL 查询来检索特定信息。
  • 读取 'graphdb://<host>/repository/<repo>/classes' 资源来了解数据库中有哪些类。
  • 使用 'listGraphs' 工具了解数据库包含了哪些独立的图。

LLM 可以利用这些功能深入理解和交互 GraphDB 中的复杂知识图谱数据。

信息

分类

数据库与文件