Skip to main content
Glama

devtune_get_actions

Get the actions for a project. status is suggested (DevTune proposed it, nobody has decided), accepted (the team wants it done), live (the page is published and its measurement window is open) or archived (taken off the queue by the team); blocked is true on accepted work the team has marked blocked. Suggested actions expose the same nullable opportunity percentile, percentileStatus and percentileScope as REST (signal_family compares like signals; families are interleaved), Reach, Gap, Confidence, family (including citation defence), estimated state, measured facts, and locked-page steering source. A null percentile carries percentileStatus insufficient_reach when reach is null, sensor coverage is absent, or estimated reach is zero. It carries percentileStatus no_measured_gap when every product in the family is zero and reach is non-null and not estimated-zero. Numeric percentiles omit the status. percentilePoolSize counts rankable candidates in the full family before selection or pagination. A size of one means Only ranked opportunity of this type, never Top 1%. Older records omit the pool size; do not infer singleton status from percentile 100 or the returned page. Positive-product candidates are seated before zero-product candidates. Citation-defence normalization is matched_cohort_executions when the cohort rollup is published or window_executions when the matched cohort is not published yet. Both compare citations per successful prompt execution; matched-cohort loss reports one-window-only composition changes and states matched coverage of earlier citations. Suggested actions come first and follow persisted portfolioRank ascending, nulls last, and no action exposes a legacy scalar score. Context detail includes interventionExplanation, the same stored page decision as the app and REST, or null for legacy/manual rows without a shape. It includes selectedMove, buyerQuestions, source, auditFindings, nearby alternative and reason, limitations, protectedPageUrls and human_review_required approval. A recorded question can have null retained text; this does not mean no question was tracked. Refactor reorganizes an existing answer; enrich adds missing or outdated detail, both using refresh storage. Read stored_snapshot as unvalidated against current pages/questions, even for accepted, live or restored actions. Retargeting and consolidation are not selected moves: the stored evidence does not establish a new target question or justify combining pages. Limitations report only gaps relevant to the action; Creation is the stored choice, not a measurement that no existing page fits. Preserve unique facts and distinct intent; never delete pages or change protected pages. No edits, redirects or relinks have executed. Context metrics may include ownedPageMatches (at most forty) and ownedPageMatchCount (total retained checks). A no_match covers only the at-most-twelve-page shortlist; coverageIssues records unjudged inventory limits and source failures. It never proves that no page exists elsewhere. An incomplete check is not negative evidence, and checkedAt is omitted for an unstarted or undated check. Context detail includes topEvidence.redirectTargets for missing-page demand: up to three existing same-site URL and title candidates to check before redirecting, or an empty list. Candidates never change the action rank. Context detail includes bounded audit assessment dates, factor checks and prompt-coverage limits, plus structured Google eligibility dimensions when entitled live evidence is available. Every action carries assignedTo (its owner's user id, null when unassigned) and ownerName; change either with devtune_update_action. followUpOf (actionId, title, shippedAt) names the earlier action that shipped this page, null when there is none; read its result from the outcomes ledger. The intervention explanation records the original stored recommendation; current brief motion and the offered drafter take precedence when the brief chooses another approach. Question and Audit-finding lists disclose truncation through buyer_questions_truncated and audit_findings_truncated limitations. Context detail lists mergedSuggestions (label, mergedAt, confidence): reworded suggestions the duplicate check merged into the action as the same fix, hidden from the queue while the action holds its decision. Splitting one back out is done on the action's page in the app; this tool cannot split.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pageNoPage number. Defaults to 1.
sourceNoFilter Actions and Outcomes by source; both is the default
statusNoFilter by action status. Omit it to get every status.
channelNoFilter by recommended channel.
pageUrlNoFilter by target page URL before counts and pagination. Matches host and path, ignoring scheme, www, query, fragment and trailing slash.
pageSizeNoResults per page (1-100). Defaults to 25.
priorityNoFilter by priority level.
detailLevelNoResponse detail level. summary is default. context adds bounded why-now context, available opportunity evidence, metrics, top evidence with structured Google eligibility when available, the external pages winning its prompts (competitor and third-party, in the order briefs study them), brief readiness, and follow-up links.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / pageUrl
      Added value: +{
      +  "description": "Filter by target page URL before counts and pagination. Matches host and path, ignoring scheme, www, query, fragment and trailing slash.",
      +  "format": "uri",
      +  "maxLength": 4096,
      +  "pattern": "^https?:\\/\\/",
      +  "type": "string"
      +}
  2. Changed1 schema field changed
    • addedInput schema / properties / source
      Added value: +{
      +  "description": "Filter Actions and Outcomes by source; both is the default",
      +  "enum": [
      +    "ai_search",
      +    "agent_picks",
      +    "both"
      +  ],
      +  "type": "string"
      +}
  3. Changed1 schema field changed
    • changedInput schema / properties / detailLevel / description
      Previous value: -"Response detail level. summary is default. context adds bounded why-now context, available opportunity evidence, metrics, top evidence with structured Google eligibility when available, brief readiness, and follow-up links."New value: +"Response detail level. summary is default. context adds bounded why-now context, available opportunity evidence, metrics, top evidence with structured Google eligibility when available, the external pages winning its prompts (competitor and third-party, in the order briefs study them), brief readiness, and follow-up links."
  4. Changed3 schema fields changed
    • changedInput schema / properties / status / description
      Previous value: -"Filter by public action status. Use active for recommendations and backlog/in_progress/blocked/done/canceled for adopted work. The aliases open, completed, and dismissed map to backlog, done, and canceled."New value: +"Filter by action status. Omit it to get every status."
    • changedInput schema / properties / status / enum
      Previous value: -[
      -  "active",
      -  "backlog",
      -  "in_progress",
      -  "blocked",
      -  "done",
      -  "canceled",
      -  "open",
      -  "completed",
      -  "dismissed"
      -]New value: +[
      +  "suggested",
      +  "accepted",
      +  "live",
      +  "archived"
      +]
    • removedInput schema / properties / surface
      Removed value: -{
      -  "description": "Filter to the recommendation feed or the adopted backlog surface.",
      -  "enum": [
      -    "recommendation",
      -    "backlog"
      -  ],
      -  "type": "string"
      -}
  5. First observed

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does disclose substantial behavioral traits: read-only intent ('No edits, redirects or relinks have executed'), ordering (portfolioRank ascending, nulls last), truncation limitations, and null-handling for percentiles. It stops short of permissions, rate limits, or pagination mechanics beyond the ordering rule.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded, but the body is an enormous wall of domain jargon about return-value semantics that dwarfs the tool's actual operation. Much of it reads like a data dictionary rather than invocation guidance, and the sheer length hurts scannability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter read tool with no output schema, the description is more than complete on return semantics—status meanings, percentile/status null rules, truncation flags, and ordering are all covered. If anything it is over-complete, but nothing an agent needs to call it is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all eight parameters. The description nonetheless adds meaning beyond the schema by explaining the four status values and the detailLevel 'context' payload contents, which helps an agent interpret enum choices.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence 'Get the actions for a project' states a clear verb and resource. However, it never differentiates this general actions endpoint from close siblings like devtune_get_agent_picks_actions or devtune_get_prompt_actions, and the purpose is buried under a sprawling data-semantics dump.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use versus alternatives guidance. The only routing hints are incidental ('change either with devtune_update_action', 'this tool cannot split'), which describe adjacent mutations rather than when to call this read tool over its siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources