Skip to main content

Content generation and orchestration capability server

Project description

chora-compose

Content generation and orchestration capability server

License: MIT Python 3.11+

Note: This package was renamed from chora-mcp-compose to chora-compose to follow the chora-[capability] naming convention.

🎯 What Is This?

chora-compose is a capability server that provides workflow-oriented content generation and orchestration. It offers intuitive workflow tools that match how agents think: "create this", "refresh stale content", "check status", "configure", "discover what's available".

Core Value Proposition: 88% tool call reduction, 74% token savings, and 60-85% time savings for template-based content generation workflows.

Features

  • 5 Workflow Tools: create, refresh, inspect, configure, discover
  • Idempotent Operations: Retry-safe with smart caching (fresh=cached, stale=regenerate)
  • Freshness Management: Time-based policies with collection-level inheritance
  • 4-Layer Architecture: Tool interface → Orchestration → Core operations → Storage
  • Template-Based Generation: LLM + Jinja2 for structured content creation
  • Batch Operations: Generate 90+ artifacts in <10 minutes with parallel processing
  • Multi-Interface: Native API, CLI, HTTP REST, and MCP server
  • Built with FastMCP - Anthropic's MCP framework
  • Production-Ready: Comprehensive testing (85%+ coverage), CI/CD, quality gates

Installation

From PyPI (when published)

pip install chora-compose

From Source

git clone https://github.com/liminalcommons/chora-compose
cd chora-compose
poetry install

Quick Start

Native Python API

from chora_compose import Composer

composer = Composer()
result = await composer.create("my-artifact")

CLI

chora-compose create my-artifact
chora-compose discover
chora-compose inspect my-artifact

HTTP REST API

# Start server
uvicorn chora_compose.interfaces.http.server:app

# Use API
curl http://localhost:8000/api/v1/templates
curl -X POST http://localhost:8000/api/v1/artifacts?artifact_id=example

MCP Server

Configure in your MCP client (e.g., Claude Desktop):

{
  "mcpServers": {
    "chora-compose": {
      "command": "chora-compose"
    }
  }
}

Documentation

Development

# Setup
poetry install

# Run tests
poetry run pytest

# Run with coverage
poetry run pytest --cov

# Lint & format
poetry run ruff check .
poetry run black .

Migration from chora-mcp-compose

If you're migrating from chora-mcp-compose v0.1.0, see CHANGELOG.md for breaking changes and migration guide.

Key Changes:

  • Package: chora-mcp-composechora-compose
  • Module: chora_mcp_composechora_compose
  • CLI: chora-mcp-composechora-compose

License

MIT

Links

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

chora_compose-0.2.0.tar.gz (32.4 kB view details)

Uploaded Source

Built Distribution

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

chora_compose-0.2.0-py3-none-any.whl (45.7 kB view details)

Uploaded Python 3

File details

Details for the file chora_compose-0.2.0.tar.gz.

File metadata

  • Download URL: chora_compose-0.2.0.tar.gz
  • Upload date:
  • Size: 32.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.11.9 Darwin/24.6.0

File hashes

Hashes for chora_compose-0.2.0.tar.gz
Algorithm Hash digest
SHA256 aff8399df6ecef16bb50b83436ab4b0e048f9335e98ebf3ca2e7ff450706646c
MD5 9cdb9ad4d386fced2657bef4dbc8868c
BLAKE2b-256 06898705e3928c205ffce6309f10c3c8f367a1bca45f28eb48ba6d5039046a34

See more details on using hashes here.

File details

Details for the file chora_compose-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: chora_compose-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 45.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.11.9 Darwin/24.6.0

File hashes

Hashes for chora_compose-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a10080db8eed25ef60e388057d6f4ffb103ec72b5c2c948c4fa4f707fa84025a
MD5 8fb809478c80c0cf67e8db68820c12c2
BLAKE2b-256 db9e78c223d2906b6737f35dd6de3e6a4565656e394ef7a245aa0b5542ad9901

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