Skip to main content
Glama

devtune_get_actions

Read-onlyIdempotent

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. Context detail includes robotsTxtDraftSummary for an Audit-finding action whose robots.txt blocks an answer engine or AI search crawler: whether an edit was drafted, the crawler tokens it unblocks and when the audit read the file, or null. Read the edited file and diff with devtune_get_action_brief. A human applies the edit; nothing has been applied, and training crawlers are never unblocked.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "devtune_get_actions"
  }
}

Input Schema

NameRequiredDescriptionDefault
pageNoDeprecated: pass cursor instead. Page number.
limitNoThe same setting as pageSize. Send either.
cursorNopagination.nextCursor from the previous page, unchanged. Keep the other arguments the same; omit it for the first page.
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. Changed3 schema fields changed
    • addedInput schema / properties / cursor
      Added value: +{
      +  "description": "pagination.nextCursor from the previous page, unchanged. Keep the other arguments the same; omit it for the first page.",
      +  "maxLength": 1024,
      +  "type": "string"
      +}
    • addedInput schema / properties / limit
      Added value: +{
      +  "$ref": "#/properties/pageSize",
      +  "description": "The same setting as pageSize. Send either."
      +}
    • changedInput schema / properties / page / description
      Previous value: -"Page number. Defaults to 1."New value: +"Deprecated: pass cursor instead. Page number."
  2. 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"
      +}
  3. 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"
      +}
  4. 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."
  5. 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"
      -}
  6. First observed

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare a read-only, non-destructive, idempotent operation, but the description adds substantial beyond-annotation behavior: status lifecycle meanings, null percentile semantics, ordering (portfolioRank ascending with nulls last), truncation limitations, that no edits/redirects have executed, and that stored snapshots are unvalidated. This is rich transparency, though buried in prose rather than structured.

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?

The description is an enormous, single-paragraph wall of dense prose covering dozens of unrelated response fields. While most sentences carry substantive information, it is not front-loaded or scannable, and critical points (status semantics, ordering) are buried among deep edge-case notes.

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?

With no output schema and a complex response shape, the description does the heavy lifting of explaining return values: percentileStatus conditions, pool size semantics, context detail contents, mergedSuggestions, robotsTxtDraftSummary, and limitations. It is substantially complete, though some field groups feel over-explained relative to others.

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 baseline is 3, but the description meaningfully expands the status enum (suggested/accepted/live/archived and blocked) and explains what detailLevel=context returns. It adds real semantic value for filtering decisions, though it omits any discussion of channel, priority, source, or cursor behavior beyond the schema.

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 distinguishes this list tool from close siblings such as devtune_get_agent_picks_actions or devtune_get_prompt_actions, so an agent cannot tell which action-list endpoint to call without opening the schemas.

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 / when-not-to-use guidance and no named alternatives for retrieving actions. The only sibling references are for follow-on operations (devtune_update_action for owner changes, devtune_get_action_brief for diffing robots.txt), not for choosing this tool over another.

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