MCP server: look up SPDX license identifiers, names, and OSI status.
Two read-only tools with clear names and basic schemas. Both tools have descriptions (lookup: 95 chars, search: 88 chars) and input schemas with type definitions. However, parameter descriptions are minimal or missing: 'query' in search lacks any description; 'limit' has no description. Output schemas are not documented, LLMs cannot predict the structure of returned data. Error handling is generic ('license failed: ...') with no recovery guidance. No tool annotations (readOnlyHint) despite both being read-only. Naming follows verb_noun pattern (lookup, search) which is good, but descriptions could be more explicit about when to use each tool vs. the other.
Look up an SPDX license identifier. Returns name, OSI-approved flag, reference URL.
Search SPDX licenses by id or name. Returns up to `limit` matches.
Parameter 'query' in search tool has no description. LLMs cannot infer whether to pass a license ID, name substring, or both.
Parameter 'limit' in search tool has no description explaining its purpose, valid range, or default behavior.
Output schemas are not documented. LLMs do not know the structure of lookup() or search() responses, forcing them to guess field names for downstream operations.
Error messages are generic ('license failed: ...') with no recovery guidance. LLMs cannot determine whether to retry, ask the user, or abandon the task.
No tool annotations (readOnlyHint) despite both tools being read-only. This prevents clients from optimizing caching or safety policies.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |