Aperçu
Chaque serveur MCP que vous connectez à un agent IA ajoute des définitions d'outils au prompt système, consommant des tokens à chaque requête. Les développeurs avec 5 à 10 serveurs MCP gaspillent des milliers de tokens par conversation sur des définitions d'outils rarement appelées. Ce workflow audite votre configuration MCP, identifie les outils réellement utilisés, supprime les serveurs redondants et consolide la recherche en une seule connexion Scavio MCP.
Déclencheur
Audit mensuel, déclenché manuellement.
Planification
Mensuel
Étapes du workflow
Connexions MCP de l'inventaire
Listez tous les serveurs MCP configurés dans votre IDE ou votre configuration d'agent. Comptez les définitions d'outils par serveur.
Analyser les journaux d'utilisation des outils
Vérifiez quels outils MCP ont été réellement appelés au cours des 30 derniers jours. Signalez les serveurs avec une utilisation nulle ou faible.
Calculer la surcharge de tokens
Estimez les tokens consommés par les définitions d'outils de chaque serveur par conversation. Multipliez par le nombre de conversations quotidiennes.
Identifier les opportunités de consolidation
Trouvez les serveurs qui dupliquent les capacités de Scavio : les outils de recherche distincts Google, YouTube, Amazon peuvent être remplacés par un seul MCP.
Consolider et vérifier
Supprimez les serveurs MCP redondants. Remplacez-les par Scavio MCP. Vérifiez que tous les outils précédemment utilisés fonctionnent toujours.
Implémentation Python
import requests, os, json
from pathlib import Path
API_KEY = os.environ["SCAVIO_API_KEY"]
MCP_URL = "https://mcp.scavio.dev/mcp"
MH = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}
# Step 1: Read your MCP config (Claude Desktop format)
def audit_mcp_config(config_path: str) -> list:
config = json.loads(Path(config_path).read_text())
servers = config.get("mcpServers", {})
audit = []
for name, cfg in servers.items():
audit.append({
"name": name,
"command": cfg.get("command", ""),
"args_count": len(cfg.get("args", [])),
})
return audit
# Step 2: Test Scavio MCP covers the same capabilities
def test_scavio_mcp_coverage(queries: list) -> list:
results = []
for q in queries:
payload = {
"jsonrpc": "2.0", "id": 1,
"method": "tools/call",
"params": {"name": "search", "arguments": {"query": q["query"], "country_code": "us"}}
}
resp = requests.post(MCP_URL, headers=MH, json=payload, timeout=15)
data = resp.json()
results.append({
"query": q["query"],
"replaced_server": q["replaced_server"],
"success": "result" in data,
"result_size": len(str(data.get("result", ""))),
})
return results
test_queries = [
{"query": "python logging best practices", "replaced_server": "google-search-mcp"},
{"query": "best wireless mouse 2026", "replaced_server": "shopping-search-mcp"},
{"query": "react hooks tutorial youtube", "replaced_server": "youtube-search-mcp"},
]
coverage = test_scavio_mcp_coverage(test_queries)
for c in coverage:
status = "OK" if c["success"] else "FAIL"
print(f"[{status}] {c['replaced_server']} -> scavio MCP: {c['query']}")
consolidated = sum(1 for c in coverage if c["success"])
print(f"\nCan consolidate {consolidated}/{len(coverage)} MCP servers into Scavio MCP")Implémentation JavaScript
const MCP_URL = 'https://mcp.scavio.dev/mcp';
const MH = {'Authorization': 'Bearer '+process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'};
const fs = await import('fs');
function auditMcpConfig(configPath) {
const config = JSON.parse(fs.readFileSync(configPath, 'utf8'));
const servers = config.mcpServers || {};
return Object.entries(servers).map(([name, cfg])=>({name, command:cfg.command||'', argsCount:(cfg.args||[]).length}));
}
async function testScavioMcpCoverage(queries) {
const results = [];
for (const q of queries) {
const payload = {jsonrpc:'2.0', id:1, method:'tools/call', params:{name:'search', arguments:{query:q.query, country_code:'us'}}};
const r = await fetch(MCP_URL, {method:'POST', headers:MH, body:JSON.stringify(payload)});
const data = await r.json();
results.push({query:q.query, replacedServer:q.replacedServer, success:'result' in data, resultSize:JSON.stringify(data.result||'').length});
}
return results;
}
const testQueries = [
{query:'python logging best practices', replacedServer:'google-search-mcp'},
{query:'best wireless mouse 2026', replacedServer:'shopping-search-mcp'},
{query:'react hooks tutorial youtube', replacedServer:'youtube-search-mcp'},
];
const coverage = await testScavioMcpCoverage(testQueries);
for (const c of coverage) {
const status = c.success ? 'OK' : 'FAIL';
console.log('['+status+'] '+c.replacedServer+' -> scavio MCP: '+c.query);
}
const consolidated = coverage.filter(c=>c.success).length;
console.log('\nCan consolidate '+consolidated+'/'+coverage.length+' MCP servers into Scavio MCP');Plateformes utilisées
Recherche web avec graphe de connaissances, PAA et aperçus IA