Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
cmcp — cMCP : Passerelle MCP confidentielle. Application de politiques attestée par le matériel pour les appels d'outils MCP. | Kitploit
Outils/GitHubGitHub/agentrust-io/cmcp
Authentification et AutorisationOutils DéfensifsSécurité CloudProtection de la Vie PrivéeSécurité MatérielleSécurité des APISécurité de l'IA
GitHubagentrust-io/cmcp

cmcp

cMCP : Passerelle MCP confidentielle. Application de politiques attestée par le matériel pour les appels d'outils MCP.

Voir le dépôt
7761il y a 4 joursVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
<p align="center">
  <img src="https://raw.githubusercontent.com/agentrust-io/cmcp/HEAD/docs/assets/icon.svg" width="96" height="96" alt="cMCP"/>
</p>

# cMCP : Runtime MCP confidentiel

Mises à jour de la communauté et actualités des contributeurs : [AgenTrust sur LinkedIn](https://www.linkedin.com/company/agentrust-io/).

### Appliquer la politique des outils MCP à l'intérieur d'un TEE, là où l'agent qu'elle gouverne ne peut l'atteindre

<p align="center">
  <a href="https://cmcp.agentrust-io.com">
    <img src="https://img.shields.io/badge/Documentation-cmcp.agentrust--io.com-7c3aed?style=for-the-badge" alt="Documentation" height="36">
  </a>
</p>

<p align="center">
  <strong>
    <a href="#quick-start">Démarrage rapide</a> ·
    <a href="#how-it-works">Architecture</a> ·
    <a href="#configuration">Configuration</a> ·
    <a href="#cli-reference">CLI</a> ·
    <a href="https://github.com/agentrust-io/cmcp/blob/main/CHANGELOG.md">Journal des modifications</a>
  </strong>
</p>

[![CI](https://github.com/agentrust-io/cmcp/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/agentrust-io/cmcp/actions/workflows/ci.yml) [![License: MIT](https://img.shields.io/badge/license-MIT-blue)](LICENSE) [![PyPI](https://img.shields.io/pypi/v/cmcp-runtime)](https://pypi.org/project/cmcp-runtime/) [![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/agentrust-io/cmcp/badge)](https://scorecard.dev/viewer/?uri=github.com/agentrust-io/cmcp) [![Discord](https://img.shields.io/badge/Discord-Join-5865F2?logo=discord&logoColor=white&style=flat)](https://discord.gg/grgzFEHgkj)

> **Aperçu développeur** - lancé lors du Confidential Computing Summit, le 23 juin 2026. Des changements majeurs sont possibles avant la v1.0. Consultez [STATUS.md](https://github.com/agentrust-io/cmcp/blob/main/STATUS.md) pour savoir précisément ce qui est livré aujourd'hui par rapport à ce qui figure sur la feuille de route.

**cMCP (Confidential MCP Runtime) est une passerelle open source qui vérifie chaque appel d'outil effectué par un agent IA par rapport aux règles que vous écrivez, et qui peut s'exécuter sur du matériel isolé que l'agent ne peut pas altérer.** Les agents IA utilisent des outils (bases de données, CRM, e-mail, API internes) en envoyant des requêtes appelées appels d'outils, généralement via MCP, le Model Context Protocol. cMCP se place sur le chemin de ces appels, vérifie chacun d'eux par rapport à vos règles (écrites dans le langage de politique Cedar) et bloque ceux que les règles interdisent. Il peut s'exécuter à l'intérieur d'un TEE (trusted execution environment : un environnement d'exécution de confiance, c'est-à-dire du matériel qui maintient la mémoire d'un programme isolée même vis-à-vis du propriétaire de la machine), là où l'agent qu'il gouverne ne peut l'atteindre. Chaque session se termine par un reçu signé, un TRACE Claim, que n'importe qui peut vérifier sans faire confiance à celui qui a exécuté la passerelle. Le reçu est adossé à un rapport matériel lorsque la passerelle s'exécute dans un TEE, et il est uniquement signé (sans preuve matérielle) en mode logiciel. Vous découvrez ces termes ? Voir [les termes, en langage clair](https://agentrust-io.com/#plain-terms).

> **En bref :** Pointez votre agent vers la passerelle cMCP. Elle vérifie chaque appel d'outil par rapport à vos règles Cedar, bloque ou masque (remplace par du vide) ce que les règles refusent, et vous fournit un reçu signé qui montre si quelqu'un l'a altéré. Exécutez `pip install cmcp-runtime` et démarrez en mode logiciel sur n'importe quel ordinateur ; aucun matériel spécial n'est requis.

Votre agent appelle Snowflake, Salesforce, une douzaine d'API. Qu'est-ce qui l'empêche de divulguer les données d'un client lors de l'un de ces appels ? Si un régulateur le demande, pourriez-vous prouver le contraire ?

---

## Le problème

Un agent appelle un outil. Le moteur de politique répond « autoriser ». L'appel d'outil passe.

Rien de tout cela ne prouve que le moteur de politique lui-même n'a pas été compromis. La gouvernance MCP purement logicielle ne peut pas garantir :

- Que la politique Cedar sur le disque est celle qui s'est exécutée. Un administrateur malveillant peut remplacer le bundle après approbation ; la vérification du hachage s'exécute dans le même OS que celui que contrôle l'administrateur.
- Que la décision d'autorisation/refus n'a pas été inversée en mémoire. Une CVE de chaîne d'approvisionnement dans l'évaluateur s'exécute dans le même espace d'adressage que l'attaquant.
- Que le journal d'audit reflète ce qui s'est réellement produit. Toute partie détenant la clé de signature logicielle peut reconstruire une chaîne d'audit valide après les faits.

Le plan de contrôle qui gouverne les appels d'outils doit s'exécuter là où le processus qu'il gouverne ne peut l'atteindre.

Application des politiques attestée par le matériel pour les appels d'outils MCP. Chaque appel d'outil est intercepté, évalué par rapport à un ensemble de politiques Cedar, et appliqué par un moteur de politiques s'exécutant à l'intérieur d'un environnement d'exécution de confiance (TEE). Avant de servir un seul appel d'outil, la passerelle mesure son code installé, son ensemble de politiques et sa configuration dans le rapport d'attestation matérielle, et réatteste à chaque rechargement de l'ensemble.

Dans un déploiement matériel, le cMCP Runtime traite les charges utiles des appels d'outils à l'intérieur du TEE. Ce que l'hôte et le fournisseur de connectivité peuvent lire dépend également de la politique de sortie, et le serveur d'outils en amont est un composant distinct en dehors du TEE. Le mode logiciel (`CMCP_DEV_MODE`) n'offre aucune isolation matérielle. [LIMITATIONS.md](https://github.com/agentrust-io/cmcp/blob/main/LIMITATIONS.md) énumère ce que cMCP ne prévient pas.

---

## Démarrage rapide

```bash
pip install cmcp-runtime
```

Créez `cmcp-config.yaml` :

```yaml
attestation:
  provider: auto
  enforcement_mode: advisory   # advisory eases first-run tuning; the default is `enforcing`
listen_addr: "127.0.0.1:8443"  # pin loopback: dev mode runs without a bearer token
policy_bundle_path: ./policies/
catalog_path: ./catalog.json
```

`listen_addr` n'est pas facultatif ici. `CMCP_DEV_MODE=1` ignore délibérément
l'exigence de jeton bearer afin que vous puissiez tester rapidement, et la liaison par défaut est
toujours `0.0.0.0:8443`. Sur la version 0.3.0, cette combinaison créait une passerelle
non authentifiée sur toutes les interfaces de votre machine. À partir de la version 0.4.0, elle est refusée : le mode
dev sans jeton ne peut se lier qu'à une adresse de bouclage, et une liaison non-loopback nécessite
`CMCP_BEARER_TOKEN`. Fixez `listen_addr` explicitement et la configuration sera correcte dans
les deux cas.

Démarrez la passerelle :

```bash
CMCP_DEV_MODE=1 cmcp start --config cmcp-config.yaml
```

Faire un appel d'outil :

```bash
curl -X POST http://localhost:8443/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"salesforce.contacts","arguments":{"query":"Acme Corp"},"_cmcp":{"session_id":"s1","workflow_id":"demo-agent"}}}'
```

Vous préférez une version guidée ? [agentrust-io.com/quickstart](https://agentrust-io.com/quickstart/) parcourt le même chemin en une dizaine de minutes sur un ordinateur portable, sans matériel et sans inscription : installez, écrivez une règle Cedar `forbid`, observez un appel d'outil renvoyer 403 `POLICY_DENY` avant d'atteindre un service en amont, puis vérifiez le reçu signé.

Consultez [docs/quickstart.md](https://github.com/agentrust-io/cmcp/blob/main/docs/quickstart.md) pour la procédure complète : politique Cedar, catalogue d'outils, premier TRACE Claim et vérification (aucun TEE matériel requis).

---

## Fonctionnement

1. L'agent envoie chaque appel d'outil à la passerelle cMCP au lieu de l'envoyer directement aux serveurs MCP.
2. Au démarrage, avant de servir le trafic, la passerelle mesure son code installé, son bundle de politiques Cedar et sa configuration. Sur SEV-SNP, TDX et Azure CVM, le digest est lié dans `report_data` ; sur la couche TPM, il est étendu dans un index NV certifié. Un rechargement de politique déclenche une nouvelle attestation.
3. Chaque appel d'outil entrant est évalué par le moteur de politiques Cedar exécuté à l'intérieur du TEE. Le résultat est autoriser, refuser ou expurger. L'appel et sa décision sont ajoutés à la chaîne d'audit scellée par le matériel.
4. À la fin de la session, la passerelle produit un TRACE Claim : un artefact signé et attesté par le matériel qui enregistre quels outils ont été exécutés, quelle politique a décidé chaque appel et la chaîne d'audit complète. Un vérificateur contrôle cela sans faire confiance à l'opérateur.

```
Agent -> cMCP Runtime -> Cedar Policy Engine (TEE) -> Tool
                     |
               GatewayClaim (TRACE Profile)
               +-- trace.eat_profile
               +-- trace.runtime.platform + measurement
               +-- trace.policy.bundle_hash
               +-- trace.cnf.jwk  (Ed25519 confirmation key)
               +-- gateway.audit_chain (root/tip/length)
               +-- signature (Ed25519 over canonical JSON)
```

## Fournisseurs de matériel

| Fournisseur | Plateforme | Assurance | Notes |
|---|---|---|---|
| `tpm` | TPM 2.0 / vTPM (Azure, AWS, GCP Trusted Launch) | Moyenne | Citation TPM locale |
| `sev-snp` | AMD SEV-SNP (Azure DCasv5, AWS C6a Nitro) | Élevée | AMD KDS |
| `tdx` | Intel TDX (Azure DCedsv5, GCP C3) | Élevée | Intel PCS |
| `gpu-cc` _(v0.2)_ | NVIDIA H100/H200/Blackwell (mode CC) | Élevée | NVIDIA Remote Attestation Service (NRAS) |

Ordre de sondage pour la détection automatique des fournisseurs : `azure-cvm -> tpm -> sev-snp -> tdx`. Le premier fournisseur dont `detect()` réussit est sélectionné. Si aucun fournisseur matériel n'est détecté, la passerelle ne démarre que sous `CMCP_DEV_MODE=1` (une solution de repli logicielle non attestée) et refuse sinon de démarrer.

```python
from cmcp_runtime.config import TEEProvider

# Auto-detect (default)
# attestation.provider: auto  ->  azure-cvm -> tpm -> sev-snp -> tdx
# (software-only is used only under CMCP_DEV_MODE=1)

# Explicit hardware selection
# attestation.provider: sev-snp
```

## Modes d'application

| Mode | Comportement | Cas d'usage |
|---|---|---|
| `enforcing` | Les refus de politique renvoient HTTP 403 ; l'appel n'est pas transmis | Production |
| `advisory` | Les refus de politique sont journalisés ; l'appel se poursuit | Premier déploiement, ajustement des politiques |
| `silent` | La politique est évaluée mais rien n'est journalisé ni bloqué | Établissement de référence |

La valeur par défaut est `enforcing`. Définissez `enforcement_mode: advisory` dans `cmcp-config.yaml` pour utiliser le mode advisory.

---

## Configuration

Référence complète de `cmcp-config.yaml` :

```yaml
attestation:
  provider: auto                    # auto | tpm | sev-snp | tdx | software-only
  enforcement_mode: enforcing       # enforcing | advisory | silent
  validity_seconds: 86400           # attestation freshness window (default: 24 hours)
  staleness_policy: fail_closed     # fail_closed | warn_only
  expected_measurement: ~           # pin a specific PCR/measurement (optional)

policy_bundle_path: policies/       # directory containing .cedar files and manifest.json
catalog_path: catalog.json          # approved tool catalog

listen_addr: "127.0.0.1:8443"     # tokenless dev mode is loopback-only; set CMCP_BEARER_TOKEN before binding wider
max_response_size_bytes: 2097152    # 2 MB default
policy_reload_interval_seconds: 0   # >0 with a pinned CMCP_POLICY_HASH refuses to start, see docs/spec/policy-hot-reload.md
```

Variables d'environnement :

| Variable | Effet |
|---|---|
| `CMCP_DEV_MODE=1` | Utiliser un fournisseur TEE logiciel uniquement ; aucun matériel requis |
| `CMCP_BEARER_TOKEN` | Exiger ce jeton bearer sur toutes les requêtes entrantes |

---

## Référence CLI

| Commande | Options | Description |
|---|---|---|
| `cmcp start` | `--config PATH` (requis) | Démarrer la passerelle |
| `cmcp validate-config` | `--config PATH` (requis) | Valider `cmcp-config.yaml` sans démarrer |
| `cmcp validate-bundle` | `--bundle-path PATH` (requis), `--expected-hash sha256:<hex>` (requis) | Vérifier le hachage d'un bundle Cedar avant déploiement |
| `cmcp verify` | `CLAIM_FILE` (requis) ; `--policy-hash`, `--catalog-hash`, `--max-age`, `--trusted-key`, `--trusted-tpm-ca`, `--audit-bundle`, `--agent-manifest`, `--agent-manifest-trust-anchor` | Vérifier un TRACE Claim signé (signature, schéma, fraîcheur, chaîne d'audit, hachages épinglés et ancres de confiance) |

---

## TRACE Claims

Un `GatewayClaim` est l'unité de preuve remise à un auditeur, un régulateur ou un vérificateur en aval. Il est produit par session (ou par appel, configurable) et signé avec une clé qui ne quitte jamais le TEE.

| Champ | Description |
|---|---|
| `trace.eat_profile` | URI du profil EAT : `tag:agentrust-io.com,2026:trace-v0.2` |
| `trace.runtime` | Plateforme TEE et mesure matérielle enregistrées au démarrage de l'enclave |
| `trace.policy.bundle_hash` | SHA-256 du bundle Cedar chargé au démarrage ; la modification d'un fichier de politique change cette valeur |
| `trace.cnf.jwk` | Clé publique Ed25519 liée à la clé de signature du TEE |
| `trace.tool_transcript` | Vue par appel dérivée de la chaîne d'audit : `hash` (lié à l'extrémité de la chaîne d'audit), `call_count`, et `entries` préservant la confidentialité (nom de l'outil, classe de données, décision) |
| `gateway.audit_chain` | Racine et extrémité du journal d'audit chaîné par hachage ; vérifiable sans rejouer les entrées individuelles |
| `signature` | Ed25519 sur le JSON canonique du corps complet du claim (RFC 8785) |

(Ce tableau est un résumé des champs les plus utilisés.)

La vérification avec la bibliothèque `cmcp_verify` ne nécessite pas de faire confiance à l'opérateur. Le vérificateur contrôle la signature par rapport à la clé liée au TEE, le hachage du bundle de politiques par rapport à la valeur approuvée, et la cohérence interne de la chaîne d'audit.

Le schéma normatif est [`schemas/trace-claim.schema.json`](https://github.com/agentrust-io/cmcp/blob/main/schemas/trace-claim.schema.json), et [docs/quickstart.md](https://github.com/agentrust-io/cmcp/blob/main/docs/quickstart.md) présente un exemple complet. Voir [docs/spec/verification-library.md](https://github.com/agentrust-io/cmcp/blob/main/docs/spec/verification-library.md) et la [spécification TRACE](https://trace.agentrust-io.com) pour le protocole de vérification complet.

---

## Alignement sur les standards

| Standard | Couverture |
|---|---|
| OWASP Agentic AI Top 10 | MCP10 (fuite de données via les appels d'outils), MCP02 (outils non autorisés), MCP08 (gouvernance prouvable), MCP04 (chaîne d'approvisionnement) |
| NIST SP 800-207 | Point de décision de politique à l'intérieur du TEE ; aucune confiance implicite dans l'identité de la charge de travail |
| EU AI Act Art. 12, 15 | Enregistrements d'audit par décision (Art. 12) ; contrôles de cybersécurité adossés au TEE (Art. 15) |
| DORA Art. 9 | Chaîne d'attestation ; rétention du journal d'audit via `gateway.audit_chain` |
| RATS/EAT RFC 9711 | `GatewayClaim` est un EAT ; le champ `eat_profile` identifie le profil TRACE |

---

## Sécurité

| Outil | Ce qu'il vérifie |
|---|---|
| ruff | Linting de style et d'imports sur chaque PR |
| bandit | Linting de sécurité Python sur chaque PR |
| pip-audit | Analyse des vulnérabilités des dépendances sur chaque PR |
| mypy | Vérification statique des types sur chaque PR |
| CodeQL | SAST Python, requêtes security-extended, hebdomadaire |
| OpenSSF Scorecard | Notation hebdomadaire, téléversement SARIF |

Voir [SECURITY.md](https://github.com/agentrust-io/cmcp/blob/main/SECURITY.md) pour le signalement des vulnérabilités et les SLA de réponse. Voir [LIMITATIONS.md](https://github.com/agentrust-io/cmcp/blob/main/LIMITATIONS.md) pour les limites de périmètre explicites, y compris les risques résiduels liés à la capture des charges utiles APM, à l'injection de configuration à l'exécution et à la chaîne d'approvisionnement P4.1 (typosquat) que la Phase 1 ne couvre pas.

---

## Documentation

| Page | Description |
|---|---|
| [docs/quickstart.md](https://github.com/agentrust-io/cmcp/blob/main/docs/quickstart.md) | De zéro à la première TRACE Claim en moins de 30 minutes |
| [docs/configuration.md](https://github.com/agentrust-io/cmcp/blob/main/docs/configuration.md) | Référence complète de configuration avec tous les champs et valeurs par défaut |
| [docs/confinement.md](https://github.com/agentrust-io/cmcp/blob/main/docs/confinement.md) | Bac à sable d'agent Linux expérimental, tests de contournement et hypothèses de confiance |
| [docs/SPEC.md](https://github.com/agentrust-io/cmcp/blob/main/docs/SPEC.md) | Spécification produit : taxonomie des problèmes, architecture, matrice de couverture |
| [docs/spec/threat-model.md](https://github.com/agentrust-io/cmcp/blob/main/docs/spec/threat-model.md) | Analyse STRIDE, modèle d'adversaire, risques résiduels |
| [docs/spec/cedar-policy.md](https://github.com/agentrust-io/cmcp/blob/main/docs/spec/cedar-policy.md) | Référence du langage de politique Cedar et schéma |
| [docs/testing/benchmarks.md](https://github.com/agentrust-io/cmcp/blob/main/docs/testing/benchmarks.md) | Benchmarks de latence et de débit par fournisseur TEE |

---

## FAQ

### Qu'est-ce que cMCP ?

cMCP (Confidential MCP Runtime) est une passerelle open-source qui applique la politique d'appel d'outils MCP à l'intérieur d'un environnement d'exécution de confiance matériel (TEE). Il intercepte chaque appel d'outil, l'évalue par rapport à un bundle de politiques Cedar, applique la décision (autoriser, refuser ou masquer), et enregistre l'appel dans une chaîne d'audit scellée par le matériel.

### En quoi cMCP diffère-t-il de la gouvernance MCP purement logicielle ?

La gouvernance purement logicielle exécute le moteur de politiques dans le même OS qu'un opérateur ou une CVE de chaîne d'approvisionnement peut atteindre, elle ne peut donc pas prouver que la politique exécutée était celle approuvée ni que la décision n'a pas été inversée en mémoire. cMCP exécute le moteur de politiques à l'intérieur d'un TEE et mesure son code et son bundle Cedar dans le rapport d'attestation matériel avant de servir le moindre appel, de sorte que le plan de contrôle ne peut pas être atteint par le processus qu'il gouverne.

### Ai-je besoin de matériel spécifique pour l'essayer ?

Non. Définissez `CMCP_DEV_MODE=1` pour utiliser le fournisseur TEE purement logiciel et exécuter le quickstart complet sans TEE matériel. Les fournisseurs matériels (TPM, AMD SEV-SNP, Intel TDX) sont utilisés en production.

### Qu'est-ce qu'une TRACE Claim ?

Une TRACE Claim (un `GatewayClaim`) est un artefact signé et attesté par le matériel produit par session. Elle enregistre quels outils ont été exécutés, quelle politique a décidé chaque appel, le hash du bundle Cedar et la chaîne d'audit, et elle est signée avec une clé Ed25519 qui ne quitte jamais le TEE. Un vérificateur la contrôle avec la bibliothèque `cmcp_verify` sans faire confiance à l'opérateur.

### Quels fournisseurs TEE sont pris en charge ?

TPM 2.0 / vTPM, AMD SEV-SNP et Intel TDX, avec le calcul confidentiel GPU NVIDIA prévu pour la v0.2. L'ordre de détection automatique est : VM confidentielle Azure, puis TPM 2.0 / vTPM, puis AMD SEV-SNP, puis Intel TDX ; le fournisseur purement logiciel n'est utilisé que sous CMCP_DEV_MODE=1.

### Sous quelle licence est cMCP ?

MIT.

---

## Contribuer

[CONTRIBUTING.md](https://github.com/agentrust-io/cmcp/blob/main/CONTRIBUTING.md) · [GOVERNANCE.md](https://github.com/agentrust-io/cmcp/blob/main/GOVERNANCE.md) · [Discussions](https://github.com/orgs/agentrust-io/discussions)

Rejoignez la communauté sur [Discord](https://discord.gg/grgzFEHgkj).

Vous utilisez cMCP en production ? Ajoutez votre organisation à [ADOPTERS.md](https://github.com/agentrust-io/cmcp/blob/main/ADOPTERS.md).

---

## Licence

MIT - voir [LICENSE](https://github.com/agentrust-io/cmcp/blob/main/LICENSE).
Télécharger l’outil