---
title: "MCP-сервер блогу: як підключити статті до Claude Code, Cursor та інших асистентів"
url: "https://romankryvolapov.com/uk/mcp-server/"
description: "У блогу є власний MCP-сервер: AI-асистент шукає по всіх статтях трьома мовами й читає потрібну повністю. Адреса, інструменти та налаштування для Claude Code, Claude, Cursor, VS Code, Codex і Gemini CLI."
language: uk
published: 2026-11-03
updated: 2026-11-03
---
**Привіт!**

У цього блогу є власний MCP-сервер. [MCP](https://modelcontextprotocol.io) (Model Context Protocol) — спільний протокол, за яким AI-асистент підключає зовнішні інструменти й дані; його розуміють майже всі сучасні асистенти та агенти для програмування ([порівняння AI-агентів](/uk/ai-agent-harnesses/)). Коли сервер підключено, асистент сам знаходить статтю під ваше запитання й читає її повністю разом із лістингами коду — без пошуку посилання, копіювання тексту та вставляння його в чат.

## Адреса і що вміє сервер

- **Адреса:** `https://mcp.romankryvolapov.com/`
- **Транспорт:** Streamable HTTP. Авторизації немає — ні реєстрації, ні ключа.
- **Лише читання:** сервер віддає опубліковані статті й більше нічого не вміє; доступу до ваших файлів і даних у нього немає.

| Інструмент | Що робить |
|---|---|
| `search` | шукає по всіх статтях англійською, російською та українською, запит можна писати будь-якою з трьох мов; повертає до 20 статей із заголовком, адресою та фрагментом тексту |
| `get_page` | повертає статтю повністю в markdown за її адресою, наприклад `https://romankryvolapov.com/uk/ktor-manual/`; лістинги коду збігаються із сайтом байт у байт |

Сервер бере текст із самого сайту й оновлює свій індекс приблизно раз на годину, тож нова стаття знаходиться через годину-дві після публікації.

## Як підключити

Ім'я сервера в прикладах нижче — `romankryvolapov`; воно може бути будь-яким, асистент показує його у списку інструментів.

### Claude Code

Одна команда в терміналі, потім перевірка зв'язку:

```bash
claude mcp add --transport http --scope user romankryvolapov https://mcp.romankryvolapov.com/
claude mcp list
```

З `--scope user` сервер доступний в усіх проєктах; без цього прапорця — лише в поточному. У виводі `claude mcp list` біля сервера має стояти «✔ Connected», усередині сесії те саме показує команда `/mcp`. Докладніше про команди й налаштування — у [довіднику з Claude Code](/uk/claude-code-commands-and-settings/).

### Claude (сайт і застосунок)

У Claude сервер підключається як власний конектор — один раз для акаунта, після чого працює і на сайті, і в застосунку:

1. Customize → Connectors → «+ Add» → «Add custom connector».
2. Ім'я — будь-яке, адреса — `https://mcp.romankryvolapov.com/`, далі «Continue».
3. У розділі Authentication вибрати «No sign in» і натиснути «Add».
4. У чаті: «+» ліворуч унизу → Connectors → увімкнути конектор.

На безкоштовному тарифі можна додати один власний конектор. Звертається до сервера хмара Anthropic, а не ваш комп'ютер, — цьому серверу саме так і треба: він публічний.

### Cursor

Файл `~/.cursor/mcp.json` підключає сервер до всіх проєктів, `.cursor/mcp.json` у корені проєкту — лише до нього:

```json
{
  "mcpServers": {
    "romankryvolapov": {
      "url": "https://mcp.romankryvolapov.com/"
    }
  }
}
```

Транспорт зазначати не треба: запис із полем `url` Cursor сам вважає віддаленим сервером.

### VS Code (GitHub Copilot)

Найпростіше — командою MCP: Add Server з палітри команд: тип HTTP, потім адреса й ім'я. Вручну — у файлі `.vscode/mcp.json` проєкту:

```json
{
  "servers": {
    "romankryvolapov": {
      "type": "http",
      "url": "https://mcp.romankryvolapov.com/"
    }
  }
}
```

Тут поле `type` обов'язкове, а кореневий ключ називається `servers`, а не `mcpServers`, як у Cursor і Gemini CLI.

### Codex

```bash
codex mcp add romankryvolapov --url https://mcp.romankryvolapov.com/
```

Той самий запис вручну, у `~/.codex/config.toml`:

```toml
[mcp_servers.romankryvolapov]
url = "https://mcp.romankryvolapov.com/"
```

Перевірка — `codex mcp list` у терміналі або `/mcp` усередині сесії.

### Gemini CLI

```bash
gemini mcp add --transport http --scope user romankryvolapov https://mcp.romankryvolapov.com/
```

Без `--scope user` сервер запишеться в налаштування поточного проєкту, `.gemini/settings.json`. Вручну це виглядає так:

```json
{
  "mcpServers": {
    "romankryvolapov": {
      "httpUrl": "https://mcp.romankryvolapov.com/"
    }
  }
}
```

Ключ саме `httpUrl`: поле `url` у Gemini CLI означає старий транспорт SSE, і з ним сервер не підключиться.

### Інші клієнти

Підійде будь-який клієнт, що вміє підключати віддалені MCP-сервери. Потрібні три речі: адреса `https://mcp.romankryvolapov.com/`, транспорт Streamable HTTP (у налаштуваннях його називають HTTP або streamable-http) і відсутність авторизації. Та сама інформація в машиночитному вигляді лежить у картці сервера: `https://romankryvolapov.com/.well-known/mcp.json`.

## Як користуватися

Коли викликати інструмент, асистент вирішує сам — за тим, про що ви питаєте. Найнадійніше — назвати блог прямо:

- «Знайди в блозі romankryvolapov.com, як у Ktor підключити Exposed і Koin».
- «Прочитай статтю про хуки Claude Code і склади за нею чек-лист для мого проєкту».
- «Що в блозі написано про LoRA і чим донавчання відрізняється від RAG?»

Асистент спершу викличе `search`, отримає список статей з адресами, а потім забере потрібну через `get_page` — повністю, а не переказ із видачі пошуковика.

## Перевірити сервер без клієнта

Сервер відповідає на звичайні JSON-RPC-запити, тож перевірити його можна й без асистента — одним запитом із термінала:

```bash
curl -s https://mcp.romankryvolapov.com/ \
  -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search","arguments":{"query":"Project Loom","limit":3}}}'
```

У відповідь прийде JSON зі знайденими статтями: заголовок, адреса й фрагмент тексту навколо збігу.

## Як він влаштований

Сервер — невеликий Cloudflare Worker без бази даних. Під час першого звернення він завантажує із сайту `llms-full.txt` — повний текст усіх статей у markdown, — ділить його на статті й будує в пам'яті пошуковий індекс BM25: слово тим вагоміше, чим рідше воно трапляється на сайті загалом і чим частіше в конкретній статті. Окрема пошукова бібліотека для цього не потрібна, а сервер віддає рівно те, що опубліковано на сайті, з тими самими лістингами.
