Open-source execution engine for AI agents with 480 modules, MCP-native support, triggers, queue, versioning, and metering
This server exposes only 2 tools with severe definition gaps. Both tools have minimal descriptions (under 50 chars), lack comprehensive parameter documentation, and the schemas are incomplete or missing critical details. The tool `ai.tool` accepts a module_id string and optional tool_description, but the schema lacks proper parameter type declarations and descriptions. The tool `ai.tool_template` has slightly better structure but still lacks actionable descriptions for parameters like `input_schema` (which is itself an object but has no guidance on its structure). Neither tool provides output schema documentation. Error handling is not evident. These tools appear designed to wrap or expose other modules dynamically, which suggests they are meta-tools for configuration rather than direct agent use, but even so, they lack the description clarity and parameter guidance needed for LLM selection and invocation.
Expose a module as a tool for AI Agent
Use a template (workflow) as an AI Agent tool
ai.tool has a 43-character description ('Expose a module as a tool for AI Agent') that is too vague. It does not explain WHEN an LLM should call this tool, WHAT it does to the module, or WHAT the output is. By rubric baseline, descriptions under 50 chars without actionable content score 0-20.
ai.tool parameter 'tool_description' has no description in the schema. The parameter name alone ('tool_description') does not disambiguate its purpose or constraints. By rubric rule, every parameter must have a description explaining what it controls.
ai.tool_template parameter 'input_schema' is defined as type 'object' with only a 33-character description ('JSON Schema for tool input...'). This does not explain what structure is expected, whether it should be a full JSON Schema with $schema, or example constraints. The description is too brief to guide an LLM.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 51 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 37 | - | v1 |
Neither tool documents its output schema. LLMs need to know what fields to expect from tool invocation responses in order to plan downstream calls or extract data. This is a critical gap per pattern:tool.
ai.tool_template has parameter 'timeout_seconds' (type 'number') with no constraints (min/max). By rubric, numeric parameters must specify bounds. An unconstrained timeout invites LLMs to pass absurd values (e.g. 999999 seconds).
ai.tool description (43 chars) violates the rubric minimum of 10 - 1024 chars. While it technically meets the 10-char floor, it provides insufficient context. Descriptions this short cannot answer: What does it do? When should the LLM call it? What does it return?
ai.tool_template parameter 'tool_name' is described as 'Name the agent sees (defaults to template name)' (57 chars). This does not clarify constraints: Is there a length limit? Allowed characters? Should it match a regex pattern? Without these, LLMs may pass invalid names.
Neither tool declares error handling behavior or recovery guidance. If a tool call fails (e.g. invalid module_id or timeout), the LLM has no actionable next step. By pattern:recovery-guide, error responses must tell the LLM what to do next.
ai.tool_template marked as WRITE risk but no documentation clarifies what side effects occur or whether the operation is idempotent. By pattern:idempotent-operation, agents need to know if repeated calls with the same input produce the same result or accumulate changes.