A local OAuth 2.0 + MCP test server (TypeScript) that mirrors GitHub's real OAuth behavior. Provides plain HTTP endpoints for authorization, token exchange, and MCP protocol handling. Includes dynamic client registration (DCR), RFC 8414 discovery metadata, and simple test tools for exercising MCP client implementations.
Four simple, well-structured tools with complete input schemas and clear descriptions. All tools are READ_ONLY and follow verb_noun naming (random_number, roll_dice, echo, current_time). Descriptions are concise (10 - 50 chars) and explain what each tool does. Input schemas use proper JSON Schema with type definitions and parameter descriptions. However, output schemas are not documented, LLMs cannot predict return structure. Parameter descriptions lack detail on ranges/constraints (e.g., random_number doesn't specify default behavior when min/max are omitted). No error handling guidance or recovery paths. Tools are simple test utilities, not production-grade, but definitions are sound for their purpose.
Return the current server time.
Echo back whatever text is passed in. Useful for checking argument round-tripping.
Return a random integer between min and max (inclusive).
Roll `count` dice with `sides` sides each.
Output schemas not documented. LLMs cannot predict return structure (e.g., random_number returns {value, min, max} but this is not declared in tool definition).
Parameter constraints not fully documented. random_number and roll_dice have default values (min=0, max=100, sides=6, count=1) but descriptions do not explain behavior when parameters are omitted or invalid.
No error handling guidance. Tools validate inputs (e.g., 'min must be <= max') but error responses do not guide LLM recovery or suggest alternatives.
current_time tool has empty inputSchema properties but no explicit documentation that it accepts no parameters. LLMs may attempt to pass arguments.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | <=2025-11-25 | v2 |