Morning Light Desk MCP
Integrates with Alexa+ agents as an MCP host, enabling voice-driven analysis of dry exam/card pulse text from a mock trading desk through the analyze_exam_card tool.
Provides optional enrich analysis of exam cards using NVIDIA Nemotron models via the Nebius Token Factory when NEBIUS_API_KEY is configured.
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., "@Morning Light Desk MCPanalyze this dry exam card: KEEP dry, SAFE HOLD, math short of gate"
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.
Morning Light Desk MCP
Amazon Developer Hackathon — Alexa+ track · Open Source mini-challenge
Streamable HTTP MCP server (spec 2025-11-25+) that Alexa+ agents and other MCP hosts can call to analyze dry Exam/card pulse text from a mock trading desk.
✝️🧿🪬
What it does
Tool | Description |
| Dry exam/card text → structured Test result · Signal · Problem · Needs · Alarms · Recommend |
| Server status, version, transport, and engine mode |
Rules (honest desk):
English only
No live trading recommendations
No CLEAR+/go language in Recommend — HOLD / 👀 eyes only
Offline rules engine works without any API key
Optional Nebius Token Factory enrich when
NEBIUS_API_KEYis set
3️⃣🧿5️⃣
Related MCP server: mcp-health-server
Repository
Self-contained hackathon project. Intended standalone repo: Alarm2024/desk-alexa-mcp.
Until that repo is published, clone from this monorepo folder:
git clone https://github.com/Alarm2024/desk-sentinel.git
cd desk-sentinel/desk-alexa-mcpQuick start
# from repo root (desk-alexa-mcp/ or desk-sentinel/desk-alexa-mcp/)
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env # optional — edit if using Nebius enrich
python -m desk_alexa_mcpServer listens on http://0.0.0.0:8000 (override with HOST / PORT).
Endpoints
URL | Purpose |
| Alexa+ web simulation page |
| Same web sim |
| Streamable HTTP MCP (Alexa+ / MCP clients) |
| Health JSON |
| REST helper for the web sim |
Sample curl
Health:
curl -s http://localhost:8000/health | jqAnalyze (REST — easiest for judges):
curl -s -X POST http://localhost:8000/api/analyze \
-H "Content-Type: application/json" \
-d '{"exam_card": "KEEP dry\n👀 SAFE HOLD · math short of gate\nPhase: SAFE_HOLD · dry_run: true"}' | jqMCP initialize (Streamable HTTP):
curl -s -X POST http://localhost:8000/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":"demo","version":"0.1.0"}}}'MCP tools/list:
curl -s -X POST http://localhost:8000/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'Or run the bundled script (server must be running):
chmod +x scripts/demo.sh
./scripts/demo.shAlexa+ web simulation
Open http://localhost:8000/sim in a browser. Pick a sample exam card, click Analyze with Desk MCP, and read the branded report — a fallback “simulated Alexa+ experience” for judges without Amazon API keys.
Fixtures
Sample dry exam cards live in fixtures/exam_cards/:
safe_hold_dry.txt— routine HOLD watchshort_market.txt— SHORT regime warningbridge_fault.txt— operational faultpreflight_attention.txt— pre-flight attention (still dry)
Optional Nebius enrich
Copy .env.example → .env and set NEBIUS_API_KEY for NVIDIA Nemotron analysis via Nebius Token Factory. Without a key, the offline rules engine handles all analysis.
Never commit secrets. Only .env.example is tracked.
Connect from MCP clients
Point any Streamable HTTP MCP client at:
http://localhost:8000/mcpExample with the official Python SDK:
from mcp import ClientSession
from mcp.client.streamable_http import streamable_http_client
async with streamable_http_client("http://localhost:8000/mcp") as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
result = await session.call_tool(
"analyze_exam_card",
{"exam_card": open("fixtures/exam_cards/safe_hold_dry.txt").read()},
)
print(result)License
MIT — see LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
AI Reasoning Cache & Consensus Layer with 11 MCP tools via Streamable HTTP.
Structured analysis API and remote MCP tool for text, JSON records and numeric series.
A paid remote MCP for Equibles, built to return verdicts, receipts, usage logs, and audit-ready JSON
A paid remote MCP for HyperFrames, built to return verdicts, receipts, usage logs, and audit-ready J
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceModular MCP server providing text preprocessing and NLP tools for AI agent ecosystems.MIT
- AlicenseAqualityBmaintenanceA Claude-compatible MCP server that exposes health-domain tools over 100% synthetic data, built with security and compliance in mind.4MIT
- AlicenseNot gradedqualityCmaintenanceMCP server for natural-language daily stock/ETF strategy backtesting. It provides constrained tools for strategy specification, data validation, queue-based backtests, and verifiable result artifacts.1Apache 2.0
- FlicenseNot gradedqualityCmaintenanceAn MCP server that enables LLMs to securely query synthetic clinical data through validated, scoped tools (patient summaries, conditions, medications, lab trends, encounters) while maintaining audit logs and access controls.-