Server data from the Official MCP Registry
Context and automation MCP server for Warm financial data and approved write operations.
Context and automation MCP server for Warm financial data and approved write operations.
Warmio is a well-designed MCP server for financial data access with strong separation of concerns between context (read-only) and automation (write) modes. Authentication is properly scoped with mode-specific API keys, credentials are securely stored in files with 0600 permissions, and write operations require approval workflows. Minor code quality observations exist around broad exception handling and logging practices, but these do not materially impact security. The implementation demonstrates careful attention to credential management, transport security, and principle of least privilege. Package verification found 1 issue.
4 files analyzed · 4 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Set these up before or after installing:
Environment variable: WARM_CONTEXT_API_KEY
Environment variable: WARM_CONTEXT_API_KEY_FILE
Environment variable: WARM_AUTOMATION_API_KEY
Environment variable: WARM_AUTOMATION_API_KEY_FILE
Environment variable: WARM_CONFIG_DIR
Environment variable: WARM_API_URL
Environment variable: WARM_API_TIMEOUT_MS
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-jasonstockman-warmio": {
"env": {
"WARM_API_URL": "your-warm-api-url-here",
"WARM_CONFIG_DIR": "your-warm-config-dir-here",
"WARM_API_TIMEOUT_MS": "your-warm-api-timeout-ms-here",
"WARM_CONTEXT_API_KEY": "your-warm-context-api-key-here",
"WARM_AUTOMATION_API_KEY": "your-warm-automation-api-key-here",
"WARM_CONTEXT_API_KEY_FILE": "your-warm-context-api-key-file-here",
"WARM_AUTOMATION_API_KEY_FILE": "your-warm-automation-api-key-file-here"
},
"args": [
"-y",
"@warmio/mcp"
],
"command": "npx"
}
}
}From the project's GitHub README.
Warmio is the one-command CLI with separate compact MCP modes for financial context and supported automations.
npx -y @warmio/mcp@latest
The installer detects supported MCP clients, prompts for a mode-specific Warm API key, validates
its audience, and writes the local stdio MCP config automatically. Context and automation keys
are stored separately and are never shared between modes.
Context is the default read-only mode. Install it with its own key:
npx -y @warmio/mcp@latest install --mode context
Use this when a client asks you to paste a context MCP JSON config:
{
"mcpServers": {
"warm": {
"command": "npx",
"args": ["-y", "@warmio/mcp@latest", "mcp", "--mode", "context"]
}
}
}
On Windows, prefer:
{
"mcpServers": {
"warm": {
"command": "cmd",
"args": ["/c", "npx", "-y", "@warmio/mcp@latest", "mcp", "--mode", "context"]
}
}
}
Context credential overrides:
WARM_CONTEXT_API_KEYWARM_CONTEXT_API_KEY_FILEAutomation is intentionally opt-in and must use a distinct automation key:
npx -y @warmio/mcp@latest install --mode automation
{
"mcpServers": {
"warm-automation": {
"command": "npx",
"args": ["-y", "@warmio/mcp@latest", "mcp", "--mode", "automation"]
}
}
}
Automation credential overrides are WARM_AUTOMATION_API_KEY and
WARM_AUTOMATION_API_KEY_FILE. The default key files are ${WARM_CONFIG_DIR}/context_api_key
and ${WARM_CONFIG_DIR}/automation_api_key; WARM_API_KEY and WARM_API_KEY_FILE are not read.
The API verifies the key audience before every MCP tool call, so a context key cannot operate the
automation server and an automation key cannot operate the context server.
Installer validation fails closed for API responses 401 and 403. A 429 rate limit or a
temporary network failure remains a soft validation failure so setup can finish; the MCP server
will still validate the key audience before serving tools.
Both modes send API requests to https://app.warm.io by default. Set WARM_API_URL only when an
explicit API base URL override is required.
I want to connect Warm to this AI app using MCP.
Use this MCP server config:
{
"mcpServers": {
"warm": {
"command": "npx",
"args": ["-y", "@warmio/mcp@latest", "mcp", "--mode", "context"]
}
}
}
If this app supports MCP configuration, add a server named "warm" with that command.
Do not ask me to paste my Warm API key into this chat. Help me store it locally using Warm's setup
flow, then test the connection by calling Warm's verify_key tool.
After setup, I should be able to ask:
- What is my net worth?
- Summarize my recent transactions.
- What changed recently?
- What recurring charges do I have?
npx -y @warmio/mcp@latest context get
npx -y @warmio/mcp@latest context meta
npx -y @warmio/mcp@latest transactions get --month 2026-07
npx -y @warmio/mcp@latest transactions get --latest
All CLI read commands print JSON.
If your MCP client supports Streamable HTTP, you can run:
npx -y @warmio/mcp@latest http --mode context --host 127.0.0.1 --port 3000 --path /mcp
Relevant optional environment variables:
WARM_MCP_HTTP_HOSTWARM_MCP_HTTP_PORTWARM_MCP_HTTP_PATHWARM_MCP_ALLOWED_HOSTSWARM_MCP_AUTH_TOKENWARM_MCP_AUTH_TOKEN is a separate bearer token for the MCP HTTP transport, never a Warm API
key. Automation HTTP always requires it, including on loopback. Context HTTP requires it whenever
the server binds anything other than the exact SDK-protected loopback hosts 127.0.0.1,
localhost, or ::1. Send it on every request as
Authorization: Bearer <WARM_MCP_AUTH_TOKEN>.
Context mode remains exactly three read-only tools:
| Tool | Description |
|---|---|
get_financial_context | Return compact FinancialContext JSON |
get_transactions | Return one month page or the fixed latest window |
verify_key | Validate the configured API key |
Automation mode is also exactly three tools:
| Tool | Description |
|---|---|
search_operations | Find supported operations without loading the full catalog |
describe_operation | Read an operation schema and request approval for a write input |
invoke_operation | Invoke the operation; every write requires an approval_id |
get_financial_context takes {} and returns compact context JSON without transaction items.get_transactions takes either { "month": "YYYY-MM" }, { "latest": true }, or {}.get_transactions call with no arguments defaults to { "latest": true }.month must use YYYY-MM format, for example 2026-07.latest is a fixed 10-day window anchored to the current artifact; the caller cannot configure the window.month and latest are mutually exclusive.count: 0 and items: [].describe_operation returns approval: { id, status, approval_url, expires_at } for every write operation.invoke_operation accepts that approval as approval_id; confirmation tokens are not supported.isError: true; malformed MCP input remains a protocol error.get_financial_contextInput:
{}
Returns compact FinancialContext:
{
"version": "v1",
"updated_at": "2026-07-06T11:58:41.000Z",
"currency": "USD",
"status": {
"position": {
"date": "2026-07-06",
"net_worth": 84500,
"cash": 18200,
"debt": 6400,
"investments": 72700,
"other_assets": 0,
"total_assets": 90900
},
"accounts": []
},
"transactions": {
"total": 2,
"months": [{ "month": "2026-07", "count": 2 }]
},
"recurring": [],
"budgets": [],
"goals": [],
"snapshots": [],
"liabilities": [],
"holdings": [],
"health": null
}
get_transactionsMonth input:
{ "month": "2026-07" }
Month response:
{
"month": "2026-07",
"start_date": "2026-07-01",
"end_date": "2026-07-31",
"count": 1,
"items": [
{
"id": "txn_1",
"account_id": "acct_1",
"date": "2026-07-05",
"amount": 42.18,
"merchant": "Whole Foods",
"name": "WHOLE FOODS",
"category": "FOOD_AND_DRINK",
"subcategory": "FOOD_AND_DRINK_GROCERIES",
"pending": false,
"currency": "USD"
}
]
}
Latest input:
{ "latest": true }
Latest response:
{
"since": "2026-06-26",
"window_days": 10,
"count": 1,
"items": []
}
verify_keyInput:
{}
Returns:
{
"valid": true,
"status": "ok"
}
v7 is a clean pre-launch cutover with no backwards compatibility or alias window.
X-API-Key is removed. Use Authorization: Bearer.WARM_MCP_AUTH_TOKEN where required.{ id, status, approval_url, expires_at }; invoke the exact input with its approval_id.npm install
npm run build
npm test
MIT
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.