Zum Hauptinhalt springen

Connect an MCP client to the Sheet MCP

Purpose

Point an MCP-capable AI client at the Nooxl Sheet MCP endpoint and authenticate it with a personal access token, so the agent can list, read, and change apps and models.

Prerequisites

  • A personal access token (nxlpat_...) with the scope the agent needs.
  • An MCP client that supports a remote Streamable HTTP MCP server with a bearer header.

Endpoint and authentication

Endpointhttps://{nooxlApiHostName}/api/v1/nooxlsheetmcp
TransportStreamable HTTP
AuthenticationAuthorization: Bearer nxlpat_...
Extra headersnone

The API host depends on the installation — for the Nooxl demo it is https://ncs-demo.nooxl.com, giving https://ncs-demo.nooxl.com/api/v1/nooxlsheetmcp.

Client configuration

Generic HTTP MCP client

Any client that speaks Streamable HTTP MCP needs two things:

generic MCP client
Server URL: https://{nooxlApiHostName}/api/v1/nooxlsheetmcp
Auth header: Authorization: Bearer nxlpat_...

Langdock

Langdock - MCP server
Server URL: https://{nooxlApiHostName}/api/v1/nooxlsheetmcp
Auth: API Key, header type "Authorization: Bearer"
Key value: nxlpat_... (your personal access token)

Claude Desktop

Claude Desktop reaches a remote MCP server through the mcp-remote helper (which needs Node.js installed). Add this to claude_desktop_config.json:

claude_desktop_config.json
{
"mcpServers": {
"nooxlsheetmcp": {
"command": "npx",
"args": [
"mcp-remote",
"https://{nooxlApiHostName}/api/v1/nooxlsheetmcp",
"--header",
"Authorization:Bearer ${NOOXL_PAT}"
],
"env": {
"NOOXL_PAT": "nxlpat_..."
}
}
}
}

Cursor / VS Code

Cursor and VS Code use an mcp.json file. The following mirrors the Claude Desktop setup above (same mcp-remote helper and bearer header):

mcp.json
{
"mcpServers": {
"nooxlsheetmcp": {
"command": "npx",
"args": [
"mcp-remote",
"https://{nooxlApiHostName}/api/v1/nooxlsheetmcp",
"--header",
"Authorization:Bearer ${NOOXL_PAT}"
],
"env": {
"NOOXL_PAT": "nxlpat_..."
}
}
}
}

Verify the connection

Ask the agent to run apps_list. It should return the tenants and apps your token can reach. If it does, the connection and the token work.

Troubleshooting

SymptomLikely cause
401 UnauthorizedThe token is wrong, was copied incompletely, or has been revoked or has expired. Create a new token.
insufficient_pat_scopeThe token's scope does not cover the requested action — for example writing data with a read-only token. Create a token with the needed scope.
session_not_found_or_principal_mismatchThe session expired (30 minutes idle) or a different token is being used than the one that opened it. Open a new session.