MCP Test Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| math_addB | Add two numbers and return the sum. |
| math_subtractA | Subtract b from a and return the difference. |
| math_multiplyB | Multiply two numbers and return the product. |
| math_divideA | Divide a by b. Returns an error if b is zero. |
| math_moduloA | Return the remainder of a divided by b. Returns an error if b is zero. |
| math_powerB | Raise base to the power of exponent. |
| math_factorialA | Return n factorial (n!). Returns an error if n is negative. |
| math_fibonacciA | Return the nth Fibonacci number (0-indexed). Returns an error if n is negative. |
| string_reverseB | Reverse a string. |
| string_uppercaseC | Convert a string to uppercase. |
| string_lowercaseB | Convert a string to lowercase. |
| string_lengthB | Return the character count of a string. |
| string_char_countB | Count occurrences of a character in a string. |
| string_replaceB | Replace all occurrences of old with new in a string. |
| string_splitC | Split a string by a delimiter. |
| string_joinA | Join a list of strings with a delimiter. |
| collection_sortC | Sort a list of items. Args: items: The list to sort. reverse: If True, sort in descending order. |
| collection_flattenC | Recursively flatten nested lists. Args: items: A potentially nested list to flatten. |
| collection_mergeB | Merge two dictionaries. Values from dict_b win on conflict. Args: dict_a: The base dictionary. dict_b: The dictionary to merge in (wins on conflict). |
| collection_filter_gtC | Filter numbers greater than a threshold. Args: items: List of numbers to filter. threshold: The threshold value. |
| collection_uniqueA | Remove duplicates from a list, preserving order. Uses JSON serialization for dedup keys to handle mixed types. Args: items: The list to deduplicate. |
| collection_group_byC | Group a list of objects by a key. Args: items: List of dictionaries to group. key: The key to group by. |
| collection_zipC | Zip two lists into a list of pairs. Args: list_a: The first list. list_b: The second list. |
| collection_chunkC | Split a list into chunks of a given size. Args: items: The list to split. size: The chunk size. |
| encoding_base64_encodeB | Base64-encode a string. |
| encoding_base64_decodeA | Base64-decode a string. Returns an error if the input is not valid base64. |
| encoding_url_encodeB | URL-encode a string using percent-encoding (spaces become +). |
| encoding_url_decodeB | URL-decode a percent-encoded string. |
| encoding_hex_encodeC | Hex-encode a string. |
| encoding_hex_decodeA | Hex-decode a string. Returns an error if the input is not valid hex. |
| encoding_md5B | Return the MD5 hash hex digest of a string. |
| encoding_sha256B | Return the SHA-256 hash hex digest of a string. |
| datetime_parseB | Parse an ISO date string and return its components {year, month, day, hour, minute, second}. |
| datetime_formatC | Format a date to a string using a strftime format specifier. |
| datetime_add_daysB | Add N days to a date and return the resulting ISO date string. |
| datetime_diffB | Return the number of days between two dates (a - b). |
| datetime_day_of_weekB | Return the weekday name (e.g., 'Friday') for a given date. |
| datetime_is_leap_yearB | Return whether the given year is a leap year. |
| datetime_days_in_monthB | Return the number of days in the given month and year. |
| datetime_week_numberC | Return the ISO week number for the given date. |
| validation_is_emailB | Check whether a string is a valid email address format. |
| validation_is_urlA | Check whether a string is a valid URL with http or https scheme. |
| validation_is_ipv4B | Check whether a string is a valid IPv4 address. |
| validation_is_ipv6A | Check whether a string is a valid IPv6 address. |
| validation_is_uuidC | Check whether a string is a valid UUID. |
| validation_is_jsonC | Check whether a string is valid JSON. |
| validation_is_palindromeB | Check whether a string is a case-sensitive palindrome. |
| validation_matches_regexB | Check whether a string matches a given regular expression pattern. |
| conversion_celsius_to_fahrenheitA | Convert a temperature from Celsius to Fahrenheit. |
| conversion_fahrenheit_to_celsiusA | Convert a temperature from Fahrenheit to Celsius. |
| conversion_km_to_milesA | Convert a distance from kilometers to miles. |
| conversion_miles_to_kmA | Convert a distance from miles to kilometers. |
| conversion_bytes_to_humanA | Convert a byte count to a human-readable string (e.g., '1.00 KB'). |
| conversion_rgb_to_hexA | Convert RGB color values (0-255) to a hex color string. |
| conversion_hex_to_rgbA | Convert a hex color string to RGB values. Supports with or without '#' prefix. |
| conversion_decimal_to_binaryA | Convert a decimal integer to its binary string representation (without '0b' prefix). |
| echoA | Return the input message unchanged. |
| echo_errorA | Always raises a ToolError with the given message. |
| echo_largeC | Return deterministic text of approximately N kilobytes. |
| echo_nestedC | Return nested JSON structure to the given depth. |
| echo_typesC | Return an object containing all JSON types. |
| echo_emptyA | Return an empty string result. |
| echo_multipleB | Return multiple TextContent blocks, one per message. |
| echo_schemaC | Echo all parameters back as JSON. |
| get_weatherA | Get weather for a city. Always returns fixed deterministic data (77°F, sunny). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 65 tools
Each tool has a clearly distinct purpose, and the category prefixes make selection unambiguous. Even the many echo_* variants map to discrete test behaviors rather than overlapping functionality.
All tool names use a consistent snake_case pattern with a category prefix (string_, collection_, encoding_, etc.) and a clear action or property. There are no mixed conventions or ambiguous verb styles.
65 tools is far beyond a reasonable scoped set for any server. While a test server may intentionally exercise many capabilities, the sheer volume suggests many tools are redundant test variants rather than each earning a place for a cohesive purpose.
Coverage is broad across utility categories, but notable gaps exist: no string trim/substring, no general collection filter/map, no datetime now/timezone, no math sqrt/trig, etc. For a utility/test grab-bag, agents can work around many gaps but the surface is not complete.