Groupes d’outils personnalisés – Lancez des agents en quelques minutes, pas en plusieurs jours
Hier, nous avons présenté les groupes d’outils, qui vous permettent d’adapter votre serveur MCP à des domaines spécifiques tels que le commerce électronique ou les réseaux sociaux. Aujourd’hui, nous allons encore plus loin : les groupes d’outils personnalisés.
Vous pouvez désormais créer votre propre instance de serveur MCP avec exactement les outils dont vous avez besoin, ni plus, ni moins. Que vous ayez besoin d’un agent de support client ultra-spécialisé ou d’un assistant de recherche d’une précision chirurgicale, les groupes d’outils personnalisés vous permettent de le configurer en quelques minutes à l’aide de notre nouvel assistant de configuration.
Le problème : une taille unique ne convient pas à tous
Les groupes d’outils ont résolu le problème de la pollution contextuelle en vous permettant de choisir des clusters prédéfinis tels que les réseaux sociaux ou les navigateurs. Mais que faire si votre cas d’utilisation ne correspond pas parfaitement à une catégorie ?
Imaginons que vous développiez un agent de surveillance des prix. Vous avez besoin :
- Recherche de produits Amazon
- des données sur les produits eBay
- des informations sur Google Shopping
Mais vous n’avez pas besoin de Walmart, Target ou des 15 autres Jeux de données e-commerce du groupe ECOMMERCE. Les charger gaspille des jetons et perturbe le modèle.
Ou imaginez un agent de recherche B2B qui n’a besoin que :
- Profils LinkedIn
- Données d’entreprise LinkedIn
- Un moteur de recherche (pour trouver des prospects)
Vous n’avez pas besoin d’Amazon, de Walmart ou d’autres outils de commerce électronique. Ils ne font que créer du bruit.
La solution : sélection granulaire des outils
Nous avons étendu notre serveur MCP pour prendre en charge la personnalisation par outil via des paramètres URL. Vous pouvez désormais sélectionner précisément les fonctionnalités dont votre agent a besoin.
Comment ça marche
En arrière-plan, notre couche d’authentification extrait un paramètre d'outils de l’URL de connexion et construit dynamiquement le manifeste des outils :
function extract_url_params(request){
const url = request.url || '';
const params = {};
// Extraire le paramètre individuel des outils
const tools_match = url.match(/tools=([a-zA-Z0-9_,]+)/);
if (tools_match)
{
const tools_str = tools_match[1];
params.tools = tools_str.split(',')
.map(t=>t.trim())
.filter(Boolean);
}
return params;
}
Lorsque vous spécifiez ?tools=web_data_amazon_product,search_engine, le serveur crée un ensemble d’outils autorisés qui ne comprend que ces deux outils :
function build_allowed_tools(groups = [], tools = []){
const allowed = new Set();
for (let groupId of groups)
{
const group = Object.values(GROUPS).find(g=>g.id==groupId);
if (group)
{
for (let tool of group.tools)
allowed.add(tool);
}
}
for (let tool of tools)
allowed.add(tool);
return allowed;
}
Enfin, chaque outil enregistré sur le serveur vérifie si le client y a accès :
const add_tool = tool=>{
server.addTool({
...tool,
canAccess: auth=>{
// Le mode Pro accorde l'accès à tous les outils
if (auth?.proMode===true)
return true;
// Vérifie si l'outil fait partie de l'ensemble autorisé
if (auth?.allowedTools && auth.allowedTools.size)
return auth.allowedTools.has(tool.name);
// Par défaut, liste pro_mode_tools
return pro_mode_tools.includes(tool.name);
},
});
};
Le résultat ? Le client MCP ne voit que les outils que vous avez explicitement autorisés. Pas de distractions. Pas de jetons gaspillés.
L’assistant de configuration : configuration sans code

Exemple concret : agent de surveillance des prix
Construisons étape par étape un agent de surveillance des prix.
Étape 1 : choisissez vos outils
Vous avez besoin de :
web_data_amazon_product– Obtenir les prix actuels sur Amazonweb_data_ebay_product– Comparer avec les annonces eBayweb_data_google_shopping– Vérifier les tendances Google Shoppingsearch_engine– Trouver les URL des produits (inclus dans les outils de base)
Étape 2 : Configurer via l’assistant
Ouvrez l’assistant, entrez votre jeton API et utilisez le paramètre d’outils personnalisés :
?tools=web_data_amazon_product,web_data_ebay_product,web_data_google_shopping
L’assistant valide votre configuration et génère l’URL de connexion.
Étape 3 : connectez votre agent
Collez l’URL dans la configuration de votre client MCP (par exemple, claude_desktop_config.json de Claude Desktop) :
{
"mcpServers": {
"price-monitor": {
"command": "npx",
"args": [
"-y",
"@brightdata/mcp",
],
"env": {
"BRIGHTDATA_API_TOKEN": "YOUR_TOKEN",
"TOOLS":"web_data_amazon_product,web_data_ebay_product,web_data_google_shopping"
}
}
}
}
Étape 4 : lancement
Votre agent dispose désormais de 4 outils dans son contexte :
search_engineweb_data_amazon_productweb_data_ebay_productweb_data_google_shopping
Au lieu de plus de 60 outils qui encombraient l’invite du système, vous n’en avez plus que 4. L’attention du LLM est désormais concentrée.
Combiner les groupes et les outils personnalisés
Voici l’astuce : vous pouvez combiner des groupes d’outils avec des outils personnalisés.
Commencez par un groupe de base, puis ajoutez des outils individuels :
&groups=social&tools=web_data_amazon_product
Vous obtenez ainsi :
- Tous les outils de réseaux sociaux (LinkedIn, TikTok, Instagram, etc.)
- Plus les données sur les produits Amazon
Cas d’utilisation ? Un agent de marketing d’influence qui :
- Trouve des créateurs sur TikTok
- Analyse leurs mentions de produits
- Recoupe les avis sur les produits Amazon
Vous avez créé un agent hybride avec une précision chirurgicale.
Impact sur les performances : encore plus léger que les groupes d’outils
Hier, nous avons montré que les groupes d’outils réduisent les jetons d’invite du système d’environ 60 % par rapport au chargement de plus de 60 outils.
Les outils personnalisés vont encore plus loin :
| Configuration | Outils chargés | Réduction estimée des jetons |
| Suite complète | Plus de 60 outils | Référence (0 %) |
Groupe d’outils (par exemple, réseaux sociaux) |
~25 outils | ~60 |
| Outils personnalisés (par exemple, 4 outils) | 4 outils | ~85 % |
Pourquoi est-ce important ?
- Latence réduite – La connexion initiale est plus rapide
- Précision accrue – Le modèle ne génère pas de paramètres fantômes à partir d’outils non pertinents
- Économies – Vous payez moins de jetons d’entrée pour chaque requête
Optimisation des jetons au-delà de la sélection des outils
Les outils personnalisés ne sont qu’une partie de notre stratégie de réduction des jetons. Nous avons également optimisé le côté sortie:
Filtrage des instantanés ARIA
Lorsqu’il utilise les outils du Navigateur de scraping, l’agent reçoit un instantané DOM. Mais un instantané complet peut représenter des milliers de jetons.
Nous le filtrons pour n’afficher que les éléments interactifs (boutons, liens, champs de formulaire) :
export class Aria_snapshot_filter {
static INTERACTIVE_ROLES = new Set([
'button', 'link', 'textbox', 'searchbox', 'combobox', 'checkbox',
'radio', 'switch', 'slider', 'tab', 'menuitem', 'option'
]);
Et nous formatons les éléments de manière compacte, en tronquant les noms longs :
static format_compact(elements){
const lines = [];
for (const el of elements)
{
const parts = [`[${el.ref}]`, el.role];
if (el.name && el.name.length>0)
{
const name = el.name.length>60 ?
el.name.substring(0, 57)+'...' : el.name;
parts.push(`"${name}"`);
}
// Formatage compact
}
return lines.join('n');
}
Résultat ? Un instantané du navigateur qui comptait 22 000 jetons passe à 3 000 jetons. L’agent obtient toujours toutes les informations dont il a besoin pour cliquer sur les boutons et remplir les formulaires, mais sans le superflu.
Mise en cache des sessions de navigateur basée sur le domaine
Nous mettons également en cache les sessions de navigateur par domaine afin d’éviter les redémarrages inutiles :
export class Browser_session {
constructor({cdp_endpoint}){
this.cdp_endpoint = cdp_endpoint;
this._domainSessions = new Map(); // Mise en cache des sessions par domaine
this._currentDomain = 'default';
}
async _getDomainSession(domain, {log}={}){
if (!this._domainSessions.has(domain))
{
this._domainSessions.set(domain, {
browser: null,
page: null,
browserClosed: true,
requests: new Map(),
});
}
return this._domainSessions.get(domain);
}
Si votre agent automatise Amazon, le navigateur reste ouvert pour les opérations Amazon suivantes. Cela réduit le temps d’exécution de 2 à 3 secondes par action et diminue l’utilisation des jetons provenant des journaux d’initialisation répétés.
Essayez-le
Les outils personnalisés sont désormais disponibles sur le serveur Web MCP.
Utilisez l’assistant
Rendez-vous sur notre panneau de contrôle MCP pour accéder à l’assistant de configuration. Entrez votre jeton API, sélectionnez vos outils et obtenez une URL de connexion prête à l’emploi.
Niveau gratuit
Inscrivez-vous pour bénéficier de 5 000 requêtes gratuites par mois sur les outils de base (Web Unlocker et Search Engine). Idéal pour prototyper votre agent personnalisé.
Demain : nous publierons le fruit de plusieurs mois de travail. Cela changera votre façon d’envisager les workflows des agents. Restez à l’écoute.