Skip to main content

An MCP server for Altair Graph Studio (AGS) providing intelligent SPARQL query capabilities via the Model Context Protocol.

Project description

RMGS MCP Server

An MCP (Model Context Protocol) server for Altair Graph Studio (AGS) that provides intelligent SPARQL query capabilities, ontology management, and graphmart construction tools — all accessible from AI coding assistants like GitHub Copilot, Claude Desktop, and other MCP-compatible clients.

Features

  • SPARQL Query Execution — Run SPARQL queries against AGS graphmarts
  • Knowledge Discovery — Explore ontologies, classes, and properties
  • Ontology Management — Create, modify, and delete ontologies
  • Graphmart Construction — Build and manage transformation layers and steps
  • Agent Memory — Persistent and ephemeral memory for context retention
  • Dual Modesexplore (read-only, 8 tools) and create (all 40+ tools)
  • Multiple Transports — stdio, SSE, and streamable-http

Installation

From PyPI

pip install siemens-graph-studio-mcp-server

Note: Installing this package will also install rdflib, which adds rdfpipe and rdfgraphisomorphism executables to your environment. These are standard rdflib CLI utilities and are not part of this MCP server — they can be safely ignored.

From Source

git clone git@code.siemens.com:boris.shalumov/rmgs-mcp-server.git
cd rmgs-mcp-server
pip install -e .

Development Install

pip install -e ".[dev]"

Configuration

The server requires the following environment variables:

Variable Description Required
ANZO_SERVER AGS server hostname Yes
ANZO_PORT AGS server port Yes
ANZO_USERNAME Anzo username Yes
ANZO_PASSWORD Anzo password Yes
GRAPHMART_URI Graphmart URI Yes
API_KEY OpenAI API key (only needed for LLM-powered features) No
ENABLE_AGENT_DEBUG Enable agent debug logs (true/false) No
ENABLE_LOGGING_DEBUG Enable verbose logging (true/false) No

You can also pass a JSON/JSONC config file with --config:

siemens-graph-studio-mcp-server --config config/connection.json

Example config file (config/connection.json):

{
  "anzo_server": "your-ags-server",
  "anzo_port": 443,
  "anzo_username": "user",
  "anzo_password": "password",
  "graphmart_uri": "http://cambridgesemantics.com/Graphmart/your-id",
  "api_key": "sk-...",
  "mcp_transport": "stdio"
}

Usage

Run as CLI

# stdio transport (default)
siemens-graph-studio-mcp-server

# With config file
siemens-graph-studio-mcp-server --config config/connection.json

# SSE transport
siemens-graph-studio-mcp-server --transport sse --port 8000

# Streamable HTTP
siemens-graph-studio-mcp-server --transport streamable-http --host 0.0.0.0 --port 8000

# Explore mode (read-only tools only)
siemens-graph-studio-mcp-server --mode explore

# Create mode (all tools)
siemens-graph-studio-mcp-server --mode create

Run as Python module

python -m rmgs_mcp_server.ags_sparql_agent --config config/connection.json

VS Code Integration

Option 1: Install from PyPI (Recommended)

  1. Install the package in your Python environment:

    pip install siemens-graph-studio-mcp-server
    
  2. Add the MCP server to your VS Code settings. Create or edit .vscode/mcp.json in your workspace:

    {
      "servers": {
        "siemens-graph-studio-mcp-server": {
          "type": "stdio",
          "command": "siemens-graph-studio-mcp-server",
          "args": ["--config", "/path/to/your/connection.json"]
        }
      }
    }
    

    Or with inline environment variables:

    {
      "servers": {
        "siemens-graph-studio-mcp-server": {
          "type": "stdio",
          "command": "siemens-graph-studio-mcp-server",
          "args": [],
          "env": {
            "ANZO_SERVER": "your-ags-server",
            "ANZO_PORT": "443",
            "ANZO_USERNAME": "your-username",
            "ANZO_PASSWORD": "your-password",
            "GRAPHMART_URI": "http://cambridgesemantics.com/Graphmart/your-id",
            "API_KEY": "your-openai-api-key"
          }
        }
      }
    }
    
  3. Reload VS Code. The MCP server will appear in your Copilot Chat tool list.

Option 2: Run from Source

  1. Clone and install in editable mode:

    git clone git@code.siemens.com:boris.shalumov/rmgs-mcp-server.git
    cd rmgs-mcp-server
    pip install -e .
    
  2. Use the same .vscode/mcp.json configuration as Option 1.

Option 3: Direct Python Execution (No Install)

If you prefer not to install the package, point directly to the script:

{
  "servers": {
    "siemens-graph-studio-mcp-server": {
      "type": "stdio",
      "command": "python",
      "args": ["/absolute/path/to/rmgs-mcp-server/rmgs_mcp_server/ags_sparql_agent.py"],
      "env": {
        "PYTHONPATH": "/absolute/path/to/rmgs-mcp-server",
        "ANZO_SERVER": "your-ags-server",
        "ANZO_PORT": "443",
        "ANZO_USERNAME": "your-username",
        "ANZO_PASSWORD": "your-password",
        "GRAPHMART_URI": "http://cambridgesemantics.com/Graphmart/your-id",
        "API_KEY": "your-openai-api-key"
      }
    }
  }
}

Using with VS Code Copilot Chat

Once configured, the MCP tools are available in GitHub Copilot Chat (Agent mode). You can:

  • Ask questions about your knowledge graph data
  • Discover ontologies and their structure
  • Execute SPARQL queries
  • Create and manage graphmart transformation layers
  • Build and modify ontologies

Example prompts:

  • "What ontologies are available in this graphmart?"
  • "Show me the classes in the automotive ontology"
  • "Run a SPARQL query to find all vehicles with more than 200 horsepower"
  • "Create a new transformation layer for data enrichment"

Claude Desktop Integration

Add to ~/.config/claude-desktop/claude_desktop_config.json:

{
  "mcpServers": {
    "siemens-graph-studio-mcp-server": {
      "command": "siemens-graph-studio-mcp-server",
      "args": ["--config", "/path/to/connection.json"],
      "env": {}
    }
  }
}

Tool Categories

System & Monitoring

Tool Description
test_system_connection Test MCP server and AGS agent status
get_session_logs Get session logs and interaction history

SPARQL Query Execution

Tool Description
execute_sparql_query Execute SPARQL directly against graphmart
query_ags_configuration Query graphmart metadata (local volume)
update_ags_configuration Update graphmart metadata with SPARQL

Knowledge Discovery

Tool Description
discover_knowledge_overview Get overview of available knowledge
discover_available_ontologies List all available ontologies
discover_ontology_classes List classes in a specific ontology
discover_class_data_properties List data properties for a class
discover_class_object_properties List object properties for a class

Ontology Management

Tool Description
create_ontology Create a new ontology
delete_ontology Delete an ontology
register_ontology Register ontologies
load_ontology_from_file Load TTL files into named graphs
add_ontology_class Add a class to an ontology
remove_ontology_class Remove a class from an ontology
add_ontology_property Add a property to an ontology
remove_ontology_property Remove a property from an ontology
add_ontology_import Add an import to an ontology
remove_ontology_import Remove an import from an ontology
list_ontology_structure_classes List classes in ontology structure
list_ontology_structure_properties List properties in ontology structure
get_ontology_cache_status Get ontology cache status
clear_ontology_cache Clear ontology caches
refresh_ontology_cache Force cache refresh

Graphmart Construction

Tool Description
create_transformation_layer Create transformation layers
update_transformation_layer Update layer properties
delete_transformation_layer Delete transformation layers
list_transformation_layers List all transformation layers
add_transformation_step Add transformation steps to layers
update_transformation_step Update transformation step properties
delete_transformation_step Delete transformation steps
list_transformation_steps List steps within a layer
add_direct_load_step Add direct data loading steps
update_direct_load_step Update direct load step properties
refresh_graphmart Lightweight refresh of changed layers
reload_graphmart Complete reprocessing of all layers
get_layer_status Comprehensive layer and step error info
get_step_status Specific step debugging

Agent Memory

Tool Description
initialize_agent_memory Initialize memory for the agent
write_permanent_memory Write to persistent memory
write_ephemeral_memory Write to session-scoped memory
promote_ephemeral_memory Promote ephemeral to permanent memory
clear_agent_memory Clear agent memory
read_agent_memory Read from agent memory

Publishing to PyPI

Build

pip install build twine
python -m build

This creates dist/rmgs_mcp_server-<version>.tar.gz and dist/rmgs_mcp_server-<version>-py3-none-any.whl.

Upload to PyPI

# Test PyPI (recommended first)
twine upload --repository testpypi dist/*

# Production PyPI
twine upload dist/*

Bump Version

Update the version in both:

  • pyproject.tomlversion = "x.y.z"
  • rmgs_mcp_server/__init__.py__version__ = "x.y.z"

Development

# Install in development mode
pip install -e ".[dev]"

# Run tests
pytest

# Build package
python -m build

Project Structure

rmgs-mcp-server/
├── rmgs_mcp_server/           # Main package
│   ├── __init__.py            # Package init with version
│   ├── ags_sparql_agent.py    # MCP server entry point
│   ├── models.py              # Pydantic/dataclass models
│   ├── sparql_agent_core.py   # Core SPARQL agent logic
│   ├── sparql_query_engine.py # SPARQL query engine
│   ├── ontology_cache.py      # Ontology caching
│   ├── ontology_discovery.py  # Ontology discovery
│   ├── interaction_logger.py  # Logging utilities
│   ├── tools/                 # MCP tool implementations
│   │   ├── base_tool.py       # Base tool class
│   │   ├── system/            # System & monitoring tools
│   │   ├── query/             # SPARQL query tools
│   │   ├── discovery/         # Knowledge discovery tools
│   │   ├── ontology/          # Ontology management tools
│   │   ├── graphmart/         # Graphmart construction tools
│   │   └── memory/            # Agent memory tools
│   └── utils/                 # Shared utilities
├── config/                    # Configuration templates
├── prompts/                   # Agent prompt templates
├── skills/                    # Best practices guides
├── pyproject.toml             # Package metadata & build config
├── LICENSE                    # MIT License
└── README.md                  # This file

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

siemens_graph_studio_mcp_server-0.5.1.tar.gz (130.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

siemens_graph_studio_mcp_server-0.5.1-py3-none-any.whl (154.1 kB view details)

Uploaded Python 3

File details

Details for the file siemens_graph_studio_mcp_server-0.5.1.tar.gz.

File metadata

File hashes

Hashes for siemens_graph_studio_mcp_server-0.5.1.tar.gz
Algorithm Hash digest
SHA256 7c1f0ea446949524066919db0756c39427e4d63347bdd41abb36954d34dbb90e
MD5 507a30bd98655832070a68c76c82b6d6
BLAKE2b-256 7b7fd6590a6a5588dc8de3116c2ff143fec3f1a64deff9944709eca5dd0fcd53

See more details on using hashes here.

File details

Details for the file siemens_graph_studio_mcp_server-0.5.1-py3-none-any.whl.

File metadata

File hashes

Hashes for siemens_graph_studio_mcp_server-0.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d54f96cd8cc0d7ce4fb8b9a0885452160e2524c973d2af69e9373960dbb5cccd
MD5 baefadbf9c906648556cfc045d457c08
BLAKE2b-256 f549b1c50bcb29b3da2e4c31138a52f570d1d63d137f7f26e02418126addd185

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page