jeCheckDevelopers
Get an API key
Developers/AI & MCP

MCP server

jeCheck runs a remote Model Context Protocol server. Connect it to an AI assistant and the assistant can read and act on your jeCheck data — audits, tasks, routines, HACCP, schedules, the knowledge base, analytics — with exactly your permissions.

Server URL https://app.jecheck.io/mcp
Transport Streamable HTTP (stateless, JSON responses)
Auth OAuth 2.1 (automatic sign-in) or Authorization: Bearer <token>
Protocol versions 2025-06-18 (default), 2025-03-26, 2025-11-25, 2024-11-05

Note MCP is part of the Enterprise plan. Each user needs the permission Personal API tokens & AI apps (administrators have it).

Connect your assistant

claude.ai and Claude Desktop

  1. Open Settings → Connectors → Add custom connector.
  2. Name it jeCheck, paste https://app.jecheck.io/mcp and click Add.
  3. Click Connect, sign in to jeCheck and approve access. Untick Allow changes if the assistant should only read.

ChatGPT

In ChatGPT open Settings → Apps & Connectors, enable developer mode under Advanced if your workspace requires it, then Create a connector with the URL https://app.jecheck.io/mcp and OAuth authentication. Sign in to jeCheck when prompted.

Claude Code

claude mcp add --transport http jecheck https://app.jecheck.io/mcp

Run /mcp inside Claude Code and choose Authenticate. To use a personal token instead:

claude mcp add --transport http jecheck https://app.jecheck.io/mcp \
  --header "Authorization: Bearer $JECHECK_TOKEN"

Cursor

~/.cursor/mcp.json (or .cursor/mcp.json in a project):

{
  "mcpServers": {
    "jecheck": {
      "url": "https://app.jecheck.io/mcp",
      "headers": { "Authorization": "Bearer jck_pat_xxxxxxxx" }
    }
  }
}

VS Code (GitHub Copilot agent mode)

.vscode/mcp.json:

{
  "servers": {
    "jecheck": {
      "type": "http",
      "url": "https://app.jecheck.io/mcp",
      "headers": { "Authorization": "Bearer ${input:jecheck-token}" }
    }
  },
  "inputs": [
    { "id": "jecheck-token", "type": "promptString", "description": "jeCheck personal token", "password": true }
  ]
}

Windsurf and other clients

Any client that supports remote MCP over HTTP works: use the URL above and either OAuth or the Authorization header with a personal token from API & MCP → My tokens. Clients that only support local (stdio) servers can use a bridge such as npx mcp-remote https://app.jecheck.io/mcp.

Your own agent

OpenAI Responses API:

from openai import OpenAI

client = OpenAI()
resp = client.responses.create(
    model="gpt-5",
    tools=[{
        "type": "mcp",
        "server_label": "jecheck",
        "server_url": "https://app.jecheck.io/mcp",
        "headers": {"Authorization": "Bearer jck_live_xxxxxxxx"},
        "require_approval": "never",
    }],
    input="Which locations had the lowest audit scores this week?",
)
print(resp.output_text)

Any MCP SDK (TypeScript, Python, C#, Java…) can connect with the Streamable HTTP client transport.

What the assistant gets

Tools

Every endpoint of the API reference is a tool — its name is shown on the endpoint card (e.g. tasks_list, haccp_deviations_get, audits_get). The tool list is personal: a user sees only tools allowed by their permissions, the company plan and the token scope. Tools are annotated: read-only tools have readOnlyHint, deleting tools destructiveHint, so clients can ask for confirmation.

Narrow the tool set with query parameters on the server URL — useful for clients with a tool limit:

URL Effect
https://app.jecheck.io/mcp?toolsets=tasks,audits,analytics Only these sections (section keys from the reference URLs)
https://app.jecheck.io/mcp?readonly=1 Only read-only tools

Resources

URI Content
jecheck://me, jecheck://company Who you are connected as, company and plan
jecheck://tasks/{uuid}, jecheck://audits/{id}, jecheck://checklists/{id} Records as JSON
jecheck://instructions/{uuid} Knowledge-base documents as Markdown
jecheck://help/{section}/{slug} jeCheck help-center articles

Prompts

Ready-made scenarios the user can pick in the client: Weekly operations review, Location deep dive, Overdue tasks digest, Audit follow-up, Draft a checklist, HACCP status today.

Example questions

  • "Show the five worst locations by audit score this month and the most frequent violations there."
  • "Which corrective tasks are overdue at Dostyk Plaza? Group them by owner."
  • "Create a task for Aigerim to replace the fridge seal at Abay Ave by Friday."
  • "Are any HACCP temperature logs missing today?"
  • "Who is on shift right now at the central kitchen?"
  • "Summarise the new hygiene instruction and list who hasn't acknowledged it."

Safety

  • The assistant acts as you — it can never see or change more than you can in jeCheck.
  • Changes made through MCP are recorded in history like any other change by you.
  • Approve write access only for assistants you trust; you can connect read-only.
  • Disconnect an app at any time in API & MCP → AI apps; access stops immediately.

Protocol details

  • POST https://app.jecheck.io/mcp with JSON-RPC 2.0 messages (single or batch); notifications get 202 Accepted. GET returns 405 (no server-initiated stream). No session id is needed.
  • Supported methods: initialize, ping, tools/list, tools/call, resources/list, resources/templates/list, resources/read, prompts/list, prompts/get, completion/complete, logging/setLevel.
  • Tool results contain both a text block and structuredContent with the same JSON as the REST API ({"data": …, "meta": …}); failures set isError: true.
  • Unauthenticated requests get 401 with WWW-Authenticate: Bearer resource_metadata="…" pointing to the OAuth metadata.
curl -X POST https://app.jecheck.io/mcp \
  -H "Authorization: Bearer $JECHECK_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"tasks_list","arguments":{"overdue":true}}}'