A production-ready MCP server with example utilities. Use the available tools to perform calculations, string operations, and system introspection.
17 tools with complete schemas and descriptions. Naming follows verb_noun convention (add, subtract, divide, etc.). Descriptions are concise (10-200 chars, well within baseline 194 avg). All parameters have type annotations and Field descriptions. However, several tools lack error recovery guidance, output schemas are not formally documented, and some descriptions could be more actionable for LLM selection. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) present. Arithmetic and string tools are well-designed; system tools (ping, get_system_info) are minimal.
Add two numbers together and return their sum.
Encrypt or decrypt a message using the Caesar cipher (a simple letter-shift substitution). Use a negative shift to decrypt.
Divide the first number by the second. Returns an error string if the divisor is zero.
Compute the factorial of a non-negative integer (n!). Returns an error string for negative inputs.
Return the current UTC date and time as an ISO-8601 string.
Return basic information about the system running this MCP server (OS, Python version, architecture).
Check whether a string reads the same forwards and backwards (case-insensitive, ignoring spaces and punctuation).
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) declared. LLMs cannot distinguish safe read-only tools from state-modifying ones without explicit hints.
Output schemas not formally documented. Tools return typed values (float, str, dict) but LLMs cannot see the structure of dict responses (e.g., word_count returns {total_words, unique_words, characters_with_spaces, characters_without_spaces}) without explicit schema documentation.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | 2026-07-28+ | v2 |
Multiply two numbers and return their product.
Health-check tool. Returns 'pong' along with the server timestamp. Useful for verifying the MCP connection is alive.
Raise a base to an exponent (base ** exponent).
Reverse the characters in a string.
Return the square root of a non-negative number. Returns an error string for negative inputs.
Subtract the second number from the first.
Convert a string to Title Case.
Convert a string to lowercase.
Convert a string to UPPERCASE.
Count the number of words in the given text.
Error recovery guidance missing. divide, square_root, and factorial return error strings on invalid input, but descriptions do not guide LLMs on what to do next (e.g., 'If division by zero, ask the user for a non-zero divisor').
ping tool is deprecated in MCP spec 2026-07-28 and should be removed. Health checks are now handled via protocol-level mechanisms, not tool calls.
Generic string conversion tools (to_uppercase, to_lowercase, title_case) lack context on when to use each. Descriptions should clarify use cases (e.g., 'Use for normalizing user input' vs 'Use for display formatting').