Jan MCP Agents

A team of agents.In one tool.

Ready agents, each with its own instructions, model and tool permissions. Hand the task to a specific agent or let the router choose, and follow the run until the answer.

3 concurrent runs

Unattended runs: the agent uses only what its permissions allow, and reports what was refused.
  • 12 MCP tools
  • Smart task router
  • 3 concurrent runs
  • Usage and cost reports

Pick the agent.Or let the router choose.

  • Agent list and their instructions
  • Run, follow and cancel
  • The same task on more than one agent

Unattended runs: the agent uses only what its permissions allow, and reports what was refused.

Hand over the task,get the answer.

Every run has an id you can follow, and it also appears in the runs table in the Jan panel.

The right agent

suggest_agent picks the best agent for the task, or you choose by name.

Run and follow

run_agent, then get_run and continue_run to follow up in the same conversation, and cancel_run to stop.

Compare and usage

ask_team shows answers from 2 to 3 agents side by side, and usage_report covers tokens and cost.

How it works.

  1. Connect an MCP client

    Use the service URL and your key.

  2. Hand over the task

    “Summarise this report and suggest three next steps”

  3. Follow and receive

    Wait for the answer or follow the run by its id.

Connect

Transport
Streamable HTTP
URL
https://jan-mcp.marsaplatform.com/mcp
Authorization
Bearer YOUR_API_KEY

Every request needs Authorization: Bearer YOUR_API_KEY.

URLhttps://jan-mcp.marsaplatform.com/mcp
Claude Code (CLI)
Terminal
claude mcp add --transport http jan https://jan-mcp.marsaplatform.com/mcp \
  --header "Authorization: Bearer YOUR_API_KEY"
Cursor ~/.cursor/mcp.json
mcp.json
{
  "mcpServers": {
    "jan": {
      "url": "https://jan-mcp.marsaplatform.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}
VS Code .vscode/mcp.json
mcp.json
{
  "servers": {
    "jan": {
      "type": "http",
      "url": "https://jan-mcp.marsaplatform.com/mcp",
      "headers": {
        "Authorization": "Bearer ${input:jan-key}"
      }
    }
  },
  "inputs": [
    {
      "type": "promptString",
      "id": "jan-key",
      "description": "Jan MCP Agents API key",
      "password": true
    }
  ]
}

VS Code asks for the key once and stores it securely.

Claude Desktop claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "jan": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://jan-mcp.marsaplatform.com/mcp",
        "--header",
        "Authorization:${AUTH_HEADER}"
      ],
      "env": {
        "AUTH_HEADER": "Bearer YOUR_API_KEY"
      }
    }
  }
}

Claude Desktop reaches remote servers through mcp-remote, which needs Node.js. Restart the app after editing.

Quick test with curl
Terminal
curl -s -X POST https://jan-mcp.marsaplatform.com/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"test","version":"1"}}}'

With a valid key you get the initialize result. Without a key you get 401.

Tools

The original page states: “12 MCP tools”. The full list is generated from tools/list once a read key is configured for this site; until then any MCP client shows it after you connect.

FAQ

Does the agent do anything without permission?

No. Unattended runs stay within the agent's permissions, and anything refused shows in the result.

How many tasks at once?

Up to 3 concurrent runs; capacity shows in health_check.

Where do I see the cost?

usage_report shows tokens and cost by day, agent and model.

401 Unauthorized

The real response for a request without a key:

HTTP/2 401 · application/json
WWW-Authenticate: Bearer realm="jan-mcp-agents"

{"error":{"code":"UNAUTHORIZED","message":"missing or invalid API key"}}

Send the header exactly as Authorization: Bearer YOUR_API_KEY.