Lets an AI agent access mobile QA results, including bug evidence, screen graphs, network hosts, and build comparisons for Android and iOS apps.
Also known as FlyTrap-QA/mcp, mcp, @flytrap-qa/mcp
- Stars
- 1
- Tools
- 18
- Downloads, 30 days
- 355
- Latest version
- 0.1.4
- Last commit
- Nov 9, 2026
- License
- MIT
What is FlyTrap MCP?
FlyTrap lets an AI agent access mobile QA results, including bug evidence, screen graphs, network hosts, and build comparisons for Android and iOS apps. It exposes 18 tools, such as whoami, list_projects, get_project.
Summary generated from the project's README
About FlyTrap MCP server
FlyTrap provides mobile quality assurance data directly to coding agents. It allows developers to connect tools like Claude, Cursor, VS Code, and Devin to real-world testing results from Android and iOS applications. Instead of manually digging through logs, an agent can access specific bug evidence, including screenshots, UI XML, logcat errors, and failed network calls. This helps the agent understand exactly why a mobile app is failing during user flows like onboarding or signing in.
Users can connect via a hosted remote server using OAuth through a browser or by running a local npm package with an API key. The server is designed for reading results and does not interact with your source code or decompile binaries. Beyond bug reporting, it provides insights into screen graphs, detected SDKs, permissions, and network hosts. It also enables build comparisons to identify changes in behavior or security between different versions of an app.
What you can do with it
- 1Debug mobile application failuresAsk the agent to find where the app breaks and provide the necessary visual and technical evidence.
- 2Analyze network communicationIdentify which third-party hosts a specific build contacts during a particular user flow.
- 3Perform build diffingCompare two different builds to see changes in SDKs, permissions, or bugs.
- 4Audit detected SDKsQuery the system to find which SDKs are being used by a specific Android package.
Written from the project's README. Every use case is checked against a quote from it.
How to install FlyTrap MCP
Formats verified 10 Nov 2026Install FlyTrap MCP in Claude Code
$ claude mcp add --env FLYTRAP_API_KEY=<YOUR_FLYTRAP_API_KEY> mcp -- npx -y @flytrap-qa/mcpInstall FlyTrap MCP in Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@flytrap-qa/mcp"
],
"env": {
"FLYTRAP_API_KEY": "<YOUR_FLYTRAP_API_KEY>"
}
}
}
}Install FlyTrap MCP in VS Code
.vscode/mcp.json
{
"servers": {
"mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@flytrap-qa/mcp"
],
"env": {
"FLYTRAP_API_KEY": "<YOUR_FLYTRAP_API_KEY>"
}
}
}
}Install FlyTrap MCP in Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@flytrap-qa/mcp"
],
"env": {
"FLYTRAP_API_KEY": "<YOUR_FLYTRAP_API_KEY>"
}
}
}
}Install FlyTrap MCP in Codex
~/.codex/config.toml
[mcp_servers.mcp] command = "npx" args = ["-y", "@flytrap-qa/mcp"] [mcp_servers.mcp.env] FLYTRAP_API_KEY = "<YOUR_FLYTRAP_API_KEY>"
Install FlyTrap MCP in Gemini CLI
~/.gemini/settings.json
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@flytrap-qa/mcp"
],
"env": {
"FLYTRAP_API_KEY": "<YOUR_FLYTRAP_API_KEY>"
}
}
}
}FlyTrap MCP tools 18
Detected from the READMEwhoamilist_projectsget_projectlist_buildsget_build_summaryget_sdkslist_bugsget_bug_evidenceget_screen_graphget_network_hostssearch_appsget_ux_benchmark
| whoami | — | |
| list_projects | — | |
| get_project | — | |
| list_builds | — | |
| get_build_summary | — | |
| get_sdks | — | |
| list_bugs | — | |
| get_bug_evidence | — | |
| get_screen_graph | — | |
| get_network_hosts | — | |
| search_apps | — | |
| get_ux_benchmark | — |
Show all 18 toolsShow fewer tools
list_competitorsfind_competitorsadd_competitorremove_competitorcompare_buildsstart_crawl
| list_competitors | — | |
| find_competitors | — | |
| add_competitor | — | |
| remove_competitor | — | |
| compare_builds | — | |
| start_crawl | — |
Configuration
FLYTRAP_API_KEYSecretFlyTrap API key (ft_live_...) from https://dashboard.flytrap.dev/settings/api-keys. Optional: public catalog tools work without it.
| Name | Description | |
|---|---|---|
| FLYTRAP_API_KEY | FlyTrap API key (ft_live_...) from https://dashboard.flytrap.dev/settings/api-keys. Optional: public catalog tools work without it. | Secret |
Automated checks
Ran Nov 12, 2026Full report →Passed our automated checks. That is not a security audit: read the code and give the server the narrowest access it needs. How checks work
- Source repository linked and reachablePass
- Open source license (OSI)Pass
- Commit or release in the last yearPass
- Package name not close to a popular packagePass
- Remote endpoint uses HTTPSNot checked
- Destructive tools are labelledNot checked
- No hidden instructions to the modelPass
- No critical advisory in the package or its dependenciesPass
README
View on GitHub@flytrap-qa/mcp
MCP server for FlyTrap.
FlyTrap uses your Android or iOS app on real devices the way a new user would: signing in, going through onboarding, searching, hitting the wrong password screen. In about 30 minutes you get a list of where it breaks. This server puts that list in the coding agent you already use (Claude, Cursor, VS Code, Devin, Codex, Windsurf, Zed), with the screenshot, UI XML, logcat and failed network calls for every bug, so the agent can go and fix them.
It can also read the screen graph, the hosts your build talks to, detected SDKs and permissions, and what changed between two builds. It only reads results. It does not run apps, decompile binaries or touch your source tree.
There are two ways to connect: the hosted server (nothing to install, you sign in with your FlyTrap account) or this npm package running locally with an API key.
Hosted server
URL: https://api.flytrap.dev/mcp (Streamable HTTP, OAuth)
Add it as a remote MCP server. Your agent opens a browser, you sign in to FlyTrap and click Allow. Read access is always on; tick Also allow starting crawls only if you want the agent to queue crawls. The connection shows up in the dashboard under Settings > API keys, and you can revoke it there.
- Claude (claude.ai, Claude Desktop): Settings > Connectors > Add custom connector, paste the URL.
- Claude Code:
claude mcp add --transport http flytrap https://api.flytrap.dev/mcp, then run/mcp, pick flytrap and choose Authenticate. - Cursor (
~/.cursor/mcp.json):{ "mcpServers": { "flytrap": { "url": "https://api.flytrap.dev/mcp" } } } - VS Code (
.vscode/mcp.json):{ "servers": { "flytrap": { "type": "http", "url": "https://api.flytrap.dev/mcp" } } } - Devin: Customize > MCPs > Add custom MCP, HTTP transport, paste the URL, authentication OAuth, then Connect.
If your client can't do the browser sign-in, send an API key instead: Authorization: Bearer ft_live_....
Local package
- Sign in at dashboard.flytrap.dev, open Settings > API keys and create a key. Leave Allow starting crawls off unless you want the agent to be able to queue new crawls.
- Add the server to your agent:
{
"mcpServers": {
"flytrap": {
"command": "npx",
"args": ["-y", "@flytrap-qa/mcp@latest"],
"env": {
"FLYTRAP_API_KEY": "ft_live_..."
}
}
}
}
Claude Code: claude mcp add flytrap -e FLYTRAP_API_KEY=ft_live_... -- npx -y @flytrap-qa/mcp@latest
Codex CLI (~/.codex/config.toml):
[mcp_servers.flytrap]
command = "npx"
args = ["-y", "@flytrap-qa/mcp@latest"]
env = { FLYTRAP_API_KEY = "ft_live_..." }
What to ask
- "Where does my app break? Show me the evidence."
- "Which third-party hosts does build 1184 talk to before the consent screen?"
- "What changed between build 1180 and 1184: SDKs, permissions, bugs?"
- "Which SDKs does com.booking ship on Android?" (public catalog, no key needed)
Without FLYTRAP_API_KEY the public catalog tools still work.
Tools
Your projects (need a sign-in on the hosted server, or FLYTRAP_API_KEY locally):
| Tool | What it returns |
|---|---|
whoami |
The account the key belongs to |
list_projects |
Projects the key owner can read, with the selected crawl run |
get_project |
One project plus its live crawl status |
list_builds |
Builds of a project with binary SHA-256 and provenance |
get_build_summary |
Version, size, SDK/permission counts, bug and test counts, screens, network and performance totals |
get_sdks |
Detected SDKs with confidence and evidence sources, declared permissions, deep links |
list_bugs |
Bugs from the selected run, sorted by severity |
get_bug_evidence |
Scenario, failed step, screenshots and XML (signed URLs), logcat error window, failed network calls, performance peaks, a ready ai_prompt |
get_screen_graph |
Screens reached and the tap edges between them |
get_network_hosts |
Hosts contacted with call counts, bytes and error rates |
search_apps |
Describe an app in plain language, get the crawled public apps whose observed features cover it, with matched and missing requirements |
get_ux_benchmark |
Your build's features next to the same feature in competitor and same-genre apps, with screenshots |
list_competitors |
Competitors pinned to a project's UX benchmark |
find_competitors |
Search crawled public apps and Google Play for apps to pin |
add_competitor |
Pin a crawled app, or create a store project from a Google Play package and pin it (crawl scope, confirm: true to create) |
remove_competitor |
Unpin a competitor (crawl scope) |
compare_builds |
SDK, permission, deep link, host, bug and screen diff between two builds |
start_crawl |
Queues a new crawl of the current build. Needs the crawl scope and confirm: true |
Public catalog (no key): lookup_app, get_app_profile, lookup_sdk, lookup_permission.
Agent skill
skills/flytrap/SKILL.md tells an agent when to reach for which tool and how to cite evidence. Copy it into your project's skills folder (for example .claude/skills/flytrap/SKILL.md or .cursor/rules/) or point your agent at it.
Configuration
The only setting is FLYTRAP_API_KEY: your personal key from Settings > API keys (ft_live_...). It is optional for the public catalog tools. The server always talks to https://api.flytrap.dev.
Security
- The key is sent only to
https://api.flytrap.devas aBearerheader, over https. It is never written to disk or logged. - Keys are scoped. A
readkey cannot start crawls, create keys or change billing, even if the agent asks. Revoke keys any time in the dashboard. - Keys inherit the project permissions of the user who created them. A key never sees another account's private projects.
- Tool output is bounded (log windows, call caps, 4 MiB per response) and marked as untrusted app data, since bug titles, log lines and URLs originate from the crawled app and its traffic.
start_crawl,add_competitorandremove_competitorare the only tools that change anything; they need a key created with thecrawlscope. Queuing a crawl (start_crawl, oradd_competitorwith a Google Play package) also requires an explicitconfirm: true.
REST instead of MCP
Every tool maps to a REST endpoint, so an agent that can run curl can do the same without this package:
curl -H "Authorization: Bearer $FLYTRAP_API_KEY" https://api.flytrap.dev/project/projects
curl -H "Authorization: Bearer $FLYTRAP_API_KEY" https://api.flytrap.dev/project/projects/1248/bugs
curl -H "Authorization: Bearer $FLYTRAP_API_KEY" https://api.flytrap.dev/project/projects/1248/bugs/BUG-102/evidence
API reference: https://api.flytrap.dev/docs
Development
npm install
npm test
FLYTRAP_API_KEY=ft_live_... npm run inspect # MCP Inspector UI
Requires Node 20 or newer. Published from GitHub Actions on tags (v*) with npm provenance.
FlyTrap MCP questions
How do I add FlyTrap MCP to Claude Code?
Run claude mcp add --env FLYTRAP_API_KEY=<YOUR_FLYTRAP_API_KEY> mcp -- npx -y @flytrap-qa/mcp in your terminal. Add --scope user to make it available in every project.
How do I add FlyTrap MCP to Cursor?
Open ~/.cursor/mcp.json and add the server under mcpServers, using the Cursor config shown in the install section above.
What tools does FlyTrap MCP provide?
It exposes 18 tools, including whoami, list_projects, get_project, list_builds, get_build_summary.
How can I connect to FlyTrap?
You can use the hosted server via OAuth by adding the URL to your agent, or run the npm package locally using an API key.
Does the server run my mobile apps?
No, the server only reads existing results and does not run apps, decompile binaries, or touch your source tree.
Is an API key required for all tools?
No, the public catalog tools like lookup_app and lookup_sdk work without an API key.