Skip to main content
Glama
jyeyeyej
by jyeyeyej

Mini Agent 03 · MCP

Это небольшой практический проект, в котором Travel Tool из mini_agent_03_tool вынесен в MCP Server. FastAPI Backend не импортирует Tool-функции напрямую, а обнаруживает и вызывает Tool через MCP Client.

Streamlit :8501
  → FastAPI Backend :8000
    → Travel MCP Server :8010/mcp (Streamable HTTP)
    → Policy MCP Server (stdio 자식 프로세스)
    → OpenAI Responses API가 한 번에 Tool 하나를 선택
      → Tool 결과를 돌려주고 필요한 만큼 반복

Travel Server работает в процессе и на порту, независимых от Backend. Policy Server запускается Backend как дочерний процесс stdio. Один Agent использует оба Transport одновременно, изучая Server prefix, маршрутизацию и последовательные зависимости Tool.

Что меняется по сравнению с учебным примером stdio

Реализация Tool и смысл tools/list·tools/call в MCP не меняются. Меняется то, кто запускает Server, и Transport, через который передаются сообщения.

Параметр

Policy MCP

Travel MCP

Transport

stdio

Streamable HTTP

Server запуск

Backend запускает автоматически как дочерний процесс

Независимый запуск в первом терминале

Адрес

Python-файл и команда запуска

http://127.0.0.1:8010/mcp

Порт

нет

8010

Время жизни Server

Завершается вместе с Client Session

Продолжает работать независимо от Backend

Предоставляемые Tool

Запрос политики отеля

Поиск погоды и отелей

stdio
Backend → 자식 MCP Server

Streamable HTTP
Backend :8000 → 네트워크 → MCP Server :8010

Frontend не вызывает MCP Server напрямую. Запрос пользователя всегда проходит через Agent Backend: GPT предлагает Tool, а Backend отвечает за проверку прав, вызов MCP и передачу результата. GPT не выполняет MCP Tool напрямую.

Related MCP server: Trip Planner MCP Server

Предоставляемые функции

  • GET /health: состояние Backend

  • GET /api/mcp/status: состояние подключения отдельного MCP Server

  • GET /api/mcp/tools: обнаружение Tool, опубликованных MCP Server

  • GET /api/mcp/resources: обнаружение MCP Resource

  • POST /api/mcp/run: вопрос → выбор Tool → вызов MCP → Trace ответа

  • GET /api/mcp/baggage-policy: чтение MCP Resource

Практика и порядок выполнения

Соблюдайте порядок запуска трёх процессов. Если проверять, что предыдущий шаг прошёл нормально, и только затем переходить к следующему, легко определить, на каком соединении возникла проблема.

0. 구조 확인
→ 1. 가상환경 준비
→ 2. OpenAI 환경변수 설정
→ 3. MCP Server 실행 (:8010)
→ 4. Backend 실행 (:8000)
→ 5. Backend에서 MCP 연결 확인
→ 6. GPT·Tool·Resource API 확인
→ 7. Frontend 실행 (:8501)
→ 8. 화면에서 전체 Trace 확인

Шаг 0 · Проверка структуры вызовов

Перед запуском кода проверьте роль следующих четырёх файлов.

Файл

Роль

mcp_server/travel_server.py

HTTP Server, публикующий Tool и Resource для погоды и отелей

mcp_server/policy_stdio_server.py

stdio Server, возвращающий политику по ID отеля

backend/app/mcp_client.py

Client, создающий и управляющий Session для двух Transport

backend/app/agent.py

Управляет Server prefix, маршрутизацией и последовательным Agent Loop

Шаг 1 · Подготовка виртуального окружения и пакетов

Выполняется только один раз.

cd C:\mini_agent_st\mini_agent_03_mcp
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
pip install -r requirements.txt

Если .venv уже создано, начиная со следующих занятий достаточно только его активировать.

cd C:\mini_agent_st\mini_agent_03_mcp
.\.venv\Scripts\Activate.ps1

Шаг 2 · Настройка переменных окружения OpenAI

Скопируйте .env.example в .env и введите полученный API Key.

Copy-Item .env.example .env
OPENAI_API_KEY=발급받은_API_KEY
OPENAI_MODEL=gpt-4.1-mini

API Key не должен коммититься в Git и не должен выводиться на экран или в логи.

Шаг 3 · Запуск MCP Server

Откройте первый терминал и выполните.

cd C:\mini_agent_st\mini_agent_03_mcp
.\.venv\Scripts\Activate.ps1
python .\mcp_server\travel_server.py

Этот терминал не закрывайте. MCP endpoint — http://127.0.0.1:8010/mcp. Когда в консоли появится сообщение о том, что сервер запущен на 127.0.0.1:8010, переходите к следующему шагу.

Шаг 4 · Запуск FastAPI Backend

Откройте второй терминал и выполните.

cd C:\mini_agent_st\mini_agent_03_mcp
.\.venv\Scripts\Activate.ps1
uvicorn backend.app.main:app --reload --port 8000

Проверьте состояние самого Backend.

Invoke-RestMethod http://127.0.0.1:8000/health

Ключевые значения ожидаемого результата следующие.

status      : ok
mcp_servers : travel=streamable-http, policy=stdio

Шаг 5 · Проверка подключения Backend к MCP Server

Выполните в третьем терминале PowerShell.

Invoke-RestMethod http://127.0.0.1:8000/api/mcp/status

Если всё нормально, отображаются status=connected и tool_count=3. Если здесь возникает 503, то перед запуском Frontend сначала проверьте MCP Server в первом терминале и TRAVEL_MCP_URL.

Шаг 6 · Проверка GPT, Tool и Resource API

Проверьте Tool, опубликованные MCP Server.

Invoke-RestMethod http://127.0.0.1:8000/api/mcp/tools |
    ConvertTo-Json -Depth 10

Должны отобразиться travel__get_current_weather, travel__search_hotels, policy__get_hotel_policy и Schema аргументов каждого из них.

Вызовите весь поток Agent.

$body = @{
    question = "부산 날씨와 15만원 이하 호텔을 찾고 호텔 정책도 알려 주세요."
} | ConvertTo-Json
Invoke-RestMethod `
    -Uri http://127.0.0.1:8000/api/mcp/run `
    -Method Post `
    -ContentType "application/json" `
    -Body $body |
    ConvertTo-Json -Depth 10

В ответе проверьте следующую последовательность.

available_tools
→ travel__get_current_weather
→ travel__search_hotels
→ 검색 결과에서 hotel_id 획득
→ policy__get_hotel_policy(hotel_id)
→ Function Call이 없는 응답에서 Loop 종료
→ 일반적으로 llm_calls = Tool 실행 수 + 1
→ answer

Проверьте также Resource.

Invoke-RestMethod http://127.0.0.1:8000/api/mcp/baggage-policy |
    ConvertTo-Json -Depth 10

Шаг 7 · Запуск Streamlit Frontend

Откройте четвёртый терминал и выполните.

cd C:\mini_agent_st\mini_agent_03_mcp
.\.venv\Scripts\Activate.ps1
streamlit run frontend\app.py --server.port 8501

Откройте в браузере http://127.0.0.1:8501. FastAPI Swagger доступен по адресу http://127.0.0.1:8000/docs.

Шаг 8 · Практика на экране

Нажимайте кнопки в следующем порядке.

  1. Проверьте, что статус подключения MCP сверху равен connected.

  2. Нажмите MCP Tool 발견 и проверьте имена Tool и Schema.

  3. Запустите MCP Agent с вопросом по умолчанию.

  4. Проверьте, что за один Round выполняется только один Tool.

  5. Проверьте, что hotel_id из результатов поиска отелей передаётся в аргументы Policy Tool.

  6. Измените вопрос на 서울에서 15만원 이하 호텔을 찾아 주세요. и сравните выбор Tool.

  7. С помощью 수하물 정책 읽기 проверьте обращение к Resource, а не к Tool.

Порядок завершения

Нажмите Ctrl+C в каждом запущенном терминале.

Frontend 종료
→ Backend 종료
→ MCP Server 종료

Если сначала завершить только MCP Server и снова вызвать /api/mcp/status, можно также отработать сценарий ошибки подключения, при котором Backend возвращает 503.

Точки сравнения

mini_agent_03_tool

mini_agent_03_mcp

Backend напрямую импортирует Tool-функции

Backend использует только MCP Client

Список Tool зафиксирован в коде Agent

Обнаруживается на сервере через tools/list

Прямой вызов Python-функции

Вызов через протокол tools/call

Внутренний контекст приложения

MCP Resource на основе URI

Переменные окружения

BACKEND_API_URL=http://127.0.0.1:8000
TRAVEL_MCP_URL=http://127.0.0.1:8010/mcp
MCP_HOST=127.0.0.1
MCP_PORT=8010
OPENAI_API_KEY=발급받은_API_KEY
OPENAI_MODEL=gpt-4.1-mini

Frontend вызывает только Backend, а URL MCP Server и права на выполнение управляются Backend.

Backend добавляет Server prefix к Schema Tool, обнаруженным на двух MCP Server, и передаёт их в OpenAI Responses API. Поскольку parallel_tool_calls=False, GPT предлагает один Tool за один Round. Когда Backend возвращает результат Tool, GPT выбирает следующий Tool, и Agent Loop повторяется до тех пор, пока не будет дан ответ без Function Call.

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Hotel booking MCP server. Search, book, and manage reservations across 250K+ properties worldwide.

  • TravelMind: 8 MCP tools for travel (12306 trains, flights, hotels, geocode, planning, policy).

  • AI marketplace — flights, tours, activities, transport & more via MCP. No auth required.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jyeyeyej/mini_team_03_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server