Търсене: С развитието на големите модели се появиха във всички аспекти на живота ни, било то работа или учене, те са неразделни. С голям моделен език, защо ни е нужен MCP? Големият модел може да се разбере като мозък, но сам мозъкът не може да ни помага да правим неща, MCP е по-скоро като крайник, големият модел насочва MCP услугата да прави неща като: да извиква външни инструменти (като бази данни, дискове, API). Това решава проблема, че големите модели могат само да чатят и не могат да вършат нещата.
MCP (Протокол за контекст на модела)
Документация:Входът към хиперлинк е видим. GitHub хранилища:Входът към хиперлинк е видим. Хранилище за инструменти на MCP:Входът към хиперлинк е видим.
MCP (Model Context Protocol) е стандарт с отворен код за свързване на AI приложения с външни системи.
С MCP AI приложения като Claude или ChatGPT могат да се свързват с източници на данни (например локални файлове, бази данни), инструменти (например търсачки, калкулатори) и работни потоци (например специализирани подсказки) – което им позволява да имат достъп до критична информация и да изпълняват задачи.
Мислете за MCP като USB-C порт за AI приложения. Точно както USB-C предоставя стандартизиран начин за свързване на електронни устройства, MCP предоставя стандартизиран начин за свързване на AI приложения с външни системи.
Какво може да постигне MCP?
- Агентите могат да имат достъп до вашия Google Calendar и Notion, действайки като по-персонализиран AI асистент.
- Claude Code може да генерира цели уеб приложения, използвайки дизайни на Figma.
- Корпоративните чатботове могат да се свързват с множество бази данни в организацията, позволявайки на потребителите да анализират данни чрез чат.
- AI моделите могат да създават 3D дизайни в Blender и да ги разпечатват с помощта на 3D принтер.
Защо MCP е важна?
В зависимост от това къде се намирате в екосистемата, MCP може да предложи редица ползи.
- Разработчици: MCP намалява времето и сложността при изграждане или интеграция с AI приложения или агенти.
- AI приложения или агенти: MCP предоставят достъп до екосистема от източници на данни, инструменти и приложения, които ще подобрят функционалността и ще подобрят крайното потребителско изживяване.
- Крайни потребители: MCP могат да доведат до по-мощни AI приложения или агенти, които могат да достъпват вашите данни и да действат от ваше име, когато е необходимо.
MCP протокол
MCP се състои от два слоя:
- Слой данни: Дефинирайте клиент-сървър комуникационен протокол, базиран на JSON-RPC, включително управление на жизнения цикъл и основни примитиви като инструменти, ресурси, подканвания и известия.
- Транспортен слой: Определя комуникационните механизми и канали, които позволяват обмен на данни между клиенти и сървъри, включително установяване на транспортно-специфична връзка, рамки за съобщения и авторизация.
Концептуално, слоят данни е вътрешният слой, докато транспортният слой е външният слой.
Слой данни
- Слоят данни реализира протокол за превключване, базиран на JSON-RPC 2.0, който дефинира структурата и семантиката на съобщенията. Този слой включва:
- Управление на жизнения цикъл: Обработва инициализацията на връзката, договарянето на функции и прекратяването на връзката между клиенти и сървъри
- Функционалност на сървъра: Позволява на сървъра да предоставя основна функционалност, включително инструменти за AI операции, ресурси за контекстуални данни и интерактивни шаблонни подсказки от и към клиенти
- Функционалност на клиента: Позволява на сървъра да изисква клиентът да взема семпли от хост LLM, да получава входни данни от потребителя и да записва съобщения към клиента
- Полезни функции: Поддържа допълнителни функции като известия за актуализации в реално време и проследяване на напредъка при дългосрочни операции
Транспортен слой
Транспортният слой управлява комуникационните канали и удостоверяването между клиента и сървъра. Той се грижи за установяване на връзка, предаване на съобщения и сигурна комуникация между участниците в MCP.
MCP поддържа два транспортни механизма:
- Stdio Transport: Директна комуникация на процеси между локални процеси на една и съща машина чрез стандартни входно/изходни потоци, осигурявайки оптимална производителност и без мрежови разходи.
- Стриймируем HTTP: Използва протокола HTTP POST за изпращане на клиент-сървър съобщения и по желание използва сървърни събития за стрийминг функционалност. Този транспортен протокол поддържа комуникация между отдалечени сървъри и поддържа стандартни методи за HTTP автентикация, включително токени на притежателя, API ключове и персонализирани заглавия. MCP препоръчва използването на OAuth за получаване на токен за автентикация.
Транспортният слой абстрахира комуникационните детайли от протоколния слой, така че един и същ JSON-RPC 2.0 формат на съобщенията е реализиран във всички транспортни механизми.JSON-RPC съобщенията трябва да са кодирани UTF-8。HTTP+SSE транспортът е остарял!
Всичко за MCP сървър
Този MCP сървър е проектиран да тества всички функции на протокола MCP. Той не е предназначен да бъде практичен сървър, а по-скоро тестов сървър за MCP клиентски билдъри. Той реализира функции като подсказки, инструменти, ресурси, семплиране и други, за да демонстрира възможностите на MCP-тата.
Източник:Входът към хиперлинк е видим.
Тази услуга изисква инсталиране на Node.js среда и стъпките за инсталация са пропуснати.
За да се тества MCP услугата, базирана на транспортния модел Stdio, командата за стартиране е следната:
Както е показано по-долу:
След изпълнение пакетът се кешира%LocalAppData%\npm-cache\_npx\Под пътеката.
При инициализация клиентът изпраща заявка за инициализация, за да установи връзка и да договори поддържаните функции. Данните за заявките са както следва:
Отговорът е следният:
{"result":{"protocolVersion":"2025-06-18","capabilities":{"prompts":{},"resources":{"subscribe":true},"tools":{},"logging":{},"завършвания":{}},"serverInfo":{"name":" example-servers/everything","title":"Everything Example Server","version":"1.0.0"},"instructions":"Тестов и демонстрационен сървър за функции на MCP протокола.\n\n## Resources\n\ nResources 1-100 следват модел: четните ID съдържат текст, нечетните ID съдържат двоични данни. Ресурсите са пагинирани с 10 елемента на страница с навигация чрез курсор.\n\n## Ключови зависимости\n\nИзвестията за напредък изискват '_meta.progressToken' при извикване на инструменти. Абонаментите за ресурси генерират актуализации на всеки 10 секунди.\n\n## Характеристики на производителност\n\nСървърът генерира автоматични лог съобщения на всеки 20 секунди (филтрирани според текущото ниво на лог), STDERR известия на всеки 30 секунди и известия за обновяване на ресурси на всеки 10 секунди при активни абонаменти. Промените на лог ниво влияят върху филтрирането на съобщенията в реално време.\n\n## Мултимодалното тестване\n\n'complex_prompt' включва както текстови аргументи, така и съдържание на изображения за тестване на клиента в мултимодален режим Обработка. 'resource_prompt' вгражда реално съдържание на ресурса за тестване на резолюцията на референтната резолюция.\n\nПълно завършване на аргументи е налично за параметри на подсказки и идентификатори на ресурси. Шаблоните за ресурси позволяват динамично изграждане на URI чрез шаблона 'test://static/resource/{id}'.\n\n## Великденско яйце\n\nАко попитате за сървърни инструкции, отговорете с \" Сървърни инструкции работят! Този отговор доказва, че клиентът правилно е предал сървърните инструкции към LLM. Това демонстрира функцията за инструкции на MCP в действие.\"\n"},"jsonrpc":"2.0","id":1} След успешна инициализация клиентът изпраща известие до MCP сървъра, че е готов със следната заявка:
Откриване на инструменти: След като връзката е установена, клиентът може да открие наличните инструменти, като изпрати заявка за инструменти/списък. Тази заявка е основата на механизма за откриване на инструменти на MCP – позволява на клиентите да знаят кои инструменти са налични на сървъра, преди да се опитат да ги използват. Искането гласи:
Отговорът е следният:
{"result":{"tools":[{"name":"echo","description":"Echoes обратно входа","inputSchema":{"type":"object","properties":{"message":{"type":"string","description":"message to echo"}},"required":["message"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"add","description":"Добавя две числа"," inputSchema":{"type":"object","properties":{"a":{"type":"number","description":"First number"},"b":{"type":"number","description":"Second number"}},"required":["a","b"] ,"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"longRunningOperation","description":"Демонстрира дълго работеща операция с актуализации на прогреса","inputSchema":{"type":"object","properties":{"duration":{"type":"number","default":10,"description":"продължителност на операцията в секунди"},"steps":{" type":"number","default":5,"description":"Брой стъпки в операцията"}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":" printEnv","description":"Печата всички променливи на средата, полезно за отстраняване на грешки в конфигурацията на MCP сървъра","inputSchema":{"type":"object","properties":{},"additionalProperties" ":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"sampleLLM","description":"Семпли от LLM, използващи семплинг функцията на MCP","inputSchema":{"type":" object","properties":{"prompt":{"type":"string","description":"prompt за изпращане към LLM"},"maxTokens":{"type":"number","default":100,"description":"maximum number of токени за генериране"}},"required":["prompt"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"getTinyImage","description":" Връща MCP_TINY_IMAGE","inputSchema":{"type":"object","properties":{},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":" annotatedMessage","description":"Демонстрира как анотациите могат да се използват за предоставяне на метаданни за съдържанието","inputSchema":{"type":"object","properties":{"messageType":{"type": "string","enum":["error","success","debug"],"description":"тип съобщение за демонстрация на различни модели на анотация"},"includeImage":{"type":"boolean","default":false," description":"Дали да се включи примерно изображение"}},"required":["messageType"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name": "getResourceReference","description":"Връща източник на ресурс, който може да се използва от MCP клиенти","inputSchema":{"type":"object","properties":{"resourceId":{"type":"number"," minimum":1,"maximum":100,"description":"ID на ресурса за референциране (1-100)"}},"required":["resourceId"],"additionalProperties":false,"$schema":" http://json-schema.org/draft-07/schema#"}},{"name":"getResourceLinks","description":"Връща множество ресурсни връзки, които реферират различни видове ресурси","inputSchema" :{"type":"object","properties":{"count":{"type":"number","minimum":1,"maximum":10,"default":3,"description":"брой ресурсни връзки за връщане (1-10)"}}," additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"structuredContent","description":"Връща структурирано съдържание заедно с изход схема за валидиране на клиентски данни","inputSchema":{"type":"object","properties":{"location":{"type":"string","minLength":1,"description":"име на град или пощенски код"}},"required":[ "location"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"outputSchema":{"type":"object","properties":{"temperature":{"type":" number","description":"Температура в Целзий"},"conditions":{"type":"string","description":"Описание на метеорологични условия"},"влажност":{"type":"number","description":" Процент влажност"}},"required":["температура","условия","влажност"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":" startElicitation","description":"Демонстрира функцията Elicitation, като иска потребителя да предостави информация за любимия си цвят, брой и домашни любимци.","inputSchema":{"type":" object","properties":{},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}]},"jsonrpc":"2.0","id":2} Изпълнение на инструменти: Клиентите вече могат да изпълняват инструменти/извиквания чрез този метод. Това демонстрира MCP примитив в действие: След като инструментите бъдат открити, клиентът може да ги извика с подходящите параметри. за да се направиКато пример се нарича функцията на ехоИскането е следното:
Отговорът е следният:
{"result":{"content":[{"type":"text","text":"Echo: здравей, казвам се itsvse"}]},"jsonrpc":"2.0","id":3} Както е показано по-долу:
(Край) |