本项目是一个基于PostgreSQL图数据库扩展Apache AGE构建的数字孪生后端实现,并在此基础上提供了遵循Model Context Protocol (MCP) 的服务器接口,以便大型语言模型 (LLM) 客户端能够标准地访问和操作数字孪生数据。

项目简介

AgeDigitalTwins旨在提供一个与Azure Digital Twins兼容的API和SDK,利用PostgreSQL和Apache AGE的强大能力来存储和管理数字孪生数据(包括模型、孪生体和关系)。其MCP服务器组件将这些核心功能以工具和上下文的形式暴露给LLM客户端。

主要功能点

  • 数字孪生管理: 支持数字孪生(Twin)的创建、读取、更新和删除操作。
  • 关系管理: 支持数字孪生之间关系的创建、读取、更新和删除操作。
  • 模型管理: 支持使用DTDL (Digital Twins Definition Language) 定义和管理数字孪生模型。
  • 查询能力: 支持执行针对数字孪生数据的查询,包括对ADT (Azure Digital Twins) 查询语言的转换支持。
  • 图数据库存储: 利用PostgreSQL结合Apache AGE扩展存储数字孪生体和它们之间的关系。
  • MCP接口: 通过MCP协议提供上述功能的编程接口(工具)和生成查询的指导(Prompt)。

安装步骤

由于仓库提供了项目源代码和构建配置,你需要一个 .NET 开发环境来构建和运行服务器。此外,需要一个配置了Apache AGE扩展的PostgreSQL数据库。

  1. 准备PostgreSQL数据库: 安装PostgreSQL,并安装和配置Apache AGE扩展。确保创建了一个用于存储数字孪生数据的图(Graph),默认名称为 'digitaltwins'。
  2. 获取源代码: 克隆GitHub仓库到本地。
  3. 构建项目: 在项目根目录下,使用 .NET CLI 构建解决方案。例如:'dotnet build'。
  4. 配置数据库连接: 服务器需要数据库连接字符串和图名称。这些通常通过应用程序配置(如 'appsettings.json')、环境变量或命令行参数提供。你需要配置一个名为 'agedb' 的连接字符串,以及可选的图名称参数(默认 'digitaltwins')。
  5. 运行MCP服务器: 运行 'src/AgeDigitalTwins.MCPServerSSE' 项目。例如,发布后运行可执行文件,或者在开发环境中通过 'dotnet run --project src/AgeDigitalTwins.MCPServerSSE' 运行。

服务器配置 (供MCP客户端参考)

MCP客户端需要知道如何启动或连接到这个MCP服务器。基于本项目的结构,你通常需要配置客户端来启动 'AgeDigitalTwins.MCPServerSSE' 项目编译后的可执行文件或DLL。

MCP客户端的配置信息中,你需要指定服务器的启动方式('command' 和 'args')以及该服务器运行所需的配置信息。对于AgeDigitalTwins MCP服务器,关键的配置需求是 PostgreSQL数据库连接字符串Apache AGE图名称。这些配置信息需要通过MCP客户端提供的机制传递给启动的服务器进程,例如通过环境变量或配置文件。具体的传递方式取决于你使用的MCP客户端。

基本使用方法

一旦AgeDigitalTwins MCP服务器启动并连接到PostgreSQL/AGE数据库,LLM客户端即可通过MCP协议与其交互。

  1. 调用工具: LLM客户端可以调用服务器暴露的工具来执行CRUD操作,例如创建新的数字孪生、更新属性、查询关系等。工具的名称和功能通常通过MCP协议的服务发现机制获取。
  2. 获取Prompt: LLM客户端可以请求服务器提供的Prompt模板,例如用于指导生成数据库查询的Prompt,以更好地理解如何与数字孪生数据交互。
  3. 查询数据: 利用服务器提供的查询工具,LLM客户端可以直接执行查询(包括ADT或Cypher查询)来检索数字孪生数据。

例如,一个LLM客户端可能会通过MCP调用一个工具来获取所有数字孪生模型的列表,或者调用一个工具来创建一个新的房间孪生体,然后调用查询工具查找该房间的详细信息。

信息

分类

数据库与文件