MCP server for FireKey browser profile management. Allows AI tools like Claude Desktop, Cursor, and Claude Code to manage browser profiles through natural language.
The server exposes 15 tools through stdio and connects to FireKey's authenticated localhost API. It manages browser profiles and returns automation connection information; it does not itself read web pages or click page elements. FireKey's desktop app also communicates with its backend, so a local MCP connection does not mean the product is fully offline.
- Create, start and stop your first profile: a small, explicit lifecycle check before using real accounts.
- Add extensions: Chrome Store URL or local package?: a desktop workflow with a four-page Chinese visual checklist, input requirements and a one-profile verification checklist. This is not an MCP extension-install tool.
- FireKey desktop app running with Local API enabled (Settings → Local API & MCP)
- Node.js 18+
npx firekey-mcp --api-key YOUR_API_KEYFor a first integration test, follow Create and start your first FireKey profile. It includes an explicit target, pass/fail checks, and troubleshooting before connecting any real account.
Edit claude_desktop_config.json:
{
"mcpServers": {
"firekey": {
"command": "npx",
"args": ["-y", "firekey-mcp", "--api-key", "YOUR_API_KEY"]
}
}
}Add to .mcp.json:
{
"mcpServers": {
"firekey": {
"command": "npx",
"args": ["-y", "firekey-mcp", "--api-key", "YOUR_API_KEY"]
}
}
}Add to MCP settings:
{
"mcpServers": {
"firekey": {
"command": "npx",
"args": ["-y", "firekey-mcp", "--api-key", "YOUR_API_KEY"]
}
}
}| Option | Env Variable | Description | Default |
|---|---|---|---|
--port |
FIREKEY_PORT |
FireKey Local API port | Auto-detect |
--api-key |
FIREKEY_API_KEY |
API key for authentication | — |
Port is auto-discovered from FireKey's data directory. Manual override only needed if running multiple instances.
To avoid putting the key in command-line arguments, you can use the supported FIREKEY_API_KEY environment variable in your MCP client's local configuration:
{
"mcpServers": {
"firekey": {
"command": "npx",
"args": ["-y", "firekey-mcp"],
"env": {
"FIREKEY_API_KEY": "YOUR_API_KEY"
}
}
}
}Keep configurations containing a real key private. Never commit them or include keys, cookies, proxy credentials, or live automation endpoints in public logs or screenshots. Tools such as profile deletion, cache clearing, and cookie reading should only be invoked for an explicitly authorized target.
A programmatic MCP client test on September 9, 2026 successfully created a blank profile with no proxy, started it in headless mode, received Puppeteer/Selenium connection information, verified its running state, stopped it, and verified it was no longer running. The desktop UI also showed the demo profile as stopped. This test did not cover long-term session persistence or a Claude/Cursor conversation.
- browser_start — Start a browser profile, returns WebSocket endpoints for Puppeteer/Selenium
- browser_stop — Stop a running browser
- browser_active — List currently running browsers
- profile_list — List profiles with filtering and pagination
- profile_create — Create a new profile with fingerprint/proxy settings
- profile_update — Update profile settings
- profile_delete — Delete profiles (soft delete)
- profile_move — Move profiles to a group
- profile_delete_cache — Clear profile cache (cookies, history, etc.)
- profile_cookies — Get cookies from a profile
- group_list — List profile groups
- group_create — Create a new group
- group_update — Update a group
- proxy_list — List saved proxies
- proxy_create — Create a new proxy
Once configured, you can use natural language in Claude:
- "List all my browser profiles"
- "Create a Windows profile with Chrome 143 and random fingerprint"
- "Start the profile with this verified public ID and keep its automation endpoint private"
- "Stop only the demo profile with this verified public ID"
- "Create a group called 'QA' and move the profile named 'QA-Demo' into it, using its returned public ID"
cd mcp-server
npm install
npm run build
node dist/index.js --api-key YOUR_KEY