# MCP-конектор

## Огляд

Expense Budget Tracker надає розміщений конектор Model Context Protocol (MCP) за адресою:

`https://mcp.expense-budget-tracker.com/mcp`

Точка підключення працює через Streamable HTTP і використовує OAuth. Укажіть цю URL-адресу в MCP-клієнті, який підтримує віддалені Streamable HTTP-сервери й виявлення OAuth. Під час авторизації відкриється браузер, де можна ввійти в обліковий запис і підтвердити доступ.

Конектор не використовує ключ API. Обліковими даними MCP є токени доступу й оновлення OAuth. Довготривалий `ApiKey`, описаний у [довіднику Agent API](/uk/docs/api/), належить до окремої прямої HTTP-інтеграції та не приймається точкою підключення MCP.

## Виявлення OAuth і підключення

Розміщений конектор публікує метадані захищеного ресурсу за адресою:

`https://mcp.expense-budget-tracker.com/.well-known/oauth-protected-resource/mcp`

Ці метадані спрямовують клієнт до сервера авторизації. Його метадані доступні за адресою:

`https://auth.expense-budget-tracker.com/.well-known/oauth-authorization-server`

Сумісний клієнт виконує такий процес:

1. Підключається до `https://mcp.expense-budget-tracker.com/mcp` і виявляє метадані захищеного ресурсу.
2. Динамічно реєструється як публічний OAuth-клієнт. Секрет клієнта не використовується.
3. Запускає потік Authorization Code і відкриває URL-адресу авторизації в браузері користувача.
4. Використовує PKCE для кожного запиту авторизації. Підтримується лише метод перевірки коду `S256`.
5. Запитує `expenses:read`. Область `expenses:write` додається лише тоді, коли клієнту потрібен виклик `sql_execute`.
6. Обмінює код авторизації на токени доступу й оновлення, а потім за потреби оновлює доступ.

Не копіюйте токени в промпти, історію чатів, файли з кодом або журнали. Зберігайте їх лише у сховищі облікових даних MCP-клієнта.

## Області доступу

- `expenses:read` обов'язкова. Вона дає змогу отримувати список робочих просторів, переглядати схему й виконувати запити лише для читання.
- `expenses:write` необов'язкова. Вона окремо дозволяє деструктивний інструмент `sql_execute`.

Запитуйте найменший набір областей, потрібний для завдання. Клієнту, який лише аналізує дані або готує звіти, достатньо `expenses:read` без `expenses:write`.

## Інструменти

### `list_workspaces`

Повертає робочі простори, доступні користувачу, який увійшов у систему. Перед читанням або зміною даних явно вкажіть потрібний простір за допомогою отриманого ідентифікатора.

### `get_schema`

Повертає відношення та стовпці, доступні MCP у вибраному робочому просторі. Викликайте інструмент до написання SQL, не припускаючи назви таблиць і стовпців.

### `sql_query`

Виконує один обмежений SQL-запит лише для читання у вибраному робочому просторі. Шлях запиту додатково захищений контуром бази даних із правами лише на читання. Результат обмежено 100 рядками, а кінцевий термін виконання становить 20 секунд.

### `sql_execute`

Виконує обмежений SQL, який змінює дані у вибраному робочому просторі. Цей інструмент деструктивний і потребує окремої області `expenses:write`. Перед підтвердженням виклику перевірте робочий простір і точний текст інструкції.

MCP-сервер загалом не є сервером лише для читання, оскільки він надає `sql_execute`. Гарантії режиму лише для читання стосуються саме `sql_query` і його контуру бази даних.

## Безпечне використання

1. Викличте `list_workspaces` і підтвердьте з користувачем потрібний робочий простір.
2. Викличте `get_schema` до генерування SQL.
3. Використовуйте `sql_query` для перевірки даних, підрахунку підсумків, звірки та звітів.
4. Запитуйте `expenses:write` лише для завдання, яке має змінити дані.
5. Перед `sql_execute` покажіть точну інструкцію та очікуваний результат, а потім ще раз підтвердьте робочий простір.
6. Після запису перевірте результат за допомогою `sql_query`.

Сервер обмежує доступну поверхню SQL і набір відношень. Ці заходи доповнюють, але не замінюють уважну перевірку згенерованого SQL.

## Обмеження

- не більше 100 рядків у результатах SQL
- кінцевий термін виконання — 20 секунд
- доступ лише до робочих просторів користувача, який увійшов у систему
- `sql_query` використовує обмежену поверхню SQL і контур бази даних лише для читання
- `sql_execute` потребує `expenses:write` на додаток до обов'язкової області читання

## Конфіденційність і самостійне розгортання

Авторизований MCP-клієнт може читати фінансові дані, а з областю `expenses:write` — змінювати їх. Перед підключенням ознайомтеся з [Політикою конфіденційності](/uk/privacy/) і правилами обробки даних самого клієнта.

Наведені вище розміщені URL-адреси стосуються лише керованого сервісу Expense Budget Tracker. Для власного розгортання почніть із [посібника із самостійного розгортання](/uk/docs/self-hosting/) і налаштуйте точку підключення MCP та метадані OAuth для своїх доменів. Реалізація доступна в [репозиторії вихідного коду](https://github.com/kirill-markin/expense-budget-tracker).

---
*[Переглянути HTML-версію цієї сторінки](https://expense-budget-tracker.com/uk/docs/mcp-connector/)*

*Віддалені MCP-клієнти з підтримкою OAuth можуть підключитися до `https://mcp.expense-budget-tracker.com/mcp` з доступом OAuth Bearer. Обов’язковий дозвіл — `expenses:read`. Клієнт також може запитати необов’язковий дозвіл `expenses:write`: він відображається на екрані згоди OAuth і потрібен для зміни даних.*

*Агенти командного рядка та прямих HTTP-запитів можуть використовувати окремий Agent API, почавши з `GET https://api.expense-budget-tracker.com/v1/` і дотримуючись відповіді документа виявлення, щоб отримати ApiKey.*

*Порада: додайте `.md` до будь-якої адреси цього сайту, щоб отримати чисту Markdown-версію сторінки.*