Fermi
Fermi
一个可移植的 AI 控制平面,构建为 Cloudflare Workers 上的单个 MCP 服务器。将其连接到 Claude.ai、Claude Desktop、Claude Code、Cursor 或 ChatGPT,它们共享相同的记忆、相同的权限模型和相同的技能。对于无人值守的渠道(Telegram、Slack),它针对 Anthropic API 运行自己的推理循环。
一个服务器、一个记忆、一个权限脊柱——主机改变,代理不变。
深入架构:
docs/ARCHITECTURE.md。 设置和日常使用:docs/USAGE.md。
功能
跨主机记忆 — 事实、偏好和事件存储在 D1 中,可从任何连接的主机中回忆。夜间任务总结会话,通过嵌入相似性去重近乎相同的记忆,并衰减过时的记忆。
技能 — 以版本化的
SKILL.md文档存储在 R2 中,元数据存储在 D1 中。您可以直接编写它们,或从记忆中提升;每周任务从最近的会话摘要中提出草稿技能供您完善。权限脊柱 — 每个工具都声明一个范围和风险级别。高风险工具需要两阶段批准令牌。变更工具在计划模式下被阻止。Shell 代码根据阻止列表进行筛选。每次调用都会审计到 D1。
钩子 — 声明式、全局匹配的拒绝门,在工具之前运行,以
deny > ask > allow优先级评估(目前deny是强制执行的决策)。统一搜索 — 对能力、技能、记忆和消息历史进行 Reciprocal Rank Fusion(k=60),融合关键词、FTS5 和 Vectorize 语义通道。
代码模式 —
execute工具在隔离的 Worker 沙箱中运行 JavaScript,其中能力可作为codemode.<name>(...)访问。出站 HTTP 通过注入秘密并强制执行每个秘密的主机允许列表的网关。双通道浏览器 — 用于抓取的无头云通道(Cloudflare Browser Rendering)和用于需要真实硬件指纹和认证状态的站点的有头本地通道(通过 Cloudflare Tunnel 的 macOS 桥接)。
渠道和子代理 — 具有自己的推理循环的 Telegram 和 Slack webhook;
team_spawn运行角色提示的子代理。实时画布 — 通过 Durable Object + WebSocket 的代理驱动 UI,跨回合和主机持久化。
Related MCP server: Memclaw
架构概览
MCP Hosts ─┐
Channels ──┼──► Cloudflare Worker ──► D1 · R2 · KV · Workers AI · Vectorize
Cron ──────┘ (FermiMCP + 3 DOs)Worker(
src/index.ts)路由 MCP(/mcp、/sse)、渠道、OAuth、/apps/*主机、画布 WebSocket 和 cron 调度。当FERMI_AUTH_ENABLED为true时,OAuth 提供程序门控 MCP 传输;否则它们是开放的。Durable Objects:
FermiMCP(代理,SQLite 支持)、LiveCanvasDO、SandboxStorageDO、BrowserSessionDO。存储:D1(记忆、会话/消息 + FTS5、审计、钩子、技能元数据、秘密元数据、oauth)、R2(技能、文件、应用)、KV(配置、批准令牌)、Workers AI(嵌入 + 摘要)、Vectorize(语义索引)。
有关完整图表和数据流,请参阅 docs/ARCHITECTURE.md。
两个工具表面
Fermi 在两个层上公开工具,并且它们故意不相同:
表面 | 调用者 | 数量 |
MCP 工具 | 连接的主机和渠道 | 默认约 60 个,启用 macOS 桥接后约 85 个 |
沙箱能力 | 传递给 | 39( |
按组划分的 MCP 工具(面向主机):
组 | 工具 |
记忆 |
|
技能 |
|
搜索 |
|
代码模式 |
|
文件系统 |
|
浏览器(云) |
|
浏览器会话 |
|
画布 |
|
计划模式 |
|
团队 |
|
钩子 |
|
秘密 |
|
元 |
|
连接器 |
|
包 |
|
检索器 |
|
OAuth |
|
macOS 桥接(可选) | 25 个 |
快速开始
git clone <repo-url> fermi && cd fermi
bun install
wrangler login
chmod +x bootstrap.sh
./bootstrap.sh my-instance-name # provisions D1, R2, KV, Vectorize; writes wrangler.jsonc
cd packages/worker
wrangler secret put FERMI_SECRETS_KEY # required: encrypts stored secrets
wrangler secret put FERMI_OWNER_SECRET # owner password for the OAuth consent screen
wrangler secret put FERMI_BEARER_TOKEN # gates the admin HTTP endpoints
bun run migrate:remote
wrangler deploy --var FERMI_AUTH_ENABLED:true⚠️ 使用
FERMI_AUTH_ENABLED:true部署(或在wrangler.jsoncvars中设置)。否则,MCP 传输在公共workers.devURL 上完全未认证——任何找到它的人都可以读取您的记忆、解析您存储的秘密并运行代码。开放模式仅用于wrangler dev。
然后种子内置技能并确认能力注册表:
curl -X POST https://<worker>/admin/seed-skills -H "Authorization: Bearer $FERMI_BEARER_TOKEN"
curl https://<worker>/capabilities -H "Authorization: Bearer $FERMI_BEARER_TOKEN"完整说明,包括认证模式和渠道设置,请参阅 docs/USAGE.md。
先决条件
Wrangler(
bun add -g wrangler)一个 Workers Paid 计划($5/月)的 Cloudflare 账户——Durable Objects、Browser Rendering 和 Vectorize 需要
开发
bun run dev # wrangler dev --local
bun run check # Biome lint + format check
bun run format # auto-format
bun run migrate:local # apply D1 migrations locally
bun run test # vitest (worker package)配置
秘密使用 wrangler secret put 设置(交互式输入值):
秘密 | 必需 | 用途 |
| 是 | 秘密存储的加密密钥 |
| 当 | OAuth 同意屏幕和 |
| 用于管理 HTTP 端点 | 门控 |
| 用于渠道 / | 无人值守使用的推理循环 |
| 可选 | Telegram 渠道 |
| 可选 | Slack 渠道 |
| 可选 | 本地 macOS 桥接(启用 |
认证模式由 FERMI_AUTH_ENABLED 变量控制。将其设置为 true 可将 MCP 传输置于 OAuth 之后——建议用于每个部署的实例。保持未设置则 /mcp 和 /sse 无认证服务,仅适用于本地 wrangler dev。
在 OAuth 模式下,连接的主机自行注册并进入 Fermi 的同意屏幕,该屏幕验证您的所有者秘密,并且(一旦通过 totp_setup 注册)验证 TOTP 代码:

连接主机
Claude.ai(网页)
设置 → 连接器 → 添加自定义连接器,URL https://<worker>/sse。
Claude Desktop / Cursor / VS Code
{ "mcpServers": { "fermi": { "url": "https://<worker>/mcp" } } }Claude Code
claude mcp add fermi --transport http https://<worker>/mcp成本
单用户,预计每月约 $8–20:Workers Paid 计划($5)加上可变的 Browser Rendering 和 Anthropic API 使用量。在此规模下,D1/R2/KV/Vectorize 保持在免费层附近。MCP 主机支付自己的推理费用;Fermi 仅在无人值守渠道和 team_spawn 中花费模型调用。
许可证
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Hosted MCP memory and agent control plane for durable conversations, jobs, and operations.
Your memory, everywhere AI goes. Build knowledge once, access it via MCP anywhere.
Shared, governed long-term memory for AI agents across tools and sessions via MCP and REST.
Manage portable AI agent playbooks, Agent Skills, MCP configurations, personas, and memory.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceShared memory for any MCP-compatible AI, enabling cross-platform knowledge persistence and retrieval so users' context, preferences, and project info follow them everywhere.3AGPL 3.0
- AlicenseNot gradedqualityBmaintenanceGoverned shared memory platform for AI agents and agent fleets. Provides persistent memory, cross-agent knowledge sharing, permissions, audit trails, and multi-tenant isolation through a Model Context Protocol (MCP) server.4470Apache 2.0
- AlicenseNot gradedqualityDmaintenanceA portable MCP server providing a shared intelligent memory system for any MCP-compatible AI tool, enabling storage, retrieval, extraction, and governance of memories across sessions.10MIT
- AlicenseNot gradedqualityCmaintenanceMCP server that provides AI agents with persistent memory, cross-agent sharing, and context management, enabling them to remember conversations, track complex tasks, and evolve skills across tools.2MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/abel30567/fermi-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server