Trentina

Registre officiel IA et agents

Secure MCP gateway and quarantine for AI agent traffic — three-layer prompt injection defense

Installation

Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).

PYPI package mcp-trentina-crunchtools
Claude Code
claude mcp add trentina -- uvx mcp-trentina-crunchtools==0.5.0
Configuration JSON (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "trentina": {
            "command": "uvx",
            "args": [
                "mcp-trentina-crunchtools==0.5.0"
            ]
        }
    }
}

Documentation

Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.

Sommaire
  1. Trentina
  2. Why Trentina
  3. Quick Start
  4. Documentation
  5. Development
  6. License

Trentina

Trentina sits between your AI agents and everything they touch: MCP servers, the web, Matrix, LLM providers and alerts. It stops prompt injection at every ingress, shrinks what reaches the context window, and enforces a policy the agent cannot talk its way past. It is named after the 1377 trentino of Ragusa, where ships anchored offshore for thirty days before anyone came ashore: commerce keeps flowing, and nothing dangerous gets in.

Why Trentina

  1. Security. Untrusted content crosses three independent layers at every ingress: L1 deterministic checks, L2 a local classifier, L3 a quarantined LLM with no tools. Guarded execution judges what goes out against a rule you write in English. What is and is not defended is in Coverage. Defense Pipeline · Benchmark · OWASP mapping
  2. Token savings. Hidden tools, short names, compacted schemas, compressed descriptions and minified responses: 52% fewer response bytes on production traffic. Compression · Tool Filtering
  3. Determinism. Parameter guards, response guards and allowlists are evaluated by the gateway, so an agent that ignores its instructions is stopped before the backend sees the call. Parameter Guards · Response Guards
  4. Authentication. Trentina is the OAuth authorization server for web clients such as claude.ai: dynamic client registration, a provisioned client, external issuers or a static bearer, chosen per profile. Authentication
  5. Architectural flexibility. A personal assistant, a coding agent and a swarm each get their own profile, with their own backends, defense mode and credentials. Profiles · Operator

Quick Start

# The container image is the distribution: the L2 model, the parsers and
# their process isolation ship in it. There is no PyPI package.
podman run -d -p 127.0.0.1:8019:8019 \
    -v ./profiles.yaml:/config/profiles.yaml:ro,Z \
    -e TRENTINA_GATEWAY_ENABLED=true \
    -e TRENTINA_PROFILES_PATH=/config/profiles.yaml \
    -e TRENTINA_PROFILE_MYAGENT_TOKEN=your-token \
    -e OPENROUTER_API_KEY=your-key -e TRENTINA_MODEL_PROVIDER=openrouter \
    quay.io/crunchtools/trentina \
    --transport streamable-http --host 0.0.0.0 --port 8019

L3 needs a key for one LLM provider. Any of Gemini, OpenRouter, OpenAI, Anthropic or Ollama works. A minimal profiles.yaml:

profiles:
  myagent:
    auth:
      bearer_token_env: TRENTINA_PROFILE_MYAGENT_TOKEN
    backends:
      web:
        url: "internal://web"         # Trentina's own content tools
        tools_allow: ["*"]
      gmail:
        url: "http://gws-personal:8000/mcp"
        tools_allow:                  # it may read and draft; you send
          - search_gmail_messages
          - get_gmail_message_content
          - draft_gmail_message
    defense:
      enforcement: block

Then point Claude Code at it:

{
  "mcpServers": {
    "trentina": {
      "type": "streamable-http",
      "url": "http://localhost:8019/gateway/myagent/mcp",
      "headers": { "Authorization": "Bearer your-token" }
    }
  }
}

Documentation

DocumentDescription
MCP GatewayOne endpoint per profile: routing, tool names, circuit breakers
Per-Agent ProfilesProfile schema, modes, minifying, roles, multi-agent setup
Operator ProfileThe agent that installs and runs the gateway
ConfigurationEvery environment variable
AuthenticationStatic bearer, OAuth proxy with DCR or a provisioned client, delegated issuers
Backend OAuthEach profile signs in to OAuth-only backends with its own grant
Defense PipelineL1/L2/L3, modes, coverage and known gaps
BenchmarkDetection rates per layer and per L3 provider
CorporaEvery attack and benign set the defense is measured on
Prompt PacksThe judge's prompts tuned per model
Content Toolsfetch, read, dir, content, search, with an egress guard and file confinement
BlocklistA refused source stays refused
Tool FilteringAllowlists, denylists, glob patterns
Tool PinningA new or changed tool is held until approved
Tool DiscoveryFind/call or per-session loading for clients without tool search
Description CompressionDescription compression and schema compaction
Token RoutingResponse minifying (implemented); delegation (proposed)
Guarded ExecutionA judge reads calls to listed tools against a policy in plain English
Parameter GuardsPer-tool argument validation
Response GuardsPer-tool result validation
Audit LogCall recording, stats, monitoring
LLM Key ProxyingProvider keys kept inside the gateway
Matrix BridgeE2EE termination and two-way judging
Channel BridgesMore than one upstream per agent (RCS, ...) and the bridge wire contract
Matrix Reverse ProxyMatrix for agents on an isolated network
Client EgressA CONNECT tunnel to listed hosts for the agent's own client
Git TransportClone, fetch and push to listed repositories and branches
Deployment HardeningContainer flags, secrets, egress, the startup check
Cockpit PluginLive defense pipeline dashboard
Internal: Gateway DesignOriginal design document, for contributors

Development

uv sync --all-extras
uv run ruff check src tests
uv run mypy src
uv run pytest -v

The container image is built by CI, never locally; see CLAUDE.md. The demo is recorded by demo.yml; its fixtures are in docs/demo/.

License

AGPL-3.0-or-later

Questions fréquentes

Qu'est-ce que Trentina ?

Secure MCP gateway and quarantine for AI agent traffic — three-layer prompt injection defense

Comment installer Trentina ?

Il s'exécute sur votre machine. Dans Claude Code : claude mcp add trentina -- uvx mcp-trentina-crunchtools==0.5.0. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.

Faut-il une clé API pour Trentina ?

Son entrée au registre n'indique aucune clé ni secret obligatoire. Certaines fonctions peuvent tout de même demander un compte auprès du service auquel il se connecte.

Trentina est-il open source ?

Oui. Son code est sur GitHub sous licence AGPL-3.0.

Qui maintient Trentina ?

Il est publié par crunchtools. AI.tn le référence sans le maintenir ni le recommander.

Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.