# Prozorro MCP Server
Сервер Model Context Protocol (MCP), який надає AI моделям безперешкодний доступ до даних про державні закупівлі України з системи [Prozorro](https://prozorro.gov.ua/) - публічної системи закупівель України.
**Для надання всіх доступних функцій потрібен проксі-сервер та база даних, тому зараз MCP API не доступно публічно. Щоб отримати URL API та токен API, будь ласка, зв'яжіться з автором.**
## Можливості
- **🔍 Пошук тендерів**: Розширені можливості пошуку за кодом ЄДРПОУ, юридичною назвою або діапазоном дат
- **⚡ Швидкість**: Пряма інтеграція з API бази даних публічних закупівель Prozorro
- **🛠️ Легка інтеграція**: Просте налаштування з Claude Desktop та іншими MCP клієнтами
## Доступні інструменти
### `search_tenders`
Пошук державних тендерів за різними критеріями (Наразі дані доступні тільки за 2025 рік).
**Параметри:**
- `EDRPOUCode` (рядок, необов'язково): Унікальний ідентифікаційний код організації (український податковий номер)
- `legalName` (рядок, необов'язково): Підрядок для пошуку в юридичній назві організації
- `dateFrom` (рядок, необов'язково): Початкова дата для пошуку (формат ISO 8601, наприклад, `2025-01-01`)
- `dateTo` (рядок, необов'язково): Кінцева дата для пошуку (формат ISO 8601, наприклад, `2025-12-31`)
- `limit` (число, необов'язково): Максимальна кількість записів для повернення (за замовчуванням: 100, максимум: 1000)
**Повертає:** Масив об'єктів тендерів з детальною інформацією, включаючи ID тендера, назву, деталі організації, дати та статус закупівлі.
## Встановлення
### Метод 1: Встановлення з npm (Рекомендовано)
Найпростіший спосіб встановити MCP сервер через npm:
```bash
npm install -g prozorro-mcp-server
```
Після встановлення додайте до конфігурації Claude Desktop:
**Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
**Linux**: `~/.config/Claude/claude_desktop_config.json`
```json
{
"mcpServers": {
"prozorro": {
"command": "prozorro-mcp-server",
"env": {
"PROZORRO_API_TOKEN": "ваш-api-токен-тут",
"PROZORRO_SERVICE_URL": "mcp-api-url-тут"
}
}
}
}
```
Перезапустіть Claude Desktop і ви готові використовувати сервер!
> **Примітка**: На Linux/macOS, якщо виникають проблеми з правами доступу, можливо, вам потрібно використати `sudo npm install -g prozorro-mcp-server` або налаштувати npm для використання користувацької директорії.
### Метод 2: Встановлення з GitHub
1. **Встановіть глобально через npm з GitHub**:
```bash
npm install -g git+https://github.com/VladyslavMykhailyshyn/prozorro-mcp-server.git
```
2. **Додайте до конфігурації Claude Desktop**:
**Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
```json
{
"mcpServers": {
"prozorro": {
"command": "prozorro-mcp-server",
"env": {
"PROZORRO_API_TOKEN": "ваш-api-токен-тут",
"PROZORRO_SERVICE_URL": "mcp-api-url-тут"
}
}
}
}
```
3. **Перезапустіть Claude Desktop** - Сервер буде готовий до використання!
### Метод 3: Локальне встановлення для розробки
1. **Клонуйте репозиторій**:
```bash
git clone https://github.com/VladyslavMykhailyshyn/prozorro-mcp-server.git
cd prozorro-mcp-server
```
2. **Встановіть залежності**:
```bash
npm install
```
3. **Зберіть проект**:
```bash
npm run build
```
4. **Додайте до конфігурації Claude Desktop** (використовуйте абсолютний шлях):
```json
{
"mcpServers": {
"prozorro": {
"command": "node",
"args": ["/абсолютний/шлях/до/prozorro-mcp-server/build/index.js"],
"env": {
"PROZORRO_API_TOKEN": "ваш-api-токен-тут",
"PROZORRO_SERVICE_URL": "https://prozorro.gov.ua"
}
}
}
}
```
## Конфігурація
Сервер вимагає певних змінних середовища для правильної роботи. Ви можете встановити їх у конфігурації Claude Desktop або у файлі `.env` для локальної розробки.
| Змінна | Опис | Обов'язкова | Приклад |
|--------|------|:-----------:|---------|
| `PROZORRO_API_TOKEN` | Ваш Bearer токен для Prozorro API | Так | `Bearer abc123...` |
| `PROZORRO_SERVICE_URL` | Базова URL для API | Так | `https://mcp-service-url....` |
### Отримання облікових даних API
Щоб отримати облікові дані та URL для Prozorro:
1. Зв'яжіться з автором
2. Отримайте API токен та URL
3. Використовуйте токен та URL у вашій конфігурації
## Типові робочі процеси
### Робочий процес 1: Пошук тендерів за організацією
```
1. Використовуйте search_tenders з EDRPOUCode для пошуку всіх тендерів від конкретної організації
2. Перегляньте повернуті деталі тендера, включаючи дати, суми та статус
3. За потреби відфільтруйте результати за діапазоном дат
```
### Робочий процес 2: Пошук останніх тендерів
```
1. Використовуйте search_tenders з параметрами dateFrom та dateTo
2. За бажанням відфільтруйте за назвою організації, використовуючи legalName
3. Обмежте результати для кращої продуктивності
```
## Усунення несправностей
### Сервер не з'являється в Claude Desktop
1. Перевірте, що шлях у `claude_desktop_config.json` правильний
2. Переконайтеся, що ви зібрали проект за допомогою `npm run build`
3. Переконайтеся, що Node.js встановлено (потрібна версія 18 або вища)
4. Перезапустіть Claude Desktop
5. Перевірте логи Claude Desktop на наявність помилок
### Помилки запитів до API
- Переконайтеся, що ваш `PROZORRO_API_TOKEN` дійсний і не прострочений
- Перевірте, що `PROZORRO_SERVICE_URL` правильний
- API Prozorro може мати обмеження швидкості - розгляньте можливість додавання затримок між запитами
- Потрібне мережеве підключення до prozorro.gov.ua
- Деякі тендери можуть бути тимчасово недоступні
### Помилки автентифікації
- Переконайтеся, що ваш API токен включає префікс `Bearer`, якщо це потрібно
- Перевірте, що ваш токен має необхідні дозволи
- Переконайтеся, що термін дії токена не минув
## Розробка
### Структура проекту
```
prozorro-mcp-server/
├── src/
│ ├── index.ts # Головна точка входу MCP сервера
│ ├── tenders.ts # Реалізація пошуку тендерів
│ └── types.ts # Визначення типів TypeScript
├── build/ # Скомпільований JavaScript (генерується)
├── package.json
├── tsconfig.json
└── README.md
```
### Запуск у режимі розробки
```bash
# Режим відстеження - автоматична пересборка при змінах
npm run dev
# В іншому терміналі
npm start
```
### Збірка для продакшену
```bash
npm run build
```
## Інформація про API
Цей сервер використовує публічний API Prozorro для отримання інформації про тендери. Для отримання додаткової інформації про систему Prozorro та доступні дані:
- **Веб-сайт Prozorro**: https://prozorro.gov.ua/
- **Документація API**: https://prozorro.gov.ua/api
- **Формат даних**: JSON відповіді з детальною інформацією про тендери
## Ліцензія
ISC
## Внесок
Внески вітаються! Будь ласка, не соромтеся надсилати Pull Request.
## Контакти
Для питань та проблем, будь ласка, використовуйте сторінку [GitHub Issues](https://github.com/VladyslavMykhailyshyn/prozorro-mcp-server/issues).