Skip to main content
Glama
FiddelMyStick

AI-Agentic-MCP

README.md
# AI-Agentic MCP

This repository contains an exploration of the **Model Context Protocol (MCP)** using **LangChain** and **FastMCP**. It demonstrates how to decouple tool implementations into an independent MCP server, which is then dynamically consumed by a LangChain agent.

## Features

- **FastMCP Server**: A standalone server exposing tools over a streamable HTTP connection.
  - `get_employee_infos`: A mock tool for fetching employee details (name, salary, seniority).
  - `search`: Web search capability utilizing the `TavilySearch` API.
- **LangChain MCP Agent**: A ReAct-style conversational agent powered by OpenAI's `gpt-4o-mini`. The agent dynamically queries and utilizes the tools exposed by the MCP server using `MultiServerMCPClient`.
- **Decoupled Architecture**: Demonstrates building scalable AI agents where the LLM logic and tool executions can exist on different servers.

## Project Structure

- `mcp-server.py`: The FastMCP server implementation that defines and serves the tools.
- `agent_graph.py`: The interactive LangChain agent that connects to the MCP server and answers user queries via the terminal.
- `graph.ipynb`: A Jupyter Notebook for exploring and prototyping.
- `main.py`: A simple boilerplate entry point.
- `pyproject.toml` / `uv.lock`: Project metadata and dependencies, managed via [uv](https://github.com/astral-sh/uv).

## Prerequisites

- Python 3.13 or higher.
- An [OpenAI API Key](https://platform.openai.com/).
- A [Tavily API Key](https://tavily.com/) (required for the web search tool).

## Installation

This project uses `uv` for dependency management.

1. Clone the repository:
   ```bash
   git clone <your-repo-url>
   cd AI-Agentic-MCP-main
   ```

2. Install dependencies:
   ```bash
   uv sync
   ```
   *Alternatively, using pip:*
   ```bash
   pip install .
   ```

3. Configure Environment Variables:
   Create a `.env` file in the root directory and add your API keys:
   ```env
   OPENAI_API_KEY=your_openai_api_key_here
   TAVILY_API_KEY=your_tavily_api_key_here
   ```

## Usage

To test the multi-server architecture, you need to run the server and the agent simultaneously.

1. **Start the MCP Server:**
   In your first terminal, run:
   ```bash
   python mcp-server.py
   ```
   *The server will start listening on `http://localhost:24000/mcp`.*

2. **Run the Interactive Agent:**
   In a separate terminal, launch the agent:
   ```bash
   python agent_graph.py
   ```
   
You can now ask questions in the prompt (e.g., *"What is the salary of Alice?"* or search the web). Type `exit` to quit the agent.

Maintenance

ActivityStale
ResponsivenessNo issues