N-central MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_PORT | No | Port number for HTTP mode (e.g., '3100'). Omit to use stdio. | |
| MCP_API_KEY | No | Bearer token for HTTP mode. Required unless MCP_ALLOW_UNAUTHENTICATED=1. | |
| NC_JWT_TOKEN | No | User-API JWT from the N-central UI. Required in single-tenant mode. | |
| NC_SERVER_URL | No | Your N-central URL, e.g. https://ncentral.example.com. Required in single-tenant mode. | |
| NC_WRITE_MODE | No | One of 'read-only', 'write', or 'full'. | write |
| MCP_CORS_ORIGIN | No | Comma-separated allowed origins for CORS. | |
| NC_MULTI_TENANT | No | Set to '1' to enable multi-tenant mode (requires HTTP mode). | |
| MCP_BIND_ADDRESS | No | Interface to bind in HTTP mode. | 127.0.0.1 |
| NC_FQDN_ALLOWLIST | No | Comma-separated host suffixes for SSRF guard in multi-tenant mode. | |
| NC_RESOURCE_CACHE_TTL_MS | No | Cache TTL in milliseconds for resources. Default 60000. | |
| MCP_ALLOW_UNAUTHENTICATED | No | Set to '1' to allow HTTP mode without API key (not recommended). |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_devicesA | Retrieve the list of all devices from N-central for the logged-in user. Returns one page by default — set |
| get_deviceA | Retrieve a specific device by its ID. Note: lastLoggedInUser and stillLoggedIn fields may be null (known issue) — use list_devices to get these values instead. |
| get_device_statusA | Retrieve the status of service monitoring tasks for a given device. |
| get_device_assetsA | Retrieve asset information for a device by ID. Note: Probes do not have assets and will return 404. |
| get_device_lifecycleA | Retrieve asset lifecycle (warranty) information for a device by ID. |
| list_devices_by_org_unitA | Retrieve the list of devices belonging to a specific organization unit. Returns one page by default — set |
| get_appliance_taskA | Retrieve appliance-task information by task ID. |
| create_deviceA | Add a new device to N-central. Required body fields: customerId, networkAddress, longName, supportedOs, deviceClass. Optional: description, licenseMode, macAddress, username, password. |
| update_device_lifecycleA | Replace the asset lifecycle/warranty information for a device (PUT — all required fields must be provided). |
| patch_device_lifecycleA | Partially update asset lifecycle/warranty information for a device (PATCH — only provided fields are modified). |
| list_org_unitsA | Retrieve a list of all organization units. Returns one page by default — set |
| get_org_unitB | Retrieve a specific organization unit by ID. |
| get_org_unit_limitsA | Retrieve licensing/usage limits for an organization unit. Useful for capacity planning. |
| update_org_unit_limitsA | Update licensing/usage limits for an organization unit (PATCH — only provided fields modified). |
| list_org_unit_childrenA | Retrieve a list of all child organization units for a given org unit. |
| list_service_orgsA | Retrieve a list of all service organizations. Returns one page by default — set |
| get_service_orgA | Retrieve a specific service organization by ID. |
| list_customersA | Retrieve a list of customers. If soId is provided, returns only customers under that service organization; otherwise returns all customers. Returns one page by default — set |
| get_customerA | Retrieve a specific customer by ID. |
| list_sitesA | Retrieve a list of sites. If customerId is provided, returns only sites under that customer; otherwise returns all sites. Returns one page by default — set |
| get_siteA | Retrieve a specific site by ID. |
| create_service_orgB | Create a new service organization. Required: contactFirstName, contactLastName, soName. |
| create_customerB | Create a new customer under a service organization. Required: contactFirstName, contactLastName, customerName. |
| create_siteB | Create a new site under a customer (PREVIEW endpoint — schema may change between N-central versions). Required: contactFirstName, contactLastName, siteName. |
| list_scheduled_tasksA | List all scheduled tasks across the N-central environment. Returns one page by default — set |
| get_scheduled_taskA | Retrieve general information for a given scheduled task by ID. Returns parent ID, name, type, customer ID, device IDs, and enabled status. |
| get_scheduled_task_statusA | Retrieve status for a given scheduled task. Returns aggregated status by default; set detailed=true to get per-device status breakdown. WARNING: detailed=true does NOT accept DEVICE-level task IDs — only SYSTEM and CUSTOMER level. Use the parent task ID instead. Task hierarchy levels can be navigated via |
| list_device_tasksA | Retrieve scheduled tasks for a specific device. Returns task ID, task name, and status. Returns one page by default — set |
| list_device_custom_propertiesA | Retrieve all custom properties for a specific device. Use |
| get_device_custom_propertyA | Retrieve a specific custom property for a device. |
| list_org_custom_propertiesA | Retrieve the list of custom properties for an organization unit. Returns one page by default — set |
| get_org_unit_propertyB | Retrieve a specific custom property for an organization unit. |
| get_org_custom_property_defaultB | Retrieve the default value for an organization unit custom property. |
| get_device_default_custom_propertyA | Retrieve the default device custom property information by organization unit ID and property ID. |
| update_device_custom_propertyA | Update a custom property value on a specific device. The N-central PUT endpoint requires propertyName and propertyType — pass the existing values (use get_device_custom_property if unsure). propertyType must match the property definition (HTML_LINK, TEXT, DATE, ENUMERATED, or PASSWORD). |
| update_org_unit_custom_propertyB | Update a custom property value on an organization unit (SO, customer, or site). propertyType must match the property definition. |
| update_org_custom_property_defaultA | Update the default value of an org-unit custom property and optionally propagate the change down the org hierarchy. propagationType controls which levels receive the update. |
| list_all_usersA | Retrieve a global list of all users in N-central (not scoped by org unit). Returns one page by default — set |
| get_current_userA | Retrieve details for the currently authenticated user. Useful for "who am I" introspection. |
| list_usersA | Retrieve the list of users for a specific organization unit. Returns one page by default — set |
| list_user_rolesA | Retrieve a list of user roles for a given organization unit. Returns one page by default — set |
| get_user_roleA | Retrieve a specific user role for a given organization unit and user role ID. |
| list_access_groupsA | Retrieve access groups for a specific organization unit. Returns one page by default — set |
| get_access_groupA | Retrieve detailed information for a specific access group by ID. |
| create_user_roleB | Create a new user role for an organization unit (PREVIEW endpoint). Required: roleName, description, permissionIds. Optional: userIds to assign the role to. |
| create_access_groupC | Create a new organization-unit-type access group. Required: groupName, groupDescription. Optional: orgUnitIds, userIds, autoIncludeNewOrgUnits. |
| create_device_access_groupB | Create a new device-type access group. Required: groupName, groupDescription. Optional: deviceIds, userIds. |
| list_device_notesA | Retrieve all notes attached to a specific device. |
| add_device_noteA | Add a note to a specific device. Required: text. The N-central API attaches the note to the authenticated user. |
| add_notes_bulkB | Add the same note to a list of devices in one call. Required: deviceIDs (numeric array), text. |
| update_device_noteA | Update an existing note on a device by note ID. |
| get_maintenance_windowsB | Retrieve all maintenance windows for a specific device. |
| create_maintenance_windowsA | Add a set of patch maintenance windows to a list of devices. Body shape: { deviceIDs: number[], maintenanceWindows: [...] }. See N-central API docs for MaintenanceWindowRequest field details. Note: partial failures are surfaced as per-device statuses in the response body — inspect carefully. |
| update_maintenance_windowsA | Modify existing device patch maintenance windows by their ScheduleId (included in each window object). |
| get_registration_tokenA | Retrieve the registration token for a site, organization unit, or customer. |
| get_device_activation_keyB | Generate an activation key for a device by device ID. |
| get_software_installersB | Retrieve software installer download URLs for a specific customer. Supports filtering by software type and installer type. |
| generate_software_download_linkA | Generate a software download link for a customer. Provide the softwareId obtained from get_software_installers. |
| get_psa_customer_mappingA | Retrieve PSA (Professional Services Automation) customer mapping for a given customer ID. |
| validate_psa_credentialA | Validate Standard PSA credentials for a given PSA type. Transmits credentials in the request body — use with care over untrusted transports. WARNING: per N-central documentation, this endpoint currently works only with TigerPaw 3.0, not other PSA integrations — calls for other PSAs will fail. |
| list_custom_psa_ticketsA | List Custom PSA tickets. Custom PSA only — managed PSA services are not supported by this endpoint. |
| create_custom_psa_ticketA | Create a new Custom PSA ticket. Custom PSA only — operations for managed PSA services are not supported. |
| list_psa_customer_mappingsA | List all Standard PSA mappings for a customer. |
| update_psa_customer_mappingsC | Update Standard PSA mappings for a customer. |
| list_psa_companiesB | List Standard PSA companies associated with a customer. |
| list_psa_company_contactsB | List PSA company contacts for a customer. |
| list_psa_company_sitesA | List PSA company sites for a customer. |
| get_custom_psa_ticket_detailB | Retrieve detailed information for a specific Custom PSA ticket. Uses POST because the endpoint requires PSA credentials in the body. |
| get_server_infoA | Return N-central server information. Use level="health" for uptime/start time, level="extra" for system version details, or omit level (default) for API-service version info. |
| get_server_timeA | Retrieve the N-central server's current time. Useful for detecting clock drift between client and server. |
| logoutA | Log out the current N-central API session, invalidating the access and refresh tokens. The next tool call will trigger a fresh JWT exchange. |
| get_server_info_authenticatedB | Retrieve extra server version information using supplied credentials (for third-party system versions). |
| list_device_filtersA | Retrieve the list of device filters. Returns one page by default — set |
| get_reportA | Retrieve an N-central report by its report ID. |
| report_devices_bulkA | Fan out a per-device API call across all devices in an org unit. |
| list_active_issuesA | List active issues for an organization unit. Returns CSV or JSON. KNOWN N-CENTRAL BUG: |
| list_job_statusesA | List job statuses for an organization unit. Returns CSV or JSON. |
| report_all_users_by_soA | Generate a complete deduplicated user report for all customers under a service org. Fetches users from the SO itself and each customer concurrently, then deduplicates by userId. Returns CSV or JSON. |
| report_devices_by_soA | Generate a full device report for all devices under a specific service org. Fetches all devices and filters by soId field. Returns CSV or JSON. |
| report_customer_site_summaryA | Generate a summary report: all customers with their sites, device counts. Correlates data across customers, sites, and devices into one table. Returns CSV or JSON. |
| report_org_hierarchyA | Generate a flat CSV/JSON of the full Service Org → Customer → Site hierarchy with IDs, names, contacts, and addresses. Returns CSV or JSON. |
| generate_patch_comparison_reportA | Submit a request to generate a patch comparison report. Required: startDate. Optional filters: installStatuses[], patchApprovals[], patchCategories[]. Returns a report ID (fetch via get_report). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| full-customer-report | Comprehensive customer/site report with org custom properties. Optional customerId to scope to a single customer. |
| device-health-audit | Audit device health — active issues, monitoring status. Optional orgUnitId to scope. |
| agent-deployment-status | Check agent deployment coverage — find sites with missing or low device counts |
| custom-property-audit | Audit custom property values across all customers for consistency |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| org-tree | Full org hierarchy: Service Orgs → Customers → Sites with IDs and names. |
| status | Server health and version info. |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/theonlytruebigmac/n-central-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server