nws-mcp
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., "@nws-mcppreview adding a new publisher to the congregation"
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.
nws-mcp
An unofficial Model Context Protocol (MCP) server for New World Scheduler (NWS). It lets Claude and other MCP clients read and manage a congregation's NWS data headlessly: people, schedules, assignments, territories, public witnessing, public-speaker sharing, NWP app publishing, backups and more, without automating the Windows UI.
Disclaimer. Unofficial. Not affiliated with or endorsed by the developers of New World Scheduler. Uses your own NWS credentials; you are responsible for complying with NWS terms.
It works on the congregation's live shared data. Every write goes through a preview and an explicit confirmation step, and nothing is published to the NWP app or announced by push notification unless you ask for it.
Contents
Related MCP server: srgplus-mcp
Features
62 tools across these areas (full list with parameters in docs/tools.md):
Area | What you can do |
Connection | Authenticate with congregation sharing, including emailed device verification; authenticate the NWP app bridge; value-free status. |
Data access | Sync 51 entity types into an owner-only local mirror; list, filter, get and describe entities with friendly field names; secrets redacted. |
Changes | Create, update or delete any entity with permission checks and stale-data detection. |
NWP app | Publish pending changes to the NWP app, optionally with NWS Desktop's targeted push notifications; import pending app submissions (reports, contact updates, requests, attendance, new addresses). |
Scheduling | Duty auto-assignment with the desktop algorithm; manual assignments and field-service schedules through the generic change tools. |
Public witnessing | Repeat templates over 1-8 weeks; assign shift positions; administer locations, shifts and templates; import reservations made in the NWP app; utilization and per-publisher reports. |
Files | Redacted JSON/CSV export; NWS Desktop-compatible |
Attachments | List, download, upload and remove information-board attachments and territory maps. |
Print layouts | Catalog of all 90 desktop reports with view access; structured data for S-13 territory assignment records and territory cards. |
Public-speaker sharing | List and connect to circuits; request to join, approve, deny, leave; receive congregations, speakers and outlines. |
Capabilities |
|
Safety model
Summary (details in docs/safety.md):
Preview, confirmation ID, commit. Every write is a preview that returns a ten-minute, single-use confirmation ID. The commit re-checks that nothing changed since the preview and refuses stale data. A cancel tool discards the preview.
No implicit publish or notify. Committing a change never publishes to the NWP app and never sends notifications. Publishing is its own preview/commit step, and
send_notificationsmust be passed explicitly astrueorfalse.Permissions enforced. The authenticated person's NWS access rights are applied as in NWS Desktop; edit, restore, publish and report-view rights are checked before writing or returning data.
Destructive restores additionally require
overwrite_existing_data=trueon both preview and commit.Secrets stay local. Credentials come only from your environment; tool output never contains passwords, PINs or tokens; local files are owner-only.
Requirements
Python 3.11 or newer.
An NWS congregation-sharing account (congregation ID, congregation password, and the email address of your NWS user). Write operations only work as far as your NWS access rights allow.
A vendor configuration file for NWS (see Configuration).
Install
python -m venv .venv
. .venv/bin/activate
python -m pip install .This installs the nws-mcp command, a stdio MCP server.
Configuration
The server is configured only through environment variables, normally set in your MCP client's server entry.
Variable | Required | Meaning |
| yes | Your NWS congregation ID ( |
| yes | The congregation-sharing password. |
| yes | The email address of your NWS user. Device verification codes are sent here. |
| yes | Path to the NWS vendor configuration file (JSON). |
| for NWP app tools | The congregation PIN used by the NWP app. Spaces, dashes and underscores are ignored. |
| no | Reserved; currently unused. |
| no | Where the local mirror, tokens and pending confirmations are stored. Default: |
Vendor configuration file. 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.
The server currently targets one NWS sharing region and one NWP app server (region ID 15, app server ID 5). Other regions are not configurable yet.
MCP client setup
Claude Code
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-mcpOr in a project .mcp.json (do not commit real credentials):
{
"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"
}
}
}
}Claude Desktop
Add the same entry to claude_desktop_config.json (Settings, Developer,
Edit Config):
{
"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",
"NWS_STATE_DIR": "/path/to/private/nws-state"
}
}
}
}On Windows use paths such as C:\\Users\\you\\nws\\.venv\\Scripts\\nws-mcp.exe.
First steps
nws_statusto check that the configuration loads.nws_authenticate. On a new device NWS emails a verification code; pass it tonws_verify.nws_syncto fill the local mirror, thennws_entity_types,nws_listandnws_getto read.To change something:
nws_preview_change, review, thennws_commit_changewith the confirmation ID.To release changes to the NWP app:
nws_app_authenticate,nws_app_preview_publish, review, thennws_app_commit_publishwithsend_notificationsset totrueorfalse.
Development
python -m venv .venv
. .venv/bin/activate
python -m pip install -e '.[test]'
python -m pytestThe test suite runs fully offline: protocol tests use in-memory HTTP transports and never contact NWS.
Layout:
src/nws_mcp/server.py: MCP tool definitions.src/nws_mcp/protocol.py: authentication, Firestore and cloud-function client.src/nws_mcp/schema.pyandsrc/nws_mcp/data/schema.json: wire-name to friendly-name mappings and NWP field allow-lists.other modules: one per subsystem (publish, import, backup, attachments, print layouts, public witnessing, public-speaker sharing, auto-assignment).
Documentation
docs/tools.md: every tool, its parameters and behaviour.
docs/safety.md: the safety model.
docs/capabilities.md: the capability matrix, including unsupported and UI-only items.
docs/design/: design notes.
License
MIT. Copyright 2026 DezinerDudes.
"New World Scheduler", "NWS" and "NW Publisher" are names of their respective owners and are used here only to describe compatibility.
This server cannot be deployed
Maintenance
Related MCP Connectors
The official Planning Center MCP server for interacting with your ministry's data.
Read-only MCP server for ClassQuill, a tutoring-business-management platform.
Read and write shared BitsWeave context, projects, tasks, and work sessions through MCP.
Read and write Mission Control state via MCP — projects, tasks, subtasks, templates, status updates.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server for Google Drive, Docs, and Sheets — built for Claude Code. Gives Claude Code direct read/write access to Google Sheets (cell-level edits, formatting, structure), Google Docs (insert, replace, append), and Drive (search).31 npm1MIT

srgplus-mcpofficial
AlicenseBqualityBmaintenanceMCP server for SRG+ — lets Claude (and any MCP-aware agent) manage hubs, channels, content, assets, users, and workspaces through the SRG+ API.10328 PyPIMIT- AlicenseNot gradedqualityCmaintenanceA Model Context Protocol server that gives Claude Code (or any MCP client) controlled access to Microsoft 365 through the Microsoft Graph API: mail, calendar, contacts, files, notes, tasks, Teams, SharePoint, and the full tenant-admin surface.27 npm1MIT
- AlicenseNot gradedqualityCmaintenanceEnables database querying and modification through an MCP server where each action is gated by human-granted scopes, per-call confirmations for destructive operations, and revocable access.MIT