Mandraki Mandraki
Get started

Connecting Other MCP Clients

How to connect Cursor, Windsurf, or any MCP-compatible tool to your Mandraki workspace using the standard HTTP transport.

Overview

Any tool that supports the Model Context Protocol can connect to Mandraki. The integration details are the same regardless of the client:

SettingValue
TransportHTTP (Streamable HTTP)
Endpointhttps://app.mandraki.cloud/api/v1/mcp
MethodPOST
Auth headerAuthorization: Bearer mak_xxxxxxxx
SSE endpoint (optional)https://app.mandraki.cloud/api/v1/mcp/sse

Before connecting any client, you need an API token. Follow the token creation steps in the Claude Code guide — the process is the same for all clients.

Configuration File

Most MCP clients read a .mcp.json file in the project root. The format is standardised:

{
  "mcpServers": {
    "mandraki": {
      "type": "http",
      "url": "https://app.mandraki.cloud/api/v1/mcp",
      "headers": {
        "Authorization": "Bearer ${MANDRAKI_MCP_TOKEN}"
      }
    }
  }
}

Set the MANDRAKI_MCP_TOKEN environment variable to your mak_ token, or replace the ${...} reference with the token directly.

Cursor

Cursor supports MCP servers natively. Create a .mcp.json file in your project root with the configuration above, then restart Cursor. The Mandraki tools will appear in Cursor’s AI assistant.

Alternatively, add the server in Cursor’s settings UI under AI > MCP Servers.

Windsurf

Windsurf reads MCP configuration from .mcp.json. Place the file in your project root and restart Windsurf. The Mandraki tools will be available to the AI assistant.

Custom MCP Clients

If you are building your own MCP client or using a tool not listed here, the integration is straightforward:

1. Initialize

Send a POST to /api/v1/mcp with the initialize method:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "initialize"
}

Response:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "serverInfo": {
      "name": "mandraki",
      "version": "1.0.0",
      "protocolVersion": "2024-11-05"
    },
    "capabilities": {
      "tools": { "listChanged": false },
      "resources": { "subscribe": false, "listChanged": false }
    },
    "protocolVersion": "2024-11-05"
  }
}

2. Discover Tools

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/list",
  "params": {}
}

The response contains all tools your token’s scopes allow. See Tool Discovery for details.

3. Call a Tool

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "tasks.list-tasks",
    "arguments": {}
  }
}

4. List Resources

{
  "jsonrpc": "2.0",
  "id": 4,
  "method": "resources/list"
}

SSE Transport

For clients that support Server-Sent Events, connect to GET /api/v1/mcp/sse with the same Authorization header. The server sends:

  1. An initial message event with the initialize result
  2. Keepalive comments (:keepalive) every 30 seconds

The SSE connection is read-only. Tool calls are still made via POST /api/v1/mcp.

Self-Hosted Instances

If you run a self-hosted Mandraki instance, replace app.mandraki.cloud with your instance hostname in all URLs. The MCP endpoints are available on every Mandraki API server at the same paths.

Security Notes

  • Tokens are org-scoped. One token per workspace — if you work across multiple Mandraki organisations, create separate tokens for each.
  • All tool calls go through Mandraki’s policy engine and are recorded in the audit log.
  • Never share tokens across team members. Each developer should create their own service account and token.