Quand nous avons migré notre CRM vers Attio, nous avons construit notre propre toolkit MCP pour automatiser nos workflows go-to-market. Dans ce cadre, nous avons décidé de comparer le toolkit Attio d’Arcade.dev avec celui de Composio pour mesurer l’impact des différences de qualité entre les outils. Sur 8 requêtes CRM, Arcade a consommé 7 426 tokens au total contre 747 083 pour Composio, soit un écart supérieur à 100x.

À cette échelle, le choix du toolkit cesse d’être un détail d’implémentation pour apparaître directement dans vos coûts d’infrastructure et la fiabilité de vos agents. Voici l’analyse complète du benchmark.

Benchmark

Nous avons alimenté un sandbox CRM Attio avec 50 entreprises (Fortune 50), 100 contacts (vrais dirigeants C-suite) et 50 deals répartis sur 6 étapes de pipeline. Nous avons ensuite exécuté 8 requêtes CRM identiques via deux toolkits MCP, Arcade et Composio, en enregistrant le volume brut de tokens de chaque réponse. Les deux tests utilisaient Claude Code comme client et Claude Sonnet 4.6 comme modèle.

L’ensemble des données de réponse brutes, le script de seed du sandbox et les prompts d’évaluation exacts sont disponibles en open source sur github.com/ArcadeAI/attio-mcp-benchmark. Vous pouvez reproduire ce test vous-même.

Résultats

Total de tokens sur les 8 requêtes :

ToolkitTotal TokensAvg per Query
Arcade7,426928
Composio747,08393,385

Composio a fourni 100,6x plus de tokens de réponse qu’Arcade pour les mêmes 8 requêtes sur le même workspace.

Détail par requête :

#QueryArcadeComposioRatio
01List 25 companies (name only)902144,363160x
02Deals in Nurture stage (name + stage)97448,79250x
03Deals over $50K (name + value)1,07266,75262x
04Companies with “Tech” in name35448,103136x
05Technology companies (name + categories)1,030165,958161x
06Deals before March 2026 (name + date + value)1,600111,82970x
07Large Technology companies (compound filter)1,329159,032120x
08Highest-value deal (sort desc, limit 1)1652,25414x

Comptage de tokens via tiktoken cl100k_base. Les deux toolkits ont été testés en conditions réelles sur le même workspace Attio avec les mêmes données seedées.

Pourquoi cet écart existe

Trois différences structurelles expliquent le delta de 100x :

1. Sélection de champs vs dump complet des enregistrements

Arcade exige que les agents précisent quels champs ils ont besoin (nom, valeur, étape). La réponse ne contient que ces champs.

Composio retourne tous les champs de chaque enregistrement : tous les attributs personnalisés, tous les attributs natifs, sans aucune possibilité de sélectionner des champs spécifiques.

Dans ce workspace, un seul enregistrement d’entreprise représente environ 5 800 tokens dans le format de réponse de Composio. Avec Arcade, le même enregistrement avec uniquement le nom sélectionné représente environ 30 tokens.

2. Métadonnées temporelles sur chaque champ

Composio enveloppe chaque valeur d’attribut avec les métadonnées complètes de l’API Attio : active_from، active_until، attribute_type، created_bydes objets acteur et des annotations de type. Il s’agit de la réponse brute de l’API Attio v2 transmise sans modification.

Arcade aplatit tout cela en paires clé-valeur. Un nom d’entreprise est "Apple Inc."et non un objet imbriqué avec des timestamps et des références d’acteur.

3. La récupération sur erreur consomme davantage de contexte

La requête 07 (filtre composé : entreprises Technology avec 1 000+ employés) a nécessité 4 appels d’outil avec Composio contre 1 avec Arcade :

  • Première tentative échouée : $inopérateur non supporté sur les champs select
  • Deuxième tentative échouée : les valeurs d’option 501-1000n’existent pas dans ce workspace
  • Appel de découverte de schéma : récupération du schéma complet des attributs d’entreprise (~40 attributs) juste pour connaître les titres d’option réels (5K-10K، 10K-50K, etc.)
  • Troisième tentative réussie avec les valeurs d’option correctes

Arcade a résolu la requête en un seul appel. Le contexte total consommé lors de la résolution Q07 par Composio était nettement plus important que ce qui a été enregistré sur disque.

Ce que ça implique pour les agents

Au débit de tokens d’Arcade, un agent peut exécuter les 8 requêtes du benchmark et ne consommer que 3,7 % d’une fenêtre de contexte de 200K.

Au débit de Composio, les mêmes 8 requêtes consomment 373 % d’une fenêtre de 200K : les réponses ne tiennent pas dans un seul contexte. La première réponse batch seule représentait 467K tokens.

Pour les workflows agents multi-étapes, où l’agent doit interroger, raisonner et agir sur plusieurs opérations CRM, la marge de contexte disponible détermine si l’agent mène sa tâche à bien ou perd le fil. Des recherches sur les performances des LLM en long contexte (Lost in the Middle, Liu et al. 2023) montrent que la précision se dégrade à mesure que l’entrée grossit, surtout quand les informations pertinentes sont enfouies au milieu de longues entrées.

Le coût à grande échelle

En utilisant les comptages moyens de tokens par requête issus de ce benchmark (928 pour Arcade, 93 385 pour Composio) au tarif d’entrée de Claude Sonnet 4.6 ($3/M tokens) :

ScaleQueries/MonthArcadeComposioMonthly SavingsAnnual Savings
Small team (10 agents, 50 queries/day)15,000$42$4,202$4,161$49,928
Mid-market (25 agents, 100 queries/day)75,000$209$21,012$20,803$249,633
Enterprise (100 agents, 200 queries/day)600,000$1,670$168,093$166,423$1,997,071

Ces chiffres représentent uniquement les coûts en tokens d’entrée, soit la différence marginale entre les deux toolkits sur les données de réponse des outils. Les coûts totaux des agents (prompts système, raisonnement, tokens de sortie) s’ajoutent des deux côtés de façon identique.

Au niveau mid-market, le seul choix du toolkit pourrait représenter un quart de million de dollars par an. À l’échelle enterprise, cela pourrait atteindre 2 M$. Et c’est aux tarifs Sonnet. Pour des agents tournant sur Opus 4.6 ($15/M), multipliez ces chiffres par 5.

Méthodologie

  • Sandbox : 50 entreprises, 100 contacts, 50 deals, 26 attributs personnalisés (15 sur les entreprises, 11 sur les deals). Seedé via scripts/seed_workspace.py.
  • Client : Claude Code avec Claude Sonnet 4.6
  • Requêtes : 8 prompts d’évaluation couvrant : liste, filtre par statut, filtre numérique, recherche textuelle, filtre select, comparaison de dates, filtre composé, et tri + limite
  • Mesure : tiktoken cl100k_base sur les réponses JSON brutes complètes enregistrées sur disque

Reproduisez-le vous-même :

git clone https://github.com/ArcadeAI/attio-mcp-benchmark
cd attio-mcp-benchmark

# Seed a sandbox (requires Attio API key)
ATTIO_API_KEY=your_key python3 scripts/seed_workspace.py

# Run evals (see evals/*.md for the 8 prompts)
# Connect your toolkit's MCP server and run each prompt

# Count tokens
pip3 install tiktoken
python3 scripts/count_tokens.py