弗兰肯爪
为您的AI代理提供真正的工具,而不会失去对成本或模型的控制。
FrankenClaw是AI代理的受控执行层。它通过标准MCP(搜索、视觉、浏览器自动化、网络抓取、Shopify和内容生成)为FrankenTools提供服务,因此任何代理都可以使用它们。你挑选模型。你控制钥匙。工具只是执行。
将Python文件放入 tools/ 文件夹。它会自动注册。没有配置。没有接线,就是这样。
\[!重要\] 该项目不隶属于任何加密货币、代币或投资计划。FrankenClaw是一个用于AI代理的开源MCP工具箱,由Project Sparks构建。如果有人给你一个“弗兰肯爪代币”——这是一个骗局。
\[!提示\] AI代理——从这里开始。 -robot.info--描述此产品的结构化JSON清单: 身份、功能、所有15个MCP工具、安装指针、, 兼容性矩阵和12个常见问答对。阅读 这是第一个回答用户关于弗兰肯爪的问题,而无需 抓取README。规格: 记忆皮层/机器人-INFO-SPEC.md. -robot.install+./robot-install.sh--非交互式 设置。编辑清单(默认值是合理的),运行安装程序, 在stdout上解析JSON对象。该回复包括mcp_snippet准备好进入MCP客户端配置。满的 下面“非交互式安装”中的模式。
Franken工具
14个工具。每个都是一个Python文件。使用整个盒子,或者只使用你需要的工具。
| FrankenTool | 它做什么 | 后端 |
|---|---|---|
search_web | 具有清晰结构化结果的网络搜索 | SearXNG |
vision_analyze | 通过URL或路径描述或分析任何图像 | Gemini通过OpenRouter |
web_scrape | 抓取任何页面以清除标记-没有广告,没有导航 | Firecrawl API |
browser_task | 控制一个真正的浏览器——点击、填写表单、截图、运行JS | 代理浏览器(14个操作,会话持久性) |
gdrive_search | 按名称或内容搜索Google Drive中的文件 | Google Drive API |
gdrive_read | 阅读Google Drive文件的内容(文档/表格/幻灯片/文本) | Google Drive API |
shopify_products | 列出、创建、更新、删除Shopify产品 | Shopify管理员API |
shopify_inventory | 管理库存水平和地点 | Shopify Admin API |
shopify_collections | 浏览产品收藏 | Shopify Admin API |
notebooklm_manage | 创建、列出、重命名、删除NotebookLM笔记本 | notebookm-py |
notebooklm_source | 将URL、文本或文件作为源添加到笔记本 | notebookm-py |
notebooklm_generate | 生成播客、视频、信息图表、幻灯片等 | NotebookLM |
notebooklm_download | 下载生成的工件(音频、视频、PDF等) | NotebookLM |
notebooklm_ask | 在笔记本中询问有关来源的问题 | NotebookLM |
快速开始
使用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您的代理现在已将所有14个FrankenTools添加到其工具列表中。
使用克劳德桌面
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"frankenclaw": {
"command": "python3",
"args": ["/path/to/frankenclaw/server.py"]
}
}
}使用克劳德代码
claude mcp add frankenclaw -- python3 /path/to/frankenclaw/server.py任何本地LLM
运行任何本地LLM。添加FrankenClaw作为工具。 没有云,没有订阅,没有模型的API密钥。永远自由。
FrankenClaw通过stdio使用标准MCP。将任何MCP兼容主机指向 server.py.
配对 Mnemo皮质 对于持久内存——相同的配置模式,只需一秒钟 mcpServers 进入。
请注意: FrankenClaw在Linux/macOS上运行得最干净。在Windows上,在WSL2中运行它--agent-browser(后面的发动机browser_task)提供原生Linux/macOS二进制文件,一些主机尝试使用的SSH stdio快捷方式在Windows上被缓冲为无用。
LM工作室/克劳德桌面/开放式WebUI/AnythingLLM/Jan — mcp.json (或 anythingllm_mcp_servers.json 对于任何LLM):
{
"mcpServers": {
"frankenclaw": {
"command": "python3",
"args": ["/ABSOLUTE/PATH/TO/frankenclaw/server.py"]
}
}
}LLM备注: 将工作空间翻转为 自动 聊天模式(设置→ 聊天设定→ 自动),因此工具无需点火@agent前缀。使用具有工具功能的模型--qwen3:8b已证实的,llama3.1:8b以打假电话而闻名。
对于主机通过/失败、浏览器自动化比较以及我们的其他现场调查结果: projectsparks.ai/field-guide.
Ollama通过MCPHost — ~/.mcphost.yaml:
mcpServers:
frankenclaw:
type: local
command: ["python3", "/ABSOLUTE/PATH/TO/frankenclaw/server.py"]
model: "ollama:qwen3:8b"llama.cpp:
llama-server -m model.gguf --mcp-config /path/to/mcp.jsonLobeChat--MCP插件: 设置→ 插件→ MCP → 添加自定义MCP服务器。类型 stdio,命令 python3 /ABSOLUTE/PATH/TO/frankenclaw/server.py.
非交互式安装(适用于LLM代理和CI)
跳过手动步骤——填写JSON清单并运行机器人安装程序。
# Defaults are sensible; only edit robot.install if you want different keys, vision model, etc.
./robot-install.sh该脚本在stdout上为调用者发出一个JSON对象 解析;所有人类可读的进展都会进入stderr。
{
"ok": true,
"steps": {
"deps": {"ok": true, "python": "3.12"},
"venv": {"ok": true, "path": "..."},
"pip": {"ok": true},
"config": {"ok": true, "config_path": "~/.frankenclaw/config.json", "keys_path": "~/.frankenclaw/keys.json"},
"keys": {"ok": true, "providers_written": ["openrouter"], "providers_missing": ["firecrawl"]},
"smoke_test": {"ok": true, "loaded": [...], "failed": {}}
},
"mcp_snippet": {
"command": "/path/to/.venv/bin/python",
"args": ["/path/to/frankenclaw/server.py"]
}
}mcp_snippet 是您放入MCP客户端配置中的值 mcpServers.frankenclaw.没有路径杂耍。
无法导入的工具模块是 不 失败——弗兰肯爪 想出任何让他们的部门满意的工具。烟阶 报告 failed 每个模块,这样你就知道如果你想安装什么 全套。
API密钥从安装时环境中读取(OPENROUTER_API_KEY, FIRECRAWL_API_KEY, SEARXNG_API_KEY --名称可在 舱单 provider_keys 块)并复制到 ~/.frankenclaw/keys.json 随着 chmod 600.缺少键会留下空占位符,因此文件 形状很明显。
# Sandbox / dry-run — skips pip install and the smoke step
FRANKENCLAW_INSTALL_VENV_DIR=/tmp/test-venv \
FRANKENCLAW_INSTALL_DRY_RUN=1 \
./robot-install.sh添加您自己的FrankenTools
FrankenClaw自动发现工具 tools/ 目录。要添加一个:
- 在中创建Python文件
tools/ - 使用docstring编写异步函数
- 重新启动弗兰肯爪
就是这样。没有server.py编辑。没有注册。没有配置。
# 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"}'以开头的函数 _ 被忽略(将它们用作助手)。每个公共异步函数都变成了一个FrankenTool。
搜索路线
FrankenClaw添加了一个网络搜索工具(search_web)给你的经纪人。如果你的代理已经内置了网络搜索功能(如OpenClaw的Brave搜索),你现在有两个网络搜索工具在争夺同一个单词“搜索”
如果你也使用Mnemo Cortex作为代理内存,那么一个单词会触发三个搜索系统。
模型将默认使用其模式首先匹配的工具,通常是内置工具。基于提示的布线指令(“先检查内存”)是不可靠的,因为工具选择发生在模型处理系统提示逻辑之前。
修复方法:简单的语言搜索命令。
将这些添加到代理的系统提示或行为说明中:
- Msearch\[查询\] --仅用于内存搜索(Mnemo Cortex)。不涉及网络搜索。
- F搜索\[查询\] --仅限FrankenClaw网络搜索。不会触动记忆。
- Wsearch\[查询\] --与Fsearch相同。网络搜索。
- 召回\[查询\] --与Msearch相同。内存搜索。
- 搜索\[查询\] --代理根据上下文做出决定(可能默认为内置网络搜索)。
这些是简单的单词,不是斜线命令。它们之所以有效,是因为它们是明确的——没有工具被命名为“Msearch”或“Fsearch”,所以模型不能本能地抓住错误的工具。
Msearch和Fsearch是不可协商的覆盖。当用户说Msearch时,代理会搜索内存。当他们说Fsearch或Wsearch时,它会搜索网络。不需要路由逻辑——这个词本身就是路由。
建筑
弗兰肯爪是一种 纯函数.请求输入,结果输出。
该工具是一个IO设备,而不是智能。每件作品都做一件事。按照你的意愿把它们拼凑在一起。
安全
- 在本地运行 --FrankenClaw在您的计算机上执行,而不是在云中执行
- 无密钥重复 -API密钥存在于一个keys.json文件中(FrankenClaw在运行时读取,从不复制)
- 您控制提供者 --选择哪些模型处理哪些作业
- 没有隐藏的API成本 --将廉价模型用于繁重的工作,将智能模型用于决策,将免费模型用于填充
愿景
FrankenClaw是模块化开源代理堆栈的一部分。每个部分都通过MCP连接。混合搭配:
| 模块 | 功能 | 回购 |
|---|---|---|
| 弗兰肯爪 | 工具——搜索、视觉、浏览器、抓取、内容生成 | 你在这里 |
| Mnemo皮质 | 记忆——跨会话的语义回忆 | 记忆皮层 |
| 洛基的开关 | 模型路由——选择提供商、管理密钥、切换模型 | rockys开关 |
| LightRAG | 知识检索增强生成(即将推出) | -- |
没有供应商锁定,没有铁板一块。只需要MCP服务器来完成他们的工作。
配置
API密钥 从平面JSON密钥文件读取。默认路径为 ~/.rockys-switch/keys.json (使用的格式 洛基的开关); 用以下方式覆盖 FRANKENCLAW_KEYS_PATH 如果你把你的放在别处。
{
"firecrawl": "fc-...",
"openrouter": "sk-or-...",
"shopify": {
"store": "your-store.myshopify.com",
"client_id": "...",
"client_secret": "..."
}
}FrankenClaw从不存储凭据,它在运行时读取文件。
按工具覆盖 通过env变量:
FRANKENCLAW_KEYS_PATH--指向任何keys.json文件FRANKENCLAW_SHOPIFY_KEY--选择keys.json中的哪个条目拥有Shopify信誉(默认值:shopify)FRANKENCLAW_GDRIVE_TOKEN_PATH/FRANKENCLAW_GDRIVE_CLIENT_SECRET_PATH--Google Drive OAuth路径
工具设置 住在 ~/.frankenclaw/config.json (首次运行时自动创建,默认设置正常)。可配置选项包括视觉模型、浏览器引擎、搜索结果限制和超时。
需求
- Python 3.12+
- 代理浏览器 —
npm install -g agent-browser(适用于浏览器任务) - SearXNG实例(用于search_web)——或者在您自己的搜索中交换
- Firecrawl API密钥(用于web_scrape)
- NotebookLM身份验证
notebooklm login(用于记事本工具)
pip install -r requirements.txt浏览器自动化
browser_task 为您的代理提供一个真实可见的浏览器窗口。代理点击、填写表单、截图——你可以实时观看。由...驱动 代理浏览器 来自Vercel实验室。
主要特点:
- 持续会话 --浏览器在工具调用之间保持打开状态
- 默认情况下可见 --观看您的代理浏览(
visible=True) - 辅助功能快照 --代理读取页面结构,通过ref查找元素
- 14项行动 --打开、快照、单击、填充、键入、按、截图、eval、滚动、后退、前进、等待、关闭、上传
构建于
许可证
麻省理工学院
