SnappySnag

io.github.snappysnagPublished by GitHub account snappysnagv1.0.0Updated Oct 29, 2026

Flutter in-app bug tracking, visual pin annotations, and device logs directly into your AI IDE.

The publisher's own server: Snag

VerifiedStreamable HTTPWeb executableProductivity & WorkflowDeveloper Tools

Overview

AI-generated overview

SnappySnag's hosted MCP server lets an AI coding assistant read Flutter in-app bug reports — pins, screenshots, widget trees, device logs — and mark them…

What you can do
  • Fetch the latest bug report or feedback with pins, screenshot, metadata and device info
  • Search and list feedback tickets by status, severity, source or keyword
  • Retrieve full details of one ticket, including screenshot, active pins and discussion notes
  • Update a ticket's status (resolved, ignored, open) and attach a developer resolution note
When to use it
Useful for Flutter teams whose QA testers or users file visual bug reports through SnappySnag and who want the coding assistant to inspect the reported screen and widget context, apply a fix, and close the ticket without leaving the editor.
Requirements
A remote endpoint at snappysnag.com, reached over Streamable HTTP with OAuth sign-in, or a local Node.js run of the server. A SnappySnag account and a project-scoped MCP secret key, sent as a Bearer Authorization header or a key argument; without a key the local option runs in demo mode with mock tickets.
Before you install
The MCP secret key is a credential: keep it out of shared configs and revoke or regenerate it if exposed. The server can change ticket state and post resolution comments, so assistant actions write to your SnappySnag project. Bug reports, screenshots and device logs are sent to and from SnappySnag's hosted service.

Installation

In SourceWeft

  1. Open SnappySnag in the dashboard and add it to a workspace.
  2. Connect the required credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.snappysnag%2Fsnappysnag/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.

{
  "mcpServers": {
    "snappysnag": {
      "type": "http",
      "url": "https://snappysnag.com/api/mcp"
    }
  }
}

README

SnappySnag Model Context Protocol (MCP) Server

[MIT License] [SnappySnag] [pub.dev]

The official Model Context Protocol (MCP) integration for SnappySnag — seamlessly bridge Flutter in-app bug reports, pin annotations, screen diagnostics, and device logs directly into Cursor, Windsurf, Claude Desktop, and other AI coding assistants.


⚡ What is SnappySnag MCP?

When testing Flutter applications, QA testers and end-users pinpoint visual bugs or unexpected behaviors directly on the mobile screen. SnappySnag captures:

  • Exact visual pin coordinates and feedback comments
  • Annotated high-resolution screenshot
  • Active screen class & widget tree hierarchy
  • Real-time device logs (OS, platform, version, device metadata)
  • AI-generated root-cause insights and resolution prompts

With the SnappySnag MCP Server, your AI coding agent (in Cursor, Windsurf, Claude, etc.) can inspect these bug reports directly, jump straight to the relevant Flutter widget code, implement fixes, and mark tickets as resolved without ever switching context away from your editor.


🛠️ Available MCP Tools

ToolDescriptionKey Parameters
get_latest_feedbackFetches the most recent bug report or user feedback with full details (active pins, screenshot, metadata, device info).status (open | all), include_screenshot (true | false)
list_feedbacksSearches and lists feedback tickets matching filter criteria (status, severity, keyword). Returns lightweight summaries.status (open | resolved | ignored | all), severity, source, keyword, limit
get_feedback_detailRetrieves complete details for a specific feedback ID, including screenshot image, active pins, and discussion notes.feedback_id (required), include_screenshot
update_feedback_statusUpdates ticket status (resolved / ignored / open) and optionally attaches a developer resolution note.feedback_id (required), status (required), comment

🚀 Quick Start / Configuration

SnappySnag supports two connection options:

  1. Option A (Command / stdio with Demo Mode): Runs locally via standard MCP stdio. If no key is provided, an interactive Demo Mode with mock Flutter bug tickets is activated!
  2. Option B (Remote SSE / Streamable HTTP): Connects directly to SnappySnag's hosted endpoint without any local dependencies.

1. Get your MCP Secret Key (Optional for Demo)

  1. Sign in to your SnappySnag Dashboard.
  2. Open Project Settings (gear icon) -> Integrations or MCP tab.
  3. Click Generate MCP Secret Key and copy your key (snag_mcp_...).

2. Configure Your AI Editor

🔹 Option A: Command / stdio (npx or local build)
Cursor (.cursor/mcp.json)
json
{  "mcpServers": {    "snappysnag": {      "command": "node",      "args": ["path/to/snappy-snag-mcp/dist/index.js", "--key=YOUR_MCP_SECRET_KEY"]    }  }}

(Tip: Omit --key or set --key=demo to test with demo data!)

Claude Desktop (claude_desktop_config.json)
json
{  "mcpServers": {    "snappysnag": {      "command": "node",      "args": ["path/to/snappy-snag-mcp/dist/index.js", "--key=YOUR_MCP_SECRET_KEY"]    }  }}

🔹 Option B: Streamable HTTP (Remote SSE)
Cursor (.cursor/mcp.json)
json
{  "mcpServers": {    "snappysnag": {      "url": "https://snappysnag.com/api/mcp",      "headers": {        "Authorization": "Bearer YOUR_MCP_SECRET_KEY"      }    }  }}
Windsurf (~/.codeium/windsurf/mcp_config.json)
json
{  "mcpServers": {    "snappysnag": {      "serverUrl": "https://snappysnag.com/api/mcp",      "headers": {        "Authorization": "Bearer YOUR_MCP_SECRET_KEY"      }    }  }}

💡 Example Prompt Workflow

Once connected, you can instruct your AI assistant naturally:

"Check the latest open bug report from SnappySnag and fix the issue."

The AI agent will:

  1. Call get_latest_feedback(status: "open") to inspect the reported screen, pin position, and device specs.
  2. Read the referenced Flutter widget file in your repository.
  3. Apply the necessary code fix or layout adjustment.
  4. Call update_feedback_status(feedback_id: "...", status: "resolved", comment: "Fixed overflow in ProductCard layout").

🔒 Security & Privacy

  • Per-Project Scoped Keys: Each MCP Secret Key is strictly scoped to its designated project.
  • Instant Revocation: If compromised, keys can be regenerated or revoked with a single click in the dashboard.
  • Encrypted Transmission: All data and screenshot assets are delivered via HTTPS with short-lived signed URLs.

📚 Resources & Links


📄 License

This repository is licensed under the MIT License.

Source: README.md at commit 0a53e79

Tools

0
This server asks for a credential such as an API key, so SourceWeft could not read its tools without one and has not indexed them.

Version history

1
  1. v1.0.0LatestOct 29, 2026

Score

85% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Snag integrations