Skip to main content

Platform-agnostic pipeline AI agent with MCP tool integration and multi-step execution engine

Project description

cicaddy

Platform-agnostic AI agent for running AI workflows in CI pipelines, with MCP tool integration and multi-step execution engine.

Features

  • Multi-provider AI: Gemini, OpenAI, Claude
  • MCP integration: Connect to any MCP-compatible tool server
  • Multi-step execution: Token-aware execution engine with recovery
  • YAML task definitions: DSPy-based task configuration
  • Notifications: Slack and email notification support
  • HTML reports: Customizable analysis report generation
  • Extensible agents: Registry-based agent factory for custom agents

Installation

pip install cicaddy

Quick Start

# Run with environment file
cicaddy run --env-file .env

# Run with CLI arguments
cicaddy run --ai-provider gemini --agent-type cron --log-level DEBUG

# Show configuration
cicaddy config show --env-file .env

# Validate configuration
cicaddy validate --env-file .env

Configuration

Configure via environment variables or .env file:

# AI Provider
AI_PROVIDER=gemini
AI_MODEL=gemini-2.5-flash
GEMINI_API_KEY=your-key-here

# Agent
AGENT_TYPE=cron
CRON_TASK_TYPE=scheduled_analysis

# MCP Servers (JSON array)
MCP_SERVERS_CONFIG=[]

# Notifications
SLACK_WEBHOOK_URL=https://hooks.slack.com/...

# DSPy Task File (takes precedence over AI_TASK_PROMPT)
AI_TASK_FILE=tasks/dora_report.yaml

DSPy Task Definition (YAML)

Instead of raw prompt strings (AI_TASK_PROMPT), define structured tasks in YAML with typed inputs, expected outputs, MCP tool constraints, and reasoning strategy. Set AI_TASK_FILE to your task file path.

See examples/dora_metrics_task.yaml for a complete DORA metrics analysis task using DevLake MCP, and examples/templates/report_template.html for the HTML report template.

Key schema fields:

Field Description
inputs[].env_var Resolve value from environment variable at load time
inputs[].format diff or code for fenced rendering in prompt
tools.servers Restrict to specific MCP servers
tools.required_tools Tools the AI must use during execution
tools.forbidden_tools Tools the AI must not use
reasoning chain_of_thought, react, or simple
output_format markdown, html, or json
context Supports {{VAR}} placeholders resolved at load time

Extending with Platform Plugins

cicaddy is designed to be extended by platform-specific packages:

from cicaddy.config.settings import CoreSettings
from cicaddy.agent.factory import AgentFactory
from cicaddy.agent.base import BaseAIAgent

# Create platform-specific settings
class GitLabSettings(CoreSettings):
    gitlab_token: str = ""
    project_id: str = ""

# Register custom agent
class MergeRequestAgent(BaseAIAgent):
    ...

AgentFactory.register("merge_request", MergeRequestAgent)

License

Apache-2.0

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

cicaddy-0.1.1.tar.gz (247.7 kB view details)

Uploaded Source

Built Distribution

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

cicaddy-0.1.1-py3-none-any.whl (288.1 kB view details)

Uploaded Python 3

File details

Details for the file cicaddy-0.1.1.tar.gz.

File metadata

  • Download URL: cicaddy-0.1.1.tar.gz
  • Upload date:
  • Size: 247.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cicaddy-0.1.1.tar.gz
Algorithm Hash digest
SHA256 d24115fb81be1ba4a7c4423ae05d60df00639a815f3b74e7eb330f5b73318977
MD5 71cc3a92b826ec5b1383df42f0bc9dbd
BLAKE2b-256 8535fef47fe83e9e2265bc9fea0a7f197c86075732f406ea51fda59645dcbaa3

See more details on using hashes here.

Provenance

The following attestation bundles were made for cicaddy-0.1.1.tar.gz:

Publisher: python-publish.yml on waynesun09/cicaddy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cicaddy-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: cicaddy-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 288.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cicaddy-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 51bbb3b8bd06ca7af4d3a036e2bed4b18ffae81ce0315d7a2d1e21a5ed7433c6
MD5 90d72467e936bcaee50b35b52f3a4b9e
BLAKE2b-256 f411f61a044be8f48a545779545763670297cd482e6efe12130b0dd70f7a768e

See more details on using hashes here.

Provenance

The following attestation bundles were made for cicaddy-0.1.1-py3-none-any.whl:

Publisher: python-publish.yml on waynesun09/cicaddy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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