FrankenClaw
Modular MCP toolbox that gives AI agents controlled access to shell, files, Git, Ollama, Shopify, vision, browser automation, and more — 12 FrankenTools.
README
FrankenClaw

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.
FrankenTools
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 |
Quick Start
With OpenClaw
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.
With Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"frankenclaw": {
"command": "python3",
"args": ["/path/to/frankenclaw/server.py"]
}
}
}
With Claude Code
claude mcp add frankenclaw -- python3 /path/to/frankenclaw/server.py
With Any MCP Client
FrankenClaw speaks standard MCP over stdio. Point any MCP-compatible client at server.py and it works.
Add Your Own FrankenTools
FrankenClaw auto-discovers tools from the tools/ directory. To add one:
- Create a Python file in
tools/ - Write an async function with a docstring
- Restart FrankenClaw
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.
Search Routing
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:
- Msearch [query] — Memory search only (Mnemo Cortex). Does not touch web search.
- Fsearch [query] — FrankenClaw web search only. Does not touch memory.
- Wsearch [query] — Same as Fsearch. Web search.
- Recall [query] — Same as Msearch. Memory search.
- search [query] — Agent decides based on context (may default to built-in web search).
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.
Architecture
FrankenClaw is a pure function. Request in, result out.
- No memory — your agent has that (try Mnemo Cortex)
- No model routing — your agent has that (try Rocky's Switch)
- No conversation context — your agent framework has that
- No agent brain — the agent IS the agent
The tool is an IO device, not intelligence. Each piece does one thing. Snap them together however you want.
Security
- Runs locally — FrankenClaw executes on your machine, not in the cloud
- No key duplication — API keys live in one place (Rocky's Switch), FrankenClaw reads them at runtime
- You control providers — pick which models handle which jobs
- No hidden API costs — route cheap models to grunt work, smart models to decisions, free models to filler
The Vision
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.
Configuration
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.
Requirements
- Python 3.12+
- agent-browser —
npm install -g agent-browser(for browser_task) - SearXNG instance (for search_web) — or swap in your own search
- Firecrawl API key (for web_scrape)
- NotebookLM auth via
notebooklm login(for notebooklm tools)
pip install -r requirements.txt
Browser Automation
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:
- Persistent sessions — browser stays open between tool calls
- Visible by default — watch your agent browse (
visible=True) - Accessibility snapshots — agent reads the page structure, finds elements by ref
- 14 actions — open, snapshot, click, fill, type, press, screenshot, eval, scroll, back, forward, wait, close, upload
Built With
SPARC principles. AI designed for AI. From Project Sparks.
License
MIT
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。