Cyoda Calculation Node MCP
Official# 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)
## 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
- See [cyoda_mcp/README.md](cyoda_mcp/README.md) for MCP server documentation
- **`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
```bash
# 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
```bash
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
```bash
# 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](cyoda_mcp/README.md)**
### Quick MCP Setup
```bash
# Install globally
pipx install mcp-cyoda
# Run the server
mcp-cyoda
```
## Development
### Code Quality
```bash
# 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](CONTRIBUTING.md) for detailed contribution guidelines.
## Documentation
- **[CONTRIBUTING.md](CONTRIBUTING.md)** - Contribution guidelines and development workflow
- **[AI_TESTING_GUIDE.md](AI_TESTING_GUIDE.md)** - Testing with AI assistants
- **[CYODA_E2E_TESTING_GUIDE.md](CYODA_E2E_TESTING_GUIDE.md)** - End-to-end testing procedures
- **[cyoda_mcp/README.md](cyoda_mcp/README.md)** - MCP server documentation
- **[docs/](docs/)** - Architecture and design documentation
## Getting Help
1. **Cyoda Platform**: [https://ai.cyoda.net](https://ai.cyoda.net)
2. **Documentation**: [https://docs.cyoda.net](https://docs.cyoda.net)
3. **Issues**: [GitHub Issues](https://github.com/Cyoda-platform/quart-client-template/issues)
## License
MIT License - See [LICENSE](LICENSE) for detailsTDQS
Scored across 13 tools
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.
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.
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.
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.