Skip to main content
Glama
oumar5

chrysalide-mcp

by oumar5
README.md
# chrysalide-mcp

> Serveur MCP agentique. Le Cerveau (IDE) dépose une consigne de feature complète, l'Agent transforme dans une sandbox isolée, et un rapport vérifiable en émerge.

## En une phrase

Chrysalide reçoit **une consigne** ("ajoute un système d'auth JWT avec tests"), boucle en interne (plan → act → validate → correct) dans une **sandbox git worktree**, et rend au Cerveau **un rapport structuré** (diff, tests exécutés, décisions, blocages). Le Cerveau n'orchestre pas — il valide.

## Positionnement

- **Pas un remplacement de Claude Code / Cursor.** Ceux-ci gardent le Cerveau dans la boucle en permanence.
- **Pas un agent qui commit.** La sandbox reste isolée du repo utilisateur ; l'intégration est manuelle.
- **Pas un système multi-agents libre.** Architecture **étoile stricte**, superviseur unique.

Objectif principal : **économiser les tokens du Cerveau**. Le Cerveau fait un input (consigne) et lit un output (rapport). Peu importe combien de tokens l'Agent brûle en interne.

## Documentation

Voir `docs/` :

| Document | Contenu |
|---|---|
| [Getting Started](docs/getting-started.md) | Ordre de build recommandé pour l'implémenteur |
| [Architecture](docs/architecture.md) | Composants, flux, diagrammes |
| [MCP Tools](docs/mcp-tools.md) | Spec des 4 tools exposés (schemas) |
| [Agent Loop](docs/agent-loop.md) | Boucle interne, prompts, escalade |
| [Sandbox](docs/sandbox.md) | git worktree v1, Docker v2 |
| [Agent Tools](docs/agent-tools.md) | fs, shell, git, report |
| [Report Schema](docs/report-schema.md) | JSON schema complet |
| [Providers](docs/providers.md) | OpenAI, Anthropic, Gemini, Ollama, Azure |
| [Security](docs/security.md) | Whitelist, limites, réseau off |
| [Configuration](docs/configuration.md) | .env, YAML, budget |
| [Testing](docs/testing.md) | Stratégie de tests |
| [Roadmap](docs/roadmap.md) | v0.1 → v0.4 |
| [Glossary](docs/glossary.md) | Vocabulaire du projet |

## Quick start (utilisateur)

- Cloner le repo, créer un venv Python 3.11+, installer en mode dev.
- Copier `.env.example` vers `.env` et renseigner les clés API (OpenAI, Anthropic, ou autre).
- Lancer le serveur MCP en stdio via `python -m chrysalide`.
- Dans l'IDE (Claude Code, Antigravity, VS Code), ajouter `chrysalide-mcp` comme serveur MCP.

Détails précis dans [docs/getting-started.md](docs/getting-started.md).

## Cas d'usage minimal (test end-to-end)

**Consigne** : "Dans `sample_repo/`, ajoute une classe `Calculator` avec `add`, `subtract`, `multiply`, `divide` (gère la division par zéro), et des tests pytest complets."

**Résultat attendu** :

- Fichiers `calculator.py` et `test_calculator.py` créés dans la sandbox.
- `pytest` sort en exit 0.
- Rapport listant 4 méthodes, 5+ tests, 0 blocage.
- Le repo original est intact — aucun fichier modifié en dehors de la sandbox.

## Licence

MIT

TDQS

A3.6/5.0

Scored across 4 tools

Disambiguation5/5

Each tool targets a distinct action: start a job, check status, cancel a job, and fetch the report. The lifecycle states are clearly enumerated in descriptions (running, finished, cancelled), leaving no ambiguity about which tool to call at any point.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with a uniform prefix (chrysalide_get_status, chrysalide_get_report, chrysalide_cancel_task, chrysalide_start_task). Verbs are all action-oriented and snake_case is used consistently throughout.

Tool Count4/5

Four tools is a reasonable, focused set for a job-management server covering start, status, report, and cancellation. It's on the smaller end but each tool earns its place and the scope is appropriately narrow.

Completeness4/5

The job lifecycle is well covered: start, poll status, retrieve report, and cancel. A possible gap is the lack of a way to list historical jobs or re-fetch past reports, but the core lifecycle has no dead ends.

Maintenance

ActivitySlowing
ResponsivenessNo issues