Hermes Home
Enables Amazon Alexa+ to discover and invoke Hermes Home tools over Streamable HTTP MCP, bridging voice and chat requests to the Hermes personal-agent runtime.
Provides outbound messaging to Discord via the send_message tool, allowing notifications or questions to be sent to a Discord channel or user.
Provides read-only GitHub issue triage tools: listing the user's issues and repository issues to help decide what to work on.
Bridges to the Hermes personal-agent runtime, exposing Hermes quick Q&A, long-running tasks, task status/results, and memory search/remember capabilities.
Allows reading Home Assistant state and controlling devices via home_get_state and a two-step-confirmed home_control tool, with safeguards for sensitive domains.
Provides outbound Telegram notifications via the send_message tool, e.g. pinging the user when a Hermes task is complete.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Hermes HomeAsk Hermes to plan a productive Saturday"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Hermes Home
Alexa+ on the front. Hermes as the agent underneath.
Amazon Developer Hackathon — Alexa+ track (self-hosted MCP server, Streamable HTTP, spec 2025-11-25) · also entered in the Open Source mini challenge (MIT).
Alexa+ integrates through remote Streamable-HTTP MCP servers; the Hermes personal-agent runtime only ships a stdio MCP server. Hermes Home is the bridge: it exposes a small, hand-picked set of tools to Alexa+ and keeps every long task asynchronous, so a voice assistant never waits on a slow agent.

Try it in 2 minutes (simulated Alexa+)
No Alexa+ Preview access is needed. apps/dashboard contains an Alexa+ simulator: a voice/chat
web app that acts as the MCP client (official @modelcontextprotocol/sdk), lists the server's tools,
calls them over Streamable HTTP, and shows every tools/call in a live trace panel.
npm install
copy .env.example .env # set HERMES_API_URL / HERMES_API_KEY (and PORT if 3000 is busy)
npm run demo # tunnel -> MCP bridge -> simulator, verified
# open http://127.0.0.1:3100/simThings to say: "Ask Hermes what a good question to reflect on today is" · "Send me a message on Discord with a question to think about" · "Ask Hermes to plan a productive Saturday" → "Is Hermes done?"
Optional: set GOOGLE_API_KEY and the simulator lets Gemini pick tools by function-calling (like real Alexa+);
without it a keyword router is used. Anything that mentions "Hermes" is routed straight to the agent.
Related MCP server: AlexaTasker
What is exposed (14 tools — never the whole Hermes catalogue)
hermes_ask · hermes_start_task · hermes_task_status · hermes_task_result · home_get_state ·
home_control (two-step confirm) · hermes_memory_search · hermes_remember · calendar_today ·
calendar_tomorrow · calendar_events · github_my_issues · github_repo_issues · send_message.
Calendar, Home Assistant and GitHub activate when their credentials are in .env; otherwise they
return a clear "not configured" result.
Safety design
Fail-closed Hermes gate (server refuses to boot without a live agent) · per-user run/memory isolation ·
DNS-rebind guard · RS256/JWKS OAuth2 mode for internet exposure · home control requires explicit confirmation ·
the simulator redacts DM handles/IDs from its trace. See docs/privacy.md.
Submission notes
Hackathon deliverables live in docs/submission.md (description, product feedback,
friction log pointers). Audit/continuation guide: docs/handoff.md. Hermes VM wiring: docs/hermes-vm.md.
Current state — local-only, MVP track. This repo contains the working Alexa+ ↔ Hermes bridge: a public-safe Streamable HTTP MCP server (
apps/mcp-server) that answers quickly, safely, and only from a real Hermes runtime. It runs loopback-first: out of the box it is intentionally reachable only from the machine it's on (DNS-rebind guard on Host/Origin). Alexa+ onboarding (Cloudflare Tunnel + OAuth 2.1/PKCE) is documented indocs/alexa.mdanddocs/oauth-reference/README.mdand is the explicit next step — everything before it already works on localhost. If the Hermes gateway is down the server refuses to start rather than demo against a stub (HERMES_REQUIRED=falseexists for tests only).
┌──────────────┐ ┌───────────────┐
│ USER │──────▶│ ALEXA+ │ voice + display
└──────────────┘ └──────┬────────┘
│ Streamable HTTP MCP
▼
┌─────────────────────────────┐
│ HERMES HOME — MCP SERVER │ the only public component
└──────────────┬──────────────┘
│
┌───────────────┼───────────────┐
▼ ▼ ▼
fast tools Hermes HTTP API local state
(home, memory) (127.0.0.1:8642) (memory · runs)
│
▼
┌─────────────────┐
│ HERMES AGENT │ memory · browser · subagents · MCP
└────────┬────────┘
▼
Home Assistant · Calendar · GitHub · Messages · Muse …📋 New here? Read
docs/handoff.mdfirst — it's a proof-oriented audit & continuation guide: what's built, what each red onboarding row means, and the exact commands to re-verify every claim.
Why
Alexa is a great conversational surface; Hermes is a persistent personal agent (memory, long-running tasks, tools, integrations). Hermes Home gives the user a single conversational doorway into both (spec §1) — no new intents, no hard-coded commands: Alexa+ decides when Hermes' tools apply.
Quick start — everything, one command
git clone <this-repo>; cd hermes-home
npm run dev # installs, builds, spawns MCP server + dashboard + optional tunnelThen prove it's ready to connect before touching Alexa:
npm run onboard # runs the full spec §41 readiness ladder with colored pass/failYou'll get a line-by-line readiness report for: MCP health, Hermes reachability, protocol handshake, tool discovery, the DNS-rebind guard, OAuth discovery documents, and which integrations are configured. When the top sections are green, expose and onboard:
cloudflared tunnel --url http://localhost:3000
# then follow docs/alexa.md onboarding checklistOr run pieces by hand: npm run dev:mcp, npm run dev:dashboard.
Tools exposed to Alexa+
Deliberately small (spec §10) — never the whole Hermes catalog:
Tool | Purpose | Notes |
| Quick Q&A from Hermes context | bounded timeout |
| Long async run — research, planning | returns a |
| Follow up on a run | per-user ownership checked |
| Personal memory |
|
| "Are my office lights on?" | read-only |
| "Turn the office lights on" | two-step confirm, rate-limited, sensitive-domain guarded (spec §17) |
| "What's on my calendar tomorrow?" | iCal/CalDAV, read-only |
| "What should I work on?" | read-only triage |
| "Ping me on Telegram when it's done" | outbound notifications |
Repository layout
apps/
mcp-server/ the public Alexa+ MCP bridge (this is the product)
dashboard/ developer/debug surface on :3100 (spec §46)
integrations/ adapter skeletons (Home Assistant done; calendar/message/muse/config stubs)
packages/shared/ types, zod schemas, constants
docs/ architecture, alexa, hermes, oauth reference, memory, privacy, friction logCommands
npm run dev # everything: builds, starts MCP server (:3000) + dashboard (:3100)
npm run dev:mcp # MCP server only (tsx watch)
npm run dev:dashboard # debug dashboard only
npm run onboard # full readiness ladder (spec §41) — the "is it ready to connect?" check
npm run smoke # lighter pass/fail smoke
npm test # unit + protocol + safety tests
npm run build # type-check + build all workspaces
hermes gateway # Hermes HTTP API (separate runtime)
cloudflared tunnel --url http://localhost:3000 # public HTTPS for Alexa+Safety & trust boundaries (what reviewers should notice)
Bound-local default: Host/Origin DNS-rebind guard — a web page can't drive your laptop's MCP port.
Fail-closed on Hermes: no reachable gateway, no server. No canned answers.
Confirmation-before-execution for every physical action; security-sensitive domains (locks/alarms/covers) never act without an explicit out-loud confirm.
Per-user run & memory ownership: another user's
runIdis "unknown".Latency budget honored: long work is always async via
/v1/runs— Alexa+ never waits on a 20 s agent loop (spec §36).
Roadmap
Bridge MVP (ask / start / status / result / memory / home)
Alexa+ onboarding via tunnel + OAuth 2.1 account linking
Home Assistant live test on real devices
Physical Alexa device validation
Calendar / messaging / GitHub adapters (config-driven,
integrations/generic-mcp)Muse adapter (optional; license-gated, descriptive metrics only)
Registry-remote track: export
tool-config.jsonso Hermes consumes Hermes Home as MCP (hermes/registrations.ts)
License
MIT — see LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Access your Callin.io AI phone agents, call history and transcripts from any AI assistant.
Remote streamable-HTTP MCP server running on a single Cloudflare Worker. Your assistant gets live Airbnb, Amazon, Booking.com, Google Flights, Maps and Reddit data, social search on X, Instagram and TikTok, the Meta Ad Library, and image/video generation without any keys. Connect your own accounts to let it send WhatsApp or Telegram messages, work an IMAP inbox, manage Meta Ads campaigns and publish to X and LinkedIn. OAuth 2.1 with PKCE; stored credentials are AES-256-GCM encrypted.
Human-input bridge for AI agents with voice-first answer links, MCP tools, and HTTP APIs.
Lets Claude, ChatGPT, and Muse read and update your beckett tasks, notes, calendar, and lists.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to control Alexa-connected smart home devices, including voice announcements, music control, smart lighting, sensor monitoring, and volume management through the Alexa API.-
- AlicenseNot gradedqualityBmaintenanceEnables Alexa+ to manage your tasks and calendar through conversational commands, including adding, listing, completing tasks, and generating AI-powered daily plans with AWS Bedrock.3 npm1MIT
- AlicenseNot gradedqualityBmaintenanceEnables Alexa+ voice agents to control smart home devices, generate daily briefings, orchestrate routines, and query user context through tools backed by AWS Bedrock.1MIT
- AlicenseNot gradedqualityBmaintenanceEnables an Alexa-style assistant to plan and execute multi-step smart home routines, remember user preferences across sessions, and render interactive UI cards on screen via Streamable HTTP MCP tools. Uses AWS Bedrock for reasoning with a built-in offline intent fallback.MIT