Skip to main content

A Python-based MCP server for Cumulocity IoT platform integration

Project description

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

  1. Get Devices

    • List and filter devices
    • Parameters:
      • type: Filter by device type
      • name: Filter by device name
      • page_size: Results per page (max 2000)
      • current_page: Page number
  2. Get Device by ID

    • Retrieve detailed information for a specific device
    • Parameter:
      • device_id: Device identifier
  3. Get Child Devices

    • View child devices of a specific device
    • Parameter:
      • device_id: Parent device identifier
  4. 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 identifier
    • date_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 level
    • page_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:

pip install mcp-server-c8y

After installation, you can run it as a script using:

python -m mcp_server_c8y

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

  1. Ensure you have Docker and zip installed on your system.
  2. Run the provided build script to create the deployment package:
./scripts/buildcontainer.sh

This will:

  • Build the Docker image for the microservice
  • Save the image as image.tar in the docker/ directory
  • Package image.tar and cumulocity.json into docker/mcp-server-c8y.zip

Deploying to Cumulocity

  1. Log in to your Cumulocity tenant as a user with microservice deployment permissions.
  2. Navigate to Administration > Ecosystem > Microservices.
  3. Click Add microservice and upload the mcp-server-c8y.zip file from the docker/ directory.
  4. Wait for the microservice to be deployed and started. You should see its status as "Available" once ready.
  5. 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:

  1. Download and install Claude Desktop

  2. 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"
  3. Add the following configuration to your claude_desktop_config.json:

Using uvx
"mcpServers": {
  "mcp-c8y": {
    "command": "uvx",
    "args": [
      "mcp-server-c8y",
      "--transport",
      "stdio"
    ],
    "env": {
      "C8Y_BASEURL": "https://your-cumulocity-instance.com",
      "C8Y_TENANT": "your-tenant-id",
      "C8Y_USER": "<your-username>",
      "C8Y_PASSWORD": "<your-password>"
    }
  }
}

Replace the following placeholders with your actual values:

  • https://your-cumulocity-instance.com: Your Cumulocity instance URL
  • your-tenant-id: Your Cumulocity tenant ID
  • your-username: Your Cumulocity username
  • your-password: Your Cumulocity password
  1. Restart Claude Desktop

  2. 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):

{
  "mcpServers": {
    "Cumulocity": {
      "url": "https://your-cumulocity-instance.com/service/mcp-server-c8y/mcp/",
      "headers": {
        "Authorization": "Basic <YOUR_BASE64_AUTH_TOKEN>"
      }
    }
  }
}
  • https://your-cumulocity-instance.com: Your Cumulocity instance URL
  • Replace <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:

  1. Fork the repository
  2. Create a new branch for your feature or bugfix
  3. 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
  4. Submit a pull request

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

iflow_mcp_cumulocity_mcp_server_c8y-0.1.23.tar.gz (16.5 kB view details)

Uploaded Source

Built Distribution

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

File details

Details for the file iflow_mcp_cumulocity_mcp_server_c8y-0.1.23.tar.gz.

File metadata

  • Download URL: iflow_mcp_cumulocity_mcp_server_c8y-0.1.23.tar.gz
  • Upload date:
  • Size: 16.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_cumulocity_mcp_server_c8y-0.1.23.tar.gz
Algorithm Hash digest
SHA256 2722397a8d621f3930185e82f13765e2504b5ab794769e40d75165438927192a
MD5 1da89d3c07ba0e64cfa944dd5637f3ee
BLAKE2b-256 34ecba07e9c621f4890b867d689b79a2b3d54976f8e7befa6062770f3086359b

See more details on using hashes here.

File details

Details for the file iflow_mcp_cumulocity_mcp_server_c8y-0.1.23-py3-none-any.whl.

File metadata

  • Download URL: iflow_mcp_cumulocity_mcp_server_c8y-0.1.23-py3-none-any.whl
  • Upload date:
  • Size: 18.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_cumulocity_mcp_server_c8y-0.1.23-py3-none-any.whl
Algorithm Hash digest
SHA256 61a4b136d2f4fd7b34e50273623e9de3e32308e87c9634fb53ca5a696a6171d6
MD5 879aeadb2795a3aaae5d12a9360ebd70
BLAKE2b-256 791c7df96aaf2d66a380502ab3344ec95529d78404fcc5471c9dfb42838b7c7f

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