Cumulocity MCP Server
A Python-based server that provides Cumulocity IoT platform functionality through the MCP (Model Control Protocol) interface. This server enables seamless interaction with Cumulocity's device management, measurements, and alarm systems.
Available Tools
Device Management
Get Devices
List and filter devices
Parameters:
type: Filter by device typename: Filter by device namepage_size: Results per page (max 2000)current_page: Page number
Get Device by ID
Retrieve detailed information for a specific device
Parameter:
device_id: Device identifier
Get Child Devices
View child devices of a specific device
Parameter:
device_id: Parent device identifier
Get Device Fragments
Access device fragments and their values
Parameter:
device_id: Device identifier
Measurements
Get Device Measurements
Retrieve device measurements with time filtering
Parameters:
device_id: Device identifierdate_from: Start date (ISO 8601 format)date_to: End date (ISO 8601 format)page_size: Number of measurements to retrieve
Alarms
Get Active Alarms
Monitor active alarms in the system
Parameters:
severity: Filter by severity levelpage_size: Number of results to retrieve
Dynamic Mapper
evaluate_jsonata_expression Evaluate a JSONata expression against a given JSON object.
Input: A JSON object as string and a JSONata expression string. Output: Result of the JSONata expression evaluation.
Installation & Deployment
Local Installation
Using uv (recommended)
When using uv no specific installation is needed for this package. We will
use uvx to directly run mcp-server-c8y.
Using PIP
Alternatively you can install mcp-server-c8y via pip:
After installation, you can run it as a script using:
Deployment on Cumulocity Tenant
You can deploy this server as a Cumulocity microservice for direct integration with your tenant. This is done by uploading a special deployment package (mcp-server-c8y.zip) to your Cumulocity tenant.
Building the Microservice Deployment Package
Ensure you have Docker and zip installed on your system.
Run the provided build script to create the deployment package:
This will:
Build the Docker image for the microservice
Save the image as
image.tarin thedocker/directoryPackage
image.tarandcumulocity.jsonintodocker/mcp-server-c8y.zip
Deploying to Cumulocity
Log in to your Cumulocity tenant as a user with microservice deployment permissions.
Navigate to Administration > Ecosystem > Microservices.
Click Add microservice and upload the
mcp-server-c8y.zipfile from thedocker/directory.Wait for the microservice to be deployed and started. You should see its status as "Available" once ready.
The microservice will be accessible under your tenant's service URL, typically:
https://<your-tenant>.cumulocity.com/service/mcp-server-c8y/mcp/
For more details on Cumulocity microservice deployment, see the official documentation.
Usage with Claude Desktop
This MCP Server can be used with Claude Desktop to enable Claude to interact with your Cumulocity IoT platform. Follow these steps to set it up:
Download and install Claude Desktop
Configure Claude Desktop to use this MCP Server:
Open Claude Desktop
Click on the Claude menu and select "Settings..."
Navigate to "Developer" in the left-hand bar
Click "Edit Config"
Add the following configuration to your
claude_desktop_config.json:
Replace the following placeholders with your actual values:
https://your-cumulocity-instance.com: Your Cumulocity instance URLyour-tenant-id: Your Cumulocity tenant IDyour-username: Your Cumulocity usernameyour-password: Your Cumulocity password
Restart Claude Desktop
You should now see a hammer icon in the bottom right corner of the input box. Click it to see the available Cumulocity tools.
For more detailed information about using MCP Servers with Claude Desktop, visit the official MCP documentation.
Cursor MCP Server Settings Example
If you are using Cursor and have deployed your MCP Server to a Cumulocity tenant, you can configure your MCP server connection with a .cursor/mcp.json file. Example (with sensitive data anonymized):
https://your-cumulocity-instance.com: Your Cumulocity instance URLReplace
<YOUR_BASE64_AUTH_TOKEN>with your actual Base64-encoded credentials. Never commit real credentials to version control.
Contributing
We welcome contributions from everyone! Here's how you can contribute to this project:
Fork the repository
Create a new branch for your feature or bugfix
Make your changes following these best practices:
Write clear, descriptive commit messages
Follow the existing code style and conventions
Add tests for new features
Update documentation as needed
Ensure all tests pass
Submit a pull request