Install
$ agentstack add skill-marker-io-mcp-skills-marker-triage ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
marker-triage
Turn a Marker.io feedback backlog into decisions: content split from bugs, grouped by page, prioritized, deduplicated, with the affected users listed. Built for agencies and website teams, where most feedback is content (typos, copy, images, links) and the rest is functional bugs. Takes a backlog of 100+ reports to a decision-ready triage in minutes.
When to use
The user wants to make sense of many Marker.io issues at once: "go through the <project> feedback and categorize it", "what are the top issues this week", "triage the backlog", "which bugs hit the most users". For fixing a single report in code, use marker-bug-to-fix instead.
Inputs to confirm
- Which project (resolve per the operating rules).
- Scope: default to issues from the last 14 days, or "all" if asked. Confirm before pulling a large board.
- Whether to write triage decisions back (priority/type/status) or just produce the report.
Steps
- Resolve the project and discover its issue types and statuses (
list_issue_types,project_get).
Read the site's websiteUrls so each issue URL maps to a page.
- Pull the backlog with
issues_list, paginatinglimit/offsetuntil the scope is covered. The MCP
has no date filter, so paginate fully and filter to the window client-side on createdAt. Use fields to keep the list lean (markerId, title, status, priority, url, reporter, createdAt).
- Split every report into content (typo, copy/wording, wrong number or fact, image/media, broken
link, layout/spacing, translation) or functional (form, navigation, JavaScript error, responsive break, performance). Marker does not expose an issue's type to read, so infer it from the title and page URL; enrich with issue_get + issue_get_context, a issue_get_screenshot, or a specific issue_get_console_log / issue_get_network_request only when it changes the call.
- Group by page (from the URL), then by theme within each page. Merge near-duplicate themes.
- Rate criticality per issue (blocker / high / medium / low) from impact and breadth, not the reporter's
wording. Weigh page prominence: a typo on the homepage is low-severity but high-visibility. Note the reasoning briefly.
- Flag quick wins: content fixes that are likely a two-minute change (a typo, a wrong number, a
swapped image). Agencies clear these fast to show clients immediate progress.
- Detect duplicates and repeat reporters: group issues sharing a page + theme or near-identical
screenshots; flag reporters who filed multiple related issues.
- Surface blind spots: systemic patterns spanning pages (one root cause behind many reports, e.g. a
stale data source repeated across the site).
Output artifacts
Write to the working directory:
marker--categorized-issues-.md— executive summary, the content-vs-functional split,
a per-page dashboard with counts and criticality, the quick-wins list, the duplicate clusters, and the blind-spot findings.
ISSUES-.md— every identified issue in a table: numeric code, title, short description, page,
class (content/functional), criticality, Marker link.
affected-users-.csv(when reporter data is present) — columns: issue code, reporter name,
reporter email. One row per affected user, for developer outreach / PM follow-up.
Acting on the triage (gated)
If the user wants decisions written back, propose a table of issue -> priority/type/status changes, then apply with issue_update_priority, issue_update_type, issue_update_status after confirmation. Use only the type IDs and status strings discovered in step 1.
Operating rules
This skill drives the Marker.io MCP. Read tools: projects_list, project_get, project_list_users, list_issue_types, issues_list, issue_get, issue_get_context, issue_get_screenshot, issue_get_attachments, issue_get_console_log, issue_get_network_request. Write tools: issue_update_status, issue_update_assignee, issue_update_priority, issue_update_type, comment_create.
- Resolve the project first. Call
projects_list(filter withsearchText). If more than one
could match, show the candidates and ask which one. Never guess a projectId.
- Discover before you write. Status and issue-type strings are project-specific. Call
list_issue_types and project_get for valid values before any issue_update_*. Get user IDs from project_list_users before assigning or @mentioning.
- Read cheap, drill deep only when it matters. Start from
issue_get_contextsummaries; fetch a
specific issue_get_console_log(logIndex) / issue_get_network_request(requestIndex) or issue_get_screenshot only when it changes a decision.
- Propose, then apply. Before any write, print a table of the planned changes (issue, field,
old to new). Apply via the *_update_* / comment_create tools only after the user confirms. Default comment visibility to Member-only unless the reporter should see it.
- Respect the limits.
issues_listdoes not return assignee (fetch per-issue viaissue_get).
The MCP cannot create Marker.io issues. Never embed tokens; rely on the configured MCP auth.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: marker-io
- Source: marker-io/mcp-skills
- License: MIT
- Homepage: https://marker.io
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.