UiPath MCP SDK - Model Context Protocol server for UiPath automation platform integration
This is a multi-sample SDK demonstrating MCP patterns across 7 different example servers (datetime, dynamic, functions, longrunning, math, sdk, string). Overall definition quality is FAIR with noticeable gaps. Tool naming is generally verb-forward and clear (current_utc_time, add_days, add_tool, etc.). Descriptions exist for all 39 visible tools and are moderately detailed (average ~80-150 chars). Input schemas are present and properly typed with JSON Schema format. However, there are significant gaps: (1) No output schemas documented anywhere, the server definitions show input schemas only, not what these tools return; (2) Parameter descriptions are terse (often 20-50 chars) and lack constraint guidance (ranges, enums, formats); (3) Error handling strategies are not documented, there is no guidance on what errors are retryable or how LLMs should recover; (4) The dynamic tools (add_tool, add_function) allow arbitrary Python code execution with minimal validation, a critical security and control-flow risk. Math tools (tools 18-37) and datetime tools (1-8) are safe and well-defined, but the dynamic execution model undermines overall quality. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) are present despite the MCP spec supporting them since 2025.
Add two numbers together.
Add or subtract days from a date.
Add a new function to the MCP server by providing its Python code.
Add a new tool to the MCP server by providing its Python code.
Call a registered dynamic function with the given arguments.
Add two complex numbers.
Multiply two complex numbers.
No output schemas documented. All 39 tools lack explicit return type documentation. LLMs cannot infer what fields or structure to expect from tool responses, breaking downstream planning and field chaining.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-21 | B | 75 | 2026-07-28+ | v2 |
| 2026-03-09 | C | 65 | - | v1 |
Convert temperature between Celsius, Fahrenheit, and Kelvin.
Calculate the cosine of an angle in degrees.
Get the current UTC date and time in ISO 8601 format.
Get the day of the week for a given date.
Calculate the number of days between two dates.
Get the number of days in a given month.
Divide the first number by the second.
Returns all available entity types supported by the SDK.
Get a list of all available registered functions in the MCP server.
Returns detailed information about all methods available for a specific entity type.
Check if a given year is a leap year.
Check if a given date falls on a weekend.
Calculate the base-10 logarithm of a number.
Calculate the logarithm of a number with a custom base.
Calculate the arithmetic mean (average) of a list of numbers.
Calculate the median of a list of numbers.
Multiply two numbers together.
Calculate the natural logarithm (base e) of a number.
Calculate the nth root of a number.
Calculate the base raised to the exponent power.
Run a task with custom delay duration that blocks until finished.
Run a task that takes approximately 1 hour to complete and blocks until finished.
Run a task that takes approximately 1 minute to complete and blocks until finished.
Run a task that takes approximately 1 second to complete and blocks until finished.
Run a task that takes a random amount of time between 0 and max_duration_seconds.
Calculate the sine of an angle in degrees.
Solve a quadratic equation of the form ax² + bx + c = 0.
Calculate the square root of a number.
Calculate the standard deviation of a list of numbers.
Subtract the second number from the first.
Calculate the tangent of an angle in degrees.
Calculate the difference between two datetimes.
Critical security risk: add_tool and add_function accept arbitrary Python code as a string parameter and execute it via eval/exec. This permits code injection, privilege escalation, and denial of service. No input validation, sandboxing, or execution limits are mentioned.
No error handling guidance. None of the 39 tool descriptions explain what errors are possible, when to retry, or how to recover. Tools that calculate (add, divide, solve_quadratic) may fail with invalid inputs but offer no error recovery hints to LLMs.
Parameter descriptions lack constraint guidance. Examples: 'Interval in seconds for progress notifications' does not specify valid range (is 0 allowed? Is 1000000 allowed?). 'Number of days to add' does not bound the integer. LLMs will guess and may pass invalid values.
No tool annotations. The MCP spec has supported tool annotations (readOnlyHint, destructiveHint, idempotentHint) since early 2025. All 39 tools are READ_ONLY except add_tool and add_function (WRITE), but these hints are not declared in the tool metadata, forcing LLMs to infer safety from descriptions alone.
Vague descriptions for dynamic execution tools. 'Call a registered dynamic function with the given arguments' does not explain what happens when the function does not exist, when the args schema is wrong, or when the function raises an exception. LLMs need explicit error and exception guidance.