mcp
get_audit
MCP-Tool, das ein zuvor ausgeführtes Audit per id abruft. Liefert Modul-Scores, Gesamt-Score und jeden Befund mit Schweregrad und Empfehlung.
Was dieses Tool tut
get_audit liefert das vollständige Ergebnis eines zuvor ausgeführten Audits anhand seiner audit_id. Es ist das Poll-Ziel für run_audit und der kanonische Weg, jeden Befund für eine gegebene URL zu lesen.
- Liefert denselben
McpAuditResponse-Envelope wierun_audit, aber mit gefüllten Befunden, sobald das Audit abgeschlossen ist. - Gibt Modul-Scores (0-100) über alle 11 Audit-Module aus, plus den aggregierten
total_score. - Enthält jeden Befund mit
module,rule_id,passed,severity,title, optionalerrecommendationund einerdocs_url. - Liefert
statusentsprechend dem Upstream-Zustand:queued,running,completeoderfailed. - Stellt einen
report_url-Deep-Link auf den HTML-Bericht aufapp.metricspot.combereit.
Warum es wichtig ist
get_audit ist die Leseseite des MCP-Servers. Agenten rufen es auf, um einen in der Warteschlange befindlichen Lauf zu pollen, Befunde aus einem früheren Audit erneut zu lesen oder zwei Audits derselben URL über die Zeit zu vergleichen.
Konkrete Workflows:
- Ein PR-Kommentar-Bot ruft
get_auditfür das vorherige Audit auf einer URL auf, vergleichttotal_scoremit dem neuen und eskaliert nur, wenn die Regression einen Schwellenwert überschreitet. - Ein “Ein-Befund-nach-dem-anderen-fixen”-Agent läuft durch
findings, gefiltert nachseverity: critical, öffnet pro fehlgeschlagener Regel ein Issue und verlinkt diedocs_urlfür den Kontext.
So nutzt du es
Übergib die audit_id, die run_audit (oder list_audits) zurückgegeben hat. Dieselbe id kann beliebig oft erneut abgefragt werden; die Ergebnisse werden serverseitig gecacht und sind günstig zu lesen.
Input-Schema
{
"type": "object",
"properties": {
"audit_id": { "type": "string", "minLength": 1 }
},
"required": ["audit_id"]
}
Beispiel-Response
{
"audit_id": "aud_01HZ8X9YP7K3T2N6Q5",
"url": "https://example.com",
"status": "complete",
"total_score": 82,
"module_scores": {
"technical": 95,
"onpage": 76,
"performance": 71,
"ai": 84,
"modern_seo": 80,
"social": 65,
"accessibility": 90,
"privacy": 78,
"readability": 85,
"tech_stack": 100
},
"findings": [
{
"module": "technical",
"rule_id": "technical.https",
"passed": true,
"severity": "critical",
"title": "Site is served over HTTPS",
"docs_url": "https://metricspot.com/docs/technical-https/"
},
{
"module": "ai",
"rule_id": "ai.llms_txt",
"passed": false,
"severity": "minor",
"title": "No llms.txt published",
"recommendation": "Add an llms.txt to /.well-known/ listing canonical docs URLs for LLM crawlers.",
"docs_url": "https://metricspot.com/docs/llms-txt/"
}
],
"report_url": "https://app.metricspot.com/audits/aud_01HZ8X9YP7K3T2N6Q5",
"created_at": "2026-05-13T10:18:04.000Z"
}
Claude Code
claude mcp add --transport http metricspot https://mcp.metricspot.com/mcp \
--header "Authorization: Bearer ms_live_xxxxxxxxxxxxxxxxxxxxxxxx"
Prompt:
Hole das MetricSpot-Audit
aud_01HZ8X9YP7K3T2N6Q5und liste jeden fehlgeschlagenen Befund, gruppiert nach Modul, sortiert nach Schweregrad.
Cursor
.cursor/mcp.json:
{
"mcpServers": {
"metricspot": {
"url": "https://mcp.metricspot.com/mcp",
"headers": {
"Authorization": "Bearer ms_live_xxxxxxxxxxxxxxxxxxxxxxxx"
}
}
}
}
Prompt:
Zieh das letzte Audit für diese URL aus MetricSpot und schreibe den Titel der Seite um, um fehlgeschlagene On-Page-Regeln zu fixen.
Python (pollen, bis complete)
import httpx, time, json
HEADERS = {
"content-type": "application/json",
"accept": "application/json, text/event-stream",
"authorization": "Bearer ms_live_xxxxxxxxxxxxxxxxxxxxxxxx",
}
def get_audit(audit_id):
r = httpx.post("https://mcp.metricspot.com/mcp", headers=HEADERS, json={
"jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": {"name": "get_audit", "arguments": {"audit_id": audit_id}},
}, timeout=60.0)
return json.loads(r.json()["result"]["content"][0]["text"])
while True:
audit = get_audit("aud_01HZ8X9YP7K3T2N6Q5")
if audit["status"] in ("complete", "failed"):
break
time.sleep(3)
print("score:", audit["total_score"])
for f in audit["findings"]:
if not f["passed"] and f["severity"] in ("critical", "major"):
print(f["severity"], f["rule_id"], "-", f["title"])
Node / TypeScript (roher HTTP)
const res = await fetch("https://mcp.metricspot.com/mcp", {
method: "POST",
headers: {
"content-type": "application/json",
accept: "application/json, text/event-stream",
authorization: "Bearer ms_live_xxxxxxxxxxxxxxxxxxxxxxxx",
},
body: JSON.stringify({
jsonrpc: "2.0",
id: 1,
method: "tools/call",
params: {
name: "get_audit",
arguments: { audit_id: "aud_01HZ8X9YP7K3T2N6Q5" },
},
}),
});
const audit = JSON.parse((await res.json()).result.content[0].text);
console.log(audit.status, audit.total_score);
Häufige Fehler
| Code | Wann | Aktion |
|---|---|---|
UNAUTHORIZED (401) | Fehlendes oder ungültiges Bearer-Token | Schlüssel ausstellen unter https://app.metricspot.com/settings/api-keys |
AUDIT_NOT_FOUND (404) | audit_id gehört nicht zu diesem Konto | Rufe list_audits für gültige ids auf |
FORBIDDEN (403) | Token fehlt der Read-Scope | Schlüssel mit Default-Scope neu ausstellen |
UPSTREAM_FAILED (5xx) | Backend-Fehler der App | Erneut versuchen; retryable: true ist bei transienten Fehlern gesetzt |
Häufig gestellte Fragen
Wie oft soll ich ein in der Warteschlange befindliches Audit pollen?
Alle 3-5 Sekunden ist der ideale Wert. Die meisten Audits sind in 10-30 s fertig, also sind 6-10 Polls pro Audit typisch. Es entstehen keine Per-Call-Kosten über das Netzwerk hinaus. Mache Backoff, wenn status länger als 90 s auf queued steht.
Kann ich ein Audit abrufen, das jemand anderes ausgeführt hat?
Nein. Die Audit-Lookup ist auf den Besitzer des API-Schlüssels begrenzt. Ein get_audit-Aufruf mit der audit_id eines anderen Nutzers liefert AUDIT_NOT_FOUND zurück, statt zu verraten, dass das Audit existiert. Anonyme Audits (id "anonymous") können gar nicht abgerufen werden.
Enthält die Response Befunde für Regeln, die bestanden haben?
Ja. Jede Regel, die die Engine ausgewertet hat, steckt in findings, mit passed: true oder passed: false. Filter clientseitig, um nur Fehlschläge zu zeigen oder um Pass-Raten pro Modul zu berechnen.
Quellen
Zuletzt aktualisiert 2026-05-13