1Install
This installs the nws-mcp command, a stdio MCP server.
git clone https://github.com/dezinerdudes/nws-mcp.git
cd nws-mcp
python -m venv .venv
. .venv/bin/activate
python -m pip install .
2Set environment variables
The server is configured only through environment variables, normally set in your MCP client’s server entry.
| Variable | Required | Meaning |
NWS_CONGREGATION_ID | yes | Your NWS congregation ID (123-456-789 or nine digits). |
NWS_CONGREGATION_PASSWORD | yes | The congregation-sharing password. |
NWS_EMAIL | yes | The email address of your NWS user. Device verification codes are sent here. |
NWS_VENDOR_CONFIG_PATH | yes | Path to the NWS vendor configuration file (JSON). |
NWS_CONGREGATION_PIN | for NWP app tools | The congregation PIN used by the NWP app. |
NWS_STATE_DIR | no | Where the local mirror, tokens and pending confirmations are stored. Default: ~/.local/share/nws-mcp. |
Vendor configuration file required. The server needs a vendor configuration file for the NWS backend, given by NWS_VENDOR_CONFIG_PATH. That file is not distributed with this project and this project does not explain how to obtain it. Without it, the server cannot connect.
Keep all of these values, the vendor configuration file and the state directory out of version control. The state directory holds decrypted congregation data with owner-only permissions.
3Add it to your MCP client
For Claude Code, one command:
claude mcp add nws \
-e NWS_CONGREGATION_ID=123-456-789 \
-e NWS_CONGREGATION_PASSWORD='your-password' \
-e NWS_EMAIL=you@example.org \
-e NWS_CONGREGATION_PIN='your-app-pin' \
-e NWS_VENDOR_CONFIG_PATH=/path/to/vendor-config.json \
-- /path/to/.venv/bin/nws-mcp
Or as a project .mcp.json (do not commit real credentials). Claude Desktop accepts the same entry in claude_desktop_config.json.
{
"mcpServers": {
"nws": {
"command": "/path/to/.venv/bin/nws-mcp",
"env": {
"NWS_CONGREGATION_ID": "123-456-789",
"NWS_CONGREGATION_PASSWORD": "your-password",
"NWS_EMAIL": "you@example.org",
"NWS_CONGREGATION_PIN": "your-app-pin",
"NWS_VENDOR_CONFIG_PATH": "/path/to/vendor-config.json"
}
}
}
}
4First steps
Run nws_status to check that the configuration loads, then nws_authenticate. On a new device NWS emails a verification code; pass it to nws_verify. Then nws_sync fills the local mirror, and nws_list and nws_get read it. The README walks through changes and publishing.