{"server":"app.trysonar/sonar","quality":{"score":68,"label":"needs work","components":{"auth":null,"hygiene":86,"protocol":75,"stability":25,"dependencies":67},"checks":[{"id":"protocol.modern","detail":"newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28","status":"warn","category":"protocol"},{"id":"protocol.stateless","detail":"only applies to 2026-07-28 servers","status":"na","category":"protocol"},{"id":"protocol.transport","detail":"streamable HTTP","status":"pass","category":"protocol"},{"id":"protocol.list_ttl","detail":"only applies to 2026-07-28 servers","status":"na","category":"protocol"},{"id":"auth.prm","detail":"no remote uses OAuth","status":"na","category":"auth"},{"id":"auth.as_metadata","detail":"no remote uses OAuth","status":"na","category":"auth"},{"id":"auth.cimd","detail":"no remote uses OAuth","status":"na","category":"auth"},{"id":"auth.secret_in_url","detail":"no templated URL","status":"na","category":"auth"},{"id":"tools.descriptions","detail":"every tool has a description","status":"pass","category":"hygiene"},{"id":"tools.description_length","detail":"1 tools have descriptions over 1,024 characters, which crowds the context","status":"warn","category":"hygiene"},{"id":"tools.schemas","detail":"every tool has an object input schema","status":"pass","category":"hygiene"},{"id":"tools.annotations","detail":"54 of 54 tools declare readOnlyHint or destructiveHint","status":"pass","category":"hygiene"},{"id":"tools.directory_hints","detail":"every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint","status":"pass","category":"hygiene"},{"id":"tools.token_cost","detail":"about 15,826 tokens to load every tool","status":"warn","category":"hygiene"},{"id":"tools.api_dump","detail":"tools are not a one-to-one API dump","status":"pass","category":"hygiene"},{"id":"stability.changes","detail":"50 tool changes in 30 days","status":"warn","category":"stability"},{"id":"stability.rug_pull","detail":"5 tools kept their name but changed most of their description in 30 days; review before trusting them","status":"fail","category":"stability"},{"id":"deps.known_vulns","detail":"no known advisory in 98 resolved packages","status":"pass","category":"dependencies"},{"id":"deps.mcp_sdk_version","detail":"@modelcontextprotocol/sdk 1.30.1 has 1 known advisory (GHSA-6qxp-vccf-f47h); update @modelcontextprotocol/sdk to 1.31.0 or later","status":"fail","category":"dependencies"},{"id":"deps.resolvable","detail":"@sonarapp/mcp@0.7.0 resolved: 98 packages","status":"pass","category":"dependencies"}],"drivers":["-stability.rug_pull","-deps.mcp_sdk_version","~protocol.modern","~tools.description_length","~tools.token_cost","~stability.changes"],"flags":["outdated-mcp-sdk"],"tool_count":54,"token_estimate":15826,"tools_hash":"27f732cae47a5cccaeb5df0c3f10a842","tools_changed_at":"2026-10-06T21:59:05.543Z","computed_at":"2026-10-10T04:30:26.060Z","disclaimer":"Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed."},"blocked":false,"owner":{"verified":false,"method":null,"since":null},"history":[{"day":"2026-09-23","score":84},{"day":"2026-09-24","score":85},{"day":"2026-09-25","score":85},{"day":"2026-09-26","score":85},{"day":"2026-09-27","score":85},{"day":"2026-09-28","score":88},{"day":"2026-09-29","score":88},{"day":"2026-09-30","score":88},{"day":"2026-10-01","score":74},{"day":"2026-10-02","score":74},{"day":"2026-10-03","score":74},{"day":"2026-10-04","score":74},{"day":"2026-10-05","score":74},{"day":"2026-10-06","score":74},{"day":"2026-10-07","score":68},{"day":"2026-10-08","score":68},{"day":"2026-10-09","score":68},{"day":"2026-10-10","score":68}],"next_actions":[{"action":"get_server","description":"Full descriptor","href":"/v1/servers/app.trysonar%2Fsonar","arguments":{"name":"app.trysonar/sonar"}},{"action":"list_tools","description":"Current tools with schemas","href":"/v1/servers/app.trysonar%2Fsonar/tools","arguments":{"name":"app.trysonar/sonar"}}]}