{"$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-05T15:58:19.614Z","url":"https://verifymcp.io/servers/com-weatherwithattitude-words/api-words-claude-mcp","markdownUrl":"https://verifymcp.io/servers/com-weatherwithattitude-words/api-words-claude-mcp.md","server":{"slug":"com-weatherwithattitude-words","name":"Words With Attitude","registryName":"com.weatherwithattitude/words","description":"A daily word puzzle: guess a cheeky British insult or a grim weather word in six tries. Free.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"api-words-claude-mcp","type":"remote","identifier":"https://www.weatherwithattitude.com/api/words/claude/mcp?via=mcp-registry","withdrawn":false,"url":"https://verifymcp.io/servers/com-weatherwithattitude-words/api-words-claude-mcp","version":"1.1.2","transport":null,"scoredAt":"2026-11-05T02:37:48.770Z"},"score":{"total":75,"tier":"medium","status":"scored","weekDelta":null,"history":[{"date":"2026-11-05","total":75},{"date":"2026-11-04","total":74},{"date":"2026-11-03","total":74},{"date":"2026-11-02","total":73},{"date":"2026-11-01","total":73}]},"categories":[{"name":"Endpoint Security","score":80,"verdict":"fail","reasons":["The endpoint's TLS certificate is valid, in date, and uses a strong key.","No authorisation is required to call this server. Nothing on it is marked destructive, but we can't show that an anonymous caller can only read: full credit needs the server to list at least one tool and every tool to be verifiably read-only. We use a best-effort check of tool names and descriptions to tell read-only tools from tools that change things, so some genuinely read-only tools may not get full credit. Names that start with a read verb (get, list, read, search and similar) and accurate readOnlyHint annotations help. Meet that to earn full credit, or require authorisation.","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_no_destructive","args":{}},{"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":77,"verdict":"fail","reasons":["100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).","AI-judged instruction clarity (good).","Context-footprint check failed: tool/resource definitions use about 895 tokens (~149/item across 6 items; 4 tools + 2 resources), over budget; trim descriptions and params.","Usage-examples check failed: none of the tools include examples."],"codes":[{"code":"schema.descriptions","args":{"pct":"100"}},{"code":"schema.ai_quality","args":{"band":"good"}},{"code":"schema.footprint_heavy","args":{"avg":"149","items":"6","tools":"4","tokens":"895","resources":"2"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":13,"verdict":"partial","reasons":["Stability observed for 4 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"4"}}]},{"name":"Tool Coverage","score":90,"verdict":"partial","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","70% of tool parameters carry a description."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"70"}}]},{"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 4 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 5 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":"4"}},{"code":"toolsafety.manipulation_clean","args":{"units":"5","judged":"5"}}]},{"name":"Capabilities","score":100,"verdict":"pass","reasons":["Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.","Supports UI / widget rendering."],"codes":[{"code":"protocol.supported","args":{"latest":"2026-07-28","version":"2025-11-25"}},{"code":"cap.ui_supported","args":{}}]}],"inconclusive":[],"malware":[],"components":[{"slug":"api-words-claude-mcp","type":"remote","identifier":"https://www.weatherwithattitude.com/api/words/claude/mcp?via=mcp-registry","withdrawn":false,"score":75,"current":true,"url":"https://verifymcp.io/servers/com-weatherwithattitude-words/api-words-claude-mcp","markdownUrl":"https://verifymcp.io/servers/com-weatherwithattitude-words/api-words-claude-mcp.md"}],"facts":[{"label":"Endpoint","value":"https://www.weatherwithattitude.com/api/words/claude/mcp?via=mcp-registry"},{"label":"Transports","value":"streamable-http"},{"label":"Auth","value":"none"},{"label":"Version","value":"1.1.2"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"start_daily_puzzle","title":"Start today's word puzzle","description":"Use this when someone wants to play today's Words With Attitude puzzle: guess a hidden cheeky word (a mild British insult or a grim weather word) in six tries. Returns the puzzle number, the word length and an empty board, never the answer. Pass the player's time zone when it is known so the puzzle follows their local date; without it the puzzle follows the UTC date. After this, each word the player guesses is checked with submit_guess.","inputs":[{"name":"conversation_id","type":"string","required":false,"description":"Set by the Words card so its moves count in the same anonymous usage stats as the chat. Leave it out."},{"name":"time_zone","type":"string","required":false,"description":"The player's IANA time zone, for example \"Europe/London\" or \"America/New_York\". Picks the puzzle for their local date. Omit if unknown."},{"name":"utc_offset_minutes","type":"integer","required":false,"description":"The player's UTC offset in minutes (60 for UTC+1, -300 for UTC-5), used only when the time zone is unknown. Omit both to use UTC."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":217},{"name":"submit_guess","title":"Check a guess","description":"Use this for each word the player guesses in a Words With Attitude puzzle started with start_daily_puzzle. Send the puzzle number, every earlier guess in this game in order, and the new guess. Returns every guess marked letter by letter (right letter in the right place, right letter in the wrong place, or not in the word) and a short comment on the guess. A guess has to be letters only and the same length as the answer; a guess that is not is returned with a reason and does not count. The answer is returned only when the game ends: a correct guess or the sixth miss. Nothing is stored on the server.","inputs":[{"name":"conversation_id","type":"string","required":false,"description":"Set by the Words card so its moves count in the same anonymous usage stats as the chat. Leave it out."},{"name":"guess","type":"string","required":true,"description":"The word the player just guessed. Letters only; spaces are ignored."},{"name":"previous_guesses","type":"array","required":false,"description":"Every earlier guess in this game, oldest first. Empty or omitted before the first guess."},{"name":"puzzle_number","type":"integer","required":true,"description":"The puzzle number returned by start_daily_puzzle."},{"name":"time_zone","type":"string","required":false,"description":"The player's IANA time zone, for example \"Europe/London\" or \"America/New_York\". Picks the puzzle for their local date. Omit if unknown."},{"name":"utc_offset_minutes","type":"integer","required":false,"description":"The player's UTC offset in minutes (60 for UTC+1, -300 for UTC-5), used only when the time zone is unknown. Omit both to use UTC."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":318},{"name":"give_up","title":"Give up and show the word","description":"Use this only when the player asks to give up on a Words With Attitude puzzle. Ends the game as a loss and returns the answer, the board and a spoiler-free share grid. Send the puzzle number and every guess made so far.","inputs":[{"name":"conversation_id","type":"string","required":false,"description":"Set by the Words card so its moves count in the same anonymous usage stats as the chat. Leave it out."},{"name":"previous_guesses","type":"array","required":false,"description":"Every earlier guess in this game, oldest first. Empty or omitted before the first guess."},{"name":"puzzle_number","type":"integer","required":true,"description":"The puzzle number returned by start_daily_puzzle."},{"name":"time_zone","type":"string","required":false,"description":"The player's IANA time zone, for example \"Europe/London\" or \"America/New_York\". Picks the puzzle for their local date. Omit if unknown."},{"name":"utc_offset_minutes","type":"integer","required":false,"description":"The player's UTC offset in minutes (60 for UTC+1, -300 for UTC-5), used only when the time zone is unknown. Omit both to use UTC."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":215},{"name":"record_card_event","title":"Record card usage","description":"Used only by the Words card, never by the model, to record that a result was shared or a link was opened. Anonymous: no guesses, answer, location or account identifier.","inputs":[{"name":"attitude_level","type":null,"required":false,"description":null},{"name":"conversation_id","type":"string","required":false,"description":null},{"name":"event","type":"string","required":true,"description":null},{"name":"link","type":"string","required":false,"description":null},{"name":"puzzle_number","type":"integer","required":false,"description":null},{"name":"tool","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":89}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T02:37:48.000Z","track":"remote","endpoint":"https://www.weatherwithattitude.com/api/words/claude/mcp?via=mcp-registry","declaredUrl":null,"truncated":false,"tls":{"outcome":"valid","label":"Valid","version":"TLS 1.3","cipherSuite":"TLS_AES_128_GCM_SHA256","chainError":null,"certificates":[{"subject":"CN=*.weatherwithattitude.com","issuer":"CN=YR2,O=Let's Encrypt,C=US","notBefore":"2026-10-21T12:04:21Z","notAfter":"2027-01-19T12:04:20Z","keyType":"RSA","keyBits":2048,"isCa":false},{"subject":"CN=YR2,O=Let's Encrypt,C=US","issuer":"CN=Root YR,O=ISRG,C=US","notBefore":"2025-09-03T00:00:00Z","notAfter":"2028-09-02T23:59:59Z","keyType":"RSA","keyBits":2048,"isCa":true},{"subject":"CN=Root YR,O=ISRG,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":"RSA","keyBits":4096,"isCa":true}]},"dnssec":{"result":"insecure","label":"Not signed","name":"www.weatherwithattitude.com.","steps":[{"zone":".","outcome":"verified","label":"Verified"},{"zone":"com.","outcome":"verified","label":"Verified"},{"zone":"weatherwithattitude.com.","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":308},"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-11-01","recent":[{"id":"chg_01a1a991-d375-7904-9cb4-590213461fc9","kind":"resource.uri_changed","summary":"Resource “Words With Attitude puzzle card” now points somewhere else (ui://wordswithattitude/puzzle-v1.2.0.html → ui://wordswithattitude/puzzle-v1.1.0.html)","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/com-weatherwithattitude-words/api-words-claude-mcp#chg-chg_01a1a991-d375-7904-9cb4-590213461fc9"},{"id":"chg_01a1a991-d376-75af-ac57-d0c0ed7c409f","kind":"score.total_changed","summary":"Trust score (74 → 75)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/com-weatherwithattitude-words/api-words-claude-mcp#chg-chg_01a1a991-d376-75af-ac57-d0c0ed7c409f"},{"id":"chg_01a1a46b-131f-7a27-9ebd-acb4df73dd79","kind":"resource.uri_changed","summary":"Resource “Words With Attitude puzzle card” now points somewhere else (ui://wordswithattitude/puzzle-v1.2.0.html → ui://wordswithattitude/puzzle-v1.1.0.html)","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/com-weatherwithattitude-words/api-words-claude-mcp#chg-chg_01a1a46b-131f-7a27-9ebd-acb4df73dd79"},{"id":"chg_01a19f43-5de6-75dc-a252-f4906c43b0f6","kind":"resource.uri_changed","summary":"Resource “Words With Attitude puzzle card” now points somewhere else (ui://wordswithattitude/puzzle-v1.2.0.html → ui://wordswithattitude/puzzle-v1.1.0.html)","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/com-weatherwithattitude-words/api-words-claude-mcp#chg-chg_01a19f43-5de6-75dc-a252-f4906c43b0f6"},{"id":"chg_01a19f43-5de7-7717-a96d-3d425fc74e7a","kind":"score.total_changed","summary":"Trust score (73 → 74)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/com-weatherwithattitude-words/api-words-claude-mcp#chg-chg_01a19f43-5de7-7717-a96d-3d425fc74e7a"},{"id":"chg_01a19a1d-419b-76cf-b665-bcd0dcae0add","kind":"check.reverified","summary":"Stability (unverified → 0.03)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/com-weatherwithattitude-words/api-words-claude-mcp#chg-chg_01a19a1d-419b-76cf-b665-bcd0dcae0add"},{"id":"chg_01a19a1d-419b-7da2-a967-54ac30661645","kind":"resource.uri_changed","summary":"Resource “Words With Attitude puzzle card” now points somewhere else (ui://wordswithattitude/puzzle-v1.2.0.html → ui://wordswithattitude/puzzle-v1.1.0.html)","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/com-weatherwithattitude-words/api-words-claude-mcp#chg-chg_01a19a1d-419b-7da2-a967-54ac30661645"},{"id":"chg_01a194c1-07b5-7b92-a3a5-fd4b45432d3a","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/com-weatherwithattitude-words/api-words-claude-mcp#chg-chg_01a194c1-07b5-7b92-a3a5-fd4b45432d3a"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/com-weatherwithattitude-words/api-words-claude-mcp/changelog.json"},"links":{"html":"https://verifymcp.io/servers/com-weatherwithattitude-words/api-words-claude-mcp","markdown":"https://verifymcp.io/servers/com-weatherwithattitude-words/api-words-claude-mcp.md","changelogJson":"https://verifymcp.io/servers/com-weatherwithattitude-words/api-words-claude-mcp/changelog.json","changelogRss":"https://verifymcp.io/servers/com-weatherwithattitude-words/api-words-claude-mcp.xml","external":[{"label":"Remote endpoint","href":"https://www.weatherwithattitude.com/api/words/claude/mcp?via=mcp-registry"},{"label":"Website","href":"https://www.weatherwithattitude.com/connectors/words"}]}}