loading…
Search for a command to run...
loading…
Modular MCP toolbox that gives AI agents controlled access to shell, files, Git, Ollama, Shopify, vision, browser automation, and more — 12 FrankenTools.
Modular MCP toolbox that gives AI agents controlled access to shell, files, Git, Ollama, Shopify, vision, browser automation, and more — 12 FrankenTools.

Give your AI agent real tools — without losing control of cost or models.
FrankenClaw is a controlled execution layer for AI agents. It serves FrankenTools over standard MCP — search, vision, browser automation, web scraping, Shopify, and content generation — so any agent can use them. You pick the models. You control the keys. The tools just execute.
Drop a Python file in the tools/ folder. It auto-registers. No config. No wiring. That's it.
[!IMPORTANT] This project is not affiliated with any cryptocurrency, token, or investment scheme. FrankenClaw is an open-source MCP toolbox for AI agents, built by Project Sparks. If anyone offers you a "FrankenClaw token" — it's a scam.
12 tools. Each one is a single Python file. Use the whole box or just the tools you need.
| FrankenTool | What It Does | Backend |
|---|---|---|
search_web |
Web search with clean structured results | SearXNG |
vision_analyze |
Describe or analyze any image by URL or path | Gemini via OpenRouter |
web_scrape |
Scrape any page to clean markdown — no ads, no nav | Firecrawl API |
browser_task |
Control a real browser — click, fill forms, screenshot, run JS | agent-browser (14 actions, session persistence) |
shopify_products |
List, create, update, delete Shopify products | Shopify Admin API |
shopify_inventory |
Manage inventory levels and locations | Shopify Admin API |
shopify_collections |
Browse product collections | Shopify Admin API |
notebooklm_manage |
Create, list, rename, delete NotebookLM notebooks | notebooklm-py |
notebooklm_source |
Add URLs, text, or files as sources to a notebook | notebooklm-py |
notebooklm_generate |
Generate podcasts, videos, infographics, slide decks, and more | NotebookLM |
notebooklm_download |
Download generated artifacts (audio, video, PDF, etc.) | NotebookLM |
notebooklm_ask |
Ask questions about sources in a notebook | NotebookLM |
git clone https://github.com/GuyMannDude/frankenclaw.git
cd frankenclaw
pip install -r requirements.txt
# Register and go
openclaw mcp set frankenclaw '{"command":"python3","args":["/path/to/frankenclaw/server.py"]}'
openclaw gateway restart
Your agent now has all 12 FrankenTools in its tool list.
Add to your claude_desktop_config.json:
{
"mcpServers": {
"frankenclaw": {
"command": "python3",
"args": ["/path/to/frankenclaw/server.py"]
}
}
}
claude mcp add frankenclaw -- python3 /path/to/frankenclaw/server.py
FrankenClaw speaks standard MCP over stdio. Point any MCP-compatible client at server.py and it works.
FrankenClaw auto-discovers tools from the tools/ directory. To add one:
tools/That's it. No server.py edits. No registration. No config.
# tools/my_tool.py
async def my_cool_tool(query: str, limit: int = 10) -> str:
"""
Does something cool.
Args:
query: What to look for.
limit: Max results (default: 10).
Returns:
JSON with results.
"""
# Your code here
return '{"result": "done"}'
Functions starting with _ are ignored (use them for helpers). Every public async function becomes a FrankenTool.
FrankenClaw adds a web search tool (search_web) to your agent. If your agent already has a built-in web search (like OpenClaw's Brave search), you now have two web search tools competing for the same word "search."
If you also use Mnemo Cortex for agent memory, that's three search systems triggered by one word.
The model will default to whichever tool it pattern-matches first — usually the built-in one. Prompt-based routing instructions ("check memory first") are unreliable because tool selection happens before the model processes system prompt logic.
The fix: plain-language search commands.
Add these to your agent's system prompt or behavioral instructions:
These are plain words, not slash commands. They work because they're unambiguous — no tool is named "Msearch" or "Fsearch," so the model can't reflexively grab the wrong one.
Msearch and Fsearch are non-negotiable overrides. When a user says Msearch, the agent searches memory. When they say Fsearch or Wsearch, it searches the web. No routing logic needed — the word itself IS the routing.
FrankenClaw is a pure function. Request in, result out.
The tool is an IO device, not intelligence. Each piece does one thing. Snap them together however you want.
FrankenClaw is part of a modular, open-source agent stack. Every piece connects via MCP. Mix and match:
| Module | What It Does | Repo |
|---|---|---|
| FrankenClaw | Tools — search, vision, browser, scraping, content generation | You're here |
| Mnemo Cortex | Memory — semantic recall across sessions | mnemo-cortex |
| Rocky's Switch | Model routing — pick providers, manage keys, switch models | rockys-switch |
| LightRAG | Knowledge — retrieval-augmented generation (coming soon) | — |
No vendor lock-in. No monolith. Just MCP servers that do their job.
API Keys are read from Rocky's Switch (~/.rockys-switch/keys.json). One place for all your keys. FrankenClaw never stores credentials.
Tool settings live at ~/.frankenclaw/config.json (auto-created on first run with sane defaults). Configurable options include vision model, browser engine, search result limits, and timeouts.
npm install -g agent-browser (for browser_task)notebooklm login (for notebooklm tools)pip install -r requirements.txt
browser_task gives your agent a real, visible browser window. The agent clicks, fills forms, takes screenshots — you watch it happen in real time. Powered by agent-browser from Vercel Labs.
Key features:
visible=True)SPARC principles. AI designed for AI. From Project Sparks.
MIT
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"frankenclaw": {
"command": "npx",
"args": []
}
}
}