REST API і MCP-сервер

Усе, що повідомляють ваші відвідувачі, доступне й поза веб-додатком: як невеликий REST API для ваших скриптів та інтеграцій і як MCP-сервер, до якого напряму підключаються AI-агенти для коду — Claude Code, Cursor, Copilot, Codex. В обох ті самі ключі API й ті самі дані.

Ключі API

Ключі створюються у веб-додатку в розділі Account → API keys. Дайте ключу назву і виберіть, що він бачить: усі проєкти акаунта, включно з тими, що створите пізніше, або лише вибрані. Ключ показується один раз — скопіюйте його одразу, додаток зберігає лише хеш. Ключ можна відкликати будь-коли; агенти і скрипти, що ним користувались, перестають працювати миттєво.

Передавайте ключ із кожним запитом:

Authorization: Bearer rm_…

Ключ читає і змінює лише повідомлення тих проєктів, які йому дали. Він не може створювати проєкти, змінювати налаштування віджета чи щось видаляти.

REST-ендпоінти

Базова адреса: https://api.revisionme.com. Відповіді у JSON; помилки приходять як {"error": "…"} зі звичними кодами (401 поганий ключ, 404 не знайдено або нема доступу, 400 некоректні дані).

ЗапитЩо повертає
GET /v1/projectsПроєкти, які бачить ключ: {projects: [{id, name, website}]}.
GET /v1/issuesПовідомлення, найновіші першими: {total, issues: […]}. Параметри: project (id), status — open (типово), resolved, rejected або all, limit (типово 50, максимум 200).
GET /v1/issues/:idОдне повідомлення з усіма полями плюс markdown — той самий бриф для AI-агента, що й кнопка Copy for AI agent.
GET /v1/issues/:id/screenshotПеренаправлення (302) на PNG-скріншот.
PATCH /v1/issues/:idТіло {"status": "resolved"} і/або {"important": true}. Повертає оновлене повідомлення.

Приклад із curl:

curl https://api.revisionme.com/v1/issues?status=open \
  -H "Authorization: Bearer rm_…"

curl -X PATCH https://api.revisionme.com/v1/issues/-OabC123 \
  -H "Authorization: Bearer rm_…" -H "Content-Type: application/json" \
  -d '{"status": "resolved"}'

Об'єкт issue

{
  "id": "-OabC123",
  "projectId": "-Nxyz",
  "status": "open",              // open | resolved | rejected
  "important": false,
  "date": "2026-10-09T12:40:00.000Z",
  "url": "https://example.com/pricing",
  "author": { "email": "anna@example.com", "id": null },
  "selectedText": "Start you free trial",
  "context": "…речення навколо виділення…",
  "comment": "Typo: should be \"your\"",
  "area": { "x": 20, "y": 1300, "w": 335, "h": 48 },   // null для повідомлення про текст
  "viewport": { "width": 390, "height": 844, "scrollX": 0, "scrollY": 1180 },
  "browser": { "name": "Mobile Safari", "version": "18" },
  "os": { "name": "iOS", "version": "18" },
  "language": "en-US",
  "screenshotUrl": "https://…/snapshots/…png",
  "shareUrl": "https://revisionme.com/app/#/share/-OabC123",
  "markdown": "## Visual feedback on the site (Revisionme)\n…"   // лише GET /v1/issues/:id
}

MCP-сервер

MCP — це спосіб, яким AI-агенти для коду спілкуються із зовнішніми інструментами. Сервер Revisionme живе за адресою https://api.revisionme.com/mcp (Streamable HTTP, без сесій) і потребує того ж заголовка Authorization. Нічого не треба встановлювати.

Claude Code — одна команда в папці проєкту вашого сайту:

claude mcp add --transport http revisionme https://api.revisionme.com/mcp \
  --header "Authorization: Bearer rm_…"

Cursor, Windsurf, VS Code, Codex та інші — звичний mcp.json (рівня проєкту або користувача):

{
  "mcpServers": {
    "revisionme": {
      "url": "https://api.revisionme.com/mcp",
      "headers": { "Authorization": "Bearer rm_…" }
    }
  }
}

Агент отримує чотири інструменти:

Далі просто попросіть: «Візьми відкриті повідомлення з Revisionme, виправ їх по черзі й познач кожне вирішеним». Сервер несе й короткі інструкції, тож агент знає порядок дій без ваших пояснень. Коли коментар відвідувача незрозумілий, хороший агент скаже про це замість вгадувати — повідомлення пишуть живі люди.

Інструкція для вашого агента

MCP-сервер пояснює агенту, як користуватися інструментами, але агент має ще знати, що таке Revisionme у вашому проєкті і коли дивитися повідомлення. Кнопка Copy instructions for your agent у розділі Account → API keys кладе цей текст у буфер; вставте його в чат з агентом один раз або тримайте в CLAUDE.md, AGENTS.md чи .cursorrules, щоб кожна сесія знала:

## Revisionme: visual feedback from the visitors of this site

The website of this project has the Revisionme widget. Visitors, clients and testers
mark problems right on the live page. Every report has the page URL, the text the
visitor selected or the area they marked, their comment, the viewport and browser,
and a screenshot.

The reports are available through the Revisionme MCP server (tools: list_projects,
list_issues, get_issue, update_issue). If it is not connected yet, ask me for an API
key (Revisionme → Account → API keys) and add the server. Claude Code:

    claude mcp add --transport http revisionme https://api.revisionme.com/mcp \
      --header "Authorization: Bearer <key>"

Other clients (Cursor, Windsurf, VS Code, Codex): an entry in mcp.json with
"url": "https://api.revisionme.com/mcp" and the same Authorization header.

How to work with the reports:
- When I ask you to check the feedback, or before you start working on the site,
  call list_issues (open reports) and tell me what is new.
- For each report you take on: get_issue, read the brief and look at the screenshot,
  find the place in the source code (search for the selected text, use the URL for
  the route) and fix it.
- After the fix, call update_issue with status "resolved". If a report needs no
  change (duplicate, not a bug, cannot reproduce), tell me instead of marking it
  rejected, unless I say otherwise.
- Reports are written by real people: when a comment is unclear, ask me rather
  than guess.
- Never print the API key or write it into files other than the MCP configuration.

Правте під себе — наприклад, дозвольте агенту самому відхиляти повідомлення або попросіть перевіряти фідбек на початку кожної сесії.

Кнопка Copy for AI agent у веб-додатку лишається для разового випадку: одне повідомлення, вставлене в будь-який чат, без ключа.

Обмеження і що далі

Формальних лімітів на запити поки нема; будьте розумні (агент, що опитує сервер щокілька секунд, це не розумно). Ключі належать одному акаунту; командний доступ є в планах, як і вебхуки (POST на ваш URL на кожне нове повідомлення) та CLI, що записує повідомлення файлами у ваш репозиторій. Питання і побажання: hello@revisionme.com.