Macro Desk
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., "@Macro Deskwas the last jobs report a surprise?"
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.
Macro Desk
A remote MCP server that gives Alexa+ a sell-side macro desk: ask about inflation, jobs, growth or rates and get a short spoken answer that tells you not just the number but whether it matters.
"Alexa, how was the CPI print?"
"Headline CPI inflation was 4.0 percent year on year in September 2026, up from 3.7 percent. The monthly change of 0.6 percent was a bigger than usual move, 1.9 standard deviations above its three-year average."
Most voice assistants read out a headline figure. Traders and anyone with a mortgage care about the next question: is that a big number? Macro Desk scores every release against its own recent history, so the answer to "was that unusual" is a z-score and a "largest since" date rather than an adjective.
Tools
Tool | Ask it | Returns |
| "Brief me on the economy" | The releases that moved most against their history, curve shape, macro regime |
| "What was core PCE?" | Latest reading, prior reading, shock score when it is worth mentioning |
| "Was the jobs number a surprise?" | z-score, historical percentile, last time a move this large happened |
| "Is the curve inverted?" | 3m, 2y, 10y yields, 10y-3m and 10y-2y spreads, regime start date, 1-month 10y move |
| "What regime are we in?" | Growth/inflation quadrant, months in regime, previous regime |
| "What can you track?" | Coverage and the phrases each indicator answers to |
Every result carries a speech field written to be read aloud verbatim (no symbols, one number per clause, no "sigma") plus the numbers behind it, so an agent can either speak or reason.
Indicators: headline and core CPI, core PCE, nonfarm payrolls, unemployment, retail sales, industrial production, initial jobless claims, real GDP, fed funds, 10-year breakevens and 3-month, 2-year and 10-year Treasury yields. Free-text names resolve through aliases and fuzzy matching, so "the jobs report", "nfp" and "payrolls" all land on the same series.
Related MCP server: fred-economic-intelligence-mcp
Method
Shock score. For each indicator we separate the headline figure from the innovation, the new information in the latest print:
Inflation and output (CPI, PCE, IP) are quoted year on year but scored on the month-on-month change, because the change in a YoY rate is dominated by base effects from twelve months ago.
Rates and the unemployment rate are scored on the level change, payrolls on the print itself, GDP on the annualized quarterly rate.
The innovation is z-scored against the preceding three years of innovations (36 months, 156 weeks, 756 trading days or 12 quarters). The latest observation is excluded from its own mean and standard deviation. "Largest since" is the most recent earlier move at least as large in the same direction.
Regime. Growth momentum is the 3-month average of industrial production YoY minus the same average six months earlier; inflation momentum is the same on core CPI. The signs place the economy in one of four quadrants: goldilocks, reflation, stagflation or disinflationary slowdown.
Data. FRED via the public fredgraph.csv endpoint, so no API key is needed. Requests never wait on the network: the cache is primed from a snapshot bundled in macro_desk/data and refreshed from FRED in the background, stale-while-revalidate. A cold start answers its first briefing in about 25 ms and switches to live data within seconds; if FRED is down the server keeps answering from the last good copy. Every response reports data_source: live | snapshot.
Alexa+ compatibility
Alexa+ connects to MCP add-ons over Streamable HTTP, initializes at protocol 2025-03-26, and expects a round trip under 500 ms. The server negotiates 2025-03-26 through 2025-11-25, returns every result as both structuredContent and a JSON text block, and is covered by tests for each of those (tests/test_server.py, tests/test_latency.py). The data is public, so the endpoint needs no account linking.
Run it
pip install -e ".[dev]"
python -m macro_desk.server # http://localhost:8000/mcp
pytestOpen http://localhost:8000 for the voice console: speak or type a question and it calls the server over MCP, showing the JSON-RPC traffic alongside the spoken answer. Voice input needs Chrome or Edge.
Variable | Default | |
|
| |
| unset |
|
|
| Seconds before a series is refreshed from FRED |
| unset | Require |
The server also serves the add-on listing assets: /privacy, /terms, /assets/icon-*.png and /assets/carousel-600x900.png (regenerate with scripts/make_assets.py).
Deploy on AWS
scripts/deploy_ecs.sh builds an ARM64 image, pushes it to Amazon ECR and runs it on Amazon ECS Express Mode, which puts it behind an HTTPS load balancer with a URL of the form https://<service>.ecs.<region>.on.aws. One task stays up at all times, so there is no cold start for Alexa+ to wait through.
AWS_REGION=us-east-1 scripts/deploy_ecs.sh # create or update
AWS_REGION=us-east-1 scripts/deploy_ecs.sh --delete # tear downConnect to Alexa+
With the Alexa AI CLI installed and configured:
alexa-ai new mcp --name "Macro Desk" --locale en-US --mcp-server-url "https://<host>/mcp"
# copy descriptions, example phrases, policy URLs and media assets from alexa/listing.json
alexa-ai deployThen test in the Alexa+ web simulator from the developer console. Alexa+ reads tool definitions at deploy time, so run alexa-ai deploy again after changing tools.
Layout
macro_desk/
catalog.py indicator definitions, aliases, free-text resolver
data.py FRED loader, cache, parallel refresh, snapshot fallback
analytics.py transforms, rolling z-scores, curve, regime (no I/O)
speech.py readings -> sentences for text-to-speech
desk.py the tool logic, independent of MCP
server.py MCP server, console, listing pages, health check
web/ voice console, privacy and terms pages, add-on art
data/ FRED snapshot used to prime the cache and for tests
alexa/ Alexa+ add-on listing values
scripts/ ECS deploy, snapshot refresh, add-on art
tests/License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
macro-snapshot MCP — the state of the economy in one call.
Pay-per-call DeFi and macro intel for AI agents. x402 USDC tools via streamable HTTP /api/mcp.
Skills, agents and memory in the cloud, plus a gateway to your other MCP servers.
- UnifAPIOAuthcom.unifapi
Hosted MCP server for live public-data APIs and Skills for AI agents.
Related MCP Servers
- FlicenseAqualityDmaintenanceMCP server that enables semantic search over macroeconomic data using the Lambda Capture API.110-
- AlicenseBqualityDmaintenanceAn MCP server that provides economic intelligence using FRED data, including series search, metadata, observations, comparisons, and a curated macroeconomic knowledge graph with GraphRAG, digital twin simulation, and explainability.13MIT
- AlicenseNot gradedqualityBmaintenanceExposes MCP tools over Streamable HTTP that turn ranked Sygnal signals into voice-ready buyer-intent briefings with analyst verdicts, card and carousel payloads, and session state for a simulated Alexa+ experience. It also surfaces the next recommended action so a voice assistant can guide users through follow-ups, with fallback fixtures when the live signal feed is restricted.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