/ Annuaire / Playground / agent
● Communauté 1mcp-app ⚡ Instantané

agent

par 1mcp-app · 1mcp-app/agent

Un endpoint MCP unifié avec OAuth 2.1, rechargement à chaud et audit logging — une porte d'entrée orientée production pour de nombreux serveurs en amont.

1mcp/agent est un agrégateur MCP basé sur Node/TS. Contrairement aux proxys plus simples, il apporte l'autorisation OAuth 2.1 basée sur scopes, les configurations à rechargement à chaud, la sanitisation des entrées, l'audit logging et des endpoints de santé — des fonctionnalités que vous bricoleriez sinon avec nginx, Caddy et cron.

Pourquoi l'utiliser

Fonctionnalités clés

Démo en direct

Aperçu en pratique

agent.replay ▶ prêt
0/0

Installer

Choisissez votre client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "agent": {
      "command": "npx",
      "args": [
        "-y",
        "agent"
      ],
      "_inferred": true
    }
  }
}

Ouvrez Claude Desktop → Settings → Developer → Edit Config. Redémarrez après avoir enregistré.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "agent": {
      "command": "npx",
      "args": [
        "-y",
        "agent"
      ],
      "_inferred": true
    }
  }
}

Cursor utilise le même schéma mcpServers que Claude Desktop. La config projet l'emporte sur la globale.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "agent": {
      "command": "npx",
      "args": [
        "-y",
        "agent"
      ],
      "_inferred": true
    }
  }
}

Cliquez sur l'icône MCP Servers dans la barre latérale Cline, puis "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "agent": {
      "command": "npx",
      "args": [
        "-y",
        "agent"
      ],
      "_inferred": true
    }
  }
}

Même format que Claude Desktop. Redémarrez Windsurf pour appliquer.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "agent",
      "command": "npx",
      "args": [
        "-y",
        "agent"
      ]
    }
  ]
}

Continue utilise un tableau d'objets serveur plutôt qu'une map.

~/.config/zed/settings.json
{
  "context_servers": {
    "agent": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "agent"
        ]
      }
    }
  }
}

Ajoutez dans context_servers. Zed recharge à chaud à la sauvegarde.

claude mcp add agent -- npx -y agent

Une seule ligne. Vérifiez avec claude mcp list. Supprimez avec claude mcp remove.

Cas d'usage

Usages concrets : agent

Faire tourner une passerelle MCP multi-tenant pour différentes équipes

👤 Équipes plateforme servant plusieurs squads avec différents besoins d'outils ⏱ ~45 min advanced

Quand l'utiliser : Design et Eng ont besoin de MCPs différents, mais vous ne voulez pas faire tourner deux passerelles.

Prérequis
  • Un hôte avec Node 20+ ou Docker — N'importe quelle petite VM
  • IdP OAuth (ou utilisez l'intégré en local) — Dex, Auth0, Okta — tout ce qui parle OIDC
Déroulement
  1. Définir les scopes dans la config de l'agent
    Draft an agent config where 'design' scope exposes figma and davinci-resolve MCPs, 'eng' scope exposes github, sentry, postgres.✓ Copié
    → Config avec mappings upstream scopés
  2. Brancher OAuth
    Connect the agent to our Auth0 tenant, map groups to scopes.✓ Copié
    → Les utilisateurs ne voient que les outils de leur scope
  3. Auditer l'usage
    Show me the last 24h of tool calls by user, grouped by tool name.✓ Copié
    → Rapport d'usage

Résultat : Une seule passerelle, vues d'outils par équipe, piste d'audit complète.

Pièges
  • La conception des scopes devient vite un plat de spaghetti — Commencez avec 2-3 scopes larges (eng-read, eng-write, design) plutôt qu'un scope par outil
  • Les logs d'audit font gonfler l'usage disque — Rotez les logs chaque semaine ou expédiez vers un agrégateur de logs
Combiner avec : github · sentry

Développer un MCP personnalisé avec rechargement à chaud

👤 Développeurs itérant sur leur propre serveur MCP ⏱ ~20 min intermediate

Quand l'utiliser : Vous écrivez un nouveau MCP et vous ne voulez pas recharger l'IDE après chaque modification.

Déroulement
  1. Enregistrer votre MCP de dev sous l'agent
    Add my local dev MCP at node ./my-mcp/dist/index.js under the agent config, tag it 'dev'.✓ Copié
    → L'outil apparaît dans le client
  2. Modifier, sauvegarder, réessayer
    I changed the tool. Tell me if the new version is live without me restarting.✓ Copié
    → Rechargement à chaud confirmé

Résultat : Une boucle interne rapide pour le développement MCP.

Pièges
  • Le rechargement à chaud peut laisser fuir d'anciens handles d'outils si les clients mettent en cache — Pour les gros changements d'interface, redémarrez le client quand même

Placer un MCP upstream non fiable derrière une sanitisation

👤 Admins soucieux de sécurité exécutant des MCPs communautaires ⏱ ~15 min intermediate

Quand l'utiliser : Vous voulez essayer un MCP communautaire mais vous voulez des garde-fous ceinture-et-bretelles sur les entrées.

Déroulement
  1. Activer la sanitisation
    Configure 1mcp agent to enable input sanitization on upstream 'community-x', block any tool returning an oversized payload.✓ Copié
    → Limites appliquées
  2. Vérifier
    Call a tool from that upstream and confirm sanitization log entries.✓ Copié
    → Le log affiche l'appel sanitisé

Résultat : Un rayon d'explosion plus sûr lors de l'expérimentation avec des outils communautaires.

Combinaisons

Associez-le à d'autres MCPs pour un effet X10

agent + proxy-2

Comparer 1mcp riche en fonctionnalités vs le tbxark/mcp-proxy minimal

Run both 1mcp/agent and tbxark/mcp-proxy on the same host and compare tool-call latency through each.✓ Copié
agent + jetski

Empiler l'analytique au-dessus de 1mcp

Run 1mcp/agent behind Jetski to get both OAuth and prompt-level analytics.✓ Copié

Outils

Ce que ce MCP expose

OutilEntréesQuand appelerCoût
list_tools (none) Handshake — géré par les clients free
call_tool name, args Toute invocation 1 upstream call
mcp_add name, command, args Ajouter un nouvel upstream dynamiquement (admin uniquement) free

Coût et limites

Coût d'exécution

Quota d'API
Aucun en propre ; borné par les quotas upstream
Tokens par appel
Petit surcoût de proxy
Monétaire
Gratuit, MIT
Astuce
Activez l'audit uniquement sur les upstreams autorisant l'écriture — les logs en lecture seule remplissent le disque sans bénéfice.

Sécurité

Permissions, secrets, portée

Portées minimales : OAuth client config + upstream server credentials
Stockage des identifiants : Variables d'env et fichier de config ; utilisez un gestionnaire de secrets en production
Sortie de données : L'agent transmet uniquement vers les upstreams configurés
Ne jamais accorder : admin scope to end users — reserve for platform team

Dépannage

Erreurs courantes et correctifs

Hot reload didn't pick up my config change

Vérifiez que le watcher de fichiers a les permissions sur le répertoire monté (les bind mounts Docker sur macOS peuvent rater des événements). Repliez-vous sur SIGHUP.

Vérifier : docker exec agent kill -HUP 1
OAuth token rejected

La revendication de scope ne correspond à aucun scope configuré. Vérifiez les logs de l'agent pour la claim et alignez la config.

Vérifier : Décodez le JWT sur jwt.io
Upstream MCP fails health check

Exécutez la commande upstream manuellement pour voir son stderr. Les logs de l'agent ne rapportent que le code de sortie.

Vérifier : docker exec agent sh -c '<upstream command>'
Tool list empty for a user

Les scopes de cet utilisateur ne correspondent à aucune étiquette de scope requise par un outil.

Vérifier : Vérifiez le mapping de scopes dans la config vs les claims JWT

Alternatives

agent vs autres

AlternativeQuand l'utiliserCompromis
tbxark/mcp-proxyVous voulez un binaire Go minimal sans OAuthPas d'auth, pas de rechargement à chaud, pas de scopes
JetskiVous voulez des dashboards analytiques complets et DCRInfrastructure K8s + Postgres requise

Plus

Ressources

📖 Lire le README officiel sur GitHub

🐙 Voir les issues ouvertes

🔍 Parcourir les 400+ serveurs MCP et Skills