Skip to main content
Glama
sudhiksha1502-glitch

Dynamic LangGraph MCP Agent

πŸš€ Dynamic LangGraph MCP Agent

A production-ready agent system that automatically discovers and uses tools from MCP (Model Context Protocol) servers using LangGraph's ReAct architecture.

✨ Features

  • πŸ€– LangGraph ReAct Agent - Built-in reasoning and multi-step planning

  • πŸ” Automatic Tool Discovery - No hardcoding, just add MCP servers and go

  • 🧠 LLM-Powered Routing - Gemini Flash intelligently selects the right tools

  • πŸ”Œ Multi-Server Support - Connect to unlimited MCP servers

  • πŸ“ Multi-Step Reasoning - Agent can chain multiple tools to solve complex tasks

  • ✨ Zero Configuration - Add tools and they work instantly

Related MCP server: MCP Server App

πŸ“ Project Structure

mcp-agent/
β”œβ”€β”€ agents.py              # Main application (FastAPI + LangGraph)
β”œβ”€β”€ mcp_server.py          # MCP server with agricultural tools
β”œβ”€β”€ config.json            # MCP server configuration
β”œβ”€β”€ .env                   # Environment variables (API keys)
β”œβ”€β”€ requirements.txt       # Python dependencies
β”œβ”€β”€ README.md              # This file
β”œβ”€β”€ ARCHITECTURE.md        # System architecture documentation
└── DATAFLOW.md           # Complete data flow explanation

πŸš€ Quick Start

1. Install Dependencies

pip install -r requirements.txt

2. Set Up Environment Variables

Create a .env file:

GOOGLE_API_KEY=your_google_api_key_here

Get your API key from: https://aistudio.google.com/app/apikey

3. Configure MCP Servers

Edit config.json with your MCP server paths:

{
  "mcpServers": {
    "agricultural-server": {
      "command": "python",
      "args": ["mcp_server.py"],
      "env": {
        "PYTHONIOENCODING": "utf-8"
      }
    }
  }
}

Important: Use full paths on Windows:

{
  "command": "D:\\Python\\python.exe",
  "args": ["D:\\projects\\mcp-agent\\mcp_server.py"]
}

4. Start the Server

python agents.py

5. Test the Agent

Visit http://localhost:8000/docs

Or use cURL:

curl -X POST "http://localhost:8000/chat" \
  -H "Content-Type: application/json" \
  -d '{"message": "What is the weather in Tokyo?"}'

πŸ“Š Available Tools

Tool

Description

Arguments

get_current_weather

Real-time weather data

city (string)

get_pesticide_seed_info

Agricultural information

query (string)

get_placeholder_posts

Sample blog posts

limit (integer)

πŸ§ͺ Example Queries

# Weather query β†’ Uses get_current_weather
"What's the weather in Paris?"

# Agriculture query β†’ Uses get_pesticide_seed_info  
"Tell me about organic farming techniques"

# Content query β†’ Uses get_placeholder_posts
"Show me 5 interesting articles"

# Multi-step reasoning β†’ Uses multiple tools
"What's the weather in Mumbai and what crops grow best there?"

πŸ”§ API Endpoints

POST /chat

Main endpoint for chatting with the agent

Request:

{
  "message": "Your query here"
}

Response:

{
  "response": "Agent's answer",
  "intermediate_steps": ["Tool used: get_current_weather"],
  "error": null
}

GET / - Server info

GET /tools - List all tools

GET /health - Health check

πŸ”Œ Adding New Tools

Edit mcp_server.py:

@mcp_server.list_tools()
async def list_tools() -> list[Tool]:
    return [
        # ... existing tools ...
        Tool(
            name="my_new_tool",
            description="What this tool does",
            inputSchema={
                "type": "object",
                "properties": {
                    "param": {"type": "string"}
                },
                "required": ["param"]
            }
        )
    ]

Restart the agent - tools are auto-discovered!

πŸ› Troubleshooting

"GOOGLE_API_KEY not found"

  • Create .env file with your API key

"No MCP servers found"

  • Check config.json exists and has correct paths

"Agent not initialized"

  • Verify MCP server starts independently: python mcp_server.py

πŸ“š Resources

See ARCHITECTURE.md for system design. See DATAFLOW.md for data flow details.

Related MCP Connectors

Related MCP Servers