使用说明
Zed+Codex的Firefox MCP服务器
轻量级MCP服务器,允许Zed中的Codex通过Firefox以较低的令牌响应浏览网页。
它能做什么
- 使用DuckDuckGo搜索网络
- 通过Playwright在Firefox中打开页面
- 提取结构化页面内容
- 列表页面链接
- 在当前页面内搜索文本
- 跟踪简单浏览历史记录
项目布局
src/
server.py FastMCP server and tool registration
controller.py Orchestrates browser, search, extraction, and state
browser.py Firefox / Playwright automation
search.py DuckDuckGo search with browser fallback
extractor.py Readability + BeautifulSoup extraction
state.py Session state and extraction cache
utils.py Logging, retry, URL helpers, truncation, chunking
docs/
architecture.md
.zed/
settings.json Project-local Zed MCP server registration
需求
- Python 3.11+
uv- 为Playwright安装的Firefox
- 启用代理/MCP支持的Zed
设置
uv venv
source .venv/bin/activate
uv sync
playwright install firefox
手动运行服务器
.venv/bin/python src/server.py
服务器使用stdio传输并将日志写入 logs/mcp.log.
在Zed中使用它
此项目中已包含项目本地Zed配置 .zed/settings.json.
当前服务器配置:
{
"context_servers": {
"firefox-web": {
"command": "/home/patrick/Experiments/FCP/.venv/bin/python",
"args": [
"/home/patrick/Experiments/FCP/src/server.py"
]
}
}
}
步骤:
- 在Zed中打开此项目文件夹。
- 如果系统提示,请信任工作区。
- 重新启动Zed或重新加载窗口。
- 打开代理设置或MCP/上下文服务器视图。
- 确认
firefox-web出现并正在运行。
可用的MCP工具
web.search(query)web.open(url)web.open_result(index)web.extract()web.links()web.find(text)web.history()web.research(query, result_index=0, max_related_links=5)
工作流示例
web.search("OpenAI")web.open_result(0)web.extract()web.find("GPT-5")web.links()
紧凑的工作流程:
web.research("OpenAI")- 检查
page_snapshot - 从中选择URL
related_links web.open(url)继续探索
备注
- 搜索使用DuckDuckGo HTML搜索。
- 如果DuckDuckGo向原始HTTP请求返回反机器人挑战,搜索模块将退回到基于Firefox的页面获取。
- 提取的内容被截断和分块,以降低令牌使用率。
- 缓存的提取结果存储在进程内存中。
- 第12阶段为代理式浏览添加了一个紧凑的研究工作流程。
日志
主日志文件:
logs/mcp.log
日志当前记录:
- 工具使用
- 搜索查询
- 访问过的URL
- 提取尺寸
- 错误
当前状态
完整的:
- 第0阶段至第12阶段
剩下的:
- 第13阶段
- 第14阶段的文档仍可进一步扩展,但核心项目文档现已到位