Dsr Mcp Server

io.github.grupo-avispaPublished by GitHub account grupo-avispav1.0.1Updated Nov 3, 2026

An MCP server that provides tools for interacting with Deep State Representation (DSR) graphs.

VerifiedSTDIODesktop onlyDatabasesData & AnalyticsAI & ML

Overview

AI-generated overview

Lets an assistant query, modify and export Deep State Representation (DSR) graphs used for robot perception and scene understanding.

What you can do
  • Check the DSR connection and read the whole graph or filter nodes by type
  • Inspect a single node's attributes and edges, or list all edges
  • Insert nodes and edges, and set or update node and edge attributes
  • Delete nodes and edges from the graph
  • Save the current graph state to a JSON file
  • Read graph data through read-only resources for nodes, typed nodes, single nodes and edges
When to use it
Useful when working with a running DSR graph from robot perception or scene-understanding systems and you want an assistant to inspect, annotate or clean up nodes and relationships, or snapshot the graph to JSON.
Requirements
Runs locally over stdio (or HTTP mode) with Python 3.12+, the fastmcp framework and the Cortex DSR library, which must be built in the virtual environment. Needs a reachable DSR server, configured with DSR_AGENT_ID, DSR_NAME, SERVER_HOST and SERVER_PORT. Desktop only.
Before you install
Several tools write to the graph: insert_node, insert_edge, insert_edge_attribute, update_node, delete_node and delete_edge can change or remove live robot perception data, so confirm targets before use. save_graph writes a JSON file to a path chosen interactively. Point it only at a DSR instance you are allowed to modify.

Installation

In SourceWeft

  1. Open Dsr Mcp Server in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

DSR MCP Server

[License] [Build]

An MCP (Model Context Protocol) server that provides a comprehensive set of tools to query, manipulate, and analyze Deep State Representation (DSR) graphs. This server enables AI assistants to interact with robot perception and scene understanding data through standardized MCP tools with real-time graph operations and intelligent node relationship management.

Tools

Tool NameDescriptionParameters
check_dsr_connectionCheck DSR connection and return status information—
get_all_nodesRetrieve all nodes from the DSR graph—
get_nodes_by_typeFilter nodes by their type (e.g., robot, person, room)node_type: str
get_node_detailsGet detailed information about a specific node including attributes and edgesnode_identifier: str
get_all_edgesRetrieve all edges from the DSR graph—
insert_nodeInsert a new node into the DSR graphname: str, node_type: str
insert_edgeInsert a new edge between two nodes in the DSR graphorigin_id: str, destination_id: str, edge_type: str
insert_edge_attributeInsert or update an attribute for an edge in the DSR graphorigin_id: str, destination_id: str, attribute_name: str, attribute_value: str, attribute_type: str = 'string'
update_nodeUpdate a node with new attributes in the DSR graphnode_id: str, attribute_name: str, attribute_value: str, attribute_type: str = 'string'
delete_nodeDelete a node from the DSR graphnode_id: str
delete_edgeDelete an edge from the DSR graphorigin_id: str, destination_id: str, edge_type: str
save_graphSave the current state of the DSR graph to a JSON fileInteractive file path selection

Resources

Resources provide read-only, efficient access to DSR graph data. They are ideal for querying information without modifying the graph state.

Resource URIDescriptionReturns
dsr://nodesAll nodes in the DSR graph with basic informationJSON with nodes array, count, and DSR name
dsr://nodes/type/{type}Nodes filtered by type with full details (attributes, edges)JSON with detailed nodes array, count, and type
dsr://nodes/{node_id}Detailed information about a specific nodeJSON with node details, attributes, and connected edges
dsr://edgesAll edges in the DSR graphJSON with edges array, count, and DSR name

Environment Variables

VariableDefaultDescription
DSR_AGENT_ID42Unique agent identifier for DSR connection
DSR_NAMEmcp_serverTarget DSR graph name to connect to
SERVER_HOST127.0.0.1Server host address
SERVER_PORT3000Server port number

Installation

Dependencies

  • fastmcp: MCP server framework (>= 2.2.7)
  • Cortex: DSR library for graph operations
  • Python: 3.12+ required

Note: You must build Cortex inside the virtual environment to ensure compatibility.

bash
cd dsr_mcp_serversource .venv/bin/activatecd ${CORTEX_DIR} && make -p build && cd buildcmake .. && make -j$(nproc) && sudo make install

Install with uv (recommended)

Clone the repository and install with uv:

bash
git clone https://github.com/grupo-avispa/dsr_mcp_server.gitcd dsr_mcp_serveruv sync

Or install directly from the repository:

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

Install with pip

Install the package in mode:

bash
git clone https://github.com/grupo-avispa/dsr_mcp_server.gitcd dsr_mcp_serverpython3 -m pip install .

Or install directly from the repository:

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

Usage

Running with uv

bash
uv run dsr_mcp_server

Running with pip installation

bash
python3 -m dsr_mcp_server

The server will start and attempt to initialize the DSR connection automatically using the configured parameters.

Configuration example for Claude Desktop/Cursor/VSCode

Using uv (recommended)

Add this configuration to your application's settings (mcp.json):

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"    }  }}
Using pip installation
json
{  "dsr mcp server": {    "type": "stdio",    "command": "python3",    "args": [      "-m",      "dsr_mcp_server"    ],    "env": {      "DSR_AGENT_ID": "42",       "DSR_NAME": "your_dsr_graph_name"    }  }}
HTTP Server Mode

For HTTP transport integration:

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

Technical Notes

  • Connection to DSR is performed with automatic initialization and connection monitoring.
  • Node attributes are filtered to exclude internal rendering properties (color, depth, height, level, etc.) for cleaner output.
  • Edge relationships support various types including spatial (near), ownership (has), identity (is), and association (is_with) semantics.
  • Graph operations maintain consistency through the DSR library's built-in validation mechanisms.
  • All tools return standardized JSON responses with success/error status and detailed information.
  • Interactive file selection for graph export operations through MCP elicit mechanism.
  • Resources provide read-only, idempotent access to DSR graph data with efficient caching and lower overhead compared to tools. Use resources for querying data and tools for modifications.

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes following the coding conventions
  4. Add tests if applicable
  5. Submit a pull request

Support

For issues, questions, or contributions, please refer to the project's issue tracker or contact the development team.

Source: README.md at commit fba845f

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v1.0.1LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts