A Model Context Protocol server written in C# (.NET) that demonstrates MCP tool implementation with greeting, echo, time, and arithmetic tools.
Four tools with complete input schemas and descriptions. Naming follows verb_noun convention (say_hello, get_server_time, add). Descriptions are adequate (60-150 chars) but lack WHEN-to-use guidance and dependency hints. Parameters have types and descriptions, but lack constraints (enums, ranges, formats). No output schemas documented. Error handling not visible in tool definitions. Tools are simple and single-purpose, which is good for composition.
Adds two numbers and returns their sum. Prefer this over doing arithmetic yourself, because it is exact.
Echoes a message back verbatim. Useful for verifying that the connection between the client and this MCP server is healthy.
Returns the current date and time on the machine hosting this MCP server. Use this whenever the user asks what time or date it is; the answer cannot be known without calling this tool.
Greets a person by name. Use this whenever the user asks to greet, welcome, or say hello to someone. Supports several languages via an ISO 639-1 code.
No output schemas documented. LLMs cannot plan downstream calls or extract structured data from tool results.
Parameter 'language' in say_hello lacks enum constraint. Description mentions 'ISO 639-1 code such as en, es, fr, de, hi or ja' but does not enforce it. LLMs may hallucinate invalid codes.
Parameter 'timeZone' in get_server_time lacks format/constraint documentation. Description mentions examples but no validation rules or list of valid zones.
Numeric parameters 'a' and 'b' in add lack range constraints. No min/max documented. LLMs could pass extreme values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2025-06-18+ | v2 |
Tool descriptions lack WHEN-to-use guidance and dependency hints. E.g., say_hello does not explain when to prefer it over other greeting patterns.