TGViewer
Костя 8Бит | Fullstack AI Костя 8Бит | Fullstack AI @kostya_web_dev · 1.04K subscribers
Post #259 492
Костя 8Бит | Fullstack AI MCP (Model Context Protocol) почему об этом говорят все Уверен что вы слышали о MCP, последнее время почти из каждого утюга в разработке про него слышно. Разберем зачем вообще это нужно. Главная проблема нейронок: у них нет доступа к внешним данным или…
MCP изнутри: составные части и пишем свой сервер
В прошлый раз разобрали зачем нужен MCP и какую проблему он решает. Сегодня смотрим что там внутри и как написать свой сервер с нуля.

Три участника: Host, Client, Server
Любая MCP-система состоит из трёх частей.
MCP Host = это приложение, в котором живёт AI-агент. Например Claude Desktop, Cursor. Хост запускает всё и управляет соединениями.

MCP Client = живёт внутри хоста и общается с сервером один-к-одному. Один клиент = одно соединение с одним сервером.
Клиент это посредник: передаёт запросы от агента и возвращает ответы обратно.

MCP Server = лёгкая программа/сервер, которую пишете вы. Она подключается к вашим данным (БД, API, файлы) и отдаёт их агенту.

Что умеет отдавать сервер : три примитива
Сервер может отдавать три вещи.
Tools = функции, которые AI вызывает сам. Запрос в базу, отправка письма, вызов API. Аналог POST-эндпоинта: что-то выполняется и возвращается результат.

Resources = данные, которые AI читает в контекст. Файл, строки из таблицы, содержимое документа. Аналог GET-эндпоинта: просто читаем, не меняем.

Prompts = готовые шаблоны для типовых задач. Стандартные заготовленные шаблоны для ваших целей.

Для большинства практических задач достаточно Tools. Их используем чаще всего.

Пишем свой MCP-сервер на TypeScript
Используем официальный SDK от Anthropic @modelcontextprotocol/sdk.

Пример: сервер с одним тулом, который возвращает данные по проекту из условной базы.

// Создаём сервер с именем и версией
const server = new McpServer({
name: “vash-server",
version: "3.2.2",
});

// Регистрируем тул функцию, которую сможет вызвать AI
server.tool(
"get_project_data", // имя тула
"Получить данные по проекту за период", // описание для AI
{
project_name: z.string().describe("Название проекта"),
month: z.string().describe("Месяц в формате YYYY-MM"),
},
async ({ project_name, month }) => {
// Здесь ваша реальная логика: запрос в БД, вызов API и т.д.
const data = await fetchFromDatabase(project_name, month);

return {
content: [{ type: "text", text: JSON.stringify(data) }],
};
}
);

Что тут происходит: создаём сервер, описываем тул с параметрами через Zod-схему (AI сам разберётся какие параметры передавать), внутри пишем любую логику.

И дальше подключаемся например к Claude desktop

{
"mcpServers": {
"vash-server": {
"command": "node",
"args": ["/путь/до/вашего/server.js"]
}
}
}


Теперь можно писать в чат: "выдай данные по проекту Альфа за январь 2025" и Claude сам вызовет ваш сервер.
  • ❤ 6
  • 👍 4
  • 🔥 2
More from @kostya_web_dev
  1. Sep 24, 2026Как зайти в рынок, где вакансии есть, а людей нет Одна из причин, почему я в 2025 решил си…
  2. Sep 23, 2026Рынок мёртв. Ничего не поделать (почти) По моим ощущениям, с 2024 года работу стало находи…
  3. Sep 22, 2026Сезон начался В сентябре hr прям активизировались, много пишут на линке/хх. Данная позиция…
  4. Sep 22, 2026Нам никогда не внедрить ИИ правильно Вот тут упомянул одну из серьезных проблем на текущий…
  5. Sep 21, 2026Как я не нашел работу, а потом Бац и нашел! Свитч в ии-инженера Последние годы меня подбеш…
  6. Sep 18, 2026Голодные эйчары пишут сами После летнего затишья эйчары активно начали писать по вакансиям…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →