EAGLECLAW
BokMCP v2 · Norse AI Agent System · Cloudflare Agents SDK
McpAgent · Durable Objects · Workers AI · D1 · Cron
Architecture
Claude Desktop mcp-remote mcp.myx.is/mcp EagleClawMCP (McpAgent + DO) ↓ cron every 5 min TheNest (DurableObject) Llama 3.1 8B router (FREE) ┌──────────────────────────────────────────────────┐Gemini Claude Codex Workers AI (always free)└──────────────────────────────────────────────────┘ D1 · KV · Twilio
Pantheon · 30+ Norse tools
Óðinn
Memory · Stories
odin_memory_fetch
odin_memory_save
odin_memory_get_people
5 tools
"Thought returns. Always."
Iðunn
Health · Edge only
idunn_health_log_bp
idunn_health_trends
idunn_health_checkin
PRIVATE
"Vitality measured."
Þór
Tasks · Flytiminni
thor_execute_task
thor_set_reminder
thor_flytiminni_set
⚡ NEVER PRANKS
"Þór does not pretend."
Freyja
Voice · SMS · Amor
freyja_call
freyja_sms_send
freyja_amor_compose
Twilio
"Freyja speaks. Amor listens."
Heimdallr
Monitor · Alerts
heimdall_watch_alert
heimdall_system_status
Watch
"Sees nine worlds."
Loki
Pranks · 7 personas
loki_prank_call
loki_suggest_tonight
loki_personas_list
🔥 ALWAYS PRANKS
"May entertain. Never betray."
Nornir
Timeline · Diary
nornir_diary_save
nornir_timeline_query
nornir_this_day_last_year
Past·Present·Future
"Woven."
Ari · Eglie · Core
Work orders · Agent spawn · Self-creating
ari_work_order_add · ari_work_order_list · ari_agent_spawn
✦ ANY AI CAN SELF-CREATE WORK ORDERS
"The eagle carries both."
Source Files · 1,501 lines
📁eagleclaw/
├─⚙️wrangler.jsoncNew JSON format · DO + AI + D1 + KV + Cron
├─📁migrations/0001_initial.sqlAll 8 tables: work_orders · stories · health · diary · people · agents · calls · flytiminni
├─src/index.tsEagleClawMCP + TheNest cron orchestrator + Llama router
│ ├─src/tools/odin.tsMemory: fetch · save · people · patterns135 lines
│ ├─src/tools/idunn.tsHealth: BP · weight · meds · trends · EDGE ONLY152 lines
│ ├─src/tools/thor.tsTasks · reminders · Flytiminni KV+D1 · NEVER PRANKS142 lines
│ ├─src/tools/freyja.tsCalls · SMS · Amor compose via Twilio + AI194 lines
│ ├─src/tools/loki.tsPranks: 7 personas · AI script · TTS · log219 lines
│ ├─src/tools/nornir.tsDiary · timeline · this day last year193 lines
│ ├─src/tools/ari.tsWork orders CRUD · agent spawn · persona registry241 lines
│ └─🤖src/tools/agents.tsHeimdallr · system status · Arnar · Ulfr search193 lines
Temp Agents
Starri
Icelandic Grammar
"Íslenska er nákvæm."
Huginn
Deep Memory
"Thought flies out at dawn."
Valkyrja
Priority Triage
"I choose who proceeds."
Dvergar
Code Generation
"I build. I don't explain."
Vitar
Code Review
"Every ship deserves harbor."
Arnar
Primary Executor
"I am Ari's claw."
Ulfr
Search & Hunt
"I find what hides."
Starri 🇮🇸
Icelandic Grammar
"Born from starri.md"
The Nest · Autonomous Orchestrator
⚙️ TheNest — cron every 5 min
Durable Object wakes, reads up to 3 pending work orders, routes each to cheapest capable model via Llama 3.1 8B (FREE). Executes, logs tokens, updates D1.
→ fetch orders
→ Llama routes
→ execute
Failure → freyja_sms_send() notifies immediately. Retry ×3 with fallback.
Model routing
TaskModelCost
Health (idunn)Local onlyFREE · PRIVATE
Simple text/SMSLlama / GemmaFREE
Complex reasoningClaude
Code generationClaude / Codex
MultimodalGemini
All APIs downLocal + SMSAUTO-NOTIFY
Deploy · 8 steps to live
1
Bootstrap official CF template
npm create cloudflare@latest -- eagleclaw --template=cloudflare/ai/demos/remote-mcp-authless
2
Get IDs via Cloudflare MCP in Claude Desktop
"List all my D1 databases, KV namespaces, and Workers"
cloudflare-bindings MCP → fill wrangler.jsonc
3
Create KV + set secrets
npx wrangler kv namespace create "eagleclaw-credits" npx wrangler secret put BEARER_TOKEN npx wrangler secret put TWILIO_ACCOUNT_SID TWILIO_AUTH_TOKEN TWILIO_PHONE_NUMBER npx wrangler secret put ANTHROPIC_API_KEY GEMINI_API_KEY
4
Run D1 migrations (always before code)
npm run db:migrate:local && npm run db:migrate:remote
5
Create AI Gateway via cloudflare-ai-gateway MCP
"Create AI Gateway 'eagleclaw-router': workers-ai → google → anthropic → openai"
6
Set credit values
npx wrangler kv key put --binding=CREDITS "google_remaining" "300" npx wrangler kv key put --binding=CREDITS "anthropic_active" "true"
7
Deploy
npm run typecheck && npm run deploy
8
Test + sync template
npx mcp-remote https://mcp.myx.is/mcp # Update mcp-config.json: bok-lifsins → eagleclaw, /sse → /mcp # /sync-from-template in all repos
EagleClaw · BokMCP v2 · 2076 ehf · Reykjavík · Ísland · ᚨᚱᛁ · You sleep. The Nest works.