Как настроить сервер протоколов контекста модели

В этом посте мы пройдемся через настройку протокола протокола контекста модели (MCP). На данный момент MCP — это Defacto, чтобы общаться между моделями LLM и инструментами разработчиков. Вы можете прочитать нашу более глубокую учебник по разработчике MCP для получения более подробной информации, но этот пост не предполагает этого знания.

Я собираюсь предположить, что вы установили Claude Code, хотя я просто использую его в качестве LLM, который находится в терминале, что позволяет легко играть. Вы все еще можете следовать за ними.

Почему MCP?

Основная идея состоит в том, чтобы сохранить связь между ИИ и инструментом разработчика отдельно. В сценарии инструментов, который я объясняю ниже, что является просто методом Python, расположенным на своем собственном локальном сервере, все, что я сделаю, это возвращает секретное слово. Конечно, это использует сервер для управления контекстом, потому что LLMS не знает, что существует в вашем местном мире, если только вы не скажете им. И, конечно, мы хотим убедиться, что мы контролируем эту способность.

Учитывая, что Anpropic создал MCP, вы можете подумать, что другие поставщики LLM попробуют свои подобные идеи. Мы знаем, что такое Microsoft с его тенденцией расширять, обнимать и потушить, но кажется, что другие поставщики начали поддерживать MCP.

Как и большинство соединительных тканей, MCP, вероятно, будет поглощаться в других инструментах с течением времени. Так что, если это станет действительно успешным, вы больше не будете знать об этом.

Знай свой транспорт

В нашем праймере для разработчиков для MCP мы отметили разницу между двумя протоколами — stdio, что означает стандартный ввод/вывод, а также SSE (теперь транспорт потока), что больше для Интернета. Наш инструмент — это просто простой инструмент интерфейса командной строки (CLI), поэтому он использует этот более простой протокол Stdio. Под «простым» мы имеем в виду, что все локально запускают без дополнительных зависимостей.

Наш сервер и инструмент MCP

Во -первых, создайте знакомую среду Python. Я делаю это на своем MacBook:

Нам также нужно установить библиотеки MCP:

Я позвоню в сценарий Server.pyПолем Он объединяет сервер и инструмент:

#!/usr/bin/env python3 from mcp.server.fastmcp import FastMCP import time import signal import sys # Handle SIGINT (Ctrl+C) gracefully def signal_handler(sig, frame): print(«Shutting down server gracefully…») sys.exit(0) signal.signal(signal.SIGINT, signal_handler) # Create an MCP server with increased timeout mcp = FastMCP( name = «Secretword», host = «127.0.0.1», Port = 5000, # добавить это, чтобы сделать сервер более устойчивым тайм -аутом = 30 # Time -Out Timeout до 30 секунд) # Определите наш инструмент @mcp.tool () def Secretword () -> str: «» «Retuen the Secret Word» «Попробуйте: return» Abracadabra, за исключением исключения, как # # # etron on rer on rer on rer on rer on erer erer on erer on erer on erer en on erer on erer on » «__main__»: попробуйте: print («« Секкретный слово «запуск сервера» на 127.0.0.1:5000 ») # Используйте этот подход, чтобы сервер работал за MCP.RUN (), за исключением Exception, как E: print (f {5). 123456789101112131415161718192021222324252627282930313233343536373839404142 #!/USR/bin/env Python3 от Sysmint Sysport # sysportmport # sysportmport # #ServerMIGINTMIGIMPOORPIMPOORPIMPOORPIMPOORP #SORMINTIMPORPIMPOORT #SORTIGIMPOORT #SORTIMPOORPIMPOORPIMPOORT #SORTMIGIM (Ctrl+C) GracetulyDef signal_handler (sig, frame): print («Сервер выключения изящно …») sys.exit (0) signal.signal (signal.sigint, signal_handler) # Создать сервер MCP с повышенным временным интерфейсом = 5000. Увеличьте тайм -аут до 30 секунд) # Определите наш инструмент @mcp.tool () def secretword () -> str: «» «restuen the secret word» «» try: return «abracadabra» За исключением исключения как e: # return 0 на любую ошибку return «» if __name__ == «__main__:« Попробуйте: «Запуск сервера MCP». Запуск mcp.run () За исключением исключения как e: print (f «ошибка: {e}») # спать перед выходом, чтобы дать время для журналов ошибок. Sleep (5)

Хорошей частью этого является обработка исключений, поэтому наш интерес находится только в 15 строках. Мы используем FASTMCP для определения того, что будет простым сервером, работающим на порте 5000. Мы обрабатываем CTRL-C через обработчик сигнала. Кроме этого, наше секретное слово для инструмента — это просто метод, который возвращает слово «абракадабра». Я адаптировал это из Gist Mberman84. Я ожидаю, что вы можете сделать что -то более существенное, но это доказывает, что вы также можете сделать это простым.

Вы можете проверить его, запустив напрямую:

Правильно, остановите это и вернемся к Claude Code и расскажем о нашем фантастическом новом сервере MCP. Ой, подождите, одна вещь: давайте убедитесь, что файл сервера может быть запущен непосредственно Claude:

Разговор с Клодом

После установки Claude Code он должен быть доступен в вашей оболочке. Нам придется каким-то образом сообщить Клоду о моем новом сервере и названии моего инструмента секретного слова.

Прежде всего, давайте проверим, что Клод вообще узнает MCP:

Хорошо, мы можем использовать этот совет, чтобы добавить наш сценарий Python, поскольку мы знаем, что он может действовать как сервер MCP:

Это круто.

Хорошо, давайте запустим Клод (с отладкой) и посмотрим, как мы идем:

У нас есть только один метод, секретное слово, и он связан с этим.

Большой. Но давайте на самом деле попросим Клода владеть нашим могущественным инструментом:

Там мы пойдем. Это не надежный, поэтому код отладки в красном может помочь нам с проблемами. Кроме того, они могут сообщать о проблемах, которые не влияют на нас.

Заключение

Большинство старших разработчиков признают, что это все еще довольно рано в цикле протокола, поэтому, вероятно, будут изменения — я отметил выше, что другой протокол, SSE, был устарел в прошлом месяце. Итак, Грок пока принципы; Это, вероятно, будет поглощено библиотеками в будущем.

Trending Stories youtube.com/thenewstack Tech движется быстро, не пропустите эпизод. Подпишитесь на наш канал YouTube, чтобы транслировать все наши подкасты, интервью, демонстрации и многое другое. Группа подпишитесь с эскизом. Дэвид был лондонским профессиональным разработчиком программного обеспечения в Oracle Corp. и British Telecom, а также консультантом, помогающим командам работать более гибким образом. Он написал книгу по дизайну пользовательского интерфейса и с тех пор пишет технические статьи …. Подробнее от Дэвида Истмана

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *