Skip to main content
Glama
nextauralabs

shelter-mcp

by nextauralabs
README.md
# Shelter MCP Server

Connect Claude, Codex, Cursor, and other MCP-compatible agents to scoped financial context from your own [Shelter](https://shelter.money) account.

The server is read-only. It can retrieve forecasts, runway, alerts, opportunities, and affordability guidance, but it cannot move money or access Plaid credentials.

## Requirements

- Node.js 20 or newer
- A Shelter account with connected financial data
- A scoped API key from [shelter.money/developer](https://shelter.money/developer)

No Plaid developer account is required.

## Quick start

Create an API key, then configure your MCP client to run:

```bash
npx -y @shelter.money/mcp
```

with `SHELTER_API_KEY` in the server environment.

### Claude Desktop

```json
{
  "mcpServers": {
    "shelter": {
      "command": "npx",
      "args": ["-y", "@shelter.money/mcp"],
      "env": {
        "SHELTER_API_KEY": "wv_your_key_here"
      }
    }
  }
}
```

Restart Claude Desktop after saving its configuration.

### Codex

```bash
codex mcp add shelter --env SHELTER_API_KEY=wv_your_key_here -- npx -y @shelter.money/mcp
```
### Cursor

Add this server to Cursor's MCP settings:

```json
{
  "shelter": {
    "command": "npx",
    "args": ["-y", "@shelter.money/mcp"],
    "env": {
      "SHELTER_API_KEY": "wv_your_key_here"
    }
  }
}
```

## Available tools

- `shelter_status` — connection and authority status
- `shelter_runway` — safe-to-spend runway and upcoming pressure
- `shelter_forecast` — manifest-bound cash-flow forecast
- `shelter_alerts` — current financial alerts
- `shelter_opportunities` — actionable savings opportunities
- `shelter_context` — scoped financial context for agent reasoning
- `shelter_affordability` — purchase affordability simulation
- `shelter_coach_daily` — daily coaching summary
- `shelter_coach_advice` — coaching for a requested topic
- `shelter_ask` — ask Guardian a financial question

The package also provides financial checkup, spending review, and purchase-planning prompts.

## Environment variables

| Variable | Required | Description |
| --- | --- | --- |
| `SHELTER_API_KEY` | Yes | Scoped key created in Shelter. Keep it secret. |
| `SHELTER_API_URL` | No | API base URL. Defaults to `https://api.shelter.money/agent`. |
| `PORT` | HTTP mode only | Local HTTP port. Defaults to `3100`. |

If `SHELTER_API_KEY` is missing, the server still exposes its tool definitions but returns suppressed responses with no financial values. It never substitutes sample money data for a user's real financial state.
## Security model

- End-user identity comes only from the scoped Shelter API key.
- Keys are stored by Shelter as SHA-256 hashes and shown only once when created.
- Keys can be scoped and revoked from the Shelter developer page.
- The hosted Agent API applies authentication, authorization, rate limits, and audit logging.
- The MCP package does not contain Shelter backend code, deployment secrets, Plaid tokens, or bank credentials.
- Financial responses fail closed when authoritative data is unavailable.

Treat the API key like a password. Do not commit it or place it directly in command history on shared machines. See [SECURITY.md](SECURITY.md) for vulnerability reporting.

## Development

```bash
npm ci
npm run typecheck
npm run build
```

Run the stdio server from the built package:

```bash
SHELTER_API_KEY=wv_your_key_here node dist/bin/shelter-mcp.js
```

A stateless Streamable HTTP entrypoint is also built for controlled hosting:

```bash
SHELTER_API_KEY=wv_your_key_here npm start
```

The HTTP entrypoint binds to `0.0.0.0` and is not the recommended personal-client setup. Use stdio unless you operate and secure the HTTP environment yourself.

## Architecture

This public repository contains only the MCP adapter. It calls Shelter's hosted, read-only Agent API. Shelter's private financial calculations, authentication gateway, database schema, and service credentials are not part of this package.

## License

[MIT](LICENSE)

TDQS

A3.9/5.0

Scored across 10 tools

Disambiguation4/5

Most tools have distinct purposes: status provides a snapshot, runway focuses on days of money, forecast is a specific projection, alerts, opportunities, context, affordability, coach daily, coach advice, and ask all serve different functions. However, shelter_status and shelter_runway both include safe-to-spend and upcoming bills, and shelter_coach_advice and shelter_ask could be confused for similar advice-seeking, creating minor overlap.

Naming Consistency5/5

All tools follow a consistent pattern: shelter_ + lowercase snake_case noun or noun phrase (e.g., shelter_status, shelter_coach_daily). The prefix is uniformament and the style is identical across the set, making it predictable for an agent.

Tool Count5/5

With 10 tools, the count is well within the optimal range for a personal finance assistant. Each tool covers a distinct aspect of financial status, insights, or advice, and none feel redundant or unnecessary for the stated purpose.

Completeness4/5

The tool set covers a wide range of read-only financial information: status, forecast, runway, alerts, opportunities, affordability, and coaching. However, it lacks any action-oriented tools (e.g., updating a budget, setting alerts, or initiating transactions), which might be a gap if the server intended to support more than advisory functions. Still, for a likely read-only assistant, the surface is fairly complete.

Maintenance

ActivityNo data
ResponsivenessNo issues