Sobes Docs

API, MCP and Agent Skill

Connect Codex, Claude Code or Cursor to your Sobes application tracker, meetings, notes and contexts

With MCP and the REST API, an AI agent such as Codex, Claude Code or Cursor can manage your application tracker, read your saved meetings and contexts, and add to your notes. For example: "move the Ozon card to Finals", "show my funnel for the last month", "review my answers from the last interview", "save the review to my notes". An active subscription is required.

1. Create a token

On sobes.tech, open Account → Integrations → API & MCP and click Create token. Set a name, permissions and an expiry; the default is 90 days.

PermissionWhat it gives
Read trackerThe board, cards, archive, statistics and reminders. This includes the titles, scores and verdict of meetings attached to cards.
Edit trackerCreating, editing, moving, archiving and deleting cards and columns, attaching meetings to cards. Includes reading the tracker.
Read meetings, summaries and transcriptsThe list of meetings, their summaries and the full transcript with the chat.
Read notesThe list of notes and folders and the text of any note, test projects included.
Create and edit notesCreating and editing regular notes. Includes reading notes.
Read contextsThe list of contexts, all their fields and which one is active.
  • The token is shown only once: copy it right away.
  • Create a separate token for each app. That way you can revoke any of them without touching the others, and revocation takes effect immediately.
  • The agent sees only the tools the token has permissions for.
  • Only the tracker and meeting permissions are checked by default. An issued token's permissions can't be changed: to give access to notes or contexts, create a new token.
  • If your subscription ends, tokens stop working and start working again after renewal.

2. Connect MCP

Pass the token to the client's process in the SOBES_API_TOKEN environment variable. Don't put the token itself in the config file. Then add the configuration and restart the client. The same configurations are shown in the dashboard under Integrations → API & MCP.

Codex: ~/.codex/config.toml

[mcp_servers.sobes]
url = "https://backend.sobes.tech/mcp"
bearer_token_env_var = "SOBES_API_TOKEN"

Claude Code: .mcp.json in the project root

{
  "mcpServers": {
    "sobes": {
      "type": "http",
      "url": "https://backend.sobes.tech/mcp",
      "headers": { "Authorization": "Bearer ${SOBES_API_TOKEN}" }
    }
  }
}

Cursor: ~/.cursor/mcp.json

{
  "mcpServers": {
    "sobes": {
      "url": "https://backend.sobes.tech/mcp",
      "headers": { "Authorization": "Bearer ${env:SOBES_API_TOKEN}" }
    }
  }
}

3. Install the skill

The skill explains to the agent how to work with the Sobes tracker and meetings properly: in what order to call tools, how to read long transcripts and how to avoid creating duplicates. One file works for all three clients. Download SKILL.md, save it at the path below and restart the client.

ClientWhere to save it
Codex~/.agents/skills/sobes-tech/SKILL.md
Claude Code~/.claude/skills/sobes-tech/SKILL.md
Cursor~/.cursor/skills/sobes-tech/SKILL.md

What the agent can do

In the tracker, the agent can do everything you do by hand: read the board, cards, their history, archive and statistics, export statistics to PDF, create and edit cards and columns, import cards in bulk, move cards between stages, attach meetings and set up reminders.

Meetings are read only: the list, summaries and the transcript of all subchats, including messages from before a context reset. The agent can't create or delete meetings or start summary generation. Images, video, model reasoning and tool calls aren't available through the API.

Contexts are read only too. The agent can create and edit notes, but test projects are read only: only "Use in RAG" and the folder can be changed on them.

With permission to edit notes, the agent affects Copilot's answers: notes it creates go into RAG by default, and Copilot will rely on them in meetings. Give this permission only to an agent whose content you trust.

To avoid overwriting an edit made in the app, the agent can pass the version of the note it read: if the note changed in the meantime, its edit is rejected.

Reading changes nothing: an empty board isn't created on its own and missing summaries aren't generated. To set up a board with the default stages and cards from past meetings with vacancies, the agent has a separate tracker_initialize command.

Deleting a card erases its history and removes it from the funnel statistics; attached meetings are kept. If a card is simply no longer needed on the board, archive it instead.

REST API

MCP and REST are built on the same operations. Full description: OpenAPI.

curl --fail-with-body --silent --show-error \
  -H "Authorization: Bearer $SOBES_API_TOKEN" \
  https://backend.sobes.tech/api/v1/tracker/board

Read tracker

MCPREST
tracker_get_boardGET /tracker/board
tracker_list_columnsGET /tracker/columns
tracker_list_cards, tracker_get_cardGET /tracker/cards, GET /tracker/cards/{id}
tracker_list_archiveGET /tracker/archive
tracker_get_settingsGET /tracker/settings
tracker_get_card_historyGET /tracker/cards/{id}/history
tracker_get_stats, tracker_export_stats_pdfGET /tracker/stats, GET /tracker/stats/pdf

Edit tracker

MCPREST
tracker_initializePOST /tracker/initialize
tracker_create_card, tracker_update_cardPOST /tracker/cards, PATCH /tracker/cards/{id}
tracker_move_card, tracker_archive_cardPATCH /tracker/cards/{id}/move, PATCH /tracker/cards/{id}/archive
tracker_delete_cardDELETE /tracker/cards/{id}
tracker_import_cardsPOST /tracker/cards/import
tracker_create_column, tracker_update_columnPOST /tracker/columns, PUT /tracker/columns/{id}
tracker_reorder_columns, tracker_delete_columnPATCH /tracker/columns/reorder, DELETE /tracker/columns/{id}
tracker_archive_column_cardsPOST /tracker/columns/{id}/archive-cards
tracker_attach_meeting, tracker_detach_meetingPOST /tracker/cards/{id}/meetings, DELETE /tracker/cards/{id}/meetings/{meetingId}
tracker_update_settingsPUT /tracker/settings

Read meetings

MCPREST
list_meetings, get_meetingGET /meetings, GET /meetings/{id}
get_meeting_summary, get_meeting_transcriptGET /meetings/{id}/summary, GET /meetings/{id}/transcript

Notes

MCPREST
list_notes, list_note_foldersGET /notes, GET /notes/folders
get_noteGET /notes/{id}
create_note, update_notePOST /notes, PATCH /notes/{id}

Contexts

MCPREST
list_contexts, get_contextGET /contexts, GET /contexts/{id}

Errors and limits

CodeMeaning
401The token is invalid, expired or revoked.
403The token lacks the required permission, or the subscription has ended.
404The object wasn't found. Other users' objects also return 404.
409A retry with the same key but a different request body, the transcript changed while being read, or the note changed after the agent read it. In the last two cases, read the data again.
429More than 120 requests per minute per token or 600 per account. Retry after the time in the Retry-After header.

In MCP, errors from the tools themselves come back as the result text rather than an HTTP code, for example {"error":"card_not_found"}.

Creating a card, column or note accepts requestId or the Idempotency-Key header. If you repeat the request with the same key within 24 hours, you get the previous result and no duplicate is created.

On this page