About SnappySnag
SnappySnag is an MCP server for Flutter teams that brings in-app bug reports and device diagnostics into AI coding assistants. Clients can inspect screenshots, pins, widget context and logs, then update ticket status.
Key features
- 01Fetch recent feedback and reports
- 02Filter tickets by status and severity
- 03View screenshots, pins and device details
- 04Update ticket status with a note
Use cases
- 01Inspect a Flutter bug report in an AI IDE
- 02Find tickets by severity or keyword
- 03Review device logs and widget context
- 04Mark a fixed report as resolved
MCP support
Exposes feedback retrieval, ticket search, detail lookup and status updates as MCP tools. It supports local stdio and a hosted remote endpoint.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://snappysnag.com/api/mcpclaude mcp add --transport http snappysnag-snappysnag https://snappysnag.com/api/mcp{"mcpServers":{"snappysnag-snappysnag":{"type":"http","url":"https://snappysnag.com/api/mcp"}}}Open in Cursor{"servers":{"snappysnag-snappysnag":{"type":"http","url":"https://snappysnag.com/api/mcp"}}}Open in VS Code{"mcpServers":{"snappysnag-snappysnag":{"type":"http","url":"https://snappysnag.com/api/mcp"}}}{"mcpServers":{"snappysnag-snappysnag":{"serverUrl":"https://snappysnag.com/api/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
Details
From the project READMESnappySnag Model Context Protocol (MCP) Server
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
| Tool | Description | Key Parameters |
|---|---|---|
get_latest_feedback | Fetches 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_feedbacks | Searches and lists feedback tickets matching filter criteria (status, severity, keyword). Returns lightweight summaries. | status (open | resolved | ignored | all), severity, source, keyword, limit |
get_feedback_detail | Retrieves complete details for a specific feedback ID, including screenshot image, active pins, and discussion notes. | feedback_id (required), include_screenshot |
update_feedback_status | Updates 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:
- 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!
- 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)
- Sign in to your SnappySnag Dashboard.
- Open Project Settings (gear icon) -> Integrations or MCP tab.
- 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)
{
"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)
{
"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)
{
"mcpServers": {
"snappysnag": {
"url": "https://snappysnag.com/api/mcp",
"headers": {
"Authorization": "Bearer YOUR_MCP_SECRET_KEY"
}
}
}
}
Windsurf (~/.codeium/windsurf/mcp_config.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:
- Call
get_latest_feedback(status: "open")to inspect the reported screen, pin position, and device specs. - Read the referenced Flutter widget file in your repository.
- Apply the necessary code fix or layout adjustment.
- 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
- SnappySnag Official Site: https://snappysnag.com
- Flutter SDK (
snappy_snag): pub.dev/packages/snappy_snag - Model Context Protocol (Anthropic): modelcontextprotocol.io
📄 License
This repository is licensed under the MIT License.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.