Foreman MCP
Integrates with Amazon services for voice-driven field service operations: designed to be used with Alexa+ through a hosted MCP endpoint, and optionally uses Amazon Bedrock to polish briefing and dispatch text via a composer interface with automatic fallback to deterministic templates.
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., "@Foreman MCPrun tomorrow's morning dispatch"
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.
Foreman MCP
Ask your business. Your business answers.
Foreman MCP is a self-hosted Model Context Protocol server (spec 2025-11-25, Streamable HTTP) that lets Alexa+ run a field-service business by voice: daily briefings, job status, crew assignment, field updates, a dispatch outbox, unanswered-lead follow-up, inventory checks and approval-gated shopping lists.
Built for the Alexa+ track of the Amazon Developer Hackathon ("Build, Ship, Shape"). By ELTIGRELABS.
What makes it more than a wrapper
State between sessions, on disk. All business state (jobs, crews, leads, inventory, outbox, shopping drafts, audit log) lives in a persistent JSON store (
data/store.json) written through atomically on every mutation. Kill the server, restart it: the business remembers.An agentic flow, not a Q&A bot.
run_morning_dispatchprepares tomorrow end to end: it detects gaps (jobs with no crew, double-booked crews, material shortfalls against stock on hand, leads past the first-response SLA), composes a dispatch per crew, queues an owner summary with ready-to-send lead replies, and drafts an approval-gated shopping list for the shortfalls.Purchase with a human gate. Shopping lists are drafts in
pending_approval. Nothing is ever purchased by the server.AWS-ready, never AWS-dependent. Briefing/dispatch text goes through a composer interface: deterministic templates by default; Amazon Bedrock polish when
FOREMAN_COMPOSER=bedrockand AWS credentials are present, with automatic fallback. (Strands orchestration of the dispatch flow is the next milestone and slots into the same step functions.)
Related MCP server: HomeBrain
Status (Oct 22, 2026)
Working and verified: persistent store + full remodeling demo dataset,
all 10 concept tools plus run_morning_dispatch (11 tools), the
dispatch flow with the deterministic composer, a live operations console
at /console, an automated end-to-end gate (48 assertions across two
server boots) and full evidence transcripts in
docs/evidence/.
Submission materials: docs/devpost-submission.md
(project description, judging instructions and mini-challenge fields),
docs/product-feedback.md (per-tool feedback,
including the exact Amazon Bedrock integration status) and
docs/friction-log.md.
Run the gate yourself:
npm run build
node scripts/verify.mjs # boots, calls every tool, restarts, re-verifies state
node scripts/evidence.mjs # regenerates docs/evidence/Run it
npm install
npm run build
npm start # http://localhost:3000/mcp (PORT env to change)Health check: GET / (store counts, composer in use). Full business state
(read-only, what the ops console renders): GET /state. Live operations
console (schedule, leads, outbox, audit trail, a voice-command simulator
that calls the same MCP tools, and the human gate itself: pending
shopping lists carry Approve purchase / Reject buttons whose decision
is saved, audited and visible in /state — smoke-tested click → state in
the gate): http://localhost:3000/console.
The demo dataset (a San Antonio remodeling company: 3 crews, 7 jobs,
5 leads, 11 inventory items) is seeded on first boot with dates relative
to that day, so the demo never goes stale: there is always a job tomorrow
with no crew, stale leads and low thinset for the dispatch flow to catch.
Reset it any time by deleting data/store.json. Point the store
elsewhere with FOREMAN_DATA_DIR.
Try it
# initialize
curl -s -X POST localhost:3000/mcp -H 'content-type: application/json' \
-H 'accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{},"clientInfo":{"name":"smoke","version":"0"}}}'
# the agentic flow
curl -s -X POST localhost:3000/mcp -H 'content-type: application/json' \
-H 'accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"run_morning_dispatch","arguments":{}}}'Point any MCP client (MCP Inspector, or Alexa+ via your hosted endpoint)
at http://localhost:3000/mcp.
Tools (the 10 from the concept + the dispatch flow)
Queries:
get_day_briefing— composite owner briefing for todaylist_jobs/get_job— schedule and job detail with its update threadget_unanswered_leads— leads waiting on a first reply, longest firstcheck_inventory— stock levels with low-stock flags
Actions:
log_field_update— a worker's report lands on the job's threadassign_crew— assign or reassign a crew, auditedqueue_dispatch— queue a message in the persistent outboxrecord_lead_reply— record a reply; closes the follow-up clockcreate_shopping_list— approval-gated restock or job-shortfall draftrun_morning_dispatch— the agentic flow described above
Layout: src/store.ts (persistence + types), src/seed.ts (demo data),
src/dispatch.ts (the flow: plan, detect, compose, act, summarize),
src/compose.ts (text composition: deterministic + Bedrock behind a flag),
src/index.ts (HTTP + MCP wiring). Full design: ../CONCEPTO.md.
License
MIT — see LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Skills, agents and memory in the cloud, plus a gateway to your other MCP servers.
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
- UnifAPIOAuthcom.unifapi
Hosted MCP server for live public-data APIs and Skills for AI agents.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables Alexa+ to run a small business by voice, with tools to open and move orders, add parts or labor, check and reorder stock, take payment, and get daily summaries, all generated from per-business YAML profiles.9,814 npmMIT
- AlicenseNot gradedqualityBmaintenanceA self-hosted MCP server that gives an Alexa+ household a durable operational memory for home repairs, warranties, and service cases, enabling multi-turn troubleshooting, provider booking, and reminders.Apache 2.0
- AlicenseNot gradedqualityBmaintenanceA self-hosted MCP server that lets Alexa+ help care for an older family member — medicines, health readings, family messages, errands and scam calls — with every tool call screened by a deterministic safety gate and a Cedar policy. It applies zones, tripwire lockdowns, scam watches and approval-fatigue limits so money actions require explicit family approval.MIT
- AlicenseNot gradedqualityBmaintenanceA self-hosted MCP server that enables a voice assistant to answer a small business owner's weekly cash questions — bank balances, runway and 13-week forecasts, duplicate or unusual charges, affordability of new hires, spending changes, and importable books — using ten tools backed by deterministic calculations and SQLite memory that persists alerts, reviewed charges, and prior briefs across sessions.MIT