{"$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-06T18:09:08.696Z","url":"https://verifymcp.io/servers/nymrel-nymrel/mcp","markdownUrl":"https://verifymcp.io/servers/nymrel-nymrel/mcp.md","server":{"slug":"nymrel-nymrel","name":"Nymrel","registryName":"io.github.nymrel/nymrel","description":"Four public utilities plus seven OAuth-protected Remote read tools for paired Nymrel devices.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"mcp","type":"remote","identifier":"https://mcp.nymrel.com/mcp","withdrawn":false,"url":"https://verifymcp.io/servers/nymrel-nymrel/mcp","version":"1.4.0","transport":null,"scoredAt":"2026-11-06T06:45:10.707Z"},"score":{"total":75,"tier":"medium","status":"scored","weekDelta":3,"history":[{"date":"2026-11-06","total":75},{"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},{"date":"2026-10-31","total":73},{"date":"2026-10-30","total":72}]},"categories":[{"name":"Endpoint Security","score":83,"verdict":"partial","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 is configured correctly; the domain's records validate against the full chain to the root."],"codes":[{"code":"tls.valid","args":{}},{"code":"auth.none_no_destructive","args":{}},{"code":"https.enforced","args":{}},{"code":"headers.hsts_present","args":{}},{"code":"dnssec.validated","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":68,"verdict":"fail","reasons":["AI-judged instruction clarity (good).","Context-footprint check failed: tool/resource definitions use about 1281 tokens (~116/item across 11 items; 11 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":"116","items":"11","tools":"11","tokens":"1281","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":23,"verdict":"partial","reasons":["Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"7"}}]},{"name":"Tool Coverage","score":83,"verdict":"partial","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","40% of tool parameters carry a description.","Structured output schemas are declared (36% of tools); any adoption earns full credit."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"40"}},{"code":"toolquality.output_present","args":{"pct":"36"}}]},{"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 11 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 11 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":"11"}},{"code":"toolsafety.manipulation_clean","args":{"units":"11","judged":"11"}}]},{"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":[],"malware":[],"components":[{"slug":"mcp","type":"remote","identifier":"https://mcp.nymrel.com/mcp","withdrawn":false,"score":75,"current":true,"url":"https://verifymcp.io/servers/nymrel-nymrel/mcp","markdownUrl":"https://verifymcp.io/servers/nymrel-nymrel/mcp.md"}],"facts":[{"label":"Endpoint","value":"https://mcp.nymrel.com/mcp"},{"label":"Transports","value":"streamable-http"},{"label":"Auth","value":"none"},{"label":"Version","value":"1.4.0"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"nymrel_audit_website","title":"Audit website discoverability","description":"Audit one public website for SEO, schema, and AI discoverability.\n\nReturns the score, grade, discoverability status, detected schema types\nand recommendations supplied by the audit. Results may contain only an\naggregate summary; additional per-check evidence may be included.\n\nReport robots.txt, sitemap.xml, llms.txt or AI-crawler checks only when\ntheir evidence is present in the result; absent checks are unreported,\nnot proven by an aggregate score or PASS. Preserve unmeasured checks\nand empty recommendations without inventing findings. This is not a\nranking guarantee or a security, legal-compliance or crawler-access\ncertification.","inputs":[{"name":"url","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":148},{"name":"nymrel_golf_bag_gap","title":"Analyse golf bag gaps","description":"Analyse carry-distance gaps for a structured list of golf clubs.\n\nEvery club needs a ``name`` and its measured ``carry_distance_yards``;\n``loft_degrees`` is optional. Pass 1 to 14 clubs with unique names. The\nupstream rejects any other key, so send only these three.","inputs":[{"name":"clubs","type":"array","required":true,"description":null}],"outputs":[],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":85},{"name":"nymrel_find_domain","title":"Find domain names","description":"Suggest domain names and check each one against public registry records.\n\nA name is only reported available when the registry clearly says it is free.\nWhen the lookup is inconclusive `availability_checked` is false and\n`available` is false, so read that as \"not confirmed free\" rather than\n\"already taken\" - some TLDs have no registry service to ask. Confirm at a\nregistrar before buying.\n\n`brandability_score` is an opinion about the string, not a claim about how\nthe name will perform; `brandability_factors` reports what it was computed\nfrom so you can weigh it yourself.","inputs":[{"name":"keyword_or_concept","type":"string","required":true,"description":null},{"name":"tlds","type":null,"required":false,"description":"Up to 6 TLDs, each written with its leading dot - \".com\", not \"com\". The upstream enforces this with a regex and rejects the request otherwise. Defaults to .com, .ai, .app and .dev."}],"outputs":[],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":203},{"name":"nymrel_social_clip_score","title":"Measure a short-video hook","description":"Measure what the opening of a short-video transcript actually does.\n\nReturns each measured signal - opening word count, whether it opens on a\nhook pattern, whether it addresses the viewer, curiosity signals, whether\nthe total word count sits in the platform's range - plus `hook_score`, a\n0-100 rollup of exactly those signals, and suggested edits.\n\n`target_platform` accepts `tiktok`, `instagram_reels`, `youtube_shorts`,\nor `x`. The `reels` and `shorts` aliases normalize to their corresponding\ncanonical IDs, which the result echoes.\n\nEvery figure describes the text the caller supplied. This does not estimate\nreach, views, retention or virality; those are outcomes in the world that\nthis tool never observes. Read `signals` to see what moved the score.","inputs":[{"name":"target_platform","type":"string","required":false,"description":null},{"name":"transcript_text","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":195},{"name":"nymrel_remote_list_devices","title":"List remote devices","description":"Use this when the user wants to see paired Nymrel Remote devices and current reachability before working with one.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":35},{"name":"nymrel_remote_read_file","title":"read file","description":"Use this when the user explicitly wants Nymrel Remote to read a UTF-8 text file with optional line pagination. Select the target with the optional device argument.","inputs":[{"name":"device","type":"string","required":false,"description":"Paired device id or exact device name. Omit only when exactly one eligible device is available."},{"name":"length","type":"integer","required":false,"description":null},{"name":"offset","type":"integer","required":false,"description":"0-based start line; negative values read from the tail."},{"name":"path","type":"string","required":true,"description":"Absolute path or path relative to the configured working directory."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":114},{"name":"nymrel_remote_list_directory","title":"list directory","description":"Use this when the user explicitly wants Nymrel Remote to list a directory tree with a bounded recursion depth. Select the target with the optional device argument.","inputs":[{"name":"depth","type":"integer","required":false,"description":null},{"name":"device","type":"string","required":false,"description":"Paired device id or exact device name. Omit only when exactly one eligible device is available."},{"name":"path","type":"string","required":true,"description":"Absolute path or path relative to the configured working directory."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":93},{"name":"nymrel_remote_get_file_info","title":"get file info","description":"Use this when the user explicitly wants Nymrel Remote to return metadata for a file or directory. Select the target with the optional device argument.","inputs":[{"name":"device","type":"string","required":false,"description":"Paired device id or exact device name. Omit only when exactly one eligible device is available."},{"name":"path","type":"string","required":true,"description":"Absolute path or path relative to the configured working directory."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":85},{"name":"nymrel_remote_search_files","title":"search files","description":"Use this when the user explicitly wants Nymrel Remote to search file and directory names below an allowed path. Select the target with the optional device argument.","inputs":[{"name":"device","type":"string","required":false,"description":"Paired device id or exact device name. Omit only when exactly one eligible device is available."},{"name":"ignoreCase","type":"boolean","required":false,"description":null},{"name":"maxDepth","type":"integer","required":false,"description":null},{"name":"maxResults","type":"integer","required":false,"description":null},{"name":"path","type":"string","required":true,"description":"Absolute path or path relative to the configured working directory."},{"name":"pattern","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":117},{"name":"nymrel_remote_search_content","title":"search content","description":"Use this when the user explicitly wants Nymrel Remote to search UTF-8 file contents below an allowed path. Select the target with the optional device argument.","inputs":[{"name":"device","type":"string","required":false,"description":"Paired device id or exact device name. Omit only when exactly one eligible device is available."},{"name":"filePattern","type":"string","required":false,"description":null},{"name":"ignoreCase","type":"boolean","required":false,"description":null},{"name":"literalSearch","type":"boolean","required":false,"description":null},{"name":"maxDepth","type":"integer","required":false,"description":null},{"name":"maxResults","type":"integer","required":false,"description":null},{"name":"path","type":"string","required":true,"description":"Absolute path or path relative to the configured working directory."},{"name":"pattern","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":134},{"name":"nymrel_remote_get_read_result","title":"Get remote read result","description":"Retrieve the result of your pending Nymrel Remote read using its callId. If a file inspection returns pending, use this tool instead of submitting that inspection again. It never starts a new device operation. If still pending, wait briefly before checking again.","inputs":[{"name":"callId","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":72}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-06T06:45:10.000Z","track":"remote","endpoint":"https://mcp.nymrel.com/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=mcp.nymrel.com","issuer":"CN=YR2,O=Let's Encrypt,C=US","notBefore":"2026-10-14T11:04:49Z","notAfter":"2027-01-12T11:04:48Z","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":"secure","label":"Secure","name":"mcp.nymrel.com.","steps":[{"zone":".","outcome":"verified","label":"Verified"},{"zone":"com.","outcome":"verified","label":"Verified"},{"zone":"nymrel.com.","outcome":"verified","label":"Verified"},{"zone":"mcp.nymrel.com.","outcome":"verified","label":"Verified"}]},"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-10-30","recent":[{"id":"chg_01a1af9a-a7c6-7d0b-b53d-e764ade54fa8","kind":"score.rubric_changed","summary":"We updated how we score, so this day's move reflects our rubric, not a change to the server","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-06","url":"https://verifymcp.io/servers/nymrel-nymrel/mcp#chg-chg_01a1af9a-a7c6-7d0b-b53d-e764ade54fa8"},{"id":"chg_01a1aa76-9deb-7ee5-a485-f9942871786f","kind":"score.total_changed","summary":"Trust score (74 → 75)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/nymrel-nymrel/mcp#chg-chg_01a1aa76-9deb-7ee5-a485-f9942871786f"},{"id":"chg_01a1a027-e122-76a6-809f-4e7e6be7a36e","kind":"score.total_changed","summary":"Trust score (73 → 74)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/nymrel-nymrel/mcp#chg-chg_01a1a027-e122-76a6-809f-4e7e6be7a36e"},{"id":"chg_01a190b0-93de-7354-a1f2-2f716faddcc1","kind":"check.reverified","summary":"Stability (unverified → 0.03)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/nymrel-nymrel/mcp#chg-chg_01a190b0-93de-7354-a1f2-2f716faddcc1"},{"id":"chg_01a190b0-93e0-7917-86cb-d8b1db0d30a8","kind":"score.total_changed","summary":"Trust score (72 → 73)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/nymrel-nymrel/mcp#chg-chg_01a190b0-93e0-7917-86cb-d8b1db0d30a8"},{"id":"chg_01a18a72-7b00-7c3c-8d4c-00cd3a4c2c65","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-30","url":"https://verifymcp.io/servers/nymrel-nymrel/mcp#chg-chg_01a18a72-7b00-7c3c-8d4c-00cd3a4c2c65"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/nymrel-nymrel/mcp/changelog.json"},"links":{"html":"https://verifymcp.io/servers/nymrel-nymrel/mcp","markdown":"https://verifymcp.io/servers/nymrel-nymrel/mcp.md","changelogJson":"https://verifymcp.io/servers/nymrel-nymrel/mcp/changelog.json","changelogRss":"https://verifymcp.io/servers/nymrel-nymrel/mcp.xml","external":[{"label":"Remote endpoint","href":"https://mcp.nymrel.com/mcp"},{"label":"Repository","href":"https://github.com/nymrel/nymrel-plugin"},{"label":"Website","href":"https://nymrel.com/"}]}}