ActionD
Server Quality Checklist
Latest release: v0.1.1
- Disambiguation3/5
Most tools have distinct purposes, but the interchangeable use of 'action' and 'job' (e.g., actiond_action_get vs actiond_job_cancel) and the generic actiond_cleanup could cause misselection. Additionally, actiond_run_report and actiond_handoff_pack both aggregate run information, though with different outputs, adding some overlap.
Naming Consistency2/5The majority use the actiond_ prefix, but dev_cycle_run breaks the pattern, and pluralization is inconsistent (actiond_action_get vs actiond_actions_list; actiond_plugin_enable vs actiond_plugins_list). The verb/noun structure is not uniform across the set, mixing get/list/cancel/retry/wait/set/start/stop/restart/recommend/reload etc. without a clear consistent scheme.
Tool Count3/522 tools is within the 16-25 range that feels heavy. Each tool has a defined role, but the count is on the higher side, and some could be consolidated (e.g., unifying action/job naming, or combining report tools) without losing functionality.
Completeness5/5The set covers the full CI/CD lifecycle: server management (start/stop/restart/status), job operations (list/get/cancel/retry/wait/log/diagnose/cleanup), plugin management (list/enable/disable/recommend/reload), profiles (get/set), and higher-level aggregates (handoff_pack, run_report, dev_cycle_run). No obvious gaps for the stated domain.
Average 4.6/5 across 22 of 22 tools scored. Lowest: 3.9/5.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 7 commits in the last 12 weeks
- Last stable release on
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI is passing
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
This repository includes a glama.json configuration file.
This server has been verified by its author.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, non-destructive behavior, and the description adds meaningful behavioral detail by stating it aggregates external data sources and that missing information is marked unknown rather than guessed. No contradiction with annotations exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness2/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is verbose and redundant, repeating the purpose, output format, and parameter defaults across multiple sentences. It could be condensed into a single clear sentence plus a brief output note without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite lacking an output schema, the description explains what the returned JSON and Markdown document contain, including the list of covered sections. It gives enough context for an agent to invoke the tool correctly, especially with all parameters optional.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover all 9 parameters with 100% coverage, including defaults and conditional behavior for task_id. The tool description largely repeats the schema content and adds little new semantic meaning beyond what is already documented in the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates a handoff package that aggregates git log, ActionD CI/CD verdicts, and optionally a task report, with the explicit purpose of letting another agent or human resume work with full context. It is distinct from sibling tools like actiond_status or actiond_run_report.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the primary use case explicit: use this when handing off work to another agent or human and needing consolidated context. It also provides conditional guidance ('when task_id is given') and notes defaults for path and ttl_hours, though it does not explicitly contrast with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already mark it read-only and idempotent, and the description reinforces 'without writing any new state.' It also promises explicit 'unknown' values, which prevents agents from assuming false confidence. It does not mention potential error conditions or external dependencies, but the main behavioral guarantees are covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness3/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main purpose but becomes a long run-on sentence that enumerates report sections and repeats the 'unknown' behavior. It is understandable but not tightly edited; a more compact structure would improve scannability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by describing the JSON report's conceptual sections (what changed, why, did it work, trustworthiness, continuation, rollback) and the explicit handling of unknowns. It does not specify exact field names or error behavior, but the overall output contract is clear enough for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each parameter has a meaningful description. The prose repeats those meanings without adding significant constraints or interactions beyond what the schema already states. No additional parameter semantics are needed, but none are provided beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: generate a goal run report as one structured JSON that reconstructs changes, verification, and rollback status. It explicitly distinguishes the tool from write operations by saying it writes no new state. The resource and verb are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains that it aggregates git log, CI/CD job verdicts, and task handoff status, and that task_id triggers a task report lookup. It does not explicitly contrast this with sibling tools like actiond_status or actiond_diagnose, but the aggregation role and conditional task lookup provide practical usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already flag readOnlyHint: false, destructiveHint: false, and idempotentHint: false. The description adds valuable context by explaining that retries take full time, may fail again, and are not idempotent, which aligns with the annotations without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: it states the action, the non-idempotent nature, the return value, and suggested follow-ups in just three sentences with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the purpose, behavior, output (job ID and plugin name), and follow-up actions. Since there is no output schema, this is sufficient for an agent to invoke the tool correctly and understand the next steps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides a full description of the single parameter 'id' as 'Job ID to retry', achieving 100% coverage. The tool description does not add extra meaning beyond this, so it meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (re-queue) and resource (failed or cancelled CI/CD job). It does not explicitly differentiate from sibling tools like actiond_job_cancel or actiond_job_wait, but the purpose is specific enough for an agent to understand what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates when to use the tool (for failed or cancelled jobs) and provides follow-up guidance (use actiond_job_wait, or actiond_diagnose if failure recurs). However, it does not explicitly state when not to use alternatives, leaving some room for inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it readOnly, idempotent, and non-destructive. The description adds that it errors when the ID does not exist and notes that terminal job records are kept, which covers relevant behavioral expectations. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but focused: each sentence contributes meaning, including the action, returned fields, use cases, paired tools, and error behavior. It avoids redundancy and is appropriately sized for the information conveyed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although there is no output schema, the description enumerates the returned fields and explains behavior for both running and terminal jobs, plus error conditions. This is sufficient for an agent to understand what the tool does and what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of parameters and the id parameter is described as 'The action/job ID to retrieve'. The description repeats this and adds an error case, but does not add substantial new constraint or format details beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'Fetch full detail for one CI/CD job by its ID', which is a specific verb and resource. It also distinguishes itself by naming paired tools like actiond_log and actiond_diagnose, making its purpose unambiguous relative to siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use it: for running jobs to poll progress, for terminal jobs to review post-mortem, and pairs it with actiond_log for logs and actiond_diagnose for interpretation. It does not explicitly say 'use this instead of X' but provides clear contextual guidance and an error condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds useful context about the return value and the meanings of the 'fast', 'full', and 'release' profiles, but it does not disclose additional behavioral traits such as error conditions, caching, or rate limits. This matches the baseline for annotation-covered read-only tools.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficient and front-loaded: purpose first, then return value, then profile semantics, then related tools. Every sentence adds distinct, useful information without redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the full burden of explaining return values, and it does so thoroughly: it names the active profile, describes what each profile triggers with job counts, and routes to related tools. Nothing an agent needs to call this zero-parameter read-only tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and schema description coverage is 100%, so the schema carries no parameter burden. The description adds value by explaining what the returned profile name means and what each profile triggers, which is more than the empty input schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Get the execution profile that controls which CI/CD plugins run on each push.' It clearly states what the tool returns and differentiates itself from related tools by naming actiond_profile_set and actiond_plugins_list as the tools for switching profiles and inspecting plugin inventory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when this read-only tool is appropriate and explicitly points to alternatives: 'switch profiles with actiond_profile_set and inspect the concrete plugin inventory with actiond_plugins_list.' It does not state an explicit 'use this when...' rule, but the purpose and alternatives are unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the internal sequence (commit/push, wait, collect), the LGH daemon prerequisite, temporary profile switching, and the optional auto-rollback behavior, so an agent can anticipate side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness3/5Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded and the numbered internals help structure, but the later parameter summary largely repeats the input schema, making the description longer than necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by listing the result contents (success, commit sha, per-job statuses with durations, artifacts, rollback info, and a human-readable summary) as well as prerequisites and defaults.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and every parameter already has a description, so this is at the baseline; the prose restates the schema fields without adding substantial new semantic detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ('Run the end-to-end development loop') and explains that it aggregates commit, CI trigger, wait, and summary into one call, making it easy to distinguish from the individual actiond_* sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit usage cue ('Use it after editing code to commit, test, and verify in one step') and highlights the aggregation, though it does not explicitly name alternatives or state when not to use it beyond the single-call framing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Explicitly warns of destructive and irreversible nature, reinforcing the destructiveHint annotation. Adds context about confirming intent, which is beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with separate clauses for purpose, parameter usage, and warning. Slightly redundant with days=0 and all=true but overall concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Explains return value (summary with deleted_jobs, deleted_dirs, retention window). Sufficient for operation without output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Parameter descriptions in schema already cover all and days fully. The description repeats these details without adding new semantics, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (deleting), resource (terminal CI/CD jobs and artifact directories), and scope (done/failed/cancelled). Clearly distinct from sibling tools like job_cancel or job_retry.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides usage guidance with default retention and parameter behavior (days=0 or all=true). Does not explicitly name alternatives but implies cleanup purpose. Includes caution to confirm intent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive behavior. The description adds useful context about log entry content (timestamp, level, message) and that plugin execution results and system events appear, without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with short sentences, no redundant filler, and front-loads the core purpose and output format. It includes just enough guidance without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter and no output schema, the description provides sufficient context: purpose, output format, use case, and alternative. It is complete enough for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully covers the only parameter (limit, with description and default). The description repeats this information without adding significant new meaning beyond the schema, so it meets but does not exceed the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action (read recent ActionD server runtime log entries) and the resource (server logs). It distinguishes from sibling tools such as actiond_diagnose (which interprets errors) and actiond_action_get/list (which inspect actions), making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use the tool ('inspect raw output after actiond_actions_list or actiond_action_get surfaces a failure') and when not to ('prefer actiond_diagnose when you want errors interpreted'). This gives concrete usage guidance relative to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the plugin remains registered after disabling, a behavioral detail beyond what annotations convey (non-destructive, idempotent). It also notes the effect on event triggers and that re-enabling is possible, adding transparency about the operation's impact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-organized, with a clear statement of purpose followed by behavioral details and usage guidance. It avoids redundancy and includes only essential information, making it easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple interface (one parameter, no output schema), the description sufficiently covers purpose, behavior, and related tools. It even mentions the profile_set alternative for different scenarios, providing enough context for an agent to decide when to invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool description does not elaborate on the parameter beyond what the schema provides. Since schema coverage is 100% with a clear example in the parameter description, baseline score of 3 is appropriate; no additional meaning is added by the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: disabling a CI/CD plugin. It explains the effect (no longer triggers) and provides context for its use (skipping checks, shortening CI). It distinguishes itself from sibling tools by mentioning re-enable and alternative profile_set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises when to use this tool versus alternatives: for broad preset scope changes, prefer actiond_profile_set. It also directs users to discover plugin names via actiond_plugins_list, giving clear guidance on prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false. The description reinforces the read-only nature and adds rich behavioral context: it scans config files, returns per-plugin recommendations with category, reasoning, priority, confidence, plus aggregate suggestions and a workflow proposal. This goes well beyond the annotations and provides a detailed picture of what happens when the tool is invoked.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is informative but concise enough. It front-loads the primary purpose, then details detection capabilities and output structure. Every sentence adds value, and it doesn't repeat the schema or annotations. While slightly long, it's well-organized and not redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, the description provides a thorough explanation of the return value: per-plugin recommendations with fields, aggregate suggestions, and a workflow proposal. It also covers usage context (read-only, apply via enable/disable) and the optional path. Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has only one parameter 'path' with a description 'Project path to analyze (defaults to current directory)'—schema coverage is 100%. The description does not add any additional meaning beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Analyze a project directory and recommend which CI/CD plugins to enable or disable.' It specifies the resource (project directory), the action (analyze and recommend), and what it detects (languages, frameworks, project types, features). It distinguishes itself from sibling tools like actiond_plugin_enable/disable by framing it as a read-only recommendation tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool versus alternatives: 'Read-only; apply the suggestions with actiond_plugin_enable / actiond_plugin_disable.' It also mentions the optional path parameter and its default behavior. This gives clear routing guidance, leaving no ambiguity about how it relates to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotent and not destructive. Description adds meaningful context: global application and timing of effect. There is no contradiction between annotations and description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and information-dense. The purpose, allowed values, usage recommendations, scope, timing, and return value are each addressed in a single, well-structured paragraph with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple profile-switching tool, the description covers what it does, what values exist, when to use them, the scope of effect, and the return value. No additional context is needed to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already covers the enum values, and the description enriches each with its intended use case. Parameter semantics are fully explained beyond the schema's minimal description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action ('Switch'), the resource ('execution profile'), and the effect ('controls which CI/CD plugins run'). Distinguishes from siblings like actiond_profile_get by specifying the switching behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance for each allowed value: 'fast' for active development, 'full' before merging, 'release' for full CI/CD. Notes that the change applies globally and takes effect on the next event. Does not explicitly contrast with individual plugin controls, but the value-level guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses important behavior: the ACTIOND_MCP_ALLOW_LIFECYCLE=1 gate, refusal with a clear error, default protection of in-flight jobs, and the force=true side effect of interrupting executing jobs. This is strong transparency and does not contradict the annotations since restart is not marked read-only and destructiveHint=false is consistent with not deleting persistent data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a bit longer than necessary but every sentence conveys essential information: the action, the gate requirement, the default safeguard, the force override, the use case, and the return envelope. It is structured logically and not redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by stating the return shape: an action/changed/running/message envelope with combined stop/start output. It also gives the environment prerequisite and relevant sibling distinction, making the context sufficiently complete for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'force' is fully described in the schema and further clarified in the description: without it, pending/running jobs cause refusal; with it, the restart proceeds and interrupts those jobs. Schema coverage is 100% and no enums or nested objects add ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'Restart' and the resource 'ActionD server daemon'. It also explicitly differentiates this tool from the plugin reload sibling by saying plugin manifest changes only need actiond_plugins_reload, making its purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit usage guidance: use it to pick up server-level changes, and use actiond_plugins_reload for plugin manifest changes. It also explains the environment variable requirement and default behavior with pending jobs, so when and when not to use the tool is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, and the description does not contradict this. The description adds that results include failure statuses and can be filtered client-side, but does not elaborate on side effects or ordering guarantees. Given the annotations cover the core behavioral attributes, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, direct, and free of redundant information. It front-loads the core purpose and then provides useful sibling-tool guidance without unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description names the returned fields (id, repo, plugin_name, status, created_at, duration_ms) and statuses, and mentions the default limit. There is no output schema, so this covers the main contextual needs. It does not mention maximum allowed limit or pagination, but for a list-overview tool this is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, 'limit', is fully described in the input schema (maximum number of actions to return, default 20). The description reinforces this by mentioning the optional limit and its default value. Schema coverage is 100% and the description adds the default value context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists recent CI/CD jobs executed by ActionD, using the specific verb 'list' and identifying the resource ('actions'). It also differentiates this tool from siblings by pointing to actiond_action_get for full detail, actiond_job_wait for blocking, and actiond_diagnose for root-cause analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use this tool ('for an overview') and when to use alternative tools ('use actiond_action_get for one job's full detail, actiond_job_wait to block on a specific job, and actiond_diagnose for root-cause analysis of failures'). This leaves no ambiguity about selecting the appropriate tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly=false, destructive=false, idempotent=false), the description discloses that it validates job state, refuses terminal jobs, transitions the job to cancelled, and keeps the record for later review. This gives a clear picture of side effects and error behavior, exceeding the annotation baseline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise—two sentences that convey the action, state validation, error handling, and post-success behavior. No redundant or verbose language; every clause adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description provides all necessary context: what happens on success (transition to cancelled), on refusal (explanatory error), and how to retrieve the record later (actiond_action_get). It is complete for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides a 100% description coverage for the single 'id' parameter ('Job ID to cancel'). The tool description does not add extra semantic meaning to this parameter, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool cancels a pending or running CI/CD job, with a specific verb and resource. It distinguishes itself from siblings by mentioning the alternative retry tool and the action_get tool for review, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool (pending or running jobs) and when not to (terminal jobs like done/failed, as it refuses them). It also points to the sibling tool actiond_job_retry for re-queuing cancelled/failed jobs, providing clear guidance on alternative use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, so the safety profile is known. The description adds meaningful behavioral context beyond the annotations by stating the plugin 'fires on its configured trigger events' on every subsequent push, and by noting it must already be registered. It does not mention failure modes or auth requirements, but for a simple enabling action with these annotations the added context is strong.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Four tightly packed sentences, each earns its place: purpose, behavioral effect, prerequisite and discovery route, and scoped-out alternative. There is no filler or repetition of schema content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a minimal one-parameter tool with no output schema, the description is complete: it gives the project-context scope, the registration requirement, discovery methods, behavior after enabling, and a routing hint for a broader use case. No output schema is present, so explaining explicit return values is not mandatory, and errors/failures are likely best left to runtime messaging.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides a clear description for the single parameter ('plugin name to enable') with examples. The description adds extra semantic value: the name must correspond to a previously registered plugin, and exact names can be discovered via actiond_plugins_list. This helps the agent supply valid, correct values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action ('Enable a CI/CD plugin') on a specific resource ('for the current project') and immediately clarifies what enabling entails. It further distinguishes itself from related siblings by referencing actiond_plugins_list, actiond_plugins_recommend, and actiond_profile_set, and by being the obvious counterpart to actiond_plugin_disable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance, including a prerequisite ('must already be registered') and names the exact discovery tools ('discover exact names with actiond_plugins_list, or use actiond_plugins_recommend'). It also says when NOT to use it and what to use instead: 'To change the whole CI scope at once, switch the execution profile with actiond_profile_set instead of toggling many plugins individually.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true, destructiveHint=false. The description adds substantial context beyond these: daemon mode, the safety-gate env var refusal, the no-op on already-running servers, and the returned envelope plus daemon output. The no-op statement directly corroborates idempotentHint=true; no contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: purpose, safety gate, then behavior/return/follow-up. The core action is front-loaded before the conditions, and there is no filler or repetition of the title or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by naming the return shape ('action/changed/running/message envelope plus daemon output') and the recommended verification step. For a 0-param lifecycle tool whose safety profile is already in the annotations, nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters and the schema is trivially covered at 100%, so per the baseline for 0-param tools a 4 applies. There are no parameters to explain, and the description does not waste space fabricating parameter detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — 'Start the ActionD server in daemon mode' — with the daemon-mode qualifier adding precision. It distinguishes itself from the lifecycle siblings actiond_server_restart and actiond_server_stop by being the start operation, so an agent can tell them apart without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context: it is a lifecycle start usable only when ACTIOND_MCP_ALLOW_LIFECYCLE=1 is set, and it directs the agent to verify health afterwards with actiond_status. It does not explicitly name exclusions or contrast against server_restart/server_stop, so it stops short of a 5, but the precondition and follow-up pointer provide solid when-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description states 'Safe to call at any time with no side effects', which aligns with the readOnly/idempotent annotations and adds practical context. It also details the return JSON fields, going beyond annotation-provided info. Minor redundancy with annotations, but still adds value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with the primary purpose front-loaded. No unnecessary words, and every clause adds either purpose, output, or usage context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an empty schema and no output schema, the description fully covers what the tool does, what it returns, and when to use it relative to siblings. No missing information for invocation success.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has zero parameters and 100% coverage, so the baseline is 4. The description does not need to explain parameters since there are none, and it correctly implies the tool takes no input.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'Check' and the resource 'ActionD CI/CD server', along with the specific goal of capturing vitals. It distinguishes itself from siblings by explicitly naming actiond_log and actiond_actions_list as alternatives for different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to use this tool first when diagnosing connectivity, and directs to actiond_log for execution errors and actiond_actions_list for job history. This provides clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explicitly states the operation is read-only and positions it as a discovery step before mutations. The annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the description reinforces rather than significantly extends this, but it does add helpful context about its role relative to mutation tools.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, two sentences, and front-loads the core purpose. It avoids unnecessary detail while including the key distinctions from sibling tools and the returned entry fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, parameterless list tool, the description is complete: it states what is listed, what each entry contains, that it is read-only, and how it relates to the enable/disable and recommend tools. No additional context is needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, so there are no parameter semantics to explain. The description instead describes the output fields, which is the relevant information for a parameterless list operation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool lists every CI/CD plugin registered in ActionD, including both enabled and disabled plugins, and enumerates the fields returned. It also distinguishes itself from related sibling tools like actiond_plugin_enable, actiond_plugin_disable, and actiond_plugins_recommend.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to use this tool to discover valid plugin names before calling enable/disable, and contrasts it with actiond_plugins_recommend for when suggestions are wanted instead of a raw inventory. This gives clear when-to-use guidance versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description details behavioral specifics beyond the annotations, such as handling jobs without error output by reporting 'no_error_output' instead of silently dropping them. It also aligns with the readOnlyHint and idempotentHint by describing an analytical, non-mutating operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and informative, but slightly redundant in phrasing (e.g., restating that omitting job_id analyzes recent failures). Still, each sentence contributes useful detail and the structure flows logically from purpose to parameters to output.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description compensates for the absence of an output schema by enumerating what the agent can expect: root-cause category, error code, severity, confidence, evidence lines, likely files to change, and an aggregate summary. It also explains the edge-case behavior for jobs without error output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters are fully described in the schema, and the description adds practical semantics: job_id selects a specific job, while omitting it analyzes recent failures, and limit caps the number analyzed with a default of 5. This goes beyond the schema's basic definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's specific purpose: diagnosing failed CI/CD jobs and generating actionable fix suggestions from logs. It also explicitly distinguishes itself from related sibling tools by directing users to actiond_log for raw logs and actiond_action_get for job metadata.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool ('Reach for this first whenever a job fails') and when to use alternatives (actiond_log for raw logs, actiond_action_get for job metadata). This gives clear decision-making context for an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool blocks, has a timeout that aborts with an error, and never cancels the job itself. This adds behavioral context beyond the annotations (readOnlyHint, idempotentHint, destructiveHint), which are consistent with these statements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise yet thorough, with each sentence serving a distinct purpose: describing the blocking behavior, specifying when to call it, explaining the timeout effect, and directing to alternatives. No fluff or redundancy is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, the description fully covers the necessary context: what it does, when to use it, timeout behavior, and related tools. It leaves no ambiguity for an agent to decide when and how to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes both parameters (id and timeout) with 100% coverage, but the description adds the default timeout value (300 seconds) and explains that the timeout aborts with an error without canceling the job. This provides meaningful additional meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool blocks until a CI/CD job reaches terminal status and returns the full job detail, which is a specific verb and resource. It also distinguishes itself from polling actiond_action_get and mentions actiond_job_cancel for aborting, providing clear differentiation from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says to call it right after a push surfaces job IDs, with a concrete example ('lgh up' reports triggered_job_ids). It also states when not to use it: prefer over polling and use actiond_job_cancel for aborting, giving clear when-to and when-not-to guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes the mechanism (scans plugin directories, updates registry in place) and implies non-destructive behavior consistent with the destructiveHint: false annotation. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences that cover purpose, usage, and return value without any fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Provides a complete picture including what the tool returns ('status, the number of loaded plugins, and the plugin list') and points to a verification step, making it self-contained for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema coverage is complete, so no additional parameter description is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'Hot-reload' and the resource 'plugin registry', and distinguishes its function from sibling tools like plugin enable/disable and list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly specifies when to use ('after adding, editing, or removing a plugin manifest') and recommends verification with actiond_plugins_list, giving direct guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Reveals environment variable requirements, default refusal with a list of pending/running jobs, force behavior with job interruption, no-op behavior, and the return envelope. Consistent with idempotentHint and readOnlyHint annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Four dense but relevant sentences cover all key behaviors without unnecessary detail or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even without an output schema, the description states the return envelope format and covers all preconditions, side effects, and edge cases needed to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, force, is fully explained in both the schema and description, including its effect of stopping the server even when jobs are executing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action ('Stop the ActionD server daemon') and clearly distinguishes it from sibling lifecycle tools like start and restart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit usage conditions: requires ACTIOND_MCP_ALLOW_LIFECYCLE=1, default protects in-flight work, and force=true overrides that protection. Also notes the no-op behavior for an already-stopped server.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/JoeGlenn1213/ActionD'
If you have feedback or need assistance with the MCP directory API, please join our Discord server