Fermi
Fermi
Un plano de control de IA portátil construido como un único servidor MCP en Cloudflare Workers. Conéctalo a Claude.ai, Claude Desktop, Claude Code, Cursor o ChatGPT y todos comparten la misma memoria, el mismo modelo de permisos y las mismas habilidades. Para canales no supervisados (Telegram, Slack) ejecuta su propio bucle de inferencia contra la API de Anthropic.
Un servidor, una memoria, una columna vertebral de permisos: el host cambia, el agente no.
Arquitectura en profundidad:
docs/ARCHITECTURE.md. Configuración y uso diario:docs/USAGE.md.
Qué hace
Memoria entre hosts — hechos, preferencias y eventos en D1, recuperados desde cualquier host conectado. Un trabajo nocturno resume sesiones, deduplica recuerdos casi idénticos mediante similitud de embeddings y degrada los obsoletos.
Habilidades — procedimientos almacenados como documentos
SKILL.mdversionados en R2 con metadatos en D1. Puedes crearlos directamente o promoverlos desde un recuerdo; un trabajo semanal propone borradores de habilidades a partir de resúmenes de sesiones recientes para que los refines.Columna vertebral de permisos — cada herramienta declara un alcance y un nivel de riesgo. Las herramientas de alto riesgo requieren un token de aprobación en dos fases. Las herramientas mutantes se bloquean en modo plan. El código de shell se examina contra una lista negra. Cada llamada se audita en D1.
Hooks — puertas de denegación declarativas, coincidentes por glob, que se ejecutan antes de una herramienta, evaluadas con precedencia
deny > ask > allow(hoydenyes la decisión aplicada).Búsqueda unificada — Fusión de Rango Recíproco (k=60) sobre capacidades, habilidades, recuerdos e historial de mensajes, combinando carriles semánticos de palabras clave, FTS5 y Vectorize.
Modo código — la herramienta
executeejecuta JavaScript en un sandbox de Worker aislado donde las capacidades son accesibles comocodemode.<name>(...). El HTTP saliente pasa por una puerta de enlace que inyecta secretos y aplica listas de permitidos por secreto y por host.Navegador de doble carril — un carril en la nube sin cabeza (Cloudflare Browser Rendering) para scraping y un carril local con cabeza (un puente macOS sobre Cloudflare Tunnel) para sitios que necesitan una huella de hardware real y estado autenticado.
Canales y subagentes — webhooks de Telegram y Slack con su propio bucle de inferencia;
team_spawnejecuta subagentes con roles indicados.Live Canvas — interfaz dirigida por el agente sobre un Durable Object + WebSocket, persistente entre turnos y hosts.
Related MCP server: Memclaw
Arquitectura de un vistazo
MCP Hosts ─┐
Channels ──┼──► Cloudflare Worker ──► D1 · R2 · KV · Workers AI · Vectorize
Cron ──────┘ (FermiMCP + 3 DOs)Worker (
src/index.ts) enruta MCP (/mcp,/sse), canales, OAuth, el host/apps/*, el WebSocket del canvas y el despacho de cron. CuandoFERMI_AUTH_ENABLEDestrue, un proveedor OAuth protege los transportes MCP; de lo contrario, están abiertos.Durable Objects:
FermiMCP(el agente, respaldado por SQLite),LiveCanvasDO,SandboxStorageDO,BrowserSessionDO.Almacenamiento: D1 (memoria, sesiones/mensajes + FTS5, auditoría, hooks, metadatos de habilidades, metadatos de secretos, oauth), R2 (habilidades, archivos, apps), KV (configuración, tokens de aprobación), Workers AI (embeddings + resúmenes), Vectorize (índice semántico).
Consulta docs/ARCHITECTURE.md para el diagrama completo y el flujo de datos.
Dos superficies de herramientas
Fermi expone herramientas en dos capas, y deliberadamente no son idénticas:
Superficie | Llamador | Recuento |
Herramientas MCP | hosts y canales conectados | ~60 por defecto, ~85 con el puente macOS habilitado |
Capacidades del sandbox | código pasado a | 39 ( |
Herramientas MCP por grupo (orientadas al host):
Grupo | Herramientas |
Memoria |
|
Habilidades |
|
Búsqueda |
|
Modo código |
|
Sistema de archivos |
|
Navegador (nube) |
|
Sesiones de navegador |
|
Canvas |
|
Modo plan |
|
Equipo |
|
Hooks |
|
Secretos |
|
Meta |
|
Conectores |
|
Paquetes |
|
Recuperadores |
|
OAuth |
|
Puente macOS (opcional) | 25 herramientas |
Inicio rápido
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⚠️ Despliega con
FERMI_AUTH_ENABLED:true(o configúralo enwrangler.jsoncvars). Sin él, los transportes MCP están completamente sin autenticación en una URL pública deworkers.dev: cualquiera que la encuentre puede leer tus recuerdos, resolver tus secretos almacenados y ejecutar código. El modo abierto es solo parawrangler dev.
Luego siembra las habilidades incluidas y confirma el registro de capacidades:
curl -X POST https://<worker>/admin/seed-skills -H "Authorization: Bearer $FERMI_BEARER_TOKEN"
curl https://<worker>/capabilities -H "Authorization: Bearer $FERMI_BEARER_TOKEN"Instrucciones completas, incluidos los modos de autenticación y la configuración de canales, están en
docs/USAGE.md.
Requisitos previos
Wrangler (
bun add -g wrangler)Una cuenta de Cloudflare en el plan de pago de Workers ($5/mes) — requerido para Durable Objects, Browser Rendering y Vectorize
Desarrollo
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)Configuración
Los secretos se configuran con wrangler secret put (los valores se ingresan interactivamente):
Secreto | Requerido | Propósito |
| sí | Clave de cifrado para el almacén de secretos |
| cuando | Contraseña del propietario para la pantalla de consentimiento OAuth y el inicio de sesión de |
| para endpoints HTTP de administración | Protege |
| para canales / | Bucle de inferencia para uso no supervisado |
| opcional | Canal de Telegram |
| opcional | Canal de Slack |
| opcional | Puente macOS local (habilita las herramientas |
El modo de autenticación se controla con la variable FERMI_AUTH_ENABLED. Configúrala en true para poner los
transportes MCP detrás de OAuth — recomendado para cada instancia desplegada. Dejarla sin configurar sirve /mcp y /sse sin autenticación, lo cual solo es apropiado para
wrangler dev local.
En modo OAuth, los hosts conectados se auto-registran y llegan a la pantalla de consentimiento de Fermi,
que valida tu secreto de propietario y (una vez inscrito mediante totp_setup) un código TOTP:

Conectar un host
Claude.ai (web)
Configuración → Conectores → agregar un conector personalizado, 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>/mcpCosto
Para un solo usuario, espera ~$8–20/mes: el plan de pago de Workers ($5) más el uso variable de Browser
Rendering y la API de Anthropic. D1/R2/KV/Vectorize se mantienen cerca del nivel gratuito a este volumen. Los hosts MCP pagan su propia inferencia; Fermi solo gasta en llamadas de modelo en
canales no supervisados y team_spawn.
Licencia
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