mcpField
S
Smarter Weather

Smarter Weather

Remote
smarterweather.comMaps & Travel1Updated 1d ago

About Smarter Weather

Smarter Weather is a stdio-to-Streamable-HTTP bridge that lets local MCP clients connect to Smarter Weather’s hosted service. It handles API-key resolution and message forwarding; weather tools and schemas are provided remotely.

Key features

  1. 01Connect to the hosted weather MCP service
  2. 02Resolve keys from environment or .env
  3. 03Pass through mcp-remote flags
  4. 04Override the MCP endpoint

Use cases

  1. 01Call weather tools from Claude Desktop
  2. 02Connect Cursor to the remote weather MCP
  3. 03Configure an API key for a local MCP client

MCP support

The client receives MCP messages over stdio and proxies them to Smarter Weather’s Streamable HTTP endpoint. Weather logic and tool schemas reside on the remote MCP server.

Configuration

Remote servers need no local install. Pick your client, then copy the config or install in one click.

Endpointhttps://mcp.smarterweather.com
Copy install command
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.

Packages
npm@smarterweather/mcp-weather0.1.1

Tools

14
ParameterTypeRequiredDescription
fuzzybooleanNoAutosuggest mode for partial/misspelled input. Default false (exact search).
limitintegerNoMaximum candidates to return (1-10). Default 5.
querystringYesPlace query: city, "city, state", ZIP, partial text, or venue/address where enabled.
near_latnumberNoRank venues/addresses near this point; pair with near_lon.
near_lonnumberNo

Details

From the project README

@smarterweather/mcp-weather

A stdio-to-Streamable-HTTP bridge for the Smarter Weather hosted MCP server at https://mcp.smarterweather.com. It lets local-only MCP clients (Claude Desktop, Claude Code, Cursor, MCP Inspector, etc.) reach sw-mcp over the network with your API key.

Requires Node.js 22 or later.

The package is a thin wrapper around mcp-remote: no weather logic ships here, and the protocol implementation is not forked. All tools, schemas, rate limiting and metering live server-side in sw-mcp.

Get an API key

Run one of these in your project directory:

# A human is present: device sign-in in the browser (free account, no card)
npx -y @smarterweather/mcp-onboarding@latest login

# No human present: mint a trial key you can claim into a free account later
npx -y @smarterweather/mcp-onboarding@latest trial

Both write SMARTERWEATHER_API_KEY to ./.env (mode 0600, gitignored) and print only a key prefix, never the key.

The bridge resolves the key from:

  1. SMARTERWEATHER_API_KEY in the process environment
  2. the file named by SMARTERWEATHER_ENV_FILE
  3. .env in the working directory (skipped when the working directory is / or $HOME)

Unexpanded ${…} placeholders count as unset. The bridge passes the key to mcp-remote as Authorization:${SMARTERWEATHER_AUTH_HEADER}, with the bearer only in the child process environment, never on argv.

Without a key the bridge still connects, and discovery tools such as search_locations and search_catalog stay free. Other tool calls return x402 payment requirements (USDC on Base) with next_steps that point back to login and trial. OAuth sign-in through the bridge is not available yet; use an API key.

Install

npx -y @smarterweather/mcp-weather --version

Claude Desktop

Add to claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "smarterweather": {
      "command": "npx",
      "args": ["-y", "@smarterweather/mcp-weather"],
      "env": {
        "SMARTERWEATHER_ENV_FILE": "/absolute/path/to/your/project/.env"
      }
    }
  }
}

Claude Desktop does not interpolate env placeholders, so point the bridge at the .env that login / trial wrote, by absolute path. Never paste the key into this file. The bridge sends Authorization: Bearer <key> on every proxied request.

Cursor

Use envFile in the project .cursor/mcp.json (envFile requires "type": "stdio"):

{
  "mcpServers": {
    "smarterweather": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@smarterweather/mcp-weather"],
      "envFile": "${workspaceFolder}/.env"
    }
  }
}

Or ${env:NAME} from the process environment:

{
  "mcpServers": {
    "smarterweather": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@smarterweather/mcp-weather"],
      "env": {
        "SMARTERWEATHER_API_KEY": "${env:SMARTERWEATHER_API_KEY}"
      }
    }
  }
}

Environment variables

VariablePurposeDefault
SMARTERWEATHER_API_KEYAPI key. Takes precedence when set; an unexpanded ${…} falls through.unset (then SMARTERWEATHER_ENV_FILE, then .env)
SMARTERWEATHER_ENV_FILEAbsolute .env path, read when the process env key is unset.unset → cwd/.env (not / or $HOME)
SMARTERWEATHER_MCP_URLOverride the target MCP endpoint. A positional URL argument wins over it.https://mcp.smarterweather.com

Any mcp-remote flag passes through unchanged. Examples:

  • --debug: verbose logs at ~/.mcp-auth/{server_hash}_debug.log.
  • --transport http-only: force Streamable HTTP (skip the SSE fallback).
  • --header "X-Custom:value": add a header. Use the no-space form for cross-platform argument escaping.
"args": [
  "-y", "@smarterweather/mcp-weather",
  "--debug",
  "--transport", "http-only"
]

Troubleshooting

  • Tool calls return "Payment required": the bridge found no key. Its stderr names every place it checked. Run login or trial in the project directory, or set SMARTERWEATHER_ENV_FILE to the .env path, then restart the MCP client.
  • "Incompatible auth server: does not support dynamic client registration": the server rejected the key (unknown, revoked or expired), and the bridge has no sign-in fallback. Mint a new key with login or trial and restart the client. The bridge passes the key verbatim.
  • "Connection error: fetch failed": check that the endpoint is reachable from your machine. curl -i https://mcp.smarterweather.com should return HTTP 405 with Method not allowed. Use POST. (the endpoint accepts POST only).
  • Cursor doesn't see the server: make sure .cursor/mcp.json is valid JSON, then restart Cursor. The MCP panel logs the spawned process's stderr.

How it works

The bin is a small Node script. It resolves the URL (positional arg → SMARTERWEATHER_MCP_URL → default) and the API key (see above), sets SMARTERWEATHER_AUTH_HEADER in the child environment, appends --header "Authorization:${SMARTERWEATHER_AUTH_HEADER}" when a key was found, then spawn()s mcp-remote's dist/proxy.js. mcp-remote reads JSON-RPC over stdio and proxies each message to the hosted Streamable HTTP endpoint. Signals (SIGINT/SIGTERM/SIGHUP) are forwarded and exit codes propagate. The wrapper does not transform or inspect MCP traffic.

License

MIT

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.