Steward MCP Server
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., "@Steward MCP ServerPlan my Saturday: dentist at 10am, groceries, and remind me to call mom"
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.
Steward - an Alexa+ Agent Skill
Steward is a personal-operations Agent Skill for the Alexa+ track of the Build, Ship, Shape: Amazon Developer Hackathon. It runs errands across your calendar, reminders, notes, and remembered preferences through a self-hosted MCP server (Streamable HTTP, MCP spec 2025-11-25), orchestrated by a Strands SDK agent. A small web app provides the simulated Alexa+ experience allowed by the hackathon rules.
The agent also enters the AWS Builder mini-challenge (Strands SDK agent framework plus a genuine Amazon Bedrock model path with documented setup) and the Open Source mini-challenge (this repo: new, MIT-licensed, built during the hackathon window).
How it works
You type an errand
v
Web UI (simulated Alexa+ experience, FastAPI)
v
Strands SDK agent (AWS Builder: Strands + Bedrock integration)
| MCP client (Streamable HTTP)
v
Steward MCP server (13 tools, SQLite store, zero cloud dependencies)Example: "Plan my Saturday: dentist at 10am, buy groceries, call mom" makes
the agent call clock_now, calendar_add, reminder_add, and note_save,
then summarize the plan. Preferences persist across sessions via
prefs_set / prefs_get (the agent checks them before assuming anything).
Related MCP server: konbu
Setup
Requires Python 3.10+.
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txtConfigure the model
The agent needs a model. Pick one:
Option A: Amazon Bedrock (the AWS path). Configure AWS credentials the
usual way (env vars, ~/.aws/config, or IAM role), then:
export STEWARD_BEDROCK_MODEL_ID=amazon.nova-micro-v1:0 # or any Bedrock id
export STEWARD_AWS_REGION=us-east-1Option B: any OpenAI-compatible endpoint (local server, gateway, etc.):
export STEWARD_MODEL_BASE_URL=http://127.0.0.1:11434/v1
export STEWARD_MODEL_ID=your-model-id
export STEWARD_MODEL_API_KEY=your-key # or "not-needed"With AWS credentials present and no STEWARD_MODEL_BASE_URL, Bedrock is
selected automatically. Set STEWARD_MODEL_PROVIDER=bedrock or
STEWARD_MODEL_PROVIDER=openai-compatible to force one. With nothing
configured, the agent raises a clear error instead of guessing.
Run it
Terminal 1, the MCP server (Streamable HTTP on 127.0.0.1:8899):
python -m steward.mcp_serverTerminal 2, the web experience:
python -m steward.webOpen http://127.0.0.1:8898/ and give Steward an errand, for example:
"Plan my Saturday: dentist at 10am, buy groceries, and remind me to call mom"
"Remember that I prefer morning appointments"
"What is on my calendar tomorrow?"
The UI shows which MCP tools ran for each reply.
Talk to the MCP server directly
Any MCP client works. With the Python MCP SDK:
import asyncio
from mcp.client.session import ClientSession
from mcp.client.streamable_http import streamable_http_client
async def main():
async with streamable_http_client("http://127.0.0.1:8899/mcp") as (r, w):
async with ClientSession(r, w) as s:
await s.initialize()
tools = await s.list_tools()
print([t.name for t in tools.tools])
asyncio.run(main())MCP tools (13)
Tool | What it does |
| Current local date/time (ISO 8601) |
| Add an event (title, date, start_time, notes) |
| List events, optionally filtered by date |
| Delete an event by id |
| Add a reminder (text, due) |
| List open reminders |
| Mark a reminder completed |
| Save a note (title, body, tags) |
| Full-text search over notes |
| Fetch one full note by id |
| Remember a preference across sessions |
| Read a remembered preference |
| List all remembered preferences |
Tests
python -m pytest tests/ -q21 tests: SQLite store CRUD, the MCP server over real Streamable HTTP (protocol version asserted >= 2025-11-25), provider selection, the Strands agent loop against the real server with a scripted model double, and the web API.
Project layout
steward/
store.py SQLite storage (events, reminders, notes, prefs)
mcp_server.py MCPServer "steward" v1.0.0, 13 tools, Streamable HTTP
models.py build_model(): Bedrock or OpenAI-compatible (Strands)
agent.py StewardAgent: Strands agent + MCP client + session memory
web.py FastAPI app: the simulated Alexa+ experience
netenv.py proxy-env sanitizer for localhost MCP clients
webui/index.html Single-page chat UI (no build step)
tests/ pytest suite (21 tests)Environment variables
Variable | Default | Purpose |
|
| SQLite file |
|
| MCP server bind |
|
| Where the agent finds the server |
|
| Web app bind |
|
|
|
|
| Bedrock model id |
| AWS config chain | Bedrock region |
| (unset) | OpenAI-compatible base URL |
| (unset) | Key for the OpenAI-compatible endpoint |
| (unset) | Model id for the OpenAI-compatible endpoint |
License
MIT. See LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Agent-native notes, tasks, dev-docs, vaults, sync & handoffs. MCP + OpenAPI dual surface.
Private-by-default, local-first memory/context/task orchestrator for MCP apps and agents.
Streamable HTTP MCP server for Google Calendar and Sheets with OAuth login.
Hosted MCP server with managed OAuth for 15+ toolkits: Google Workspace, Fitbit, Oura, Kalshi, etc.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceNative macOS Calendar & Reminders MCP server with 25 tools via Apple EventKit. Supports recurring events, location-based reminder triggers, multi-keyword search, duplicate detection, conflict checking, and batch operations across iCloud/Google/Exchange calendars.40MIT
- AlicenseAqualityCmaintenanceMCP server for a self-hostable personal planner — exposes memo, todo, calendar event, and cross-resource full-text search tools so Claude, Cursor, or any MCP client can manage your schedule and notes in natural language.181MIT
- FlicenseNot gradedqualityDmaintenanceA privacy-first, local-first MCP server that provides 15 ADHD/second-brain tools for capturing, prioritizing, and resurfacing tasks with context from calendar, mail, and messages.1-
- FlicenseNot gradedqualityDmaintenanceA database-first personal knowledge management system powered by a local MCP server, providing 29 tools to manage and search structured knowledge (meetings, emails, people, accounts, projects, todos, etc.) via a single SQLite file.-