On this page

MCP server

Connect an AI assistant or your own code to your workspace through the Model Context Protocol with a scoped token.

One endpoint, POST /api/mcp on https://backoffice.noxtica.com (production), authenticated with an MCP token (Authorization: Bearer mcp_...) created under Integrations & API, MCP tokens. The token’s scopes decide which tools it can call; call tools/list for the current catalogue.

EnvironmentBase URL
Productionhttps://backoffice.noxtica.com

Credential: McpTokenAuth. See Authentication.

How this page is organisedBar length shows each section’s share of the text. Select a section to jump to it.

MCP Server

1 operation

Operations in MCP server

Send one MCP JSON-RPC request

POST /api/mcp

Sends one JSON-RPC 2.0 request and returns one JSON-RPC 2.0 response. Set Content-Type: application/json. Notifications and batches are not supported: send one request object with a method and, for calls that expect an answer, an id.

The HTTP status is 200 for every JSON-RPC outcome, including errors, except for the transport failures 401, 404, 429 and 500.

Authentication: Bearer token (McpTokenAuth).

Request body

Content type application/json, required.

FieldTypeRequiredDescription
jsonrpcstringYesAllowed values: 2.0.
idstring or integer, nullableNoEchoed in the response. Omit only for requests where you do not need the answer correlated.
methodstringYesOne of initialize, tools/list, tools/call, resources/list, resources/templates/list, resources/read.
paramsobjectNoMethod parameters. tools/call takes {name, arguments}; resources/read takes {uri}; initialize may carry protocolVersion.

Responses

StatusMeaningError codesContent
200A JSON-RPC response: result on success or error on failure (the HTTP status is 200 in both cases). With streamable transport negotiated and Accept: text/event-stream, the same object is sent as one text/event-stream message event.application/json JsonRpcResponse, text/event-stream
401unauthorized — the Authorization header is missing or the token is unknown, revoked or expired. The body is identical for every cause.unauthorizedapplication/json McpHttpError
404not_found — the MCP server is not enabled for this deployment; the body is the same as for a path that does not exist.not_foundapplication/json McpHttpError
429rate_limited — the token exceeded its request limit. Wait Retry-After seconds.rate_limitedapplication/json McpHttpError
500internal_error — an unexpected server error. Retry with backoff.internal_errorapplication/json McpHttpError

Response headers

StatusHeaderTypeDescription
200X-RateLimit-BucketstringThe name of the rate-limit bucket (mcp).
200X-RateLimit-LimitintegerThe request limit of the token’s bucket.
200X-RateLimit-RemainingintegerRequests left in the current window.
200X-RateLimit-ResetintegerUnix time, in seconds, at which the window resets.
429Retry-AfterintegerSeconds until the token may call again.
429X-RateLimit-BucketstringThe name of the rate-limit bucket (mcp).
429X-RateLimit-LimitintegerThe request limit of the token’s bucket.
429X-RateLimit-RemainingintegerRequests left in the current window.
429X-RateLimit-ResetintegerUnix time, in seconds, at which the window resets.

Response fields (200, application/json)

FieldTypeAlways returnedDescription
jsonrpcstringYesAllowed values: 2.0.
idstring or integer, nullableYes
resultanyNoPresent on success. For tools/call: {content: [{type: "text", text: "<JSON>"}], isError: false}. For tools/list: {tools: [...]}. For initialize: {protocolVersion, serverInfo, capabilities}.
errorobject (JsonRpcError)Nocode values: -32700 the body is not valid JSON; -32600 no method; -32601 unknown method; -32602 invalid parameters, or the result exceeds 200 KB; -32603 the tool or resource failed; -32001 the token’s scopes or tool list do not allow the tool (data.requiredScope names the missing scope); -32002 tool not found for this token; -32003 the monthly query allowance is used up; -32004 too many tool calls (data.retryAfterSeconds, data.limit, data.windowSeconds); -32005 MCP is not included in the plan; -32006 resource not found.
error.codeintegerYesAllowed values: -32700, -32600, -32601, -32602, -32603, -32001, -32002, -32003, -32004, -32005, -32006.
error.messagestringYes
error.dataobjectNoOptional structured detail, for example requiredScope or retryAfterSeconds.
error.data.requiredScopestringNo
error.data.retryAfterSecondsintegerNo
error.data.limitintegerNo
error.data.windowSecondsintegerNo
error.data.codestringNo

Response example (200)

{
  "jsonrpc": "2.0",
  "id": null,
  "error": {
    "code": -32700,
    "message": "Parse error"
  }
}

Example request

curl

curl -X POST "https://backoffice.noxtica.com/api/mcp" \
  -H "Authorization: Bearer $NOXTICA_MCP_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "list_alerts",
    "arguments": {
      "limit": 25
    }
  }
}'

Node.js (global fetch, Node 18 or later)

const response = await fetch('https://backoffice.noxtica.com/api/mcp', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.NOXTICA_MCP_TOKEN}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    id: 2,
    method: 'tools/call',
    params: {
      name: 'list_alerts',
      arguments: {
        limit: 25,
      },
    },
  }),
});
console.log(response.status, await response.text());

Python (standard library)

import json
import os
import urllib.request

request = urllib.request.Request(
    "https://backoffice.noxtica.com/api/mcp",
    data=json.dumps({
        "jsonrpc": "2.0",
        "id": 2,
        "method": "tools/call",
        "params": {
            "name": "list_alerts",
            "arguments": {
                "limit": 25,
            },
        },
    }).encode(),
    headers={
        "Authorization": f"Bearer {os.environ['NOXTICA_MCP_TOKEN']}",
        "Content-Type": "application/json",
    },
    method="POST",
)
with urllib.request.urlopen(request) as response:
    print(response.status, response.read().decode())

This page is generated from the Noxtica OpenAPI specification release v0.4.0: mcp.yaml version 0.1.0-2026-10-27 (SHA-256 1a4875efa736). Do not edit it by hand.