GoMobSec MCP server
The official Model Context Protocol server for GoMobSec. Use it to scan Android and iOS apps for security issues from Claude, Cursor, VS Code or any other MCP client. Results are mapped to OWASP MASVS, CWE and CVSS, and you can download the full pentest-style report.
You: Scan ./build/app-release.apk and tell me what to fix first.
AI: start_scan → wait_for_scan → get_findings → a prioritised fix plan
Use it in Claude without installing anything
GoMobSec also runs this server for you at https://mcp.gomobsec.ai/mcp. In
Claude, go to Settings → Connectors → Add custom connector, enter that URL,
and sign in with your GoMobSec account (Professional and Enterprise plans). Setup,
tools, security and privacy are covered in docs/HOSTED.md.
The rest of this page is about the local server, which reads apps straight from your disk and authenticates with an API key.
Requirements
- A GoMobSec account with an API key. Create one under API keys in GoMobSec. API keys come with the Professional and Enterprise plans.
uv(recommended) or Python 3.10+.
Install
The server runs locally over stdio. Your API key stays on your machine, and the server reads the APK or IPA straight from disk.
Claude Code
claude mcp add gomobsec --env GOMOBSEC_API_KEY=your-key -- uvx gomobsec-mcp
Claude Desktop, Cursor, Windsurf and others
Add this to the client's MCP config file. For Claude Desktop that is
claude_desktop_config.json; for Cursor it is ~/.cursor/mcp.json.
{
"mcpServers": {
"gomobsec": {
"command": "uvx",
"args": ["gomobsec-mcp"],
"env": { "GOMOBSEC_API_KEY": "your-key" }
}
}
}
VS Code
Add this to .vscode/mcp.json. VS Code asks for the key on first use and
stores it securely:
{
"inputs": [
{ "type": "promptString", "id": "gomobsec-key", "description": "GoMobSec API key", "password": true }
],
"servers": {
"gomobsec": {
"command": "uvx",
"args": ["gomobsec-mcp"],
"env": { "GOMOBSEC_API_KEY": "${input:gomobsec-key}" }
}
}
}
Without uv, run pip install gomobsec-mcp and use gomobsec-mcp as the command.
Tools
| Tool | What it does |
|---|---|
whoami |
The account and plan the key belongs to |
get_usage |
Scans used this month against the plan limit |
list_scans |
Recent scans, newest first |
get_scan |
Status of one scan and, once it is complete, the findings count by severity |
get_findings |
Findings with severity, CWE, MASVS category, CVSS, location and description. Can filter by severity; false positives are hidden unless asked for |
start_scan |
Uploads a local .apk, .xapk, .apks, .apkm or .ipa file and starts a scan (quick, static or full) |
wait_for_scan |
Waits for a scan to finish and reports progress meanwhile |
download_report |
Saves the DOCX, XLSX, JSON or SARIF report to your download folder |
There is also one prompt, security_review, which turns a finished scan into
a prioritised fix plan.
Scans you start here count against your GoMobSec plan, exactly like scans from the web app or CI. The scan modes and limits are the ones your plan allows.
Configuration
| Variable | Default | |
|---|---|---|
GOMOBSEC_API_KEY |
— | Required. Your GoMobSec API key |
GOMOBSEC_DOWNLOAD_DIR |
~/Downloads/gomobsec |
The only folder download_report writes to |
GOMOBSEC_API_URL |
https://api.gomobsec.ai |
Change this only for a dedicated or on-prem GoMobSec |
GOMOBSEC_APP_URL |
https://gomobsec.ai |
Base URL for the report links |
Security
- Your key stays local. It is read from the environment and only ever sent to GoMobSec over HTTPS. It is never written to a file or included in tool output.
- Uploads are limited to app packages.
start_scanonly sends files that are mobile app packages: the right extension, a zip archive, and at most 250 MB. It cannot be used to upload any other file from your machine. - Downloads never overwrite.
download_reporttakes no path. It writes new files (mode0600) intoGOMOBSEC_DOWNLOAD_DIRand never replaces an existing file. - Finding text is treated as untrusted. Titles and descriptions can contain strings from the scanned app, and an app author controls those. The server strips control and bidi characters, keeps the text inside a fenced data block, and tells the model to treat it as data. Still, review what your assistant does after reading the results of a scan of an app you don't trust.
- Access is limited to your own scans. The key only sees scans on its own account or organisation. Revoke it in GoMobSec at any time.
To report a vulnerability, see SECURITY.md.
Privacy
The local server keeps nothing. It reads your API key from the environment, sends requests only to GoMobSec, and writes only the reports you ask for. What GoMobSec does with the apps you scan is in the GoMobSec privacy policy. For the hosted connector, see its privacy policy.
Development
python -m venv .venv && . .venv/bin/activate
pip install -e ".[test]"
pytest
Try it with the MCP Inspector: npx @modelcontextprotocol/inspector gomobsec-mcp.
The hosted connector's tests (tests/test_hosted.py) run a real HTTP server on a
free port and go through the whole OAuth flow, with GoMobSec's side faked.
Releasing
- Bump the version in
src/gomobsec_mcp/__init__.pyand bothversionfields inserver.json(the tests and the release workflow check they match), and add aCHANGELOG.mdentry. - Publish a GitHub release tagged
vX.Y.Z. ThePublishworkflow tests and builds it, uploads it to PyPI (Trusted Publishing), then lists it in the MCP Registry (GitHub OIDC). No tokens are stored in the repository.
License
MIT
Metadata
Release files for gomobsec-mcp 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| gomobsec_mcp-0.2.0.tar.gz | 45.9 kB | With provenance | Details for gomobsec_mcp-0.2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| gomobsec_mcp-0.2.0-py3-none-any.whl | Python 3 | none | any | Details for gomobsec_mcp-0.2.0-py3-none-any.whl |
Total release size: 83.7 kB
Release files / gomobsec_mcp-0.2.0.tar.gz
| Download URL | gomobsec_mcp-0.2.0.tar.gz |
|---|---|
| Size | 45.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ffe3691ff218cd648bd99a0af28da1885af0e19c775cc723b4878485b0caf7c6
|
|
BLAKE2b-256 checksum How to use checksums |
84c2c363875eebf1777c331e5cb04d4301ca668a72334b2917c43201bc5aeb16
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 31, 2026.
Transparency logRelease files / gomobsec_mcp-0.2.0-py3-none-any.whl
| Download URL | gomobsec_mcp-0.2.0-py3-none-any.whl |
|---|---|
| Size | 37.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9e0f769468fa7c967a5c716b2440eb878e8f92d335bb1278f114ca43414fde54
|
|
BLAKE2b-256 checksum How to use checksums |
622fb2f8005820cce0aa07bfff2828570aee69e21af2cef97046d0dfad8bf166
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 31, 2026.
Transparency logSecurity for gomobsec-mcp 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for gomobsec_mcp-0.2.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 31, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.