DSR图服务器

一个提供查询、操作和分析深度状态表示(DSR)图工具集的MCP服务器,支持AI助手通过标准化MCP工具与机器人感知和场景理解数据进行交互。

  • by grupo-avispa
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 grupo-avispa/dsr_mcp_server

使用说明

DSR MCP服务器

MCP(模型上下文协议)服务器,提供一套全面的工具来查询、操作和分析深度状态表示(DSR)图。该服务器使AI助手能够通过具有实时图形操作和智能节点关系管理的标准化MCP工具与机器人感知和场景理解数据进行交互。

工具

工具名称 描述 参数
check_dsr_connection 检查DSR连接并返回状态信息 --
获取所有节点 从DSR图中检索所有节点 --
get_nodes_by_type 按类型过滤节点(例如,机器人、人、房间) node_type: str
get_node_details 获取特定节点的详细信息,包括属性和边 node_identifier: str
获取所有奖励 从DSR图中检索所有边 --
insert_node 在DSR图中插入新节点 name: str, node_type: str
insert_edge 在DSR图中的两个节点之间插入新边 origin_id: str, destination_id: str, edge_type: str
insert_edge_attribute 在DSR图中插入或更新边的属性 origin_id: str, destination_id: str, attribute_name: str, attribute_value: str, attribute_type: str = 'string'
update_node 在DSR图中用新属性更新节点 node_id: str, attribute_name: str, attribute_value: str, attribute_type: str = 'string'
delete_node 从DSR图中删除节点 node_id: str
删除_边缘 从DSR图中删除边 origin_id: str, destination_id: str, edge_type: str
保存图形 将DSR图的当前状态保存到JSON文件 交互式文件路径选择

资源

资源提供对DSR图数据的只读、高效访问。它们非常适合在不修改图形状态的情况下查询信息。

资源URI 描述 返回
dsr://nodes DSR图中的所有节点及其基本信息 JSON,包含节点数组、计数和DSR名称
dsr://nodes/type/{类型} 按类型筛选的节点,具有完整的细节(属性、边) JSON,具有详细的节点数组、计数和类型
dsr://nodes/{node_id} 关于特定节点的详细信息 包含节点详细信息、属性和连接边的JSON
dsr://edges DSR图中的所有边 带有边数组、计数和DSR名称的JSON

环境变量

变量 默认值 描述
DSR_AGENT_ID 42 DSR连接的唯一代理标识符
DSR_NAME mcp_server 要连接的目标DSR图名称
SERVER_HOST 127.0.0.1 服务器主机地址
SERVER_PORT 3000 服务器端口号

安装

依赖项

  • fastmcp:MCP服务器框架(>=2.2.7)
  • 皮质:用于图形操作的DSR库
  • python:需要3.12+

注: 您必须在虚拟环境中构建Cortex以确保兼容性。

cd dsr_mcp_server
source .venv/bin/activate
cd ${CORTEX_DIR} && make -p build && cd build
cmake .. && make -j$(nproc) && sudo make install

使用紫外线进行安装(推荐)

克隆存储库并使用uv安装:

git clone https://github.com/grupo-avispa/dsr_mcp_server.git
cd dsr_mcp_server
uv sync

或者直接从存储库安装:

uv add git+https://github.com/grupo-avispa/dsr_mcp_server.git

使用pip安装

在以下模式下安装软件包:

git clone https://github.com/grupo-avispa/dsr_mcp_server.git
cd dsr_mcp_server
python3 -m pip install .

或者直接从存储库安装:

python3 -m pip install git+https://github.com/grupo-avispa/dsr_mcp_server.git

用法

用紫外线跑步

uv run dsr_mcp_server

使用pip安装运行

python3 -m dsr_mcp_server

服务器将启动并尝试使用配置的参数自动初始化DSR连接。

Claude桌面/光标/VCode的配置示例

使用紫外线(推荐)

将此配置添加到应用程序的设置中(mcp.json):

{
  "dsr mcp server": {
    "type": "stdio",
    "command": "uv",
    "args": [
      "run",
      "--directory",
      "/path/to/dsr_mcp_server",
      "dsr_mcp_server"
    ],
    "env": {
      "DSR_AGENT_ID": "42",
      "DSR_NAME": "your_dsr_graph_name"
    }
  }
}

使用pip安装

{
  "dsr mcp server": {
    "type": "stdio",
    "command": "python3",
    "args": [
      "-m",
      "dsr_mcp_server"
    ],
    "env": {
      "DSR_AGENT_ID": "42", 
      "DSR_NAME": "your_dsr_graph_name"
    }
  }
}

HTTP服务器模式

对于HTTP传输集成:

{
  "servers": {
    "dsr_mcp_server": {
      "type": "http",
      "url": "http://localhost:3000/mcp"
    }
  }
}

技术说明

  • 通过自动初始化和连接监控执行与DSR的连接。
  • 节点属性被过滤以排除内部渲染属性(颜色、深度、高度、级别等),从而获得更清晰的输出。
  • 边缘关系支持多种类型,包括空间(near)、所有权(has)、身份(is)和关联(is_with)语义。
  • 图操作通过DSR库的内置验证机制保持一致性。
  • 所有工具都会返回标准化的JSON响应,其中包含成功/错误状态和详细信息。
  • 通过MCP引导机制进行图形导出操作的交互式文件选择。
  • 资源 与工具相比,提供对DSR图数据的只读、幂等访问,具有高效的缓存和较低的开销。使用资源查询数据和工具进行修改。

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 按照编码约定进行更改
  4. 如果适用,添加测试
  5. 提交拉取请求

支持

有关问题、疑问或贡献,请参阅 项目的问题跟踪器 或联系开发团队。