KanutusDocs
kanutus.com Sign in / Create accountSign in

Cursor, VS Code and other clients

Any MCP client that supports Streamable HTTP with OAuth 2.1 (PKCE and dynamic client registration) can use the remote server. The client discovers everything from the URL: on the first request the server answers 401 with a WWW-Authenticate header that points to /.well-known/oauth-protected-resource, which names the Kanutus authorization server.

Cursor

In Cursor Settings → MCP → Add new MCP server, or in ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project):

mcp.json
{
  "mcpServers": {
    "kanutus": { "url": "https://mcp.kanutus.com/mcp" }
  }
}

Cursor shows Needs login next to the server: click it to sign in to Kanutus.

VS Code (GitHub Copilot agent mode)

In .vscode/mcp.json, or with the MCP: Add Server command:

.vscode/mcp.json
{
  "servers": {
    "kanutus": { "type": "http", "url": "https://mcp.kanutus.com/mcp" }
  }
}

Start the server from the file or the MCP list and accept the sign-in.

Claude Code

terminal
claude mcp add --transport http kanutus https://mcp.kanutus.com/mcp

Then /mcp → kanutus → Authenticate. See Connect Claude.

Clients that only run local servers

Until the local package is published Soon, you can bridge the remote server with the community package mcp-remote, which handles the sign-in in your browser:

config
{
  "mcpServers": {
    "kanutus": { "command": "npx", "args": ["-y", "mcp-remote", "https://mcp.kanutus.com/mcp"] }
  }
}

Your own agent

If you are writing your own agent, in whatever framework you use (LangGraph, the OpenAI Agents SDK or your own code), you have two options:

  • Use the MCP server with an OAuth token, like the clients above; or
  • Call the REST API directly with an API key. It is simpler for a backend and gives you webhooks.

The official MCP SDK in TypeScript connects like this (the SDK runs the OAuth flow through an authProvider):

agent.ts
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";

const transport = new StreamableHTTPClientTransport(new URL("https://mcp.kanutus.com/mcp"), { authProvider });
const client = new Client({ name: "my-agent", version: "1.0.0" });
await client.connect(transport);
console.log((await client.listTools()).tools.map((t) => t.name));
const balance = await client.callTool({ name: "get_balance", arguments: {} });