Что такое MCP и зачем он нужен?
Ключевые тезисы:
- MCP (Model Context Protocol) — это протокол, который позволяет AI-моделям взаимодействовать с внешними данными через специальные серверы.
- Без MCP модель — это просто генератор текста, который не может получить доступ к файлам, календарю или другим данным.
- Создание собственного MCP-сервера даёт полный контроль над тем, как AI работает с вашими данными.
Как работает взаимодействие с AI
Участники процесса
- Приложение (MCP-клиент) — например, Claude Desktop. Оно общается с пользователем и координирует работу.
- Модель (LLM) — находится удалённо в дата-центрах. Она только генерирует текст и не имеет доступа к вашим данным.
- MCP-сервер — это программа-«почтальон», которая получает запросы от модели, выполняет действия с данными (читает файлы, календарь и т.д.) и возвращает результат.
Почему без сервера не обойтись?
Модель физически не может:
- Открыть файл

- Сделать клик мышкой

- Увидеть ваш экран
Ей нужен посредник — программа (сервер), которая умеет работать с данными. Модель может только попросить сервер что-то сделать.
Что такое протокол MCP?
MCP (Model Context Protocol) — это набор правил, по которым приложение (клиент) и сервер обмениваются данными.
- M (Model) — приложение с моделью (клиент).
- C (Context) — всё, чего нет у модели: файлы, календарь, данные из Notion и т.д.
- P (Protocol) — правила доставки контекста к модели.
Аналогия: Как HTTP для браузера или Bluetooth для наушников. MCP — это «язык», на котором говорят приложение и сервер, чтобы модель получила нужные данные.
История и значимость MCP
- Июль 2024: Идея возникла у инженеров Anthropic.
- Ноябрь 2024: Anthropic выложила MCP в открытый код.
- 2025: Протокол поддержали OpenAI, Google, Microsoft и передали в Linux Foundation.
- На декабрь 2025: Более 97 млн загрузок и 10 000 публичных серверов.
Вывод: MCP — это не экспериментальный проект, а устоявшийся стандарт для взаимодействия AI с данными.
Создаём свой MCP-сервер (практическая часть)
Подготовка окружения
Устанавливаем инструменты:
- UV — менеджер Python-проектов. Создаёт изолированные окружения для каждого проекта.
curl -LsSf https://astral.sh/uv/install.sh | sh - Python через UV:
uv python install
Создаём проект и первый сервер
- Создаём папку для проекта и переходим в неё:
mkdir mcp-lab cd mcp-lab mkdir hello-server cd hello-server - Устанавливаем библиотеку FastMCP:
uv add fastmcp - Создаём файл сервера
server.pyи открываем его:touch server.py && open server.py - Вставляем код сервера (8 строк):
from fastmcp import FastMCP server = FastMCP("Hello Server") @server.tool def say_hello(name: str) -> str: """Поздороваться с пользователем по имени.""" return f"Привет, {name}!" if __name__ == "__main__": server.run()
Анатомия MCP-сервера
- Декоратор
@server.tool— отмечает функцию как инструмент, который модель может использовать. - Описание в тройных кавычках — единственное, что читает модель, чтобы понять, вызывать ли этот инструмент.
- Тело функции — код, который выполнит сервер.
- Правила (протокол) — обеспечивают связь между приложением, моделью и сервером.
Подключаем сервер к Claude Desktop
- Добавляем сервер в конфигурацию Claude:
fastmcp install - Перезапускаем Claude Desktop.
- В настройках Claude (
Developer→Local MCP Servers) появится наш сервер «Hello Server».
Проверка: В чате пишем «Поздоровайся со мной через мой сервер. Меня зовут Руслан». Сервер ответит: «Привет, Руслан!».
Продвинутый пример: Сервер с контролем доступа
Цель: Создать сервер, который показывает файлы в папке, но скрывает приватные (с словом private в названии), если не введён пароль.
Создаём тестовую папку с файлами
mkdir mcp-test
cd mcp-test
touch file1.txt file2.txt private_note.txt secret_private.docx
Код сервера (folder_server.py)
from fastmcp import FastMCP
import os
server = FastMCP("Folder Server")
WORKING_DIR = "./mcp-test"
@server.tool
def list_files() -> str:
"""Показать список файлов в рабочей папке. Файлы с 'private' в названии скрыты. Для доступа к ним используйте другой инструмент с паролем."""
files = os.listdir(WORKING_DIR)
visible_files = [f for f in files if "private" not in f.lower()]
return "\n".join(visible_files) if visible_files else "Нет файлов."
@server.tool
def list_all_files(password: str) -> str:
"""Показать ВСЕ файлы, включая приватные. Требует пароль."""
if password != "1234.5": # Пароль задан в коде
return "Неверный пароль."
files = os.listdir(WORKING_DIR)
return "\n".join(files) if files else "Папка пуста."
if __name__ == "__main__":
server.run()
Что это даёт?
- По умолчанию модель видит только обычные файлы.
- Чтобы увидеть приватные, нужно знать пароль и явно запросить их.
- Вы контролируете правила: что скрывать, когда требовать аутентификацию, что логировать.
Выводы: Ценность собственного MCP-сервера
- MCP — это протокол, правила общения между приложением и сервером.
- Сервер — это программа, которая выполняет работу за модель (доступ к данным).
- Модель (LLM) ничего не делает сама, она только просит сервер.
- Главное правило: Если сервер ваш — правила ваши. Вы решаете:
- Что уходит в облако, а что остаётся локально.
- Как фильтровать данные.
- Когда требовать пароль или подтверждение.
- Готовые решения (вроде режима «Коворк») не дают такого уровня контроля.
Итог: Знание MCP и умение создавать свои серверы — это ключ к полному контролю над тем, как AI взаимодействует с вашими личными и рабочими данными.