{"$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-05T23:38:02.146Z","url":"https://verifymcp.io/servers/com-stringspec-mcp/stringspec","markdownUrl":"https://verifymcp.io/servers/com-stringspec-mcp/stringspec.md","server":{"slug":"com-stringspec-mcp","name":"StringSpec","registryName":"com.stringspec/mcp","description":"Lab measurements of nearly 800 tennis strings: search, compare and get recommendations.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"stringspec","type":"remote","identifier":"https://stringspec.com/mcp","withdrawn":false,"url":"https://verifymcp.io/servers/com-stringspec-mcp/stringspec","version":"1.0.0","transport":null,"scoredAt":"2026-11-05T06:09:31.499Z"},"score":{"total":87,"tier":"high trust","status":"scored","weekDelta":3,"history":[{"date":"2026-11-05","total":87},{"date":"2026-11-04","total":87},{"date":"2026-11-03","total":86},{"date":"2026-11-02","total":86},{"date":"2026-11-01","total":85},{"date":"2026-10-31","total":85},{"date":"2026-10-30","total":84},{"date":"2026-10-29","total":84},{"date":"2026-10-28","total":84},{"date":"2026-10-27","total":83},{"date":"2026-10-26","total":83},{"date":"2026-10-25","total":80},{"date":"2026-10-24","total":80},{"date":"2026-10-23","total":79},{"date":"2026-10-22","total":79},{"date":"2026-10-21","total":78},{"date":"2026-10-20","total":78},{"date":"2026-10-19","total":77},{"date":"2026-10-18","total":77},{"date":"2026-10-17","total":76},{"date":"2026-10-16","total":76},{"date":"2026-10-15","total":75},{"date":"2026-10-14","total":75},{"date":"2026-10-13","total":75},{"date":"2026-10-12","total":74},{"date":"2026-10-10","total":73},{"date":"2026-10-09","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":79,"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 (excellent).","Context-footprint check failed: tool/resource definitions use about 1021 tokens (~204/item across 5 items; 4 tools + 1 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":"excellent"}},{"code":"schema.footprint_heavy","args":{"avg":"204","items":"5","tools":"4","tokens":"1021","resources":"1"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":93,"verdict":"partial","reasons":["Stability observed for 28 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"28"}}]},{"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 4 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 6 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":"6","judged":"6"}}]},{"name":"Capabilities","score":100,"verdict":"pass","reasons":["Implements a current MCP spec version (2026-07-28).","Supports UI / widget rendering."],"codes":[{"code":"protocol.current","args":{"version":"2026-07-28"}},{"code":"cap.ui_supported","args":{}}]}],"inconclusive":[],"malware":[],"components":[{"slug":"stringspec","type":"remote","identifier":"https://stringspec.com/mcp","withdrawn":false,"score":87,"current":true,"url":"https://verifymcp.io/servers/com-stringspec-mcp/stringspec","markdownUrl":"https://verifymcp.io/servers/com-stringspec-mcp/stringspec.md"}],"facts":[{"label":"Endpoint","value":"https://stringspec.com/mcp"},{"label":"Transports","value":"streamable-http"},{"label":"Auth","value":"none"},{"label":"Version","value":"1.0.0"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"search_strings","title":"Search tennis strings","description":"Search 791 lab-measured tennis strings by name, brand, material and gauge, sorted by a measurement or by price. Each result carries stiffness (lb/in), tension loss (%), energy return (%), spin potential, ball bite and string friction, each with its percentile in the database, plus the current retail price, a buy link and the StringSpec page. Returns at most 10 strings; narrow the filters rather than asking for more.","inputs":[{"name":"brand","type":"string","required":false,"description":"Brand name, e.g. \"Babolat\", \"Luxilon\", \"Solinco\"."},{"name":"gauge","type":"string","required":false,"description":"Gauge label. A higher number is thinner, and an \"L\" gauge is thinner than its base (17L is thinner than 17)."},{"name":"include_discontinued","type":"boolean","required":false,"description":"Include strings no longer sold (default false)."},{"name":"limit","type":"integer","required":false,"description":"How many to return (default 10)."},{"name":"material","type":"string","required":false,"description":"Construction family. Polyester is the stiff spin-friendly monofilament; Nylon covers synthetic gut and multifilaments; Gut is natural gut."},{"name":"max_price_usd","type":"number","required":false,"description":"Only strings with a retail set price at or under this, in USD. Strings without a price are excluded when this is set."},{"name":"query","type":"string","required":false,"description":"Words from the string's name, e.g. \"alu power\", \"hyper-g\", \"rpm blast\"."},{"name":"sort","type":"string","required":false,"description":"popular (a retailer's units-sold order, default), softest, stiffest, most_spin, best_tension_hold, most_power (energy return), cheapest."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":326},{"name":"get_string","title":"Get one tennis string","description":"Everything StringSpec has on one string, found by name (misspellings and missing gauges are fine): every measurement with its database percentile, elongation at 40, 51 and 62 lb, an estimated playable life, a tension adjustment versus the player's usual, how it ranks for each playing need (spin, comfort, control, power, tension hold, durability, feel), the closest alternatives, the retail price and a buy link. When the name matches several strings it returns the best match and lists the others.","inputs":[{"name":"name","type":"string","required":true,"description":"The string's name, e.g. \"Luxilon ALU Power 16L\" or \"RPM Blast\"."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":142},{"name":"compare_strings","title":"Compare tennis strings","description":"Side-by-side measurements, percentiles, prices and buy links for 2 or 3 strings by name, with the StringSpec comparison page when there are two.","inputs":[{"name":"names","type":"array","required":true,"description":"Two or three string names."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":53},{"name":"recommend_strings","title":"Recommend tennis strings for a player","description":"Rank the database for what a player wants, with StringSpec's string finder: one main need and an optional second one (spin (More spin and shape), comfort (Easier on my arm), control (More control, less launch), power (More power and depth), hold (Plays the same for longer), durable (Lasts longer before it breaks), feel (Best feel and touch)), adjusted for the racquet (string pattern, head size, frame stiffness) and with a material ruled out if asked. Returns a shortlist with a 0-100 fit, why each string fits, its price and buy link, and the finder link with the same answers filled in. For arm or elbow pain use need \"comfort\", and avoid \"poly\" when the player wants no polyester.","inputs":[{"name":"also","type":"string","required":false,"description":"An optional second need, weighted lower than the first."},{"name":"avoid","type":"string","required":false,"description":"gut (no natural gut), poly (no polyester), polyonly (polyester only)."},{"name":"frame","type":"string","required":false,"description":"Frame feel: flex (flexible, arm-friendly), avg, stiff (stiff and powerful)."},{"name":"head","type":"string","required":false,"description":"Head size: small (under 98 sq in), mid (98-100), large (100 and up)."},{"name":"limit","type":"integer","required":false,"description":"Shortlist length (default 8)."},{"name":"need","type":"string","required":true,"description":"The main thing the player wants."},{"name":"pattern","type":"string","required":false,"description":"String pattern: open (16x19 or more open) or dense (18x20 or tighter)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":317}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T06:09:31.000Z","track":"remote","endpoint":"https://stringspec.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=stringspec.com","issuer":"CN=WE1,O=Google Trust Services,C=US","notBefore":"2026-09-28T21:35:47Z","notAfter":"2026-12-27T22:35:33Z","keyType":"ECDSA","keyBits":256,"isCa":false},{"subject":"CN=WE1,O=Google Trust Services,C=US","issuer":"CN=GTS Root R4,O=Google Trust Services LLC,C=US","notBefore":"2023-12-13T09:00:00Z","notAfter":"2029-02-20T14:00:00Z","keyType":"ECDSA","keyBits":256,"isCa":true},{"subject":"CN=GTS Root R4,O=Google Trust Services LLC,C=US","issuer":"CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE","notBefore":"2023-11-15T03:43:21Z","notAfter":"2028-01-28T00:00:42Z","keyType":"ECDSA","keyBits":384,"isCa":true}]},"dnssec":{"result":"insecure","label":"Not signed","name":"stringspec.com.","steps":[{"zone":".","outcome":"verified","label":"Verified"},{"zone":"com.","outcome":"verified","label":"Verified"},{"zone":"stringspec.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":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-09","recent":[{"id":"chg_01a1a528-e600-7dc1-b3db-f288203c2b99","kind":"score.total_changed","summary":"Trust score (86 → 87)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/com-stringspec-mcp/stringspec#chg-chg_01a1a528-e600-7dc1-b3db-f288203c2b99"},{"id":"chg_01a19ada-930b-7499-8991-8b848e117770","kind":"score.total_changed","summary":"Trust score (85 → 86)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/com-stringspec-mcp/stringspec#chg-chg_01a19ada-930b-7499-8991-8b848e117770"},{"id":"chg_01a190ae-b6bd-73f9-841e-0142b8ddc180","kind":"score.total_changed","summary":"Trust score (84 → 85)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/com-stringspec-mcp/stringspec#chg-chg_01a190ae-b6bd-73f9-841e-0142b8ddc180"},{"id":"chg_01a1813b-17b7-75ed-b10c-127008daa3e7","kind":"score.total_changed","summary":"Trust score (83 → 84)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-28","url":"https://verifymcp.io/servers/com-stringspec-mcp/stringspec#chg-chg_01a1813b-17b7-75ed-b10c-127008daa3e7"},{"id":"chg_01a176ef-4445-7c8a-b2b5-fc0ddfc744de","kind":"check.measure","summary":"Schema quality (245 → 204)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-26","url":"https://verifymcp.io/servers/com-stringspec-mcp/stringspec#chg-chg_01a176ef-4445-7c8a-b2b5-fc0ddfc744de"},{"id":"chg_01a176ef-4446-78fb-9e40-1ece0295872e","kind":"check.appeared","summary":"First check of Capabilities (pass)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-26","url":"https://verifymcp.io/servers/com-stringspec-mcp/stringspec#chg-chg_01a176ef-4446-78fb-9e40-1ece0295872e"},{"id":"chg_01a176ef-4448-7cd8-a8e3-89735e14f683","kind":"check.appeared","summary":"First check of Schema quality (100)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-26","url":"https://verifymcp.io/servers/com-stringspec-mcp/stringspec#chg-chg_01a176ef-4448-7cd8-a8e3-89735e14f683"},{"id":"chg_01a176ef-4449-749e-92fc-7a65d8232ca9","kind":"resource.added","summary":"New resource “compare-v1”","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-26","url":"https://verifymcp.io/servers/com-stringspec-mcp/stringspec#chg-chg_01a176ef-4449-749e-92fc-7a65d8232ca9"},{"id":"chg_01a176ef-444a-79a0-aba8-d27041e845cd","kind":"capability.enabled","summary":"The server now declares the “resources” capability","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-26","url":"https://verifymcp.io/servers/com-stringspec-mcp/stringspec#chg-chg_01a176ef-444a-79a0-aba8-d27041e845cd"},{"id":"chg_01a176ef-444b-732a-b74c-197251f0d86f","kind":"score.total_changed","summary":"Trust score (80 → 83)","materiality":"functional","direction":"improvement","scoreDelta":3,"occurredOn":"2026-10-26","url":"https://verifymcp.io/servers/com-stringspec-mcp/stringspec#chg-chg_01a176ef-444b-732a-b74c-197251f0d86f"},{"id":"chg_01a16ca2-20d0-7831-a697-b93e2e09988e","kind":"score.total_changed","summary":"Trust score (79 → 80)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-24","url":"https://verifymcp.io/servers/com-stringspec-mcp/stringspec#chg-chg_01a16ca2-20d0-7831-a697-b93e2e09988e"},{"id":"chg_01a16254-00d2-73cd-9b06-5bd2b44da8c5","kind":"score.total_changed","summary":"Trust score (78 → 79)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-22","url":"https://verifymcp.io/servers/com-stringspec-mcp/stringspec#chg-chg_01a16254-00d2-73cd-9b06-5bd2b44da8c5"},{"id":"chg_01a15805-e709-7d7d-885e-6189ba1b71e0","kind":"score.total_changed","summary":"Trust score (77 → 78)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-20","url":"https://verifymcp.io/servers/com-stringspec-mcp/stringspec#chg-chg_01a15805-e709-7d7d-885e-6189ba1b71e0"},{"id":"chg_01a14dbe-6536-76b7-9f11-dad6c9f0dbb6","kind":"score.total_changed","summary":"Trust score (76 → 77)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-18","url":"https://verifymcp.io/servers/com-stringspec-mcp/stringspec#chg-chg_01a14dbe-6536-76b7-9f11-dad6c9f0dbb6"},{"id":"chg_01a1436d-64d6-7c27-bcd6-d243074f2b32","kind":"score.total_changed","summary":"Trust score (75 → 76)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-16","url":"https://verifymcp.io/servers/com-stringspec-mcp/stringspec#chg-chg_01a1436d-64d6-7c27-bcd6-d243074f2b32"},{"id":"chg_01a133f1-f3df-779d-8df5-e8bfce995237","kind":"score.total_changed","summary":"Trust score (74 → 75)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-13","url":"https://verifymcp.io/servers/com-stringspec-mcp/stringspec#chg-chg_01a133f1-f3df-779d-8df5-e8bfce995237"},{"id":"chg_01a12e0c-9508-7c0c-8277-51f57218d991","kind":"score.total_changed","summary":"Trust score (73 → 74)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-12","url":"https://verifymcp.io/servers/com-stringspec-mcp/stringspec#chg-chg_01a12e0c-9508-7c0c-8277-51f57218d991"},{"id":"chg_01a12130-40ac-72a7-a4ed-7142284b1ddb","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-09","url":"https://verifymcp.io/servers/com-stringspec-mcp/stringspec#chg-chg_01a12130-40ac-72a7-a4ed-7142284b1ddb"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/com-stringspec-mcp/stringspec/changelog.json"},"links":{"html":"https://verifymcp.io/servers/com-stringspec-mcp/stringspec","markdown":"https://verifymcp.io/servers/com-stringspec-mcp/stringspec.md","changelogJson":"https://verifymcp.io/servers/com-stringspec-mcp/stringspec/changelog.json","changelogRss":"https://verifymcp.io/servers/com-stringspec-mcp/stringspec.xml","external":[{"label":"Remote endpoint","href":"https://stringspec.com/mcp"},{"label":"Repository","href":"https://github.com/BigBalli/stringspec-mcp"},{"label":"Website","href":"https://stringspec.com/connect/"}]}}