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: Veridexa MCP Gateway
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.18 PyPIMIT
- FlicenseNot gradedqualityCmaintenanceExposes the Veridexa S2S API to MCP clients (e.g., ChatGPT) via Streamable HTTP, allowing document verification and report retrieval.-
- AlicenseAqualityBmaintenanceA Claude-compatible MCP server that exposes health-domain tools over 100% synthetic data, built with security and compliance in mind.4MIT
- FlicenseNot gradedqualityBmaintenanceDecision stress-testing MCP server that injects a GRILL protocol into ChatGPT Web conversations, enabling read-only interrogation of plans, state tracking, and recommended answers for decision-making.-