Siemens MCP Server (SDK)

Siemens search tools and resources via MCP protocol using official TypeScript SDK

Target group: this guide primarily targets AI agents, developers, and system integrators working with the Model Context Protocol (MCP). If you're running another setup, please abstract the generic information provided - and feel free to send us a merge request with your improvements for this guide as your first exercise on code.siemens.com. :-)

Overview

Purpose

Provide Siemens search capabilities to AI agents via MCP protocol using official SDK

Interaction Style

tool-calling

Statistics

  • 4 active plugins
  • 8 available tools
  • llm, developer, agent target audience

AI Agent Guidance

Provide enterprise-grade search capabilities for AI agents to access Siemens product information, documentation, and technical resources using the official MCP TypeScript SDK

Interaction Tone: professional

Requires Confirmation: Yes

Fallback Behavior: ask user for clarification

Authentication

๐ŸŸข Public Access (No Authentication Required)

The following plugins are available without authentication:

  • siemens-assets - 1 tool
  • siemens-developer-portal - 3 tools
  • siemens-search - 3 tools
  • siemens-webcontent - 1 tool

Available Tools

Test all MCP tools interactively below. Enter parameters and see real-time results with syntax highlighting.

siemens-assets ๐ŸŸข

siemens_assets

POST /mcp

Unified asset search with keyword-based discovery across all Siemens collections

Input Parameters
Parameter Type Required Description
query string โœ… Search query for assets
collection string โŒ Collection to search in
assetType string โŒ Type of assets to search for
maxResults string โŒ Maximum number of results to return
language string โŒ Language code (e.g., EN, DE)
Example Usage
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "siemens_assets",
    "arguments": {
      "query": "example search"
    }
  }
}
๐Ÿงช Interactive Testing

Fill in the parameters below and click execute to test this tool with real MCP requests.

Search query for assets
Collection to search in
Type of assets to search for
Maximum number of results to return
Language code (e.g., EN, DE)

siemens-developer-portal ๐ŸŸข

siemens_developer_discover

POST /mcp

Discover Siemens developer content by topic and product area

Input Parameters
Parameter Type Required Description
topic string โŒ Topic to discover
productArea string โŒ Product area to focus on
contentType string โŒ Type of content
limit string โŒ Maximum number of results
Example Usage
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "siemens_developer_discover",
    "arguments": {
      "query": "example search"
    }
  }
}
๐Ÿงช Interactive Testing

Fill in the parameters below and click execute to test this tool with real MCP requests.

Topic to discover
Product area to focus on
Type of content
Maximum number of results

siemens_developer_reference

POST /mcp

Find specific API reference documentation

Input Parameters
Parameter Type Required Description
apiName string โœ… Name of the API
endpoint string โŒ Specific endpoint
includeExamples string โŒ Include code examples
Example Usage
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "siemens_developer_reference",
    "arguments": {
      "query": "example search"
    }
  }
}
๐Ÿงช Interactive Testing

Fill in the parameters below and click execute to test this tool with real MCP requests.

Name of the API
Specific endpoint
Include code examples

siemens-webcontent ๐ŸŸข

siemens_get_web_content

POST /mcp

Fetch and convert Siemens web content to clean markdown format using real browser automation

Input Parameters
Parameter Type Required Description
url string โœ… URL to fetch and convert to markdown
Example Usage
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "siemens_get_web_content",
    "arguments": {
      "query": "example search"
    }
  }
}
๐Ÿงช Interactive Testing

Fill in the parameters below and click execute to test this tool with real MCP requests.

URL to fetch and convert to markdown

MCP Client Setup

Claude Desktop

Add this server to your Claude Desktop configuration:

{
  "mcpServers": {
    "siemens": {
      "command": "curl",
      "args": [
        "-X", "POST",
        "-H", "Content-Type: application/json",
        "https://mcp.siemens.com/mcp"
      ]
    }
  }
}

GitHub Copilot

Add this server to your mcp.json configuration file:

{
  "servers": {
    "siemens": {
      "url": "https://mcp.siemens.com/mcp",
      "type": "http"
    }
  }
}

Direct HTTP Access

Connect directly via HTTP POST requests:

POST https://mcp.siemens.com/mcp
Content-Type: application/json
MCP-Protocol-Version: 2025-06-18

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "initialize",
  "params": {
    "protocolVersion": "2025-06-18",
    "capabilities": {},
    "clientInfo": {
      "name": "your-client",
      "version": "1.0.0"
    }
  }
}

Auto-Discovery

This server supports LLMFeed auto-discovery:

A2A Integration

This server implements the Agent2Agent (A2A) Protocol v0.2.9, providing seamless integration between AI agents through standardized JSON-RPC 2.0 communication. The A2A bridge enables direct agent-to-agent task delegation and skill sharing.

๐Ÿ“‹ Overview

A2A Protocol Bridge: Converts MCP tools to A2A-compatible skills for agent-to-agent communication.

Implementation Status: Phase 1 & 2 complete (~50% overall compliance)

Core Features: Agent discovery, task management, JSON-RPC 2.0 protocol, enterprise authentication

๐Ÿ” Agent Discovery

Agent Card Endpoints:

Each endpoint returns agent capabilities, available skills, and contact information.

๐Ÿ“ก Task Management

JSON-RPC 2.0 Endpoints: Full protocol compliance with message/send, tasks/get, tasks/list methods

Task Lifecycle: Creation, execution, monitoring, and completion tracking

RESTful API: GET /tasks, POST /a2a for streamlined task management

๐Ÿ” Authentication

A2A endpoints support enterprise-grade authentication:

  • OAuth2 Bearer Tokens: Authorization: Bearer <token>
  • Scope-based Access: Granular permission control for agent interactions
  • Enterprise Integration: Compatible with existing corporate authentication systems

Authentication Example

curl -X POST https://mcp.siemens.com/a2a \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer your-oauth2-token" \
  -d '{
    "jsonrpc": "2.0",
    "method": "message/send",
    "params": {
      "to": "target-agent-id",
      "message": "Execute skill: siemens_search",
      "skill_params": {"query": "automation systems"}
    },
    "id": 1
  }'

๐Ÿ› ๏ธ Available Skills

Dynamic MCP tool mapping - 8 skills available from 4 plugins:

Assets

Plugin: siemens-assets

Unified asset search with keyword-based discovery across all Siemens collections

siemens_assets

Developer Search

Plugin: siemens-developer-portal

Search across all Siemens developer documentation

siemens_developer_search

Developer Discover

Plugin: siemens-developer-portal

Discover Siemens developer content by topic and product area

siemens_developer_discover

Developer Reference

Plugin: siemens-developer-portal

Find specific API reference documentation

siemens_developer_reference

Ai Search

Plugin: siemens-search

Natural language search with AI-powered summarization and intelligent content discovery

siemens_aiSearch

Product Search

Plugin: siemens-search

Specialized search for Siemens products, solutions, and technologies with technical specifications

siemens_productSearch

... and 2 more skills available via A2A protocol

๐Ÿ’ป Code Examples

Agent Discovery

# Discover agent capabilities
curl https://mcp.siemens.com/agent.json

# Response includes available skills and contact info
{
  "name": "Siemens MCP Server",
  "description": "Enterprise AI agent with Siemens ecosystem integration",
  "skills": ["siemens_assets", "siemens_developer_search", "siemens_developer_discover"],
  "contact": {
    "protocol": "a2a",
    "endpoint": "https://mcp.siemens.com/a2a"
  }
}

Task Delegation

# Delegate a search task to this agent
curl -X POST https://mcp.siemens.com/a2a \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "message/send",
    "params": {
      "to": "siemens-mcp-server",
      "message": "Please search for automation documentation",
      "skill": "siemens_search",
      "skill_params": {
        "query": "PLC programming guides"
      }
    },
    "id": 1
  }'

# Response with task ID for monitoring
{
  "jsonrpc": "2.0",
  "result": {
    "task_id": "task-abc123",
    "status": "accepted",
    "estimated_completion": "2025-07-30T10:15:00Z"
  },
  "id": 1
}

Task Monitoring

# Check task status
curl https://mcp.siemens.com/tasks/task-abc123

# Get all active tasks
curl https://mcp.siemens.com/tasks

๐Ÿ“š Specification References

OpenAPI

This server provides full OpenAPI 3.0.3 specification compliance with dynamic schema generation, enabling REST API access to all MCP tools through standard HTTP requests. Perfect for integration with existing REST-based systems and API workflows.

๐Ÿ“‹ Overview

OpenAPI 3.0.3 Compliance: Full specification adherence with dynamic schema generation

Dynamic Schema Generation: Automatically generates OpenAPI schemas from Zod input validation

Self-contained Swagger UI: Interactive documentation with Siemens branding and real-time testing

๐Ÿ“– Interactive Documentation

Swagger UI: Open Interactive API Documentation

Features:

  • Real-time API testing interface
  • Complete schema documentation
  • Siemens-branded responsive design
  • Authentication integration

๐Ÿ”Œ REST Endpoints

Core Endpoints:

๐Ÿ” Authentication

OpenAPI endpoints support X-API-Key header authentication:

API Key Authentication

curl -X POST https://mcp.siemens.com/tools/siemens_search \
  -H "Content-Type: application/json" \
  -H "X-API-Key: your-api-key-here" \
  -d '{
    "query": "automation systems documentation"
  }'

Supported Authentication Methods:

  • X-API-Key Header: Simple API key authentication for REST endpoints
  • OAuth2 Bearer Tokens: Enterprise authentication for advanced integrations
  • Anonymous Access: Public tools available without authentication

๐Ÿ› ๏ธ Available Tools

Auto-generated from MCP plugins - 8 tools available as REST endpoints:

Assets

Plugin: siemens-assets

Unified asset search with keyword-based discovery across all Siemens collections

POST /tools/siemens_assets

Developer Search

Plugin: siemens-developer-portal

Search across all Siemens developer documentation

POST /tools/siemens_developer_search

Developer Discover

Plugin: siemens-developer-portal

Discover Siemens developer content by topic and product area

POST /tools/siemens_developer_discover

Developer Reference

Plugin: siemens-developer-portal

Find specific API reference documentation

POST /tools/siemens_developer_reference

Ai Search

Plugin: siemens-search

Natural language search with AI-powered summarization and intelligent content discovery

POST /tools/siemens_aiSearch

Product Search

Plugin: siemens-search

Specialized search for Siemens products, solutions, and technologies with technical specifications

POST /tools/siemens_productSearch

... and 2 more tools available via REST API

๐Ÿ’ก Pro Tip: Visit the interactive Swagger UI to test all endpoints with real-time parameter validation and response examples.

๐Ÿ’ป Code Examples

Get OpenAPI Specification

# Download the complete OpenAPI 3.0.3 specification
curl https://mcp.siemens.com/openapi.json

# Response: Complete OpenAPI specification with all tool schemas
{
  "openapi": "3.0.3",
  "info": {
    "title": "Siemens MCP Server REST API",
    "version": "1.0.0",
    "description": "REST API access to MCP tools"
  },
  "paths": {
    "/tools/siemens_search": {
      "post": {
        "summary": "Execute siemens_search tool",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": { ... }
            }
          }
        }
      }
    }
  }
}

Execute Tool via REST

# Execute a search tool directly via REST API
curl -X POST https://mcp.siemens.com/tools/siemens_search \
  -H "Content-Type: application/json" \
  -H "X-API-Key: your-api-key" \
  -d '{
    "query": "industrial automation solutions",
    "limit": 10
  }'

# Response: Direct tool execution results
{
  "success": true,
  "result": {
    "content": [
      {
        "title": "SIMATIC Automation Systems",
        "description": "Comprehensive automation solutions...",
        "url": "https://www.siemens.com/simatic"
      }
    ],
    "total": 42,
    "query": "industrial automation solutions"
  }
}

JavaScript Integration

// Modern JavaScript/TypeScript integration
const response = await fetch('https://mcp.siemens.com/tools/siemens_search', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'X-API-Key': 'your-api-key-here'
  },
  body: JSON.stringify({
    query: 'PLC programming documentation',
    limit: 5
  })
});

const result = await response.json();
console.log('Search results:', result.content);

Python Integration

# Python requests integration
import requests

url = "https://mcp.siemens.com/tools/siemens_search"
headers = {
    "Content-Type": "application/json",
    "X-API-Key": "your-api-key-here"
}
data = {
    "query": "automation systems documentation",
    "limit": 10
}

response = requests.post(url, json=data, headers=headers)
result = response.json()
print(f"Found {len(result['content'])} results")

๐Ÿ“š Specification References

API Reference

Base URL

https://mcp.siemens.com

Endpoints

This server exposes 26 endpoints across multiple protocols:

4 MCP Protocol
7 A2A Protocol
9 OpenAPI REST
3 System & Assets
Method Path Description
POST /mcp MCP JSON-RPC endpoint for tool execution and resource access
GET /mcp Redirects to this documentation (browser-friendly)
GET /docs This comprehensive documentation page
GET /health Health check endpoint returning server status
GET /.well-known/mcp.llmfeed.json LLMFeed manifest with MCP capabilities
GET /.well-known/capabilities.llmfeed.json Detailed capability list for auto-discovery
GET /.well-known/public.pem Public key for signature verification
GET /agent.json A2A agent card with available skills and contact information
GET /.well-known/agent.json Well-known A2A agent discovery endpoint
GET /a2a/agent A2A-specific agent card endpoint
POST /a2a A2A JSON-RPC 2.0 protocol endpoint for agent-to-agent communication
GET /tasks List all A2A tasks with pagination and filtering
GET /tasks/{id} Get specific A2A task status and results
DELETE /tasks/{id} Cancel specific A2A task
OPTIONS /a2a CORS preflight support for A2A endpoints
GET /openapi.json Complete OpenAPI 3.0.3 specification with dynamic schema generation
GET /api/docs Interactive Swagger UI documentation with Siemens branding
GET /assets/{proxy+} Static assets (CSS, JS, fonts) with caching and security validation
POST /tools/siemens_assets Execute Assets via REST API - Unified asset search with keyword-based discovery across all Siemens collections
POST /tools/siemens_developer_search Execute Developer Search via REST API - Search across all Siemens developer documentation
POST /tools/siemens_developer_discover Execute Developer Discover via REST API - Discover Siemens developer content by topic and product area
POST /tools/siemens_developer_reference Execute Developer Reference via REST API - Find specific API reference documentation
POST /tools/siemens_aiSearch Execute Ai Search via REST API - Natural language search with AI-powered summarization and intelligent content discovery
POST /tools/siemens_productSearch Execute Product Search via REST API - Specialized search for Siemens products, solutions, and technologies with technical specifications
POST /tools/siemens_search Execute Search via REST API - Comprehensive search combining AI insights, content, and products
POST /tools/siemens_get_web_content Execute Get Web Content via REST API - Fetch and convert Siemens web content to clean markdown format using real browser automation

Response Format

This serverless MCP server supports standard JSON responses for all requests:

JSON Response (Primary Format)

Content-Type: application/json

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": { ... }
}

REST API Response Format

Content-Type: application/json

{
  "success": true,
  "data": { ... },
  "metadata": {
    "toolName": "siemens_search",
    "executionTime": 1250,
    "timestamp": "2025-07-30T10:00:00.000Z"
  }
}

Server-Sent Events (SSE) - Not Supported

This serverless implementation does not support SSE streaming responses due to AWS Lambda timeout constraints and cost efficiency considerations. Requests with Accept: text/event-stream will receive a 405 Method Not Allowed response as per MCP 2025-06-18 specification compliance.

HTTP/1.1 405 Method Not Allowed
Content-Type: application/json

{
  "error": "SSE streaming not supported in serverless environment"
}

Authentication Methods

Multiple authentication methods supported across different protocols:

Protocol Method Header/Parameter Example
MCP Bearer Token Authorization Authorization: Bearer <token>
A2A OAuth2 Bearer Authorization Authorization: Bearer <oauth2-token>
OpenAPI/REST API Key X-API-Key X-API-Key: <your-api-key>
All Anonymous None Public access for non-sensitive operations

Protocol Support

๐Ÿค– MCP Protocol

JSON-RPC 2.0 via POST /mcp

Standard Model Context Protocol for AI tool integration

๐Ÿ”„ A2A Protocol

JSON-RPC 2.0 via POST /a2a

Agent-to-Agent communication with task lifecycle management

๐ŸŒ OpenAPI 3.0.3

REST via POST /tools/{toolName}

Standard REST API with Swagger UI documentation


Except where otherwise noted, content on this site is licensed under the Siemens Inner Source License .