Skip to main content

MCP (Model Context Protocol) server for Siemens Graph Studio - enables AI agents to interact with knowledge graphs via SPARQL

Project description

Siemens Graph Studio MCP Server

PyPI version Python 3.10+ License

An MCP (Model Context Protocol) server that enables AI agents to interact with Siemens Graph Studio knowledge graphs via SPARQL queries.

Features

  • 🔍 Execute SPARQL Queries - Run queries against GraphMarts
  • 📊 Discover Knowledge - Explore ontologies, classes, and properties
  • 🔄 Manage GraphMarts - Create and modify transformation layers
  • 🧠 AI-Powered Queries - Natural language to SPARQL translation (with OpenAI)
  • 📦 Ontology Caching - Efficient schema discovery and caching

Installation

pip install siemens-graph-studio-mcp-server

Quick Start

1. Configure Environment Variables

export ANZO_SERVER="graph-studio.example.com"
export ANZO_PORT="8443"
export ANZO_USERNAME="your-username"
export ANZO_PASSWORD="your-password"
export GRAPHMART_URI="http://example.com/Graphmart/your-graphmart-id"

# Optional: For natural language queries
export API_KEY="sk-your-openai-api-key"

2. Run the Server

siemens-graph-studio-mcp

3. Use with Claude Desktop

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

{
  "mcpServers": {
    "graph-studio": {
      "command": "siemens-graph-studio-mcp",
      "env": {
        "ANZO_SERVER": "graph-studio.example.com",
        "ANZO_PORT": "8443",
        "ANZO_USERNAME": "your-username",
        "ANZO_PASSWORD": "your-password",
        "GRAPHMART_URI": "http://example.com/Graphmart/your-graphmart-id",
        "API_KEY": "sk-your-openai-api-key"
      }
    }
  }
}

Configuration

Environment Variables

Variable Required Description
ANZO_SERVER Yes Graph Studio server hostname
ANZO_PORT Yes Server port (typically 8443)
ANZO_USERNAME Yes Authentication username
ANZO_PASSWORD Yes Authentication password
GRAPHMART_URI Yes Target GraphMart URI
API_KEY No OpenAI API key for NL queries
ENABLE_AGENT_DEBUG No Enable debug output
ENABLE_LOGGING_DEBUG No Enable detailed logging

Config File

Alternatively, use a config file:

siemens-graph-studio-mcp --config my-config.json

See examples/config.example.jsonc for a template.

Available Tools

System & Monitoring

  • test_system_connection - Test MCP server and Graph Studio agent status
  • get_session_logs - Get session logs and interaction history

SPARQL Query Execution

  • execute_sparql_query - Execute SPARQL directly against GraphMart
  • query_ags_configuration - Query Graph Studio configuration
  • update_ags_configuration - Update Graph Studio configuration

Knowledge Discovery

  • 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

  • create_ontology - Create new ontologies
  • delete_ontology - Delete ontologies
  • load_ontology_from_file - Load TTL files into named graphs
  • register_ontology - Register ontologies
  • add_ontology_class / remove_ontology_class - Manage classes
  • add_ontology_property / remove_ontology_property - Manage properties
  • get_ontology_cache_status / clear_ontology_cache / refresh_ontology_cache - Cache management

GraphMart Construction

  • create_transformation_layer - Create transformation layers
  • add_transformation_step - Add transformation steps
  • add_direct_load_step - Add direct data loading steps
  • update_transformation_layer / delete_transformation_layer - Layer management
  • list_transformation_layers / list_transformation_steps - List components
  • refresh_graphmart / reload_graphmart - GraphMart operations

Transport Modes

stdio (default)

For use with Claude Desktop and other MCP clients:

siemens-graph-studio-mcp

SSE (Server-Sent Events)

For web clients:

siemens-graph-studio-mcp --transport sse --port 8000

HTTP Streaming

siemens-graph-studio-mcp --transport streamable-http --port 8000

Programmatic Usage

import asyncio
from siemens_graph_studio_mcp import GraphmartConfig, SPARQLAgent

async def main():
    config = GraphmartConfig(
        ags_server="graph-studio.example.com",
        ags_port=8443,
        graphmart_uri="http://example.com/Graphmart/demo",
        username="admin",
        password="secret"
    )
    
    agent = SPARQLAgent(config)
    await agent.initialize()
    
    # Now use the agent...

asyncio.run(main())

Development

Setup

git clone https://github.com/siemens/graph-studio-mcp-server.git
cd graph-studio-mcp-server
pip install -e ".[dev]"

Running Tests

pytest

Building for Distribution

pip install build twine
python -m build

Publishing to PyPI

# Test PyPI
twine upload --repository testpypi dist/*

# Production PyPI
twine upload dist/*

Requirements

  • Python 3.10+
  • Access to a Siemens Graph Studio instance
  • Valid user credentials with GraphMart access

License

Apache License 2.0 - See LICENSE for details.

Related

Support

For issues and feature requests, please use the GitHub Issues page.

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.1.0.tar.gz (88.7 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.1.0-py3-none-any.whl (136.5 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for siemens_graph_studio_mcp_server-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d893ecc7e41f970c51a67aa6370ac4ba78e63b357e582445c4028d667f186db4
MD5 77fb23372019a1df453c506e887dfb79
BLAKE2b-256 3627745b1c39e4fcd94cbabdaf6aaff08519e7d540e5d669ff47eafb6c708caa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for siemens_graph_studio_mcp_server-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 11602445813cfcc495631df66611daf2f63af9d58c0fea32fe9f524911e982b0
MD5 c7ecc96ba8772150a7d5bfe45eeb2e17
BLAKE2b-256 cfb3f32d6f8d16b861c6e0f4f0b841cbf600d9b3d2994056a8295c1f587d3b13

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