A Kotlin-based MCP server demonstrating tools, prompts, and resources using the MCP Kotlin SDK
This is a minimal sample/demo server with only 1 tool. The tool has a completely empty input schema (Tool.Input() with no properties), no parameter descriptions, and a trivial 11-character description ('A test tool'). The tool definition is directly visible in the source code at server.kt line ~65-71, so we can score it properly, but the definition quality is poor. The naming ('kotlin-sdk-tool') violates the verb_noun convention and is generic/non-descriptive. This is a hello-world example, not production code, but scored against the rubric as submitted.
A test tool
Input schema is empty (Tool.Input() with no properties). Tool accepts no parameters and provides no actionable hints about what it does or how to use it.
Tool description is only 11 characters: 'A test tool'. Does not explain what the tool does, when to call it, or what it returns. Minimum viable: 'Returns a greeting message. Use to test tool invocation.' (60+ chars).
Tool name 'kotlin-sdk-tool' does not start with an action verb. Violates verb_noun naming convention. Should be something like 'get_greeting' or 'call_hello_world', specific names help LLMs infer intent from the name alone.
Output schema not documented. The tool returns TextContent('Hello, world!'), but LLMs cannot infer what fields to expect. A documented return schema would specify field names, types, and semantics.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 23 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 16 | - | v1 |