If you find a security issue in architect-mcp, please do not open a public GitHub issue. Instead, email the maintainer directly:
I'll acknowledge within 72 hours and aim to land a fix or coordinated disclosure within 30 days, depending on severity and complexity.
architect-mcp is a small Go MCP server that proxies prompts to a local Ollama instance and (optionally) screenshots external URLs via headless Chrome. The areas most likely to harbor security issues:
- The
generate_blueprint_from_urltool accepts an arbitrary URL and screenshots it via chromedp. It enforces a private-IP/loopback/link-local block by default (internal/screenshot/screenshot.go) — bypasses of that SSRF guard are in-scope. The env overrideARCHITECT_ALLOW_PRIVATE_IPS=trueexists for operators who deliberately want intra-LAN captures; reports about the override's behavior when set are not in-scope. - The
ollama_urlper-call override lets an MCP client override the configured Ollama endpoint. The handler validates scheme + refuses redirects (internal/architect/ollama.go) but the field accepts any URL the client passes. Issues with that validation are in-scope. - The
output_pathfield ongenerate_blueprintwrites a markdown file under a configuredoutput_rootdirectory. Path traversal that escapesoutput_rootis in-scope (the resolver ininternal/mcp/blueprint_tool.gois intended to reject this). - Stdout discipline — architect-mcp runs as a stdio MCP server; anything that writes non-protocol bytes to stdout is a bug. Reports welcome.
- Issues with Ollama itself, Chrome/Chromium, or the MCP SDK — please report those upstream.
- Resource exhaustion against an operator's own local Ollama (the server has no cross-tenant model).
- Issues that require the attacker to already have write access to the operator's MCP config or Go module cache.
When the fix is landed, I prefer co-authored disclosure: a brief writeup in the release notes plus a CVE if warranted. Tell me how you want to be credited.