Skip to main content
Glama
Cyoda Calculation Node MCP

Cyoda Calculation Node MCP

Official
by Cyoda

Cyoda Calculation Node Application

A comprehensive application framework for building calculation nodes within the Cyoda platform. This project provides a structured foundation for developing entity-driven applications with workflow automation, built on the asynchronous Quart web framework.

What is This?

This is a Cyoda Calculation Node - a specialized application that:

  • Manages entities (structured data models) within the Cyoda ecosystem

  • Executes workflows (finite-state machines) to process entity state transitions

  • Integrates with the Cyoda platform via gRPC for seamless data synchronization

  • Provides REST APIs for entity management and workflow operations

  • Supports AI assistant integration through the Model Context Protocol (MCP)

Related MCP server: Relatio CRM MCP Server

Project Structure

├── application/          # Your application code (entities, workflows, routes)
├── common/              # Shared infrastructure (auth, config, gRPC, repository)
├── cyoda_mcp/           # MCP server for AI assistant integration
├── example_application/ # Reference implementation
├── services/            # Service configuration and initialization
└── tests/               # Comprehensive test suite

Key Directories

  • application/ - Your custom business logic

    • entity/ - Entity definitions and workflow implementations

    • routes/ - REST API endpoints

    • processor/ - Custom processors and criteria functions

  • cyoda_mcp/ - MCP server for AI integration

  • common/ - Shared infrastructure (do not modify unless necessary)

    • auth/ - Authentication and token management

    • config/ - Configuration and environment variables

    • grpc_client/ - Cyoda gRPC integration

    • repository/ - Data access layer

    • service/ - Business logic interfaces

  • example_application/ - Reference implementation showing best practices

Quick Start

1. Set Up Environment

# Clone the repository
git clone <repository-url>
cd mcp-cyoda-quart-app

# Create virtual environment
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

2. Configure Credentials

export CYODA_CLIENT_ID="your-client-id"
export CYODA_CLIENT_SECRET="your-client-secret"
export CYODA_HOST="client-<id>.eu.cyoda.net"

3. Run the Application

# Run the application server
python -m application.app

# Or run the MCP server for AI integration
python -m cyoda_mcp

MCP Server Integration

This project includes a Model Context Protocol (MCP) server that enables AI assistants to interact with your Cyoda application.

For complete MCP server documentation, see: cyoda_mcp/README.md

Quick MCP Setup

# Install globally
pipx install mcp-cyoda

# Run the server
mcp-cyoda

Development

Code Quality

# Run all quality checks
python -m black . && python -m isort . && python -m mypy . && python -m flake8 . && python -m bandit -r .

# Run tests
python -m pytest tests/ -v

Contributing

See CONTRIBUTING.md for detailed contribution guidelines.

Documentation

Getting Help

  1. Cyoda Platform: https://ai.cyoda.net

  2. Documentation: https://docs.cyoda.net

  3. Issues: GitHub Issues

License

MIT License - See LICENSE for details

Available Tools

13 tools
edge_message_get_edge_message_toolA

Retrieve an edge message by ID.

Inputs: message_id (required). Returns: object

edge_message_send_edge_message_toolB

Send a new edge message.

Inputs: subject (required), content (required), message_id, user_id, +6 more. Returns: object

entity_create_entity_toolC

Create a new entity of a given model.

Inputs: entity_model (required), entity_data (required), entity_version. Returns: object

entity_delete_entity_toolC

Delete an entity by ID.

Inputs: entity_model (required), entity_id (required), entity_version. Returns: object

entity_get_entity_toolA

Retrieve a single entity by its technical ID.

Inputs: entity_model (required), entity_id (required), entity_version. Returns: object

entity_list_entities_toolB

List all entities of a specific type.

Inputs: entity_model (required), entity_version. Returns: object

entity_update_entity_toolB

Update an existing entity.

Inputs: entity_model (required), entity_id (required), entity_data (required), entity_version. Returns: object

search_find_allC

Find all entities of a specific type using entity_service.find_all().

Inputs: entity_model (required), entity_version. Returns: object

workflow_mgmt_export_workflows_to_file_toolC

Export entity workflows to a JSON file.

Inputs: entity_name (required), model_version (required), file_path (required). Returns: object

workflow_mgmt_import_workflows_from_file_toolB

Import entity workflows from a JSON file.

Inputs: entity_name (required), model_version (required), file_path (required), import_mode. Returns: object

workflow_mgmt_list_workflow_files_toolA

List available workflow files in the specified directory.

Inputs: base_path. Returns: object

workflow_mgmt_validate_workflow_file_toolB

Validate a workflow file for correct JSON structure and required fields.

Inputs: file_path (required). Returns: object

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3/5.0

    Scored across 13 tools

    Disambiguation4/5

    Most tools are clearly distinct by functional domain (edge messages, entities, workflows). The potential confusion between 'search_find_all' and 'search_search' is mitigated by their descriptions indicating different query capabilities, but an agent might still misselect.

    Naming Consistency2/5

    Tool names follow inconsistent conventions: some use prefixes like 'edge_message_', 'entity_', 'workflow_mgmt_', while others use 'search_'. The naming mixes full words with abbreviations ('mgmt') and appends '_tool' inconsistently.

    Tool Count4/5

    13 tools is a reasonable count for a server covering edge messages, entity CRUD, and workflow management. It is slightly on the higher side but not excessive.

    Completeness3/5

    The entity management covers CRUD and two search options, which is good. Edge messages lack delete/update. Workflow management is file-based and lacks direct lifecycle operations like create or delete, leaving notable gaps.

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables AI assistants to manage CRM prospects, activities, reminders, and mailbox via natural language commands through the Model Context Protocol.
      3
      MIT
    • A
      license
      B
      quality
      B
      maintenance
      Enables AI assistants to access and manage Zentria CRM data, including sales, customers, to-dos, and more, through the Model Context Protocol.
      80
      595 npm
      MIT
    • F
      license
      Not graded
      quality
      A
      maintenance
      Enables users to control supported CAD applications through AI assistants using the Model Context Protocol, supporting drawing, layers, entities, blocks, files, exports, and natural-language automation.
      -