nws-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| NWS_EMAIL | Yes | The email address of your NWS user. Device verification codes are sent here. | |
| NWS_STATE_DIR | No | Where the local mirror, tokens and pending confirmations are stored. Default: `~/.local/share/nws-mcp`. | ~/.local/share/nws-mcp |
| NWS_PERSON_PIN | No | Reserved; currently unused. | |
| NWS_CONGREGATION_ID | Yes | Your NWS congregation ID (`123-456-789` or nine digits). | |
| NWS_CONGREGATION_PIN | No | The congregation PIN used by the NWP app. Spaces, dashes and underscores are ignored. Required for NWP app tools. | |
| NWS_VENDOR_CONFIG_PATH | Yes | Path to the NWS vendor configuration file (JSON). This file is not distributed with the project. | |
| NWS_CONGREGATION_PASSWORD | Yes | The congregation-sharing password. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| nws_statusA | Return value-free NWS configuration, authentication, and mirror status. |
| nws_authenticateC | Authenticate NWS or initiate the emailed device-verification flow. |
| nws_app_authenticateB | Authenticate the NWP app bridge against the configured NWP app server. |
| nws_app_statusB | Return a value-free summary of the NWP app bridge and pending imports. |
| nws_app_preview_publishB | Preview an NWP publish, then ask whether notifications should be sent. |
| nws_app_commit_publishC | Publish a previewed NWP release and explicitly send or skip notifications. |
| nws_app_cancel_publishA | Cancel one pending NWP publish confirmation without remote changes. |
| nws_app_preview_importC | Preview importing pending NWP app submissions into NWS congregation data. |
| nws_app_commit_importB | Import previewed NWP app submissions and remove them from the app queue. |
| nws_app_cancel_importA | Cancel one pending NWP import confirmation without remote changes. |
| nws_public_witnessing_preview_repeat_templateC | Preview repeating a public witnessing template for one to eight weeks. |
| nws_public_witnessing_commit_repeat_templateC | Commit a previewed public witnessing template repeat. |
| nws_public_witnessing_cancel_repeat_templateC | Cancel a pending public witnessing template repeat without writing. |
| nws_public_witnessing_preview_app_reservation_importA | Preview importing reservations made in the NWP app into NWS data. |
| nws_public_witnessing_commit_app_reservation_importB | Commit a previewed NWP app reservation import if nothing changed since. |
| nws_public_witnessing_cancel_app_reservation_importB | Cancel a pending NWP app reservation import without writing. |
| nws_public_witnessing_preview_location_changeB | Preview creating, updating, deleting, or disabling a public witnessing location. operation is create, update, delete, disable_date, or enable_date. values may set LocationID (an active FieldServiceLocation ID, or -1 for the Kingdom Hall), CartNumber, AvailableFrom, AvailableTo (YYYY-MM-DD), and Notes. Deleting a location or disabling a date also deletes the affected reservations, exactly as NWS Desktop does. |
| nws_public_witnessing_preview_shift_changeA | Preview adding, editing, duplicating, copying, or removing location shifts. operation is create, update, duplicate, delete, delete_all, or copy_from_location. values may set DayOfWeek (0 Sunday to 6 Saturday), StartTime and EndTime (HH:MM, or null), MaxPersons, and KeyPersons (0-7). Removing a shift also deletes all of its reservations. |
| nws_public_witnessing_preview_template_changeA | Preview saving one week as a public witnessing template or deleting one. operation is save_week (name plus a Monday week_start; a template with the same name is replaced) or delete (template_id). |
| nws_public_witnessing_commit_admin_changeB | Commit a previewed public witnessing location, shift, or template change. |
| nws_public_witnessing_cancel_admin_changeB | Cancel a pending public witnessing administration preview without writing. |
| nws_verifyB | Finish NWS authentication with the verification code received by email. |
| nws_syncC | Refresh all or selected NWS entity types into the secure local mirror. |
| nws_entity_typesB | List supported NWS entity types and their locally cached counts. |
| nws_exportC | Export redacted NWS entities to an owner-only JSON or CSV file. |
| nws_backup_createC | Write a read-only, vendor-compatible .NWSchedulerBackup of the shared data. |
| nws_backup_inspectB | Describe a vendor backup's contents and restorable categories by count only. |
| nws_restore_previewA | Preview a destructive backup restore and return a 10-minute confirmation ID. The optional selections match the desktop's partial restore choices and need exactly one matching category: attendance_month (YYYY-MM) for MeetingAttendanceRecords, report_year and/or report_month for PublisherReports, person_ids for Persons, and territory_ids for Territories, TerritoryAddresses or TerritoryAssignmentRecords. |
| nws_restore_commitB | Commit a previewed backup restore if the backup and remote data are unchanged. |
| nws_restore_cancelB | Cancel a pending backup restore preview without writing remote data. |
| nws_capabilitiesB | Describe implemented MCP coverage across NWS Desktop subsystems. |
| nws_print_layoutsB | List desktop print layouts, their support level, and the person's access. |
| nws_print_layoutC | Build the data of a supported desktop print layout, optionally to a file. TerritoryAssignmentRecords (S-13) options: service_years (required list), territory_type, category_id, area_id, use_actual_last_completed_date, name_format. TerritoryCards options: territory_ids, include_notes_1, include_notes_2, include_addresses, address_status, show_address_status, show_address_notes, show_city_suburb, show_postal_code, show_state_province, show_name, show_phone. |
| nws_public_speaker_circuitsB | List public-speaker sharing circuits associated with this congregation. |
| nws_public_speaker_connectC | Connect read-only to one public-speaker sharing circuit. |
| nws_public_speaker_congregationsB | List public congregations in an approved public-speaker circuit. |
| nws_public_speaker_preview_changeB | Preview a public-speaker circuit change and return a 10-minute confirmation ID. Actions: request_join (circuit_type primary or guest), approve_congregation and deny_congregation (congregation_id), leave_circuit (optional remotely_delete_data for the approved primary circuit), and sync_congregations_and_speakers (receive shared congregations, speakers and their outlines into the local NWS data). |
| nws_public_speaker_commit_changeA | Commit one previewed public-speaker change if nothing changed since. |
| nws_public_speaker_cancel_changeB | Cancel a pending public-speaker change preview without remote changes. |
| nws_listC | List redacted cached NWS entities with optional text filtering. |
| nws_getC | Get one redacted cached NWS entity by ID or UUID. |
| nws_preview_changeB | Preview a create, update, or delete and return a 10-minute confirmation ID. |
| nws_describe_entityB | Describe an entity type's friendly field names and observed value types. |
| nws_commit_changeB | Commit one previously previewed NWS change if remote data is unchanged. |
| nws_cancel_changeB | Cancel a pending NWS change preview without writing remote data. |
| nws_list_attachmentsC | List cached announcement, document, and territory-map attachments. |
| nws_download_attachmentC | Download one entity's attachment to an owner-only local file. |
| nws_preview_attachment_uploadC | Preview adding a PDF, JPG, or PNG attachment or territory map. |
| nws_commit_attachment_uploadB | Upload a previewed attachment and record it if remote data is unchanged. |
| nws_preview_attachment_removalB | Preview permanently removing an attachment or territory map. |
| nws_commit_attachment_removalB | Remove a previewed attachment if remote data is unchanged. |
| nws_cancel_attachment_changeB | Cancel a pending attachment upload or removal without remote changes. |
| nws_public_witnessing_locations_utilizationA | Report public-witnessing shift capacity and reservations per location. Matches the desktop Locations Utilization report: the given YYYY-MM month (default: current) and the three previous months, from the local mirror. |
| nws_public_witnessing_publishers_reservationsB | Report public-witnessing reservations per publisher and month. Matches the desktop Publishers Reservations report for the given YYYY-MM month (default: current) and the three previous months. Without person_ids every non-deleted person who has not moved is included. |
| nws_public_witnessing_scheduleB | Show cached public-witnessing locations, shifts, and positions for a date. |
| nws_public_witnessing_candidatesC | List people the desktop offers for one public-witnessing shift position. |
| nws_public_witnessing_preview_assignmentC | Preview assigning (person_id) or clearing (0) one shift position. |
| nws_public_witnessing_commit_assignmentB | Commit one previewed shift assignment if NWS data is unchanged. |
| nws_public_witnessing_cancel_assignmentB | Cancel a pending shift-assignment preview without writing remote data. |
| nws_preview_duty_auto_assignA | Preview the desktop duty auto-assignment and return a confirmation ID. start_date is a duties schedule row (a Monday, or a Saturday when duties are assigned by meeting). duty_types are Duty1P1 ... Duty9P2 (default Duty1P1). recent_filter is exact_match or any_duty; the last two arguments mirror the local desktop settings and default to the desktop defaults. |
| nws_commit_duty_auto_assignB | Write a previewed duty auto-assignment if its input data is unchanged. |
| nws_cancel_duty_auto_assignA | Cancel a pending duty auto-assignment preview without remote changes. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 62 tools
The preview/commit/cancel triplet pattern gives each workflow family a recognizable shape, but several boundaries are unclear: the generic nws_preview_change / nws_commit_change versus the specialized nws_public_witnessing_preview_location_change, preview_shift_change, and preview_template_change, and the app-import pair nws_app_preview_import vs nws_public_witnessing_preview_app_reservation_import. Similarly nws_preview_attachment_upload overlaps conceptually with attaching files through the generic entity change tool, and the commit for location/shift/template changes is only reachable via the oddly broad nws_public_witnessing_commit_admin_change.
A consistent verb_noun style (nws_preview_change, nws_commit_attachment_upload) coexists with a domain-first style (nws_public_witnessing_*, nws_app_*, nws_restore_*) and bare verbs (nws_sync, nws_verify, nws_capabilities), so the prefix ordering is mixed. There is also local asymmetry: previews are preview_location_change / preview_shift_change / preview_template_change but the matching write is commit_admin_change, and attachment cancel is nws_cancel_attachment_change while preview/commit use upload/removal.
62 tools is heavy even for a full desktop application surface, largely because almost every workflow is expanded into three explicit preview/commit/cancel tools. Much of the surface looks consolidatable behind the existing generic change/restore/assignment patterns, making the set hard to survey and easy to misuse.
Coverage is broad and life-cycle-aware: auth, status, sync, generic entity CRUD with preview/commit, attachments, backups, destructive restore, exports, print layouts, reports, public-witnessing scheduling/reservations, public speakers, and duty auto-assignment. Minor gaps remain around specialized writes that only the generic change tool can reach, and some read/report paths lack a corresponding direct write counterpart.