Тази директория съдържа пълни, работещи примери за MCP клиенти на различни програмни езици. Всеки клиент демонстрира пълната функционалност, описана в основния урок README.md.
- Транспорт: SSE (Server-Sent Events) през HTTP
- Целеви сървър:
http://localhost:8080 - Функции:
- Установяване на връзка и ping
- Списък с инструменти
- Операции с калкулатор (събиране, изваждане, умножение, деление, помощ)
- Обработка на грешки и извличане на резултати
За изпълнение:
# Ensure your MCP server is running on localhost:8080
javac client_example_java.java
java client_example_java- Транспорт: Stdio (Стандартен вход/изход)
- Целеви сървър: Локален .NET MCP сървър чрез dotnet run
- Функции:
- Автоматично стартиране на сървъра чрез stdio транспорт
- Списък с инструменти и ресурси
- Операции с калкулатор
- Парсиране на JSON резултати
- Изчерпателна обработка на грешки
За изпълнение:
dotnet run- Транспорт: Stdio (Стандартен вход/изход)
- Целеви сървър: Локален Node.js MCP сървър
- Функции:
- Пълна поддръжка на MCP протокола
- Операции с инструменти, ресурси и подканвания
- Операции с калкулатор
- Четене на ресурси и изпълнение на подканвания
- Надеждна обработка на грешки
За изпълнение:
# First compile TypeScript (if needed)
npm run build
# Then run the client
npm run client
# or
node client_example_typescript.js- Транспорт: Stdio (Стандартен вход/изход)
- Целеви сървър: Локален Python MCP сървър
- Функции:
- Async/await модел за операции
- Откриване на инструменти и ресурси
- Тестване на операции с калкулатор
- Четене на съдържание на ресурси
- Организация на базата на класове
За изпълнение:
python client_example_python.pyВсяка имплементация на клиент демонстрира:
-
Управление на връзката
- Установяване на връзка със MCP сървъра
- Обработка на грешки при връзка
- Правилно почистване и управление на ресурси
-
Откриване на сървъра
- Списък с налични инструменти
- Списък с налични ресурси (където е поддържано)
- Списък с налични подканвания (където е поддържано)
-
Извикване на инструменти
- Основни операции с калкулатор (събиране, изваждане, умножение, деление)
- Команда за помощ за информация за сървъра
- Правилно предаване на аргументи и обработка на резултати
-
Обработка на грешки
- Грешки при връзка
- Грешки при изпълнение на инструменти
- Грациозно справяне с проблеми и обратна връзка към потребителя
-
Обработка на резултати
- Извличане на текстово съдържание от отговори
- Форматиране на изхода за четимост
- Обработка на различни формати на отговори
Преди да изпълните тези клиенти, уверете се, че имате:
- Стартиран съответен MCP сървър (от
../01-first-server/) - Инсталирани необходимите зависимости за избрания език
- Правилна мрежова свързаност (за транспорти, базирани на HTTP)
| Език | Транспорт | Стартиране на сървъра | Модел Async | Основни библиотеки |
|---|---|---|---|---|
| Java | SSE/HTTP | Външно | Синхронен | WebFlux, MCP SDK |
| C# | Stdio | Автоматично | Async/Await | .NET MCP SDK |
| TypeScript | Stdio | Автоматично | Async/Await | Node MCP SDK |
| Python | Stdio | Автоматично | AsyncIO | Python MCP SDK |
| Rust | Stdio | Автоматично | Async/Await | Rust MCP SDK, Tokio |
След като разгледате тези примери за клиенти:
- Модифицирайте клиентите, за да добавите нови функции или операции
- Създайте свой собствен сървър и го тествайте с тези клиенти
- Експериментирайте с различни транспорти (SSE срещу Stdio)
- Изградете по-сложно приложение, което интегрира MCP функционалност
- Връзката е отказана: Уверете се, че MCP сървърът работи на очаквания порт/път
- Модулът не е намерен: Инсталирайте необходимия MCP SDK за вашия език
- Достъпът е отказан: Проверете разрешенията за файлове за stdio транспорт
- Инструментът не е намерен: Уверете се, че сървърът имплементира очакваните инструменти
- Активирайте подробен логинг във вашия MCP SDK
- Проверете логовете на сървъра за съобщения за грешки
- Уверете се, че имената и подписите на инструментите съвпадат между клиента и сървъра
- Тествайте първо с MCP Inspector, за да валидирате функционалността на сървъра
Отказ от отговорност:
Този документ е преведен с помощта на AI услуга за превод Co-op Translator. Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Не носим отговорност за недоразумения или погрешни интерпретации, произтичащи от използването на този превод.