Галоўная / Артыкулы

Серверы MCP стаюць платформамі з можлівасцямі, а не простае пакетаванне інструментаў.

Серверы MCP ператвараюцца ў платформы з рознымі можлівасцямі: трансформацыя інструментаў, пошук, прасторы імен, проксі, навыкі, задачы і версіяванне, а таксама інструкцыі пра тое, калі трэба чакаць.

Выдавец: REACTAPP.TOP21 хв чытання4940 слоў

Крыніцы: Stop Building AI Apps for Every Idea. Start Building MCP Servers — Part #7

Кожны, хто вжыткава выкорыстоўваў сервер MCP у працэсе розработы, ведае, якія ўмовы ёсць неабходныя: чыста працавальныя угоды з інструментамі, структураваныя вхідныя і выхідныя даны, логічна семантыка памылак, аўтэнтыфікацыя, можлівасць стэкхолдараў абсалютваць стан сістэмы, чыстыя межы межы таго, што кантролюецца модэлем, і таго, што з’являецца пад час выканання (ID карыстальніка, тэнант, ролі і дыялогі), автарызацыя пад час выканання, а таксама модэль размешчэння, якая можа масштабавацца. Наступны крок — гэта не новы спосаб перадачы даных чы нешта ўродзе ўзлока, і гэта не прычына перапісваць усю структуру. Рэч у тым, што сервер MCP все больш нагадвае справжню платформу для розработы функцыйоналу, а не просты канцэнтры з калькамі інструментамі.

Разлік стае значным, калі у вас ёсць дзесяткі інструментаў, калькі сервера MCP, калькі каманд, корыстувальнікі з разнымі правамі, разнае програмнае забезпечэнне, дзейніцы, якія працуюць довга, навыкі, якія можна вікорыстоўваць знову, версіі і все больша колькасць кантэксту. У такі моменты пытанне ужо не ў тым, як выклікваць функцыю Python як інструмент. Гэта стае чымса набаго большым:

Як сформаваць, аднайсці, скомпанаваць, кераваць, запусціць, сочыць, тэставаць і развіваць цэлую суперфіцэю можлівасцей, не перакладаючы ўсё гэта на мадэль?

Самэ гэтам кіруецца MCP, і ў рэшце ціх матэрыялаў будзе расказана пра гэта.

Першы сервер MCP і сучасны сервер MCP — гэта разныя рэшткі

Першыя прыклады MCP былі намерна маленькімі. Адзін сервер меў калькі інструментаў:

MCP server
  ├── search_documents
  ├── create_ticket
  └── get_customer

Кліент перыявіў інструменты, мадэль прачытала схемы і выбрала адну з іх, а сервер яе запусціў. Для невялікай структуры такая ментальная мадэль яшчэ падходзіць. Калі ёсць пяць чыста вызначытых інструментоў, адна бэкенд-сістэма, адна команда і адна сцэнарый выкарыстоўвання, не трэба нічога болей складнага.

А цяпер прабуйце застосаваць той самы дызайн у рэальнай корпорацыі:

Salesforce MCP          60 capabilities
GitHub MCP              40 capabilities
Jira MCP                35 capabilities
Google Drive MCP        25 capabilities
Knowledge Base MCP      20 capabilities
Internal Platform MCP   70 capabilities
Reporting MCP           15 capabilities
Admin MCP               30 capabilities

Гэта ўжо не сервер з інструментамі. Гэта экосыстэма можлівасцей. Калі проста з’едыніць усі схемы і надасіць усё гэта модэлю, з’явяюцца тры проблемы: кантэкст знішчаецца ўжо до пачатку задачы, выбір інструмента стае складнейшым, а модэль бачыць можлівасці, якія можуць быць нерэлевантнымі, рызыкавымі або плутанымі для данага корыстніка і данага працэсу.

Гэты тырот вядомы з дыскусый пра безпеку і аналіз, але ён мае шырэйшыя наследкі, якія лёгка занедбаць: каталог інструментаў сам по сабе ёсць інжынерным продуктом. Оозможна яго шукаць, трансфармаваць, фільтруваць і прызначаць імены прастораў. Ён можа быць створаны з прыладоў іншых сервераў і можа містыць повторна вжываемыя навыкі і рэсурсы. Дзеянні могуць на час зупініцца, каб запытаць корыстніка, дзяловыя задачы могуць пераходзіць у фонавы рэжым, контракты можуць мець версіі, а весь каталог можа быць працаваны як будзь-які прылад для працы ў працэсе.

Самэ гэтае эвалюяцыя рассматрываецца ў ніжэйшых раздзелах.

FastMCP — гэта адна з хорашых рэалізацый гэй тэксты, а не сама ідэя

FastMCP практыкуецца ў всіх прыкладах, таму што яго ныячая архітэктура робіць гэтыя патэрны выключна відчутнымі. Прадаўцы супляюць компаненты. Трансфармы зменяюцы выгляд компаненту пры тым, як яго бачыць кліент. Пошук можа заменіць вялічэзны каталог на маленькі інтэрфейс для пошуку. Проксі можу з’едыніць іншыя серверы MCP. Навыкі можу стаць рэсурсамі. Медленныя операцыі можу стаць заданнямі, якія выконваюцца на фоне. Версіі можу існаваць разам. А рэзультатны інтэрфейс MCP можна працаваць праз рэальны кліент, а не шляхом безпасэчнага вызову функцый рэалізацыі.

Гэта корыстна, але урок не ў тым, што «усія павінны вжываць FastMCP». Гэтыя рашэнні ператвараюцца ў повтарна вжываемыя архітэктурныя шаблоны для сістэм MCP. Тыя ж ідэі можна рэалізаваць на Python, TypeScript, Go, C#, Java, Rust чыраўнай платформе, з іншым фрэймворкам, з ручна створанымі элементамі чыраўнай адзначаннем адпаведных функцый чыраўнай адзначаннем адпаведных функцый. Галоўнае — з’явіць, дзе абстракцыя пачынае змішвацца. Протакол стандартызуе спосаб, якім кліенты вярбуюцца з можлівасцямі, тады як архітэктура вашага сервера вялікае, як выглядае ўсё гэта, і гэтае «паверхне» можа стаць набагато розумнейшым, чым статычны спіс дэкораваных функцый.

1. Трансфармацыя інструмента: API задньага канцэлару не павінна автаматычна стаць API агента

Адна з найпрыемнейшых ідэй тут таксама ўзята з найпростыях. Інструмент, які выкладваецца апошнім службам, можа быць тэхнічна правільным, але застаць жахлівым для LLM.

Уявіце сабе внутранню інтэграцыю Salesforce, якая адказвае за гэтую операцыю:

salesforce_account_query_v2_internal(
    q_string,
    include_deleted_flag,
    tenant_uuid,
    raw_fields,
)

У самай службе, якая яе выконвае, такі падпіс можа быць прыемным. Чы гэты мадэль должна бачыць самэ гэтае кантракт? Оядоўжна не. Версія, якая будзе відображацца для модэлю, лепей выглядае так:

find_customer_account(
    company_name,
    include_archived=False,
)

Асалёвая працэзна засталася такой жа. Змяніліся толькі інтэрфейс, які прадстаўляецца модэлю, і гэта ёсць трансфармацыя інструмента.

FastMCP аддае гэта можлівасць за дапамою спецыяльнага шара трансфармацыі: перайменаваць інструмент, перапісаць яго апісанне, перайменаваць аргументы, змяніць стандартныя значэнні, сховаць непатрэбныя аргументы, скорэкаваць тагі і аннотаціі, а таксама заглушыць выконанне за дапамою спецыяльнай логікі. У загальных рысах прабег працы выглядае так:

Backend capability
        ↓
Raw MCP tool
        ↓
Transformation layer
        ↓
Agent-facing contract

Існуе кальк прычыны, якія робяць гэта значным.

У модэлі няма патрэбы ў дэталях інфраструктуры. Поле такія, як tenant_uuid, internal_region, api_version чыста include_deleted_internal_records, належаць до адпаведных функцыйяй бэкэнду. Калі модэлі не трэба выбіраць значэнне, яго трэба абсалютна не включаць у яе схему. Гэта адпавядае правілу рэнтайм-кантэксту: доверлівыя значэнні застаюцца за межамі можлівасцяў і ніколі не прабываюць у аргументах, напісаных модэллю.

Друга прычына — назвы, якія вікорыстоўвае сістэма-джэрэла, можа застацца непазіранымі для агента. Продавець чыста старыя сервісы можа публікаваць операцыі, створаныя для людзкіх распрацоўшчыкаў, што паслужае па-свойму для LLM, які мусі выбіраць сярод 80 інструментаў. Гэйтвей можа запропанаваць болей адчытны слоўнік, не прасіўчы команду-джэрэла перэназываць свой API.

У трохце, контракт агента можа застацься стабільным, паколькі бэкэнд змінюецца. Гэта мае большое значэнне, чым можа здавацца на першы погляд. Калі бэкэнд пераходзіць на новую версію API Salesforce, перэіменавоўвае внутрэшні параметр або ператварае адну операцыю на пару, інструмент, які бачыць мадэль, зовсім не павінен змініцца. Слой трансфармацыі выступае як захоўнік ад змян межаў між тымі, хто выкарыстоўвае можлівасці, і тымі, хто яе рэалізуе. Цэльна звычайная архітэктура програмнага забезпечэння, проста застосаваная тут да інтэрфейсаў, назначаных для агентаў.

Контракт бэкэнда служыць сістэме, якая володзіць данай можлівасцю. Тое, што прыносіць слой MCP, павінна служыць агенту, які яго вызывае.

2. Пошук інструментаў: каталог стае кантэкстам для пошуку

Гэта становіць важнае значэнне, як толькі экасістэма расце. Тыповая першая рэалізацыя выглядае так:

connect to server
    ↓
list all tools
    ↓
put every schema into the model context
    ↓
ask model to choose

Гэта працюе, калі спіс няхітакі, але становіць больш неэфектываў з кожным даданым інструментам. Болей зрэлы падход выглядае так:

small discovery interface
    ↓
search relevant capabilities
    ↓
load only matching schemas
    ↓
execute

Адміністрацыя інструментаў FastMCP ператварае гэю ідэю на рэальнасць. У замест на аддачу цэлаг каталогу, сервер адкрывае сінтэтычныя інструменты для пошуку, такія як search_tools і call_tool. Сёння вікорыстоўваныя вбудованыя стратэгіі — цэ гэта падтрымка рэгулярных выразаў і ранжыраванне за методам BM25. BM25 — гэта лексыкальная сістэма ранжыравання, а не семантычны пошук на аднойце вектараў, але архітэктура не залежыць ад BM25. На вашай сабе платформе ранжыраванне можа выконвацца на аднойце ключоўых слоў, эмбедынгаў, гібрыднаг агента для пошуку з паўторным ранжыраваннем, фільтраў метадаў, статыстык выкарыстання, скораўкі, якія узьліваюць правілы, або індэкса, створанаг спецыяльна для можлівасцей вашай домэны.

Ключовым моментам ёсць тое, што інструменты стаюць об’ектамі, якія можна знайсці. Уместо таго, каб уместыць 300 апісаў інструментаў у кантэкст, модэль можа вызваць search_tools("find customer opportunities and open deals") і атрымаць трохі чыры разы паслядованне, напрыклад salesforce_find_account, salesforce_list_opportunities і salesforce_get_pipeline_summary. Толькі гэтыя схемы пераходзяць да наступнага крока.

Гэта не проста эканомія рэсурсаў. Гэта павышае якасць рашэння, якое прыме модэль. „Выбраць адну з 300 схем“ і „знайсці можлівасці, якія стосуюцца гэтага завадзка, а потым выбраць адны з чатырох адпаведных рэзультатаў“ — гэта аблічна разныя задачы на логіку.

Прагрэсіўнае адкрыцце таксама лягае ва основу падходаў да выканання коду, але пошук інструментаў ёсць корыстны нават тады, калі вы ніколі не запускаеце код, напісаны модэлем, і ён працуе з абычным вызывам інструментаў. Адна з правілаў безпекі павінна быць перанесена з працы з автарызацыяй: трэба шукаць у каталозе, які корыстнік мае право адкрыць, а не ў цэлым каталозе платформы. Калі пад час пошуку праказуюцься назвы і схемы адміністратыўных інструментаў, куды доступ забраны, дакладныя відомасці пра ўмеласці корыстніка выцякаюць, нават калі ў далейшым рэжыме выкананне коду адмовляецца. Таму справжняя ланцоўка праблем патрабуе фільтра автарызацыі прымусова перад самым пошукам.

Уявіце сабе гэта як інжынерыю кантэкста, прыкладзеную да умеласцяў.

3. Просторы імен: складанне стварае проблему ідэнтыфікаціі раней, чым проблему масштабавання

Калі чаліцеся адзінаванне сервераў MCP, адразу ж з’являецца чырвоная проблема: кожны сервер мае стандартныя назвы на кшталт search, get_user, list_files або create_note. Якшто з’едыніць сервер Salesforce, сервер Google Drive, сервер базы знанняй і сервер GitHub, пры чым трохі з іх адкрываюць функцыю search, пачынаецца множыцца вопытанняў. Кальвы search выклікае модэль? Кальвы ён з’являецца ў логах? Кальвы ён падпадае пад правіла політыкі? Кальвы ён змяніўся, калі змяніўся фінгерпрынт схемы?

Самэтна прычына, чаму іменавы прастора маюць значэнне, калі MCP перэстане быць адзінам ізольаваным серверам. FastMCP апранае трансфарматар іменавага прастора, які дадзе прыфікс компанентам пад час ўтварэння, тады search ператвараецца на salesforce_search, gdrive_search, knowledge_base_search і github_search. URI рэсурсаў таксама можна прызначыць іменавы прастор у ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх ўсіх

Але не перэгружайце. Імя на кшталт enterprise_internal_platform_team_alpha_salesforce_v2_search_customer не ўсё толькі лепшае таму, што яно ўнікальна ў всім свеце. Простора імен стварае ідэнтычнасць, але пры трансфармацыі можна заставіць канцэльны інтэрфейс будзе зручным для модэлю. Гэта два супаўзямы, але разныя прыблыжэння:

Source identity
    → Namespace

Agent usability
    → Transformation

4. Візуабельна частка: інжыніерыя кантэксту — не толькі праця з тэкстам

Калі гаворыцца пра інжыніерыю кантэксту, большасць людзей думае пра запросы сістэмы, атрыманыя дакументы, памяць, історыю чату і, можа, апісанні інструментаў. Аднак усе тыя можлівасці, якія можа бачыць мадэль, таксама ўтвараюць частку яе кантэксту.

Возьмімо працэс даследжэння патрэбаў кліентаў. Чым могла бы скорыстацца мадэль з інструментамі на кшталт rotate_api_key, terminate_employee, rebuild_search_index, publish_release і admin_delete_tenant, нават якшо у корыстніка ёсць права на калькі з іх? Ні адны з іх не служыць для выпанавання задачы. Болей чыстыя фарматы моглі б выглядаць так:

Customer Research
  ├── salesforce_find_account
  ├── salesforce_list_opportunities
  ├── knowledge_search
  ├── web_research
  └── generate_customer_report

Рэжым візыбільнасці падчас выканання справляецца з гэтым. Візыбільнасць компанентаў FastMCP дазваляе пераключаць компаненты включанымі чы розключанымі па імені, ключы чы тэгу; недзейны компанент знікае з спісаў і не можа быць аднаведэны праз звычайную суперфіс сервера. Наборы можнасцей, спецыфічныя для рабочых практык, фіч-флагі, разлікі сярод сэрвэраў, інструменты версіі beta, перыяды тыпавага адтварання, продукты, спецыфічныя для корыстнікаў, прафілі агентаў, або проста меньшы прастор для дзеянняў для модэлю — усе гэта выкарыстоўвае той самы механізм:

workflow = customer_research

include:
  salesforce.*
  knowledge_base.*
  reports.*

exclude:
  admin.*
  deployment.*
  hr.*

Разлік з работай працы з безпекай застаецца актуальным: візуабельна частка не ўзаменяе сабой автарызацію. Візуабельна частка адпавядае на пытанне, чыі спакет можлівасцей належыць да тэкучага простору. Автарызацыя адпавядае на пытанне, чы рэальна аўтэнтыфікованая адміністрацыя мае права яго вікорыстоўваць. Хорашая платформа MCP для падпрыемстваў зазвычай выкарыстоўвае і тое, і другое: спачатку скорачае простор, а потым застосоўвае правыя адміністрацыі.

5. MCP-праксі: адны сервер як шлюз да іншых

Тут дызайн становіцца справды цікавым. Сервер не павінен волець кожны спакет можлівасцей, які ён пропонуе; ён можа стаць між іншымі серверамі MCP. Прадаўцу праксі FastMCP дозволяе запрашаць інструменты, рэсурсы і запрошэнні з даўневага сервера MCP і публікуваць іх з тэкучага.

Такім чынам, ствараецца простая ланцюговая структура:

AI client
   ↓
Salesforce MCP

Гэты элемент можа вырастаць у шлюз, які підключае калькольнасць каля калькольнасцяў-джэрэл, і такі шлюз не патрабуе копіюваць жадную бізнес-логіку з іх. Ён праактывае ўсі можлівасці гэтых калькольнасцяў і абгортае іх у платформенскі шар: аўтэнтыфікацыю, правілы, называнне, віднасць, можлівасць адзірвання.

Гэта значныя змены ў спосабе праектавання сістэм: калькольнасці MCP больш не ўжо ёсць аддзельнымі елементамі, а можу складаць сятку. Одна каманда можа кераваць інтэграцыяй з Salesforce, іншая — знаннямі пра праект, а ўсе іншае — аператыўнай часткай інфраструктуры, тады як корпаратыўны шлюз аб’еднвае все ў адну продуктовую паверхню, не прымушваючы каманды вікорыстоўваць спяльны рэпазітарый чы цыкл выпуску.

Проксі таксама маюць свае значэнне ў не такіх ужо й прыгожых сітуацыях: яны з’ўязуюць каналы перэдачы дадзеных, з’яўляюць стабільны канец-пункт перад серверамі, якія постаўляюцься змінамі, централізуюць працэс аўтэнтыфікацыі, спрыяюць крашчаму адстэйканню, застосоўваюць едынакавую політыку, практычна называюць элементы топалогіі і захоўваюць ўсё гэта ад кліентаў.

Усё гэта не значыць, што кожная компанія патрабуе вялікага цэнтральнага шлюза. Можна запускаць калькі проксі, раздзеліўшы іх па домэнах: інжынерыя, прыметкі, даследжэнні, аператыўнае кераванне платформай. MCP забезпечвае протакольныя правілы, якія дазволяюць чыста ўзаўме ўзаўсоўважваць іх.

Калі серверы MCP можу прыймаць і пераформатаваць даны ад іншых сервераў, натуральной ейкавай едынайцэю ў дызайне стае не адзін сервер, а граф спадароўваных можлівасцей.

6. Навыкі як рэсурсы MCP: сервер можа распраўляць знанні, а не толькі дзеянні

Інструменты адказваюць на пытанне, калі што можа зрабіць сістэма. Рэсурсы адказваюць на пытанне, калію інфармацыю можа запрашаць кліент. Навыкі дадаюць трэція пытанне: як агенту следуе выканаць певны тып задання?

Навык зазвычай знаходзіцца ў каталозе: інструкцыі плюс дапаможныя матэрыялы, такія як прыклады, схемы, скрыпты, чарткі, апавяданні чыста інструкцыі па данай галіні. Гэтыя каталогі традыцыйна знаходзіліся ў срэдовышчы кліента, у такіх месцах, як ~/.claude/skills/, ~/.cursor/skills/ чыста ~/.gemini/skills/. Аднак прадаўцы навыкаў FastMCP публікуюць іх як рэсурсы MCP, таму адрэсы навыкаў маюць форму skill://customer-research/...; гэтыя адрэсы включаюць галоўны файл SKILL.md, маніфест, файл з прыкладамі чыста JSON-схему.

Гэта мае большое значэнне, чым можа здавацца, адколькі сервер цяпер можа распространяць процедурныя знанні разам з можлівасцю ўжыцця. Уявіце сабе внутршню платформу для доследжэння патронаў, чыя інтэрфейсна паверхня MCP прыменяе такія інструменты, як search_salesforce, search_knowledge_base і generate_report, а таксама навыкі, якія адбіваюць, як каманда візначае адпаведныя можлівасці, методологію доследжэння, план майбутньага атласу, трэбаванні да доказаў і прыклады якісных атласаў.

Інструмент паведамляе агенту, што ён можа запускаць. Навык паведамляе яму, як ваша організацыя чакае выканання працы. Раздзеленне дапамагае: вам не трэба включаць кожную процедуру адчынення ў адну вялічыню — запрошэнне сістэмы, і вам не трэба вручную копіюваць той самы навык у кожны кліент AI. Кліент, які розумее рэсурсы MCP, можа знаходзіць і запрашваць навык праз той самы протакол, тады як кліент, які мае доступ толькі да інструментаў, все рава можа адчыняць рэсурсы за дапамогою шара адаптацыі, які паказвае іх як вызовы інструментаў.

Сервер MCP можа пакаваць можлівасці, кантэкст і знанні пра адчынення як адну відновімуюся структуру.

7. Запыт: дазволенне можлівасці ставіць запыт корыстніку

Самая простая взаімадзейнасць з інструментамі ўсунутая: мадэль вызывае інструмент, а інструмент вяртае рэзультат. Рэальныя рабочыя працэсы ўжо складнейшыя. Напрыклад, корыстнік прасіць стварыць новая хмарная асяроддзе для праекта аналізу, і інструмент знаходзіць тры правільныя рэгіоны і два профілі размешчэння. Або выявляецца, што запрошаная асяроддзе будзе коштаць апошнейша $420 на месцы. Або з’яўляюцца два акаунты Salesforce з майжэ ідэнтычнымі назвамі. Правы наступны крок не завжды — гадаць. Інодзе сам інструмент павінен запытаць.

Гэта і ёсць ідэя, якая стоіць за методам MCP elicitation. FastMCP мае зручны API для запытання структураваных дадзеных ад корыстніка, але гэты падход належыць да MCP, а не да якога-небудзь конкрэтнага фрэймворка Python.

Спефікацыя MCP 2026-07-28 перэрабатала гэты абмянаванне на адпаведнае модэлю кантэкстна-незалежных протакалаў, выкарыстоўваючы механізм багатых запытоў з вярненням (MRTR), тады як раней ён базаваўся на сесіі, якая заставалася ачытай у обох направленнях. Змяніліся толькі механізмы перэдачы дадзеных. Сама можлівасць застаўся незменнай: серверная операцыя все ўсё можа на час зупініцца у спадзечнасці на ввод дадзеных ад корыстніка ў момент выканання працы. Тыповыя прыклады выкарыстоўвання — адгукаванне неодназначных ентытэў, заполненне нехваткаючых параметраў, паўтарная паўнервацыя дорогіх операцыяў, перагляд створанага кантэнту пры яго публікацыі, выбір цэльнай асяроддзя і поступовы збір структураваных дадзеных.

Хутчэй трэба згадаць пра аспект безпекі: запыт у карыстальніка не ўзначае яго згоды. Калі для выдалення трэбна згода, сама сістэма на бакэндзе павінна зберагаць і стварыць механізм для контролю гэтага статусу згоды. Проста фраза „Вы впэўнены?“ на нейкім простым языку не рашае пытання. Для чутлівых операцый неабходна ўчасць чалавека, які фактычна зменіць статус.

8. Логаванне: корыстна для кліента, але рэальная стэбільнасць сістэмы залежыць ад больш глыбокіх элементаў

Логаванне складаецца з двух разлічных аспектаў. Адным з іх ёсць інформацыя для кліента пра адбыванне операцыі: „Пошук у Salesforce… Знайдзены 18 прыдатных варыянтав… Ствараецца справаздача… Справаздача створаны.“ Іншым аспектам ёсць стэбільнасць сістэмы пад час працы: ідэнтыфікаторы для трэйсу, запыту, адпаведнага корыстніка і арэндніка, а таксама назва інструмента, прадаста, час адкладэння, колькасць праказаў, рашэнне правіл, ідэнтыфікатор задання і код адказу. Іх трэба расследжваць як разлічныя задачы.

FastMCP яшчэ падтрымлее функцыю логавання кліента, калі сервер адправляе спамяненняя, інфармацыйныя, паведамленні пра паўтарынні чысткі або памылкі назад да кліента MCP, які іх падтрымлее. Гэта дапамагае пад час разработкі і дае кліенту можлівасць разумець, што робіць адпаведная функцыя. Але існуе важлівая змяна протакола для 2026 года: сэрвыснае функцыя логавання самога протакола была знята з падтрымкі для новых рэалізацый у MCP 2026-07-28. Таму новыя рашэнні з абзірнасцю працы прыкладнення не должны завісіць ад паведамленняў логавання MCP. Неякія ўжо існуючыя срэдства для абзірнасці працы прыкладнення — структураваныя логі, трэсы OpenTelemetry, метрыкі, Datadog, Grafana і Tempo, CloudWatch, ELK чы ўсё, што ужо выкарыстоўваецца ў вашай організацыі — яны маюць быць выкарыстоўваныя.

Адзін з спосабоў яго рэалізацыі: паведамленні пра статус дазволяюць корыстніку або хосту сочыць за тым, што відбуваецца, тады як тэлеметрыя з баку сервера дапамагае інжынерам, аддзелам безпекі і аператыўнам аддзелам разумець сістэму. У корпаратыўных рэшэнціях другі варыант ёсць неабходным. Адзін запіт корыстніка можа праехаць ад хоста з ШЫ праз шлюз MCP, да сервера, які выступае проксі, да API SaaS і да фоновага працоўніка, і адзін трац-дадзены должны поясніць усю гэтую схему. Чым лёгкая ў проксі-апрацоўцы і складанні ёсць MCP, тым больш значэння мае распраўленая візуалізацыя.

9. Фонавыя задачы: можлівасць можа маты цыкл выканання

Класычныя практыкі выканання задач складаюцца з крокаў запіт, выкананне, рэзультат і прэдпакуець, што вся праца пасляўляецца ў рамках адного запіту. Аднак багатыя можлівасці корпаратыўных сістэм не падходзяць для такога падходу: справаздача кліента, які налічвае 60 стороніц, індэксаванне 20 000 дакументаў, аналіз вялікага сховішча, повна экспортна вынесення даных з Salesforce, стварэнне прэзентацыі з дапаможнымі матэрыяламі, перагляд супакоўнасці з правіламі, вялікія пакеты запісаў. Такія задачы можу выканавацца калькі мінут, патрабаваць павторных спроб, продавацца пасля перыяду без з’ўязку з кліентам, адзвярцаты пра прыбыль у выкананні або выканавацца на іншым працоўніку, чым канцэнтры MCP.

Пашырэнне MCP Tasks дае задачам, якія выканаваюцца дзяўга, адпаведны працэс жыццёвага цыклу, прыродны для протаколу. Функцыя фонавых задач FastMCP чыста адображае гэта: компонент пазначаецца як здатны да выканання задач, кліент атрымлеў керуванне задачай, а выкананне пераходзіць на фонавага працоўніка, які падтрымваецца сістэмай задач, замест таго, каб залішаць первісны запіт відкрытым.

Гэта не адзінаковае з запісываннем asyncio.create_task(...). Механізмы паралельнай працы Python заставляюць выконванне задач выконвацца ў межах вашага працэса, тады калі задача на рэвэлі протакола стварае даговор межа серверам і кліентам для дзейства, якое трывае дзяўно, таму такая задача мае жыцёвы цыкл, які розумее кліент. Іншы пазнака таго, што сервер MCP ператвараецца на цэлую плошчу для прыемленая прыкладнення, а не проста шым для RPC: яго задача — не проста вызваць функцыю і вернуць JSON. Яго таксама можа быць неабходнае запускаць выконванне, зберагаць стан, прадаўаць інфармацыю пра прыбліжны статус, адпрацоўваць запусканнія, вярнуцца пасля неудач і вернуць рэзультат пазней.

10. Версіяванне: калі агенты залежнаць ад вашых інструментаў, схема ёсць API

Кожная успешная внутршняя платформа доходзіць да момента, калі хтось змінюе схему і нарабляе проблемы для корыстніка, пра якога ніхто не ведаў. MCP таксама не ёсць непраблемным.

Падзірцем, версія 1 адпрацоўкі певнай можлівасці ёсць calculate_risk(project_id), а версія 2 стае calculate_risk(project_id, methodology="v2", include_history=True). Калі выразна запусціце новы контракт для всіх агентаў і кліентаў адразу, то будзе здабыта змяна API, якая пашкодзіць працэсы.

Сістэма версіявак компанентаў FastMCP дазволяе кількам рэалізаціям аднаго інструмента, рэсурса чыя прыказаў працаваць пад аднім логічным ідэнтыфікаторам. Па значэнню стандарту сервіруецца высокаяя версія, а фільтры версій дазволяюць стварыць адзінаковыя варыянты для конкрэтных кліентаў чыя перыодаў міграцыі.

Большэйшая архітэктура мае большое значэнне, чым конкрэтны API. Калі MCP стае спільной інфраструктурой, яе развіцце трэба рассматрываць так сама, як і будзь-яі контракт на публічныя послугі. Калія змяны вызвалі проблемы? Калія кліенты ўсё яшчэ вікорыстоўваюць версію v1? Чы можа v1 і v2 працаваць паралельна, і як дзяўно мае трываць перыод міграцыі? Калія версія апраўнана для практычнага вікорыстоўвання, хто можа яе бачыць, і у калій момент старая версія будзе знята з вярткаў? Корыстны корпаратыўны рэжыстр могаў бы ведаць назву інструмента, прадаўца, версію, ідэнтыфікатор схемы, власніка, клас рызыку, дату і адказнае прызначэння апраўнення, а таксама дату зняцья з вярткаў.

Для сервера з пяцьма інструментамі гэта можа здавацца занадта. Для платформы, якая обслужвае 20 каманд, — ні.

Як толькі іншая сістэма пачне выкарыстоўваць вашу схему MCP, яна стае API, незалежна ад таго, чы мае ёй назву чы ні.

11. Тэставанне: пераканацца ў справнасці MCP, а не толькі функцыі на Python

Тэставанне — гэта самы неяскравы элемент у гэтым падзе, але, можа, і самы важны. Уявіце, калі гэта функцыя працуе без жадных проблем:

async def find_customer(company_name: str):
    ...

Нават так, сервер MCP можа быць зламаным, прычына якога можа знаходзіцца ў любой частыне той функцыі: шымат, створаны некорэктна, апісанне, якое вводзіць у глухар, прыемнік, які практычна скрыў неправільны аргумент, прастор імен, які таямна перайменаваў інструмент, візыбільнасць, якая адкрывае адміністратыўныя можлівасці, фільтрацыя автарызацыі для неправільнага корыстніка, проксі, які не перадае паролі, шар пошуку, які не можа знайсці інструмент, фільтр версіі, які выдае v1, калі патрэбна была v2, выходны даныя, які не падходзіць па сваёй структуры, або фонавая задача, якая ніколі не доходзіць да заканчальнага стану.

Самэй таму крашчай прычынкай ёсць тэставанне самай суперфісу MCP. Кераванне тэставанням у FastMCP запускае рэальны кліент проты сервера ў межах процэса, таму можна тэставаць працэс праймету без запуску окольнічага сервісу. У працоўку замест тэставання толькі рэалізацыі:

result = await find_customer("Acme")
assert result

Таксама пераканацце, што насправды бачыць корыстнік MCP:

async with Client(mcp) as client:
    tools = await client.list_tools()

    assert "salesforce_find_customer" in {
        tool.name for tool in tools
    }

    result = await client.call_tool(
        "salesforce_find_customer",
        {"company_name": "Acme"},
    )

Для платформы здольнасці да вырабоцтва прынеймна чатыры шары патрабуюць тэставання.

Контрактныя тэсты пераканальваюць, чы роўнасці імены інструмента, яго апісання, схемы вхідных і выходных дадзеных, аннотацыі і версіі паспаўляюць аспектам спадзяванняў.

Тэсты адкрыцця выявляюць, якія інструменты можа бачыць пэўны корыстнік і пэўны прабег задання, а якія застаюцца закрытымі, чы пошук знаходзіць правы інструмент, і чы не можа ў збылку апынуцца доступ да забраных інструментаў.

Тэсты выканання пераканальваюць, чы вызов успехоўны, чы памылкі структураваны правільна, чы праказы ў безпекі, чы проксі перадаюць правы ідэнтыфікатор, і чы автарызацыя прабывае зноў у час выканання.

Тэсты жыцёвага цыклу выявляюць, чы заданні на фоне завершаюцца чы ствараюць проблемы, чы іх можна анулюваць, чы міграцыя версій заставляе старыя кліенты працаваць, і што адбываецца, калі сервер MCP вышае з працы.

Нічыя з гэтых рэчаў не являецца тэставаннем фрэймворку. Гэта тэставанне вашага дактара пра продукт. Калі MCP стане шаром можлівасцяў для кальколькі кліентаў і агентаў, гэты дактар заслуговае на тую ж аддысцыпліну, якую вы прыкладзаеце да REST, gRPC чы ўсілякіх інтэрфейсаў, заснованых на запуску запісаў.

Склікайце всі элементы, і сервер будзе выглядаць зусім інакш

Як толькі аб’еднаныя всі гэтыя ідэі, утвараецца сістэма, якая керуе аднаходжэннем рэсурсаў, маршрутызацыяй, адаптаваннем інтэрфейсаў, кантролем кантэкста, правіламі, інтэрактыўнымі рабочымі пракцэсамі, асінхронным выкананнем, перадаўальнымі знаннямі, сумеснасцю і цэлым жыццёвым цыклам інжынернага праектавання. Гэта ўжо давно перастаў быць проста серверам з кальколькімі інструментамі — гэта ўсё ўзмацнены прыемнік продукту. Што ўжо лепш, нічыя з гэтых рэчаў не вымагае, каб продавець модэлю володзіў бізнес-логікай, адтуды што тая ж платформа можа працаваць за будзь-кім з хостаў, сумесных з MCP, якія выберэ арганізацыя. Гэта і ёсць стратэгічна важлівая частка.

Частыя способы оптымізацыі адбываюцца ўсё раней, чым мадэль бачыць хоць што-небудзь

Большасць дыскусый пра карыстнасць AI сфокусаваны на самай модэлі: якая саме, скількі параметраў, які розмер вікна кантэксту, насколькі хораша яе здатнасць да логічных выводам. Гэтыя факты маюць значэнне, але ў практычным выкарыстоўванні архітэктура, якая абрамляе модэлю, можа пазбавіць яе вельмі вялікай колькасці непатрэбной працы.

Спадзяймося, ў платформе ёсць 300 інструментаў. У простым падходзе всі 300 схемаў падаюцца ў кантэкст LLM, і спадзяюцца, што ён правільна ўжо выберэ. У рэштытэльным падходзе выбіранне вадзіцца паэтапна: спачатку за дапамогою правіл скарачваецца колькісць інструментаў з 300 да 85, пасля — за дапамогою аналізу рабочага прыема — да 24 актуальных. Пошук даходзіць да 4 кандыдатаў, і толькі гэтыя 4 схемы завантажуюцца для фінальнага выбору модэлі.

Мадэль не стала розумней. Сістэма стала розумней. Гэта важны чыннік, чаму такія патэрны маюць значэнне ў практычным выкарыстоўванні. Кантэкст скарочваецца, точнасць выбору падымаецца, нерэлевантныя дзеянні зменшуюцца, правыя на адзначэнне стаюць яснейшымі, контракты бэкэнду не вплываюць у мадэль, а незалежныя каманды можаць ствараць код без злічынення, і ўсё гэта да таго, як ад LLM будзе запатранае рассудзіць пра сваё наступнае дзеянне.

Хорашая архітэктура агента не заканчываецца толькі падымленнем спроможнасці мадэлі да рассуджэння. Яна таксама формуе матэрыял, пра які мусі рассуджваць мадэль.

З аднаго сервера MCP да сеткі такіх сервераў

Для корпаратыўных сістэм самэ гэта места, дзе эвалюцыя становіцца сапраўдзіцца цікавай. Пачатковая версія выглядала так:

AI client
    ↓
MCP server
    ↓
API

Наступны элемент выглядае як вораты ў цэнтры, за якімі знаходзяцца серверы домэнаў і працоўнікі. Кожны сервер MCP застаецца сфокусаваным, кожная команда керуе сваім домэном, а кожны сервіс выкананы за сае власны графік. Вораты ствараюць адпаведную паверхню для кожнага карыстальніка, мадэль знаходзіць толькі тое, што ёй патрэбна, дзейніця длігага рабочага працэсу ператвараецца на заданне, а навык навчае агента таму, як компанія чакае, што рабочы працэс будзе выкананы, пры чым усё застаецца доступным праз межы MCP.

Гэта значна больш супамінае платформу дыстрыбуіраваных прыемоў, чым скупку функцыйных абгортакаў, і самэ гэта прычына, чаму называнне сервераў MCP «толькі інструментамі для LLM» все больш недаўерна адображае тое, каму яны ператвараюцца.

Не ствараюце платформу, пакуль не з’явіцца проблема платформы

Апэкс чытны. Пасля прачытання всьго гэтаго можна было бы выйсці да заключэння, што внутранній сервер, які выконвае пяць функцый, патрэбуе трох гейтвэяў, рэжыстрару можычнасцяў, возможнасці пошуку сярод схемаў інструментаў, калькі назв прастораў, пераговораў пра версію пад час выканання, распадзеланай канвеі для заданняў, рынку навыкаў і дзесятка трансфармацый.

Прашам, не робіце гэтага.

Сервер з шасцьма стабільнымі інструментамі, якія павінны бачыць усі корыстувальнікі? Проста адправіце тыя шасць. Калі схема бэкенду вялікі час яўляецца чыстай, не дадавайце трансфармацыю толькі таму, што якая-небудзь фрэймворк яе падтрымлівае. З аднім серверам няма патрэбы ў топалогіі проксі. Калі аперацыя завершаецца за два секунды, яна, верагодна, не патрэбуе задання. Калі ніхто больш не вжывае версію v1, няма прычыны заставляць две версіі існаваць вечна.

Архітэктура павінна стварыцца як адказ на проблему, а не навпаку. Мета не ў тым, каб максымізаваць колькасць функцыяй фрэймворку ў вашым рэпазітарыі. Гэта тады, калі проблема справды з’являецца, MCP больш не змушвае вас ствараць абсалютна індывідуальную платформу ІІ для ўсунення яе. Экасістэма цяпер запрошвае перадпрацаваныя елементы для рашэння тых сябе проблем, з якімі сталкаецца кожная зрэлая платформа для прыемлень, і гэта ўжо прынцып прогрэсу.

Фрэймворк можна заменіць; важліва архітэктура

FastMCP заслуговае на пахвалу за тое, што адгрупавае багато з гэтых ідэй у аднам месцы. Яго дасягі дэтальна расказваюць пра прадаўцоў, трансфармы, пошук, называнне простора, віднасць, проксі, навыкі, выявленне інформацыі, задачы, версіі і тэсты, што дапамагае лёгка адразумець, як адна частка сервера MCP выступае ў зв’язку з іншымі. Некалькі з гэтых патэранаў вжываюцца ў практыцы, таму што яны рашаюць рэальныя проблемы: зменшэнне кантэксту інструмента, аддзеленне контрактаў, якія працуюць з мадэлямі, ад тых, якія працуюць з бэкэндам, обмежэнне колькісці доступных можлівасцей, адзінаванне інтэграцый і стварэнне такой структуры, якая лёгка кераваць.

Тымы все ж такі должны пераняць саму ідэю, а не API бібліятэкі. Задайце сабе: чы рэальна нам падтрымка для пошуку інструментаў за запітам? Слой трансфармацыі, прызначаны для модэляў? Шлюз можлівасцяў? Візуабілізацыя, спецыяльная для прабегу працы? Навыкі, распадзеленыя праз рэсурсы MCP? Надзеяна жыццёвая шляха для дугіх операцый? Контракты можлівасцяў у версіях? Чы мы тэстуем тое, што на самай працоўніцы бачыць кліент? Пасля чаго ствараюце рашэнні на адпаведным фрэймворку, які падходзіць вашай організацыі.

Пратакол забезпечвае взаімадзейнасць. Фрэймворк дае зручнасць. Архітэктура застаецца вашай.

Што змянілася

Найважлівэйшыя змяны ў MCP не ў аднойчы большым спіску функцыяй. Гэта пашырэнне сферы таго, што ад сервера MCP чакаюць. Спачатку картына была простая: публікуецца інструмент, мадэль яго запускае, і прыходзіць рэзультат. Мадэль, якая зараз формуецца, включае можлівасці запошчання дадзеных з калькольных сістэм, нормалізацію ўмоваў ўзаінтэрэксу, стварэння ідэнтыфікатораў, фільтрацію па рэлевантнасці, автарызацію таго, што дазволена, пошук інформацыі ў вялікіх каталогах за патрэбай, розпадзел відновімых навыкаў і кантэксту, ставленне запытанняў да корыстніка, калі патрэбна выбор, пераклад слабкага выканання на стойкое, адстэйканне за весь пацёк, версіяванне умоваў і тэставанне продукту як рэальнага товару.

Гэта зусім іншая праца. MCP навмысна застаецца протаколам, а не фрэймворкам для стварэння аплікацыяў, але экасістэма, якая яго абгрунтавае, прыводзіць да таго, што серверы MCP стаюць сэрьёзным рынкам для аплікацыяў, дзе можна ствараць шары для маршрутызацыі, керавання, жыцёвага цыклу, сумеснасці і складання, так як гэта робіцца у зрэлых бэкендах.

Якісна створаны сервер MCP больш не ўсьмо толькі спосаб прыдадзення ўсталенай ЛММ ўсё новай функцыі. Ён можа стаць продуктом з можлівасцямі, які можна вікорыстоўваць занова, і які служыць агентам, мадэлям, командам і кліентскім аплікацыям. Одын сервер можа застацца маленькім, а сетка такіх сервероў можа выраснуць у корпаратыўную платформу. Мадэль застаецца гнучкай, шар можлівасцяў застаецца пад кераваннем, а кліент, які працюе над ягою, можна заменіць без перзастроек базовых бізнес-функцыяй.

Спадні матэрыялы

  • Дзесяць сервераў MCP, якія варта ўстановіць першыяя, па прыорытэтнасці для распрацоўшчыкаў — Спіс сервераў MCP для дапаможнікаў у програмаванні на AI, ад Context7 і GitHub да Postgres і memory, з настройкамі установкі і паведамленнямі пра абавязковыя заходы безпекі.
  • Двойная сістэма OAuth для шлюзоў MCP: захаванне ідэнтычнасці карыстальніка — Чаму шлюзы MCP не должны аб’еднаваць кожны вызов у адны акаунт службы, і як внутршняя верыфікацыя паўнаравана з зовнішнім абмянам дадзеных дапамагае заставіць карыстальнікаў адпаведальнымі.
  • Практычныя прытамулы: Змена парадыгмы UI/UX — A2UI, AG-UI, MCP-прыграмы і Web MCP — Паследовыя інструкцыі па вікорыстоўванні Практычных прытамулов: Змена парадыгмы UI/UX — A2UI, AG-UI, MCP-прыграмы і Web MCP: контракты, перакананні і шаблоны коду для команд, якія рэалізуюць гэты патэрн.
  • Энцыклапедыя ведаў Web-to-MCP: Рэжыстры выканання, два крытыка і захаванне прыватнасці — Як рэжыстры выканання, храненне дадзеных першым, два крытыка для рэдагавання і сервер MCP толькі для чытання ператвараюць ўсё новае на вебе ў надзеяны, захаваны прыватнасцю базу ведаў.