AutoMCP provides a single tool (RestApiTool) for making REST API requests. While the tool has a description and some parameter documentation, the implementation has significant gaps in schema completeness, parameter descriptions, and error handling. The tool appears designed to be dynamically generated from OpenAPI specs, but the visible code shows incomplete schema definition with vague parameter descriptions. Parameters like 'path_params', 'query_params', 'header_params', and 'body_params' are documented only as 'object' types with generic descriptions that do not guide LLM usage. No output schema is documented. The tool accepts generic object parameters without type constraints, enums, or validation rules, the very pattern that invites hallucination and invalid input. Error handling is not visible in the provided code. The server appears to be in early development (version 0.1.0) and lacks the rigor expected of production-grade agent tools.
Tool for making requests to a REST API endpoint.
Parameter schemas lack proper type constraints and descriptions. 'path_params', 'query_params', 'header_params', 'body_params' are all documented as generic 'object' types with minimal guidance ('Path parameters for the API endpoint'). LLMs cannot determine what keys are valid, what types values should be, or what constraints apply.
No output schema documented. Users and LLMs have no way to know what the RestApiTool returns, success responses are unspecified, paginated results are not structured, error handling is opaque. This violates the documented output schema pattern and forces agents to guess at response structure.
Parameter descriptions are under 20 characters and provide no actionable guidance. Per hard scoring rule, description score for RestApiTool must be capped at 0-20. Descriptions like 'Path parameters for the API endpoint' do not explain WHAT paths are supported, HOW to find valid values, or WHAT format is expected.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 41 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 0 | - | v1 |
Tool accepts parameters as unrestricted object types without validation. No enums, no patterns, no min/max constraints, no format specifications. The execute() method signature shows **kwargs capture but the visible code does not validate or constrain input, inviting arbitrary API misuse.
Error handling is not visible in the provided code. The execute() docstring is truncated. Recovery guidance, error categorization (retryable vs fatal), and actionable error messages are absent. LLMs will have no way to know whether a request failed due to user input, API limits, or transient service issues.
Tool naming is generic and does not follow verb_noun convention. 'RestApiTool' describes the implementation class, not the action the LLM performs. A tool should be named for what it does, e.g., 'call_rest_endpoint' or 'invoke_api'. Current name offers no actionable verb for LLM intent inference.
No pagination support visible in parameters or schema. Even if the tool supports rate limiting and retry logic internally, there is no page/offset, limit, or cursor parameter exposed to the LLM. This will cause LLMs to fetch unlimited results, exhausting context windows.
Authentication configuration is handled at tool initialization (ApiAuthConfig), but the schema and description do not explain how LLMs should pass or specify auth. If multiple APIs with different auth schemes are registered, the tool provides no mechanism to select which one to use per call.