Skip to main content
Glama

SampleMCP

Простой проект на Python, демонстрирующий создание и подключение MCP-серверов с использованием FastMCP, адаптеров LangChain MCP, LangGraph и OpenAI.

Возможности

  • Математический MCP-сервер, использующий stdio

  • MCP-сервер погоды, использующий streamable-http

  • MCP-клиент LangChain, подключающийся к нескольким MCP-серверам

  • Агент LangGraph ReAct, использующий инструменты MCP

  • Примеры вызовов инструментов для математических запросов и запросов о погоде

Related MCP server: Server MCP

Структура проекта

SampleMCP/
├── client.py          # MCP client + LangGraph agent
├── mathserver.py      # Math MCP server with add/multiply tools
├── weather.py         # Weather MCP server using streamable HTTP
├── main.py            # Basic sample entry point
├── pyproject.toml     # Project metadata and dependencies
├── requirements.txt   # Python dependencies
└── README.md

Требования

  • Python 3.12+

  • API-ключ OpenAI

  • Опционально: API-ключ Groq

Установка

Клонируйте репозиторий:

git clone https://github.com/JayantPrakash/SampleMCP.git
cd SampleMCP

Установите зависимости:

pip install -r requirements.txt

Или с помощью uv:

uv sync

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

Создайте файл .env в корне проекта:

OPENAI_API_KEY=your_openai_api_key
GROQ_API_KEY=your_groq_api_key

Запуск MCP-серверов

1. Запуск сервера погоды

Сервер погоды использует streamable-http.

python weather.py

По умолчанию он предоставляет MCP-эндпоинт по адресу:

http://localhost:8000/mcp

2. Математический сервер

Математический сервер использует stdio и запускается клиентом автоматически через:

"command": "python",
"args": ["mathserver.py"],
"transport": "stdio"

Запуск клиента

В отдельном терминале выполните:

python client.py

Клиент подключается к:

  • mathserver.py через stdio

  • weather.py через streamable_http

Затем он создает агента LangGraph ReAct и задает вопросы:

what's (3 + 5) x 12?

и:

what is the weather in California?

Инструменты MCP

Математический сервер

Определен в mathserver.py.

add(a: int, b: int) -> int

Складывает два числа.

multiple(a: int, b: int) -> int

Умножает два числа.

Сервер погоды

Определен в weather.py.

get_weather(location: str) -> str

Возвращает пример ответа о погоде для указанного местоположения.

Примечания

  • mathserver.py использует transport="stdio".

  • weather.py использует transport="streamable-http".

  • В client.py транспорт streamable HTTP настроен как streamable_http.

  • Убедитесь, что сервер погоды запущен перед выполнением client.py.

Пример вывода

Math response: 96
Weather response: It's always raining in California

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Demonstrates an MCP server with calculate and text_stats tools over Streamable HTTP, integrating with LangChain/LangGraph and n8n agents.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides math and weather tools accessible via LangGraph agent using MCP protocol with stdio and streamable HTTP transports.
    1
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    A model-agnostic MCP server exposing example tools (add1, multiply2, greet) for learning purposes, working with any LLM through stdio transport.
    -