{"title":"Browser Proxy","slug":"browser","category":"api","summary":"Browser automation service — separate Docker container on port 13000 for headless browser control.","audience":["human","llm"],"tags":["api","browser","automation","playwright"],"difficulty":"advanced","updated":"2026-06-27","word_count":218,"read_minutes":1,"llm_context":"Browser Proxy is a SEPARATE Docker service (port 13000), NOT a Synapse endpoint.\nSynapse endpoints do NOT include /browser/* paths.\nFor browser automation, use the MCP browser_new tool OR connect to the browser-proxy service directly.\nSynapse MCP exposes browser tools (browser_new, browser_navigate, browser_click, etc.)\n","lang":"en","translated":true,"requested_lang":"en","content_markdown":"\n# Browser Proxy\n\nThe Browser Proxy is a **separate Docker service** that provides headless\nbrowser automation via Playwright. It is NOT part of the Synapse API directly —\nSynapse endpoints do not include `/browser/*` paths.\n\n## Architecture\n\n```\n┌──────────────┐                ┌──────────────────┐\n│  Synapse API │                │  Browser Proxy   │\n│  port 12800  │                │  port 13000      │\n│              │                │  (Playwright)    │\n└──────────────┘                └──────────────────┘\n       ▲                                ▲\n       │                                │\n       └──────────┌─────────────┐──────┘\n                  │  MCP Server │\n                  │  port 13100 │\n                  └─────────────┘\n```\n\n## Access Methods\n\n### Method 1: Via Synapse MCP Server (recommended)\n\nThe Synapse MCP server exposes browser tools as MCP tools. Use this for\nLLM-driven browser automation:\n\n```json\n// Claude Desktop config\n{\n  \"mcpServers\": {\n    \"synapse\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"synapse-mcp-api@latest\"],\n      \"env\": {\n        \"SYNAPSE_MIND_KEY\": \"mk_...\",\n        \"SYNAPSE_URL\": \"https://synapse.schaefer.zone\"\n      }\n    }\n  }\n}\n```\n\nAvailable MCP browser tools:\n\n- `browser_new` — open a new browser tab\n- `browser_navigate` — navigate to a URL\n- `browser_click` — click an element\n- `browser_type` — type text into a field\n- `browser_screenshot` — capture a screenshot\n- `browser_close` — close the tab\n- (and more — see [MCP integration](/docs/mcp/what-is-mcp))\n\n### Method 2: Direct Browser Proxy Access\n\nFor non-MCP integrations, connect directly to the browser-proxy service:\n\n```bash\n# Health check\ncurl http://browser-proxy.schaefer.zone:13000/health\n\n# Open a page\ncurl -X POST http://browser-proxy.schaefer.zone:13000/navigate \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"url\": \"https://example.com\"}'\n```\n\n## Common Use Cases\n\n### Web scraping\n\n```python\n# Via MCP (Claude Desktop)\n\"Use browser_navigate to open https://news.ycombinator.com, \n then extract the top 10 story titles.\"\n```\n\n### Form automation\n\n```python\n# Via MCP\n\"Use browser_navigate to open the login page,\n browser_type to fill username and password,\n browser_click to submit the form.\"\n```\n\n### Screenshot capture\n\n```python\n# Via MCP\n\"Take a screenshot of https://example.com and save it.\"\n```\n\n## Related Services\n\n| Service | Port | Purpose |\n|---------|------|---------|\n| Synapse API | 12800 | Memory, chat, tasks |\n| Synapse MCP | 13100 | MCP server (79 tools) |\n| Browser Proxy | 13000 | Headless browser automation |\n| SSH Proxy | 12900 | SSH access to remote machines |\n\n## Next Steps\n\n- [MCP Integration](/docs/mcp/what-is-mcp) — how to use browser tools via MCP\n- [Computer Control API](/docs/api/computers) — for GUI automation on registered machines\n","content_html":"<h1>Browser Proxy</h1>\n<p>The Browser Proxy is a <strong>separate Docker service</strong> that provides headless\nbrowser automation via Playwright. It is NOT part of the Synapse API directly —\nSynapse endpoints do not include <code>/browser/*</code> paths.</p>\n<h2>Architecture</h2>\n<pre><code class=\"hljs language-plaintext\">┌──────────────┐                ┌──────────────────┐\n│  Synapse API │                │  Browser Proxy   │\n│  port 12800  │                │  port 13000      │\n│              │                │  (Playwright)    │\n└──────────────┘                └──────────────────┘\n       ▲                                ▲\n       │                                │\n       └──────────┌─────────────┐──────┘\n                  │  MCP Server │\n                  │  port 13100 │\n                  └─────────────┘</code></pre><h2>Access Methods</h2>\n<h3>Method 1: Via Synapse MCP Server (recommended)</h3>\n<p>The Synapse MCP server exposes browser tools as MCP tools. Use this for\nLLM-driven browser automation:</p>\n<pre><code class=\"hljs language-json\"><span class=\"hljs-comment\">// Claude Desktop config</span>\n<span class=\"hljs-punctuation\">{</span>\n  <span class=\"hljs-attr\">&quot;mcpServers&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-punctuation\">{</span>\n    <span class=\"hljs-attr\">&quot;synapse&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-punctuation\">{</span>\n      <span class=\"hljs-attr\">&quot;command&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;npx&quot;</span><span class=\"hljs-punctuation\">,</span>\n      <span class=\"hljs-attr\">&quot;args&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-punctuation\">[</span><span class=\"hljs-string\">&quot;-y&quot;</span><span class=\"hljs-punctuation\">,</span> <span class=\"hljs-string\">&quot;synapse-mcp-api@latest&quot;</span><span class=\"hljs-punctuation\">]</span><span class=\"hljs-punctuation\">,</span>\n      <span class=\"hljs-attr\">&quot;env&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-punctuation\">{</span>\n        <span class=\"hljs-attr\">&quot;SYNAPSE_MIND_KEY&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;mk_...&quot;</span><span class=\"hljs-punctuation\">,</span>\n        <span class=\"hljs-attr\">&quot;SYNAPSE_URL&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;https://synapse.schaefer.zone&quot;</span>\n      <span class=\"hljs-punctuation\">}</span>\n    <span class=\"hljs-punctuation\">}</span>\n  <span class=\"hljs-punctuation\">}</span>\n<span class=\"hljs-punctuation\">}</span></code></pre><p>Available MCP browser tools:</p>\n<ul>\n<li><code>browser_new</code> — open a new browser tab</li>\n<li><code>browser_navigate</code> — navigate to a URL</li>\n<li><code>browser_click</code> — click an element</li>\n<li><code>browser_type</code> — type text into a field</li>\n<li><code>browser_screenshot</code> — capture a screenshot</li>\n<li><code>browser_close</code> — close the tab</li>\n<li>(and more — see <a href=\"/docs/mcp/what-is-mcp\">MCP integration</a>)</li>\n</ul>\n<h3>Method 2: Direct Browser Proxy Access</h3>\n<p>For non-MCP integrations, connect directly to the browser-proxy service:</p>\n<pre><code class=\"hljs language-bash\"><span class=\"hljs-comment\"># Health check</span>\ncurl http://browser-proxy.schaefer.zone:13000/health\n\n<span class=\"hljs-comment\"># Open a page</span>\ncurl -X POST http://browser-proxy.schaefer.zone:13000/navigate \\\n  -H <span class=\"hljs-string\">&quot;Content-Type: application/json&quot;</span> \\\n  -d <span class=\"hljs-string\">&#x27;{&quot;url&quot;: &quot;https://example.com&quot;}&#x27;</span></code></pre><h2>Common Use Cases</h2>\n<h3>Web scraping</h3>\n<pre><code class=\"hljs language-python\"><span class=\"hljs-comment\"># Via MCP (Claude Desktop)</span>\n<span class=\"hljs-string\">&quot;Use browser_navigate to open https://news.ycombinator.com, \n then extract the top 10 story titles.&quot;</span></code></pre><h3>Form automation</h3>\n<pre><code class=\"hljs language-python\"><span class=\"hljs-comment\"># Via MCP</span>\n<span class=\"hljs-string\">&quot;Use browser_navigate to open the login page,\n browser_type to fill username and password,\n browser_click to submit the form.&quot;</span></code></pre><h3>Screenshot capture</h3>\n<pre><code class=\"hljs language-python\"><span class=\"hljs-comment\"># Via MCP</span>\n<span class=\"hljs-string\">&quot;Take a screenshot of https://example.com and save it.&quot;</span></code></pre><h2>Related Services</h2>\n<table>\n<thead>\n<tr>\n<th>Service</th>\n<th>Port</th>\n<th>Purpose</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>Synapse API</td>\n<td>12800</td>\n<td>Memory, chat, tasks</td>\n</tr>\n<tr>\n<td>Synapse MCP</td>\n<td>13100</td>\n<td>MCP server (79 tools)</td>\n</tr>\n<tr>\n<td>Browser Proxy</td>\n<td>13000</td>\n<td>Headless browser automation</td>\n</tr>\n<tr>\n<td>SSH Proxy</td>\n<td>12900</td>\n<td>SSH access to remote machines</td>\n</tr>\n</tbody></table>\n<h2>Next Steps</h2>\n<ul>\n<li><a href=\"/docs/mcp/what-is-mcp\">MCP Integration</a> — how to use browser tools via MCP</li>\n<li><a href=\"/docs/api/computers\">Computer Control API</a> — for GUI automation on registered machines</li>\n</ul>\n","urls":{"html":"/docs/api/browser","text":"/docs/api/browser?format=text","json":"/docs/api/browser?format=json","llm":"/docs/api/browser?format=llm"},"translations_available":["en","zh","hi","es","fr","ar","pt","ru","ja","de","it","ko","nl","pl","tr","sv","vi","th","id","uk"]}