AI Without the Hype.
Глава 10 от 21
Част Четири · Умението да преценяваш · Глава 10

Създай свой собствен MCP

В края на тази глава разбираш от какво е направен един MCP сървър, кога си струва да си направиш свой и как да го направиш безопасно, само за четене, за да стигне моделът до твой инструмент, който никой готов Connector не покрива.
AVATAR OPENER · ~90s
Виж как изглежда една малка ръчно направена връзка, която моделът може да ползва, и как да я оставиш само за четене
HeyGen avatar · generated, consistent presenter

В курса за начинаещи свърза Claude с жив източник през готов Connector, който работи като стандартен порт, през който замразеният модел стига до живия свят. Тази глава е другата страна на монетата. Когато няма готов Connector за инструмента или данните, които ти трябват, си правиш връзката сам. Тази нова връзка е MCP сървър, а да си направиш един малък е далеч по-лесно, отколкото звучи.

MCP, или Model Context Protocol, е просто уговорен формат за това как моделът и външен инструмент си говорят. Понеже е споделен стандарт, всичко, което направиш в този формат, е достъпно за модела, без да пишеш специален свързващ код за всяка от страните. Не измисляш нова интеграция от нулата. Просто попълваш малък и ясно зададен шаблон, а моделът вече знае как да си говори с всичко, което го спазва.

Начинаещият включва връзка, която някой друг е направил. Тук ти правиш тази, която още никой не е направил. Connector, който правиш сам, е просто кратко и точно описание какво може да прави и показва твоят инструмент, написано във формат, който моделът вече разбира.
ОТ КАКВО Е НАПРАВЕН ЕДИН СЪРВЪР: ТРИ ОСНОВНИ ЕЛЕМЕНТА

Един MCP сървър предлага до три вида неща, а най-лесно ще ги запомниш като части на речта. Инструментите са глаголи, тоест неща, които моделът може да прави. Ресурсите са съществителни, неща, които моделът може да чете. Prompts са шаблони, готови начини да попиташ за нещо. На повечето малки сървъри, които ще правиш, ще им трябват само първите две, а често и само едно от тях.

Инструменти (глаголи)
Действия, които моделът може да предприеме през твоя сървър: да потърси запис, да добави ред, да изтегли днешната цифра. Правене, а не само четене.
Ресурси (съществителни)
Данни, които моделът може да чете: файл, запис, стойност в реално време. Четене без промяна. Най-безопасният основен елемент, с който да започнеш.
Prompts (шаблони)
Готови начини да поискаш нещо от инструмента си, които ползваш отново и отново, така че моделът да не измисля заявката всеки път.
Избирай според контрола
Избирай елемента според това колко права даваш. Един сървър само за четене предлага ресурси и инструменти за четене, без нищо, което може да променя или трие.

Ти избираш кои елементи да покажеш според това колко искаш да позволиш на модела да прави. В това е цялата философия за безопасност при създаването на Connector: сървър, който предлага само ресурси и инструменти за четене, може да гледа, но никога да пипа. Този, който предлага инструменти за действие, може да променя нещата. Да започнеш само с четене не е плахост, а разумният избор по подразбиране, а способността за промяна добавяш само съзнателно и стъпка по стъпка.

КОГА ДА СИ НАПРАВИШ ТАКЪВ И КОГА НЕ

Да си направиш сървър е правилният ход само понякога, а да знаеш кога точно, ти спестява много усилия. Честният тест е дали вече има готова връзка и дали един обикновен инструмент в командния ред не би свършил работа с по-малко главоболия.

Има ли вече Connector?
Ако вече има готов за твоя инструмент, използвай го. Не прави отново нещо, което някой друг вече поддържа вместо теб.
Би ли свършил работа един CLI инструмент?
Ако инструментът вече е достъпен през командния ред, това често е по-лекото решение от сървър. Захващай се със сървър само когато има истинска празнина за запълване.
Направи само това, което липсва
Когато нищо не покрива твоя специфичен инструмент или данни, направи малък сървър точно за това и за нищо повече.

Има една реална цена, която трябва да помниш от света на Connectors: всеки инструмент, който даваш на модела, заема място в работната му памет дори когато не се използва. Така че сървър, натъпкан с двадесет инструмента, не е повод за гордост, а данък върху всеки твой разговор. Прави малки неща. Показвай само малкото, което наистина ти трябва, дръж останалото скрито, и моделът ще остане бърз и точен.

НАПРАВИ НЕЩО МАЛКО И ГО ТЕСТВАЙ

Добрата новина за хората, които не пишат код, е, че няма да пишеш сървър на ръка от празен файл. Има официален Skill за създаване на Connectors, който можеш да управляваш по същия начин, по който управляваше всичко останало в този курс, тоест просто описваш какво искаш и го оставяш да изгради скелета. Твоята задача е да си наясно с единствената работа, която сървърът ще върши, и да настояваш той да остане само за четене, освен ако изрично не решиш друго.

Изгради скелета на малък MCP сървър само за четене
Искам да направя малък MCP сървър, който дава достъп само за четене до едно нещо, което ми е важно и което нито един съществуващ Connector не покрива. Нещото: [опиши го, например "текущите наличности в моята таблица с инвентар" или "последните записи в дневника на моя проект"]. Изисквания: - Да е само за четене за начало. Покажи го като ресурс или инструмент за четене. НЕ му давай никаква възможност да променя, добавя или трие каквото и да било. - Само една задача. Не добавяй инструменти, които не съм искал. - Води ме стъпка по стъпка през създаването му с официалния Skill за Connectors и ми казвай преди всяка стъпка какво точно ще направи тя. - След това ми покажи как да го тествам с MCP Inspector, преди да го свържа с нещо реално. Обяснявай ми всяка част на прост език, докато работим. Аз не съм програмист.
Try it in Claude

Преди да вържеш нов сървър към реалната си система, трябва да го тестваш изолирано. MCP Inspector е малък интерактивен инструмент, направен точно за това: позволява ти да разцъкаш сървъра си, да видиш инструментите и ресурсите, които той показва, и да ги извикаш ръчно, за да се увериш, че работят добре, и всичко това преди моделът изобщо да се докосне до него. Да тестваш един Connector първо в Inspector е като навика Roast Me за връзки: намираш проблемите в безопасен пясъчник, а не в реалната работа.

Какво ти спестява предварителното тестване
В Inspector извикваш новия си инструмент за четене и виждаш, че той връща правилната стойност чисто, без нищо, което не би трябвало да показва. Също така забелязваш, че е върнал едно поле, което не си искал да споделяш, и го изрязваш, преди моделът или който и да било друг да го е видял. Чак тогава го свързваш наистина. Пясъчникът хвана теча на данни.

Пълното практическо създаване, тоест истински сървърен файл, който стартираш и свързваш, изисква терминала и един Project, които вече имаш от последните две глави. Придружаващото хранилище има минимален работещ сървър в mcp/, който можеш да клонираш, стартираш и инспектираш, така че да имаш истински и безопасен пример, от който да се учиш, вместо просто празна страница. Започни от него, промени едно нещо и виж как работи.

NOW YOU TRY · ДИЗАЙН
Напиши спецификация за малък сървър, който запълва реална празнина

Намери едно реално нещо, до което ти се иска моделът да има достъп, но нито един готов Connector не покрива, например стойност в таблица, която поддържаш, дневник, който обновяваш, или твоя малка база данни. Използвай промпта по-горе, за да напишеш спецификация за сървър само за четене точно за това едно нещо. Бъди строг: една задача, само за четене, без излишни инструменти. Реши кой основен елемент пасва най-добре, дали ресурс за четене или единичен инструмент за четене. Още не е нужно да го правиш, защото самата стегната спецификация вече е победа.

Right if имаш спецификация за наистина полезен малък сървър, който е само за четене, прави точно едно нещо и който би тествал в Inspector, преди да му се довериш.
Show the worked solution
Упражнението работи най-добре, когато спецификацията е скучно малка и очевидно безопасна, защото точно така изглежда един добър първи сървър. Да кажем, че липсата е "Искам моделът да може да вижда текущата обща сума в таблицата ми с разходи, без да се налага да я слагам там всеки път." Виж колко много неща не са нужни тук. Няма нужда да се редактира таблицата, да се добавят разходи или да се трие каквото и да било, затова го показваш като единствен ресурс само за четене: текущата обща сума и нищо друго. Една задача. Избираш ресурса като основен елемент, защото четеш стойност, а не предприемаш действие. После, преди да го свържеш към реалния си работен процес, го отваряш в MCP Inspector и го извикваш ръчно: връща ли числото, правилното число ли е и, ето въпроса, който хората забравят, показва ли случайно повече, отколкото си искал, например всеки отделен ред, когато си искал само сумата? Ако е така, го орязваш точно там, в пясъчника. Цялата тази структура, една задача, само за четене, тествана първо изолирано, е разликата между Connector, който тихо разширява възможностите ти, и такъв, който тихо изпуска данни или чупи неща. Изкушението винаги е да накараш сървъра да прави повече, докато вече си вътре. Устоявай му. Един малък сървър, който напълно разбираш и си тествал, винаги бие един амбициозен, на когото се доверяваш само наполовина.
WATCH FOR
Правиш сървър за нещо, което някой Connector вече покрива. Първо провери. Ако вече има поддържана връзка, използвай я. Прави нещо ново само за реална липса, която никой друг не е запълнил.
Показваш куп инструменти, "за да си полезен". Всеки инструмент натоварва работната памет на модела и увеличава риска. Една задача на сървър и само инструментите, от които тази задача се нуждае.
Даваш на един първи сървър силата да променя неща. Започни само с четене. Покажи ресурси и инструменти за четене. Добавяй всичко, което може да променя или трие, само напълно съзнателно и по едно действие наведнъж.
Свързваш нов сървър директно в реалната си система. Първо го тествай в MCP Inspector. Увери се, че се държи добре и не изпуска данни в пясъчника, преди моделът или който и да било друг да се докосне до него.
WHAT YOU LEARNED
The takeaways
  • Един MCP сървър е малка връзка, която правиш в споделен формат, с който моделът вече знае как да си говори, и е предназначена за инструмент или данни, които нито един готов Connector не покрива.
  • Той предлага до три основни елемента: инструменти (глаголи, действия), ресурси (съществителни, данни за четене) и Prompts (шаблони). На повечето малки сървъри им трябват само едно или две от тях.
  • Избирай елементите според това колко права даваш. Един сървър само за четене предлага ресурси и инструменти за четене, тоест може да гледа, но никога да пипа. Това е безопасното начало по подразбиране.
  • Прави такъв само когато няма Connector и обикновен инструмент в командния ред не би свършил работа. Ограничи го до една задача, защото всеки показан инструмент натоварва паметта на модела.
  • Тествай новия сървър в MCP Inspector, преди да го свържеш наистина, по същия начин, по който правиш Roast Me на един план: намери течовете и бъговете в пясъчника, а не в реалната работа.
Your project · създай връзка

Опиши малък сървър само за четене за една реална липса в твоя Project, и ако си готов, клонирай примера в придружаващото хранилище и го инспектирай. Вече можеш да разшириш достъпа на модела напълно безопасно. Следващата глава разкрива всичко останало, което Claude Code може да прави като платформа за автоматизация: режими за надзор, контрол на контекста и hooks, които карат дадено правило да се изпълнява абсолютно всеки път без изключение.

Един готов Connector е врата, която някой друг е закачил вместо теб. Да си направиш свой собствен MCP значи да се научиш да закачаш врата там, където е имало само стена, като я направиш малка, само за четене и тествана, преди да ѝ се довериш. Точно в това е разликата: едното е просто да ползваш свързания свят, другото е да го разширяваш.