MCP Server (Preview)
Overview, Tools, and Client Integration Guide
Purpose
This documentation provides users with the necessary information to understand and consume the MCP server, including:
- Overview & capabilities
- Environments & endpoints
- Authentication and token requirements
- IDE / LLM integration examples
- Usage verification and expected behaviour
- Troubleshooting
- Additional references
1. Overview
The MCP provides an Apollo-compatible MCP server that enables LLM clients, developers, and automation systems to interact with N-able's GraphQL schema more effectively.
The MCP server is exposed under the /mcp/preview endpoint. (see Environments & Endpoints for URLs).
Capabilities
The MCP server exposes the following tools:
| Tool | Description |
|---|---|
| introspect | Allows for the N-query schema to be introspected. |
| search | Allows searching for schema fields, types, directives, etc. |
| validate | Validates GraphQL operations against the schema. |
| execute | Executes GraphQL operations against the schema. |
During the preview we will be adding and modifying additional tools based on user feedback. The list of tools currently available can be requested from the MCP server with a LLM prompt such as:
"What tools does the MCP server provide?"
The MCP server will provide a list of tools and their descriptions. The list will include the default tools and additional tools such as (subject to change):
| Tool | Description |
|---|---|
| getAssetInventory | Retrieves a list of all devices under management. Useful for inventory checks. |
| getSingleAssetDetailsAndMetrics | Fetches detailed telemetry and metrics for a single asset (requires asset ID). |
| CreateStaticTag | Creates a new static tag within an organization. |
| AssignTagsToAssets | Assigns existing tags to one or more assets. |
2. Environments & Endpoints
The MCP server is deployed to multiple environments (during preview both Testing and Production will use the same endpoint):
| Environment | URL |
|---|---|
| Preview | https://api.n-able.com/mcp/preview |
| Production | https://api.n-able.com/mcp/preview |
3. Authentication & Authorization
To communicate with the MCP server, consumers must provide a valid authorisation token via the HTTP header:
Authorization: Bearer <API_TOKEN>
Permissions
API tokens inherit permissions from the SSO user who created them, meaning authorization depends on the creating user’s permissions.
If a token does not have adequate permissions:
- Queries may fail
- Certain fields may not resolve
- Result sets may be filtered or partially returned
4. IDE & LLM Integrations (Non-Exhaustive Examples)
These are examples, not the full set of supported integrations.
Any MCP-compatible IDE/LLM client may be used.
Example: GitHub Copilot - VS Code
Update settings.json:
{
"servers": {
"n-query": {
"url": "https://api.n-able.com/mcp/preview",
"type": "http",
"headers": {
"Authorization": "Bearer <CTS_TOKEN>"
}
}
},
"inputs": []
}After restart, an Agent can invoke MCP tooling.
Example: Gemini CLI / Workspace
Example:
{
"mcpServers": {
"nquery": {
"httpUrl": "https://api.n-able.com/mcp/preview",
"headers": {
"Authorization": "Bearer <CTS_TOKEN>"
}
}
}
}Example: Claude Code
Example:
{
"mcpServers": {
"nquery": {
"type": "http",
"url": "https://api.n-able.com/mcp/preview",
"headers": {
"Authorization": "Bearer <CTS_TOKEN>"
}
}
}
}Example: GitHub Copilot - IntelliJ
Open GitHub Copilot Chat
Switch to Agent mode
Select Configure Tools
Add MCP server configuration:
{
"servers": {
"n-query": {
"url": "https://api.n-able.com/mcp/preview",
"requestInit": {
"headers": {
"Authorization": "Bearer <CTS_TOKEN>"
}
}
}
}
}Restart IntelliJ and the MCP tools should be visible.
5. Verification & Example Query (Expected Behavior)
Once MCP is configured properly:
✔️ There should be no console errors
- No connection failures
- No token-related errors
- MCP tools visible to the Agent
✔ MCP n-query server visible to the agent
✔ Requests authenticated using APItoken
✔ Agent can resolve schema and execute queries
After verification, you can test functionality by asking:
"Give me the AssetCount"
The MCP agent should then:
- Use the execute tool
- Run a GraphQL query similar to:
query GetAssetCount {
assetSearch(first: 1) {
totalCount
}
}Expected raw MCP output:
{
"data": {
"assetSearch": {
"totalCount": "ASSETS_COUNT_NUMBER"
}
}
}Expected natural language response from the agent:
"You have “XX” assets in total."
This proves that:
- Auth is correct
- Default tools are available
- Schema is reachable
6. Error Handling & Troubleshooting
| Error | Likely Cause | Resolution |
|---|---|---|
| 401 Unauthorized | Invalid or missing token | Provide valid API token |
| 404 Not Found | Wrong URL | Ensure /mcp/preview endpoint is included |
| Unknown MCP Tools | Misconfigured client | Reconfigure and restart IDE |
7. Additional References
Apollo MCP Server - https://www.apollographql.com/docs/apollo-mcp-server
CAT-MIP MCP Standard - [https://cat-mip.org/]
CAT-MIP Releases - [https://github.com/cat-mip/cat-mip/releases]
Updated 1 day ago