Suivi MCP
Suivez quels outils les clients IA appellent sur votre serveur MCP, à quelle fréquence, quels clients (Claude, Cursor, Windsurf) génèrent le plus d'utilisation, et les taux d'erreur.
import { BetterMeter } from "@bettermeter/node";
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
const bm = new BetterMeter({
siteId: "my-mcp-server",
apiKey: "bm_...",
});
const server = new McpServer({
name: "my-server",
version: "1.0.0",
});
// Wraps server.tool() — auto-tracks every invocation
bm.wrapMcpServer(server);
// Tools registered after wrapping are automatically tracked
server.tool("search_docs", { query: z.string() }, async (args) => {
// ... your tool logic (unchanged)
});bm.trackTool({
tool: "search_docs",
client: "claude-code",
protocolVersion: "2024-11-05",
durationMs: 250,
success: true,
inputTokens: 150,
outputTokens: 800,
});Ce qui est suivi
Noms des outils, noms des clients, durée, succès/échec et compteurs de tokens optionnels. Les paramètres d'entrée et le contenu de sortie des outils ne sont jamais envoyés.
Référence des outils MCP
BetterMeter fonctionne comme un serveur MCP pour les assistants IA. Chaque commande CLI a un outil MCP correspondant avec le préfixe bettermeter_.
{
"mcpServers": {
"bettermeter": {
"command": "npx",
"args": ["bettermeter"]
}
}
}Les outils MCP qui modifient des données exigent une phrase de confirmation exacte (CONFIRM <action> <target>) pour l'action et la cible spécifiques avant de créer, mettre à jour, supprimer, scanner ou lancer des requêtes payantes.
Tous les outils d'analytique acceptent site_id (string) et range (today|7d|30d|90d|12m) — sauf bettermeter_all_sites, qui porte sur tout le compte : il ne déclare aucun site_id, et son range accepte aussi une fenêtre personnalisée YYYY-MM-DD..YYYY-MM-DD. limit (number, 1-100, facultatif) n'est déclaré que par les outils de liste qui renvoient des lignes classées ; les outils de synthèse, de tendance et de détail ne l'acceptent pas. L'outil MCP bettermeter_export supporte les formats json et md (la commande CLI export supporte aussi csv). Exemples d'utilisation pour les assistants IA :
bettermeter_live_visitors with activity=truebettermeter_live_displaybettermeter_statsbettermeter_ai_trafficbettermeter_cli_commandsbettermeter_mcp_clientsbettermeter_api_endpoints with range=7dbettermeter_pulse_askbettermeter_pulse_healthbettermeter_pulse_insightsbettermeter_pulse_briefing with period=weeklybettermeter_ad_spend_sync with CONFIRM sync ad spend <site_id>bettermeter_crm_sync with CONFIRM sync crm <connection_id>Liste complète des outils
Les outils de trafic humain excluent par défaut le trafic automatisé connu et détecté avec une forte confiance. Définissez include_bots=true pour obtenir explicitement les totaux non filtrés.
Les outils qui acceptent limit sont bettermeter_pages, bettermeter_sources, bettermeter_bots, bettermeter_countries, bettermeter_browsers, bettermeter_visitors, bettermeter_sessions, bettermeter_events, bettermeter_campaigns, bettermeter_conversions, bettermeter_keywords, bettermeter_campaign_visitors, bettermeter_export, bettermeter_cli_commands, bettermeter_mcp_tools, bettermeter_mcp_clients et bettermeter_api_endpoints. Si vous l'omettez, le point de terminaison renvoie sa propre page par défaut, qui varie selon le jeu de données ; ne l'envoyez que pour demander un nombre de lignes précis. Sur bettermeter_sources (avec filter) et bettermeter_bots (avec category), la limite est appliquée avant le filtre : un résultat filtré peut donc contenir moins de lignes que la limite.
Temps réel
bettermeter_live_visitorsbettermeter_live_displayPortefeuille de sites
bettermeter_all_sitesAnalytique web
bettermeter_statsbettermeter_pagesbettermeter_sourcesbettermeter_ai_trafficbettermeter_botsbettermeter_timeseriesbettermeter_countriesbettermeter_devicesbettermeter_browsersbettermeter_visitorsbettermeter_sessionsbettermeter_find_visitorbettermeter_visitorbettermeter_update_visitorbettermeter_visitor_propertiesbettermeter_tag_visitorbettermeter_eventsbettermeter_event_detailbettermeter_campaignsbettermeter_campaign_detailbettermeter_campaign_visitorsbettermeter_keywordsbettermeter_marketingbettermeter_landing_page_screenshotbettermeter_channelsbettermeter_exportAnalytique CLI
bettermeter_cli_overviewbettermeter_cli_commandsbettermeter_cli_timeseriesAnalytique MCP
bettermeter_mcp_overviewbettermeter_mcp_toolsbettermeter_mcp_clientsbettermeter_mcp_timeseriesAnalytique API
bettermeter_api_overviewbettermeter_api_endpointsbettermeter_api_timeseriesMédias payants
bettermeter_ad_connectionsbettermeter_ad_spendbettermeter_ad_spend_syncbettermeter_ad_creativeCRM et conversions
bettermeter_conversionsbettermeter_crm_connectionsbettermeter_crm_syncEnvoi des alertes Slack
bettermeter_slack_webhooksbettermeter_slack_connectbettermeter_slack_testbettermeter_slack_updatebettermeter_slack_removeBuilder
bettermeter_dashboardsbettermeter_create_dashboardbettermeter_update_dashboardbettermeter_delete_dashboardbettermeter_reportsbettermeter_create_reportbettermeter_report_previewbettermeter_update_reportbettermeter_delete_reportObjectifs de conversion et évolution
bettermeter_goalsbettermeter_goal_detailbettermeter_create_goalbettermeter_update_goalbettermeter_delete_goalbettermeter_suggest_goalsGestion des sites
bettermeter_sites_listbettermeter_sites_addbettermeter_sites_removebettermeter_sites_infobettermeter_sites_updatebettermeter_installGestion de l'équipe
bettermeter_members_listbettermeter_members_addbettermeter_members_removebettermeter_members_update_rolebettermeter_cancel_invitationClassements de recherche et visibilité IA
bettermeter_brand_reportbettermeter_brand_configbettermeter_brand_comparebettermeter_brand_alertsbettermeter_ai_mentionsbettermeter_ai_mention_historybettermeter_backlinksFacturation
bettermeter_billingPulse AI
bettermeter_pulse_askbettermeter_pulse_threadsbettermeter_pulse_threadbettermeter_pulse_thread_deletebettermeter_pulse_insightsbettermeter_pulse_healthbettermeter_pulse_briefingbettermeter_pulse_forecastbettermeter_pulse_comparebettermeter_pulse_alerts_listbettermeter_pulse_alerts_createbettermeter_pulse_alerts_deletebettermeter_pulse_notificationsLes dépenses Meta sont commercialement sensibles et nécessitent un accès ÉDITEUR ou ADMIN dans les outils directs comme dans Pulse; le catalogue Pulse des LECTEURS omet uniquement l’outil de dépenses. bettermeter_ad_spend_sync appelle Meta et met à jour les dépenses stockées; il exige donc aussi la phrase exacte CONFIRM sync ad spend <site_id>.