MCP Hub
Back to servers

Product Agent MCP Server

A FastMCP server providing tools to manage and query a product database stored in a JSON format. It enables users to perform operations such as filtering products by category and retrieving product data through a LangGraph agent interface.

Updated
Feb 3, 2026

MCP + LangGraph Product Agent (Test Task)

This repo implements:

  • MCP server (FastMCP, stdio) with product tools
  • LangGraph agent that connects to the MCP server via stdio subprocess
  • FastAPI endpoint to chat with the agent
  • Dockerfile + docker-compose
  • 3+ tests

Project structure

.
├─ app/
│  ├─ api.py
│  ├─ agent/
│  │  ├─ graph.py
│  │  ├─ mcp_client.py
│  │  ├─ mock_llm.py
│  │  ├─ tools_custom.py
│  │  └─ types.py
│  └─ mcp_server/
│     ├─ products_server.py
│     └─ storage.py
├─ data/products.json
├─ tests/
│  └─ test_api.py
├─ Dockerfile
├─ docker-compose.yml
└─ requirements.txt

Run with Docker Compose (recommended)

docker compose up --build

API будет доступен на:

  • http://localhost:8000/docs
  • endpoint: POST http://localhost:8000/api/v1/agent/query

Example request:

curl -X POST "http://localhost:8000/api/v1/agent/query" \
  -H "Content-Type: application/json" \
  -d '{"query":"Покажи все продукты в категории Электроника"}'

Run locally

python -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate
pip install -r requirements.txt

export PRODUCTS_DB_PATH=./data/products.json  # Windows: set PRODUCTS_DB_PATH=...
uvicorn app.api:app --reload

Tests

pytest -q

Notes

  • MCP server runs via stdio (python app/mcp_server/products_server.py) and is spawned by the FastMCP Client(...) inside the agent.
  • The agent uses a mock LLM (rule-based) that outputs a JSON plan, then executes the plan by calling MCP tools + custom tools.

Reviews

No reviews yet

Sign in to write a review