Exposes the anchor library and deterministic scoring engine over stdio. Has ZERO LLM dependencies — it never calls a model. The host's own model does the classification; this server only verifies evidence quotes and computes the score.
Two well-defined tools with complete input schemas and clear descriptions. get_assessment_protocol is a simple read-only discovery tool with empty input {}. score_classification has a comprehensive nested schema (5 dimensions × 6 fields each) with proper type constraints (level: 1-5, confidence enum, nullable fields). Both descriptions explain purpose and prerequisites clearly (50-150 chars). However, output schemas are not documented, callers must infer response structure. No error handling guidance for stale protocol_token or evidence quote validation failures. Tool composition is sound (two-step workflow), but descriptions could better explain when/why to call each tool in sequence.
Returns the LevelField classification prompt, the contract-data template, and the classification JSON shape. The CALLER's own model reads this and performs the classification itself — this server has no model. Once you have a classification, call score_classification with it to get the score.
Verifies evidence quotes against the contract text and computes the deterministic LevelField score from a five-dimension classification produced per get_assessment_protocol. Single-run (runs: 1); a host wanting vote-stability can classify 3x and submit its own majority. Accepts an optional protocol_token (from get_assessment_protocol) proving the classification was made against the current anchor library; a stale/mismatched token is rejected with a structured error.
Output schemas not documented. Callers cannot infer response structure for get_assessment_protocol (prompt, template, JSON shape) or score_classification (score result, error format). LLMs need explicit return type documentation to plan downstream actions.
No error handling guidance. score_classification rejects stale protocol_token with 'structured error' but the error format, recovery steps, and retry logic are not documented. LLMs cannot self-correct without explicit error messages.
Workflow dependency not explicit. get_assessment_protocol must be called before score_classification, but the description does not state this prerequisite. LLMs may attempt score_classification without first fetching the protocol.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 65 | 2026-07-28+ | v2 |
Evidence quote validation rules not documented. score_classification verifies quotes against contract text (isVerbatimQuote, quoteOverlapsInjection) but the validation criteria and failure modes are not exposed in the description.