feat(mcp): helper track_mcp_tool pour tracer les appels MCP dans Matomo

This commit is contained in:
Colin Maudry
2026-07-09 19:57:09 +02:00
parent 4b3a2f5432
commit 89cc754a95
2 changed files with 74 additions and 0 deletions
+32
View File
@@ -28,3 +28,35 @@ def track_search(query, category):
url=f"https://{os.getenv('MATOMO_DOMAIN')}/matomo.php",
params=params,
).raise_for_status()
def track_mcp_tool(tool_name: str, query: str | None = None) -> None:
"""Enregistre un appel d'outil MCP dans Matomo (best-effort, prod uniquement).
`action_name="MCP / <tool>"`, `dimension1=<tool>`. Si l'outil porte une
requête texte, elle est envoyée en `search`. Nécessite un Custom Dimension
slot 1 (scope Action) configuré côté Matomo — sinon `dimension1` est ignoré.
Ne lève jamais : une panne Matomo ne doit pas casser l'appel du tool.
"""
if DEVELOPMENT or not os.getenv("MATOMO_DOMAIN"):
return
params = {
"idsite": os.getenv("MATOMO_ID_SITE"),
"url": "https://colibre.fr/_mcp",
"rec": "1",
"action_name": f"MCP / {tool_name}",
"dimension1": tool_name,
"rand": uuid.uuid4().hex,
"apiv": "1",
"h": localtime().tm_hour,
"m": localtime().tm_min,
"s": localtime().tm_sec,
"token_auth": os.getenv("MATOMO_TOKEN"),
}
if query:
params["search"] = query
params["search_cat"] = "mcp"
try:
post(url=f"https://{os.getenv('MATOMO_DOMAIN')}/matomo.php", params=params)
except Exception:
pass