MCP Server for resolving dynamic tool parameters with support for environment variables, session context, and step output cascading
Single tool 'resolve_parameters' has a reasonable description (127 chars, within 10-1024 range) but critical schema deficiencies. Input schema visible in tool definition shows 'raw_params' and 'step_outputs' as objects with descriptions, but lacks type specifications for nested fields, making validation impossible. No output schema documented. Tool does one thing (resolve placeholders) but lacks error handling guidance, parameter constraints, and security considerations for sensitive data injection.
Resolves all placeholders in raw_params dictionary. Supports environment variable placeholders ($ENV:KEY), session context variables ($SESSION:USER_ID), and parameter cascades from prior step results ($STEP:step_id.result_key)
No output schema documented. LLMs cannot predict return structure or plan downstream operations. Tool returns Dict[str, Any] but no field documentation.
Input schema lacks type constraints on nested object fields. 'raw_params' and 'step_outputs' are declared as objects but have no properties schema, minProperties, or additionalProperties constraints. Cannot validate placeholder format or detect malformed input.
No error handling guidance. Tool silently returns '<MISSING_ENV:KEY>' or '<MISSING_SESSION:KEY>' strings instead of raising errors or guiding recovery. LLM cannot distinguish between a legitimate string value and a failed placeholder resolution.
Security risk: tool accepts arbitrary placeholder strings and injects environment variables and session context without validation. No documentation of what placeholders are safe, no rate limiting, no audit trail. Sensitive data (API keys, tokens) could be exposed in logs.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | 2026-07-28+ | v2 |
Parameter descriptions lack format/constraint details. 'raw_params' description does not specify placeholder syntax ($ENV:, $SESSION:, $STEP:), valid characters, or length limits. LLM must infer from tool name and example usage.