MCP у Cursor: як підключити базу даних, Figma і власні інструменти

16 хв. читання
BINANCE COPY TRADING
Копіюй профі
Binance повторить угоди трейдера за тебе
Почати

MCP — це спосіб навчити Cursor працювати не лише з вашим кодом, а й із зовнішнім світом: базою даних, макетами у Figma, репозиторієм на GitHub, вашими власними інструментами. Замість того щоб копіювати дані в чат руками, ви даєте агенту прямий канал — і він сам сходить у базу, подивиться схему, витягне потрібне. Звучить як суперсила, і це вона і є. Але рівно та сама суперсила у 2025 році обернулася серією реальних вразливостей, тож підключати MCP треба з розумінням того, що саме ви відкриваєте агенту.

Одразу застереження про рівень: MCP — просунутий шар. Якщо ви лише опановуєте сам редактор і вайб-кодинг на простих проєктах, підключення зовнішніх серверів можна спокійно відкласти — воно потрібне тоді, коли агенту реально бракує контексту з вашого коду. Далі розберемо по порядку: що таке MCP простими словами, де Cursor зберігає налаштування, як підключити базу даних і Figma, і — головне — як не віддати агенту більше прав, ніж потрібно. Усе звірено з документацією Cursor, специфікацією протоколу та розборами безпеки станом на липень 2026.

Що таке MCP простими словами

MCP (Model Context Protocol) — відкритий протокол, який Anthropic опублікувала в листопаді 2024 року, а в грудні 2025-го передала вендор-нейтральному фонду Agentic AI Foundation під Linux Foundation (співзасновники — Anthropic, Block і OpenAI). Тобто це не фіча одного Cursor, а спільний стандарт, який підтримують багато редакторів і моделей.

Побудований він на трьох ролях:

BINANCE SIMPLE EARNЗмусь крипту працюватиВідсотки на USDT і BTC без блокування — гроші лишаються під рукою.Розмістити
  • Host — застосунок зі ШІ. У нашому випадку це Cursor.
  • Client — конектор усередині host, який спілкується із сервером.
  • Server — окрема програма, яка віддає агенту інструменти (наприклад, «зроби SQL-запит» або «покажи макет із Figma»).

Сервер може віддавати три речі: Tools (інструменти — дії, які агент викликає), Resources (дані, які він читає) і Prompts (готові шаблони). Найпростіше думати так: MCP-сервер — це перехідник між Cursor і якимось зовнішнім сервісом, що говорить мовою, яку розуміє агент.

Де Cursor зберігає конфіг: mcp.json

Налаштування MCP-серверів Cursor читає з двох файлів:

  • .cursor/mcp.json у корені проєкту — сервери лише для цього проєкту.
  • ~/.cursor/mcp.json у домашній теці — глобальні, для всіх проєктів.

Якщо сервер з однаковим іменем є і там, і там, перемагає проєктний. Усередині файлу все лежить під кореневим ключем mcpServers — забути його легко, і тоді Cursor просто не побачить конфіг.

Найпростіший приклад — офіційний сервер файлової системи, який дає агенту доступ строго до вказаної теки:

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/project"]
    }
  }
}

За замовчуванням Cursor питає підтвердження перед кожним викликом MCP-інструмента — авто-запуск умикається окремо через Run Mode і списки дозволених інструментів. Якщо ви лише починаєте опановувати редактор, поставити Cursor і спробувати все це на кішці можна за цим посиланням — а далі підключимо перший реальний сервер.

Три транспорти: stdio, SSE і Streamable HTTP

Сервер і Cursor спілкуються через один із трьох «транспортів». Різниця не косметична — від неї залежить, де крутиться сервер і як він авторизується:

ТранспортДе працюєХто керуєАвторизація
stdioлокально на вашій машиніпроцес піднімає Cursorвручну (env/токени)
SSE (легасі)локально або віддаленозовнішній серверOAuth
Streamable HTTPлокально або віддаленозовнішній серверOAuth

На рівні самої специфікації MCP стандартних транспортів два — stdio і Streamable HTTP; старий HTTP+SSE з версії специфікації 2024-11-05 вважається застарілим. Практичний висновок: для локальних інструментів обирайте stdio, для віддалених сервісів — Streamable HTTP, а SSE чіпайте лише якщо сервіс ще не переїхав на новий транспорт.

BINANCE SIMPLE EARNЗмусь крипту працюватиВідсотки на USDT і BTC без блокування — гроші лишаються під рукою.Розмістити

Підключаємо базу даних Postgres — безпечно

Найчастіший сценарій — дати агенту зазирнути у вашу базу. І найчастіший спосіб прострелити собі ногу — вставити в конфіг рядок підключення з повними правами. Правильний порядок такий:

  1. Заведіть окремого read-only користувача БД. Не давайте агенту admin-доступ за замовчуванням:
CREATE USER cursor_ro WITH PASSWORD '...';
GRANT SELECT ON ALL TABLES IN SCHEMA public TO cursor_ro;
  1. Не зберігайте пароль у mcp.json. І документація Cursor, і незалежні гайди наполягають: секрети передаються лише через змінні оточення чи envFile (для stdio), або через інтерполяцію ${env:NAME} — але не хардкодом у JSON, який легко втече в git.

Чому це не паранойя, а необхідність — покаже розділ про безпеку нижче. Поки що запам’ятайте правило: агент має мати рівно ті права, які потрібні для завдання, і жодним більше. Як Cursor загалом працює з проєктом і які в нього тарифи, якщо MCP вам зайде і ви захочете більшого, розбирали в огляді Cursor і його тарифів.

Підключаємо Figma і власні інструменти

Figma. У Figma зараз два MCP-сервери, і починати простіше з віддаленого. Remote-сервер (https://mcp.figma.com/mcp) на час бети безкоштовний, не потребує десктоп-застосунку й підходить більшості — з нього і варто стартувати. Другий варіант — локальний Dev Mode MCP Server: він дає більше можливостей, але потребує платного місця (Dev або Full seat на плані Professional/Organization/Enterprise) і працює лише через десктоп-застосунок Figma. Нюанс щодо локального: його адреса під час переходу з SSE на Streamable HTTP змінилася з http://127.0.0.1:3845/sse на http://127.0.0.1:3845/mcp — якщо за старою «не конектиться», перевірте нову.

GitHub. Офіційний сервер запускається Docker-образом з передаванням персонального токена через оточення:

{
  "mcpServers": {
    "github": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "-e", "GITHUB_PERSONAL_ACCESS_TOKEN", "ghcr.io/github/github-mcp-server"],
      "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "${env:GITHUB_PAT}" }
    }
  }
}

Власні інструменти. Будь-який сервіс, для якого є MCP-сервер (або який ви напишете самі), підключається так само — командою запуску і парою env-змінних. Економія буває відчутною: в одному звіті розробника зв’язка з трьох MCP-серверів (пошук по коду, компресія контексту, агрегатор інструментів) зрізала витрату токенів на проєкті до 90% — але це поодинокий кейс, а не гарантія.

40 інструментів — практична стеля

Непомітна, але важлива деталь: у Cursor є практична стеля приблизно в 40 одночасно активних MCP-інструментів по всіх серверах разом. Річ не в жорсткому ліміті, а в тому, що описи всіх інструментів ідуть у контекст моделі — що їх більше, то більше токенів витрачається намарно і то гірше модель обирає потрібний інструмент. Висновок: не вмикайте всі сервери одразу «про всяк випадок». Тримайте активними лише ті, що потрібні для поточного завдання, а решту вимикайте — і точність, і вартість скажуть спасибі.

Після підключення: підтвердження і перевірка

Додали сервер у mcp.json — Cursor підхопить його і покаже список інструментів у налаштуваннях MCP. За замовчуванням перед кожним викликом інструмента агент питає підтвердження: це ваш останній рубіж контролю, і на незнайомих серверах його краще не вимикати. Авто-запуск дозволених інструментів умикається окремо, через Run Mode і списки allowlist, — свідомо, а не за інерцією.

Варто пам’ятати, що підтримка можливостей MCP у Cursor нарощувалася за версіями: за наявними даними, читання даних-ресурсів (Resources) з’явилося в Cursor 1.6 (вересень 2025), а інтерактивні уточнювальні запити від сервера (Elicitation) — у Cursor 1.5 (серпень 2025). Якщо якийсь примітив «не працює», найперше перевірте, що у вас свіжа версія редактора. І ще практичний момент: більшості серверів потрібне встановлене середовище виконання — Node.js або Python; без нього сервер мовчки не стартує, тож node --version і python --version у терміналі — найшвидша перевірка перед розбором конфіга.

Навіщо все це зрештою: грамотно зібрана зв’язка серверів не лише розширює можливості агента, а й економить бюджет. В одному звіті розробника набір із трьох MCP-серверів (пошук по коду, компресія контексту, агрегатор інструментів) зрізав витрату токенів на проєкті до 90% — цифра поодинокого кейсу, але напрям вірний: що точніше агент дістає потрібний контекст сам, то менше ви згодовуєте йому вручну.

Безпека: чим ризикуєте і як закрити

Це не лякалка, а розбір того, що реально сталося у 2025 році. MCP дає агенту руки в зовнішньому світі, і цим уже користувалися.

ВразливістьСутьПідсумок
MCPoison (CVE-2025-54136, CVSS 7.2)Cursor прив’язував довіру до імені сервера в конфізі, а не до команди — після першого схвалення команду можна було непомітно підмінити у спільному репозиторіїВиправлено в Cursor 1.3 (кінець липня 2025)
CurXecute (CVE-2025-54135, CVSS 8.5)Отруєне Slack-повідомлення, яке підсумовував агент, могло переписати mcp.json і запустити чужий серверВиправлено в Cursor 1.3.9
MCP Inspector (CVE-2025-49596, CVSS 9.4)Офіційний зневаджувальний інструмент не перевіряв джерело запиту — візит на шкідливий сайт запускав командиВиправлено у версії 0.14.1

До цього — показова демонстрація дослідників безпеки (General Analysis, середина 2025). На своєму тестовому Supabase-проєкті вони показали: агент з привілейованим service-role доступом, обробляючи тикет підтримки зі схованою в тексті промпт-ін’єкцією, сам сформував SQL-запит до таблиці токенів і повернув їх у публічний тред. Це був контрольований proof-of-concept на вигаданих даних, а не реальний витік у реального сервісу, — але механіка справжня: класична «смертельна трійка» (привілеї + недовірений ввід + зовнішній канал назовні). Зверніть увагу: вектор тут — саме промпт-ін’єкція (шкідлива інструкція в тексті тикета обманула агента), а не SQL-ін’єкція у звичному сенсі. Саме тому в розділі про базу даних ми заводили read-only користувача — якби в агента був лише SELECT, повернути чи зіпсувати зайве він би не зміг.

Окремо варто розуміти два класи атак, які не ловляться звичайною перевіркою:

  • Tool poisoning — шкідлива інструкція ховається в описі інструмента (метаданих), а не у вашому запиті. Перевірка користувацького вводу її не побачить.
  • Rug pull — сервер змінює поведінку інструмента вже після того, як ви дали дозвіл. Більшість клієнтів такі зміни не підсвічують.

Що з цим робити на практиці: ставте сервери лише з перевірених джерел, давайте мінімальні права (read-only, обмежені API-ключі), зберігайте секрети в оточенні, а не в конфізі, і не підключайте що завгодно «щоб спробувати». Гарна новина: Cursor закривав усі розкриті у 2025 році вразливості за дні-тижні, а починаючи з версії 1.3 будь-яка зміна mcp.json потребує повторного явного схвалення — це б’є рівно по класу атак на кшталт MCPoison.

Часті помилки першого підключення

Якщо сервер «не підключається», у дев’яти випадках із десяти винна одна з цих дрібниць:

  • Забутий прапорець -y в npx — установлення зависає на запиті підтвердження, і сервер мовчки не стартує.
  • Немає кореневого ключа mcpServers — Cursor не бачить конфіг цілком.
  • Ім’я сервера або інструмента довше за 60 символів — перевищення ламає реєстрацію.
  • Не встановлене середовище виконання — більшості серверів потрібен Node.js або Python; перевірте node --version / python --version у терміналі.

І про масштаб екосистеми, щоб не лякатися цифр із чужих статей: кількість доступних MCP-серверів сильно розходиться між джерелами (каталог Glama називає ~32 000 записів, PulseMCP — 16 000+), бо кожен лічить по-своєму. Єдиної «правильної» цифри немає — орієнтуйтеся на офіційний реєстр і перевірені каталоги, а не на перше-ліпше число.

Поширені запитання

Куди класти mcp.json — у проєкт чи в домашню теку?

Залежить від області. Сервер, потрібний лише в одному проєкті (наприклад, доступ до його бази), кладіть у .cursor/mcp.json у корені репозиторію. Сервер, який ви хочете бачити всюди (скажімо, файлова система або GitHub), — у ~/.cursor/mcp.json. Якщо ім’я сервера збіжиться в обох файлах, пріоритет у проєктного. Проєктний конфіг зручно комітити в репозиторій, але без секретів — лише структуру.

Чи можна безпечно підключити робочу базу даних?

Так, якщо не давати агенту повний доступ. Заведіть окремого користувача БД лише з правами на читання (GRANT SELECT), а пароль зберігайте у змінних оточення чи .pgpass, а не в mcp.json. Тоді навіть за вдалої промпт-ін’єкції агент фізично не зможе нічого змінити чи видалити — максимум прочитає те, що й так має бачити. Саме на відсутності такого обмеження будувалася дослідницька демонстрація з Supabase-агентом: якби в нього був лише доступ на читання, повернути зайве він би не зміг.

Чому не варто вмикати багато серверів одразу?

У Cursor практична стеля близько 40 активних інструментів: описи всіх серверів ідуть у контекст моделі й витрачають токени, а понад це число модель починає гірше обирати потрібний інструмент. Тримайте увімкненими лише сервери під поточне завдання — це і дешевше, і точніше. Решту вимикайте в налаштуваннях MCP, а не лишайте «про всяк випадок».

Що потрібно, щоб підключити Figma до Cursor?

Залежить від того, який сервер обрати. Віддалений (https://mcp.figma.com/mcp) на час бети безкоштовний і не потребує ні платного місця, ні десктоп-застосунку — з нього найпростіше почати. Локальний Dev Mode MCP Server дає більше можливостей, але потребує платного місця (Dev або Full seat на плані Professional, Organization або Enterprise) і запускається лише через десктоп-застосунок Figma. Для локального пам’ятайте про зміну адреси: якщо за старою http://127.0.0.1:3845/sse з’єднання немає, перевірте нову — http://127.0.0.1:3845/mcp.

Що таке tool poisoning і як від нього захиститися?

Це атака, за якої шкідлива інструкція схована в описі MCP-інструмента, а не у вашому запиті, тому звичайна перевірка вводу її не ловить. Захист — організаційний: ставте сервери лише з перевірених джерел, читайте, що саме сервер робить, давайте йому мінімальні права і пам’ятайте про rug pull — сервер може змінити поведінку вже після схвалення. Cursor з версії 1.3 потребує пересхвалення при зміні конфіга, що частково закриває такі сценарії. Головний принцип лишається незмінним: ставтеся до MCP-сервера як до стороннього коду з доступом до ваших даних — ставте лише те, чому довіряєте, і давайте рівно ті права, без яких завдання не розв’язується.

BINANCE COPY TRADING
Копіюй профі
Binance повторить угоди трейдера за тебе
Почати
Поділитися
Зв'язатися:
Крипто- та data-аналітик, інженер-програміст (факультет комп'ютерних наук ХНУРЕ). В IT з 2008 року: адміністрував корпоративний моніторинг у «Vodafone Україна», сім років розробляв і просував веб-проєкти, п'ять років керував маркетингом на метриках — конверсія, CTR, ROI, LTV.Криптовалютними ринками займаюся з 2021 року: ончейн-метрики, токеноміка, макроекономічні індикатори. Розробив власну data-driven модель аналізу ринку на 30+ метрик. Стек — Python (pandas, NumPy, SciPy, matplotlib), математична статистика та EDA; збір і звірку даних автоматизую AI-агентами.Принцип — «Don't trust, verify»: кожна цифра перевірена за першоджерелом, ключові — щонайменше за двома незалежними; прогнози — лише сценарії з умовами. Теза без даних не публікується.