{"$schema":"https://verifymcp.io/schemas/trust-report.json","schemaVersion":1,"license":{"name":"CC BY-NC 4.0","url":"https://creativecommons.org/licenses/by-nc/4.0/"},"generatedAt":"2026-11-05T17:25:12.407Z","url":"https://verifymcp.io/servers/ink-trinkwassermonitor-trinkwasser/api-v1-mcp","markdownUrl":"https://verifymcp.io/servers/ink-trinkwassermonitor-trinkwasser/api-v1-mcp.md","server":{"slug":"ink-trinkwassermonitor-trinkwasser","name":"Trinkwassermonitor","registryName":"ink.trinkwassermonitor/trinkwasser","description":"Geprüfte Trinkwasserwerte deutscher Städte mit Quelle, Messdatum und Grenzwert (TrinkwV)","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"api-v1-mcp","type":"remote","identifier":"https://trinkwassermonitor.ink/api/v1/mcp","withdrawn":false,"url":"https://verifymcp.io/servers/ink-trinkwassermonitor-trinkwasser/api-v1-mcp","version":"1.2.0","transport":null,"scoredAt":"2026-11-05T01:02:27.110Z"},"score":{"total":75,"tier":"medium","status":"scored","weekDelta":3,"history":[{"date":"2026-11-05","total":75},{"date":"2026-11-04","total":75},{"date":"2026-11-03","total":74},{"date":"2026-11-02","total":74},{"date":"2026-11-01","total":73},{"date":"2026-10-31","total":73},{"date":"2026-10-30","total":72},{"date":"2026-10-29","total":72},{"date":"2026-10-28","total":71},{"date":"2026-10-27","total":71},{"date":"2026-10-26","total":70},{"date":"2026-10-25","total":70},{"date":"2026-10-24","total":70},{"date":"2026-10-23","total":69},{"date":"2026-10-22","total":69},{"date":"2026-10-21","total":68},{"date":"2026-10-20","total":68},{"date":"2026-10-19","total":67},{"date":"2026-10-18","total":67}]},"categories":[{"name":"Endpoint Security","score":63,"verdict":"fail","reasons":["The endpoint's TLS certificate is valid, in date, and uses a strong key.","Authorisation not fully verified: no authorisation is required to call this server, and 7 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.","HTTPS is enforced; there's no plaintext access path.","The HSTS (Strict-Transport-Security) header is present.","DNSSEC check failed: this domain isn't protected by DNSSEC."],"codes":[{"code":"tls.valid","args":{}},{"code":"auth.none_undeclared","args":{"undeclared_tools":"7"}},{"code":"https.enforced","args":{}},{"code":"headers.hsts_present","args":{}},{"code":"dnssec.absent","args":{}}]},{"name":"Transport & Reachability","score":100,"verdict":"pass","reasons":["Verified streamable-http transport via a live MCP handshake."],"codes":[{"code":"transport.verified","args":{"transport":"streamable-http"}}]},{"name":"Schema Quality & AI Usability","score":74,"verdict":"fail","reasons":["AI-judged instruction clarity (good).","Context-footprint check failed: tool/resource definitions use about 840 tokens (~120/item across 7 items; 7 tools + 0 resources), over budget; trim descriptions and params.","Usage-examples check failed: none of the tools include examples."],"codes":[{"code":"schema.ai_quality","args":{"band":"good"}},{"code":"schema.footprint_heavy","args":{"avg":"120","items":"7","tools":"7","tokens":"840","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":60,"verdict":"partial","reasons":["Stability observed for 18 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"18"}}]},{"name":"Tool Coverage","score":100,"verdict":"pass","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","100% of tool parameters carry a description."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"100"}}]},{"name":"Tool Safety","score":100,"verdict":"pass","reasons":["No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.","We read all 7 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 8 captured unit(s) of tool text and found none that tries to manipulate the model reading it."],"codes":[{"code":"toolsafety.injection_clean","args":{}},{"code":"toolsafety.destructive_none","args":{"tools":"7"}},{"code":"toolsafety.manipulation_clean","args":{"units":"8","judged":"8"}}]},{"name":"Capabilities","score":100,"verdict":"pass","reasons":["Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28."],"codes":[{"code":"protocol.supported","args":{"latest":"2026-07-28","version":"2025-11-25"}}]}],"inconclusive":["Authorisation not fully verified: no authorisation is required to call this server, and 7 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe."],"malware":[],"components":[{"slug":"api-v1-mcp","type":"remote","identifier":"https://trinkwassermonitor.ink/api/v1/mcp","withdrawn":false,"score":75,"current":true,"url":"https://verifymcp.io/servers/ink-trinkwassermonitor-trinkwasser/api-v1-mcp","markdownUrl":"https://verifymcp.io/servers/ink-trinkwassermonitor-trinkwasser/api-v1-mcp.md"}],"facts":[{"label":"Endpoint","value":"https://trinkwassermonitor.ink/api/v1/mcp"},{"label":"Transports","value":"streamable-http"},{"label":"Auth","value":"none"},{"label":"Version","value":"1.2.0"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"find_city","title":"Ort finden","description":"Sucht Orte mit ausgewertetem Prüfbericht nach Name oder fünfstelliger Postleitzahl. Liefert slug, Name und PLZ für die anderen Tools.","inputs":[{"name":"query","type":"string","required":true,"description":"Ortsname oder PLZ, z. B. \"Würzburg\" oder \"97070\""}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":67},{"name":"get_water_quality","title":"Trinkwasserwerte eines Ortes","description":"Alle Werte des neuesten Prüfberichts eines Ortes (je Versorgungszone) als Beleg-Objekte: Wert oder Status (measured, below_detection, not_reported), Einheit, Messdatum, Grenzwert mit Rechtsgrundlage, Quelle (mit SHA-256, soweit der Bericht als Datei vorliegt), fertiger Zitiersatz.","inputs":[{"name":"city","type":"string","required":true,"description":"slug, Ortsname oder PLZ"},{"name":"substance","type":"string","required":false,"description":"optional: Stoffschlüssel, z. B. nitrat, pfas, haerte, blei, uran, natrium"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":128},{"name":"verify_claim","title":"Aussage gegenprüfen","description":"Prüft eine Aussage wie \"Nitrat in Würzburg 37,3 mg/l\" gegen den neuesten Prüfbericht: supported, contradicted, outdated oder no_data, mit Beleg.","inputs":[{"name":"city","type":"string","required":true,"description":"slug, Ortsname oder PLZ"},{"name":"substance","type":"string","required":true,"description":"Stoffschlüssel, z. B. nitrat"},{"name":"unit","type":"string","required":false,"description":"optional: mg/l, µg/l, ng/l oder °dH"},{"name":"value","type":"number","required":true,"description":"behaupteter Wert"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":109},{"name":"compare_cities","title":"Orte vergleichen","description":"Stellt die Werte des neuesten Prüfberichts von 2 bis 5 Orten nebeneinander (Hauptversorgung, je Stoff mit Messdatum, Grenzwert und Quelle). Fehlt ein Stoff, steht not_reported; dieses Werkzeug bildet keine Rangfolge und keine Gesamtnote (der WaterScore steht nur auf den Stadtseiten, immer mit Angabe der Datenabdeckung).","inputs":[{"name":"cities","type":"array","required":true,"description":"slugs, Ortsnamen oder PLZ"},{"name":"substance","type":"string","required":false,"description":"optional: nur dieser Stoffschlüssel"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":115},{"name":"get_data_gaps","title":"Datenlücken je Stoff","description":"Wie viele der ausgewerteten Orte (Deutschland oder ein Bundesland) für einen Stoff einen Wert im Prüfbericht nennen und wie viele nicht – mit fertigem Zitiersatz. Zählt nur ausgewertete Orte, nicht alle Versorgungsgebiete.","inputs":[{"name":"state","type":"string","required":false,"description":"optional: Bundesland-Slug, z. B. baden-wuerttemberg, bayern, berlin"},{"name":"substance","type":"string","required":false,"description":"optional: Stoffschlüssel, z. B. pfas; ohne Angabe die Kernstoffe"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":116},{"name":"get_changes","title":"Änderungen zwischen Prüfberichten","description":"Werte, die in zwei aufeinanderfolgenden Prüfberichten desselben Wassers stehen: vorher, nachher, beide Quellen (mit SHA-256, soweit die Berichte als Datei vorliegen). Ohne Ursachenangabe, solange der Versorger keine nennt.","inputs":[{"name":"city","type":"string","required":false,"description":"optional: slug, Ortsname oder PLZ"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":77},{"name":"get_legal_limits","title":"Grenzwerte der Trinkwasserverordnung","description":"Die heute geltenden Grenzwerte der deutschen Trinkwasserverordnung (TrinkwV 2023) mit Einheit, Art (Grenzwert oder Indikatorparameter) und Fundstelle.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":50}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T01:02:27.000Z","track":"remote","endpoint":"https://trinkwassermonitor.ink/api/v1/mcp","declaredUrl":null,"truncated":false,"tls":{"outcome":"valid","label":"Valid","version":"TLS 1.3","cipherSuite":"TLS_AES_128_GCM_SHA256","chainError":null,"certificates":[{"subject":"CN=trinkwassermonitor.ink","issuer":"CN=YE2,O=Let's Encrypt,C=US","notBefore":"2026-10-29T05:45:46Z","notAfter":"2027-01-27T05:45:45Z","keyType":"ECDSA","keyBits":256,"isCa":false},{"subject":"CN=YE2,O=Let's Encrypt,C=US","issuer":"CN=Root YE,O=ISRG,C=US","notBefore":"2025-09-03T00:00:00Z","notAfter":"2028-09-02T23:59:59Z","keyType":"ECDSA","keyBits":384,"isCa":true},{"subject":"CN=Root YE,O=ISRG,C=US","issuer":"CN=ISRG Root X2,O=Internet Security Research Group,C=US","notBefore":"2026-05-13T00:00:00Z","notAfter":"2032-09-02T23:59:59Z","keyType":"ECDSA","keyBits":384,"isCa":true},{"subject":"CN=ISRG Root X2,O=Internet Security Research Group,C=US","issuer":"CN=ISRG Root X1,O=Internet Security Research Group,C=US","notBefore":"2026-05-13T00:00:00Z","notAfter":"2032-09-02T23:59:59Z","keyType":"ECDSA","keyBits":384,"isCa":true}]},"dnssec":{"result":"insecure","label":"Not signed","name":"trinkwassermonitor.ink.","steps":[{"zone":".","outcome":"verified","label":"Verified"},{"zone":"ink.","outcome":"verified","label":"Verified"},{"zone":"trinkwassermonitor.ink.","outcome":"insecure_proven","label":"Unsigned (proven)"}]},"auth":{"outcome":"none","label":"No authorisation required","gate":null,"gateLabel":null,"status":200,"authorizationServers":[]},"httpsRedirect":{"outcome":"https_enforced","label":"HTTPS enforced","status":301},"transports":[{"transport":"streamable-http","outcome":"verified","label":"Verified","status":200,"followed":false}],"provenance":null,"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":null},"mismatches":[],"changelog":{"trackingSince":"2026-10-18","recent":[{"id":"chg_01a1a414-616c-7e19-a8f0-970572da4794","kind":"check.verdict","summary":"Schema quality (pass → fail)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/ink-trinkwassermonitor-trinkwasser/api-v1-mcp#chg-chg_01a1a414-616c-7e19-a8f0-970572da4794"},{"id":"chg_01a1a414-616e-7101-8b2d-353ec198dfc4","kind":"tool.description_changed","summary":"Tool “compare_cities” rewrote its description, which is the text the model reads","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/ink-trinkwassermonitor-trinkwasser/api-v1-mcp#chg-chg_01a1a414-616e-7101-8b2d-353ec198dfc4"},{"id":"chg_01a1a414-616e-7d83-bc38-5770791ed1ea","kind":"tool.description_changed","summary":"Tool “get_changes” rewrote its description, which is the text the model reads","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/ink-trinkwassermonitor-trinkwasser/api-v1-mcp#chg-chg_01a1a414-616e-7d83-bc38-5770791ed1ea"},{"id":"chg_01a1a414-616f-75a0-a161-8e050e97394c","kind":"tool.description_changed","summary":"Tool “get_water_quality” rewrote its description, which is the text the model reads","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/ink-trinkwassermonitor-trinkwasser/api-v1-mcp#chg-chg_01a1a414-616f-75a0-a161-8e050e97394c"},{"id":"chg_01a1a414-616f-7bb3-9bfc-f6557bc4ea3a","kind":"server.instructions_changed","summary":"The server rewrote its instructions, which are the text every model session reads","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/ink-trinkwassermonitor-trinkwasser/api-v1-mcp#chg-chg_01a1a414-616f-7bb3-9bfc-f6557bc4ea3a"},{"id":"chg_01a1a414-6170-71f1-bf22-53b95e354305","kind":"score.total_changed","summary":"Trust score (74 → 75)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/ink-trinkwassermonitor-trinkwasser/api-v1-mcp#chg-chg_01a1a414-6170-71f1-bf22-53b95e354305"},{"id":"chg_01a199c7-2b08-7777-be84-3bc1da159ebd","kind":"score.total_changed","summary":"Trust score (73 → 74)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/ink-trinkwassermonitor-trinkwasser/api-v1-mcp#chg-chg_01a199c7-2b08-7777-be84-3bc1da159ebd"},{"id":"chg_01a18f7a-33bc-7bba-8a50-4c5161da648a","kind":"score.total_changed","summary":"Trust score (72 → 73)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/ink-trinkwassermonitor-trinkwasser/api-v1-mcp#chg-chg_01a18f7a-33bc-7bba-8a50-4c5161da648a"},{"id":"chg_01a1852e-49ed-7951-a08f-3a830aa9a9ed","kind":"score.total_changed","summary":"Trust score (71 → 72)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-29","url":"https://verifymcp.io/servers/ink-trinkwassermonitor-trinkwasser/api-v1-mcp#chg-chg_01a1852e-49ed-7951-a08f-3a830aa9a9ed"},{"id":"chg_01a17ae1-b1b3-7cd1-bb9c-14670b7c3490","kind":"score.total_changed","summary":"Trust score (70 → 71)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-27","url":"https://verifymcp.io/servers/ink-trinkwassermonitor-trinkwasser/api-v1-mcp#chg-chg_01a17ae1-b1b3-7cd1-bb9c-14670b7c3490"},{"id":"chg_01a16b6e-4931-7283-8185-487c64c33be8","kind":"score.total_changed","summary":"Trust score (69 → 70)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-24","url":"https://verifymcp.io/servers/ink-trinkwassermonitor-trinkwasser/api-v1-mcp#chg-chg_01a16b6e-4931-7283-8185-487c64c33be8"},{"id":"chg_01a16120-fb4a-71a6-92f2-d3790cef546e","kind":"score.total_changed","summary":"Trust score (68 → 69)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-22","url":"https://verifymcp.io/servers/ink-trinkwassermonitor-trinkwasser/api-v1-mcp#chg-chg_01a16120-fb4a-71a6-92f2-d3790cef546e"},{"id":"chg_01a156d3-3cf4-7f28-bfcd-b2361d5beece","kind":"score.total_changed","summary":"Trust score (67 → 68)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-20","url":"https://verifymcp.io/servers/ink-trinkwassermonitor-trinkwasser/api-v1-mcp#chg-chg_01a156d3-3cf4-7f28-bfcd-b2361d5beece"},{"id":"chg_01a151ac-e36f-7117-9e79-cc7de1c2d89b","kind":"check.reverified","summary":"Stability (unverified → 0.03)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-19","url":"https://verifymcp.io/servers/ink-trinkwassermonitor-trinkwasser/api-v1-mcp#chg-chg_01a151ac-e36f-7117-9e79-cc7de1c2d89b"},{"id":"chg_01a14f50-4b5c-7e39-9dda-b7b3021fabcb","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-18","url":"https://verifymcp.io/servers/ink-trinkwassermonitor-trinkwasser/api-v1-mcp#chg-chg_01a14f50-4b5c-7e39-9dda-b7b3021fabcb"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/ink-trinkwassermonitor-trinkwasser/api-v1-mcp/changelog.json"},"links":{"html":"https://verifymcp.io/servers/ink-trinkwassermonitor-trinkwasser/api-v1-mcp","markdown":"https://verifymcp.io/servers/ink-trinkwassermonitor-trinkwasser/api-v1-mcp.md","changelogJson":"https://verifymcp.io/servers/ink-trinkwassermonitor-trinkwasser/api-v1-mcp/changelog.json","changelogRss":"https://verifymcp.io/servers/ink-trinkwassermonitor-trinkwasser/api-v1-mcp.xml","external":[{"label":"Remote endpoint","href":"https://trinkwassermonitor.ink/api/v1/mcp"},{"label":"Website","href":"https://trinkwassermonitor.ink/downloads/#mcp"}]}}