Agent
A modular Python framework implementing the Model Context Protocol (MCP). It features a standardized client-server architecture over StdIO, integrating LLMs with external tools, real-time weather data fetching, and an advanced RAG (Retrieval-Augmented Generation) system.
Installation
npx mcp-agentAsk AI about Agent
Powered by Claude Β· Grounded in docs
I know everything about Agent. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
MCP Agent Orchestrator
The MCP Agent Orchestrator is a professional-grade Python implementation of the Model Context Protocol (MCP). It provides a structured environment for Large Language Models (LLMs) to interact with external tools and knowledge bases through a standardized communication layer. The project utilizes FastMCP for server-side tool definitions and an asynchronous client-side bridge to OpenAI-compatible interfaces.
System Architecture
The project follows a decoupled client-server architecture:
- MCP Client: Acts as the orchestrator. It manages the lifecycle of the MCP server, performs tool discovery, handles LLM completions, and executes tool calls returned by the model.
- MCP Servers: Independent services (Weather, RAG) that expose specific functions to the client via the Model Context Protocol.
- Transport Layer: Uses Standard Input/Output (StdIO) for high-performance, local inter-process communication.
Core Components
1. Intelligent Client Bridge
The client implementation (rag_agent.py, client.py) facilitates:
- Asynchronous lifecycle management using
AsyncExitStack. - Automatic tool schema conversion for OpenAI-compatible function calling.
- Persistent conversation state and multi-turn reasoning loops.
2. Weather Service Server
The weather server (server.py) demonstrates real-time API integration:
- Integration with external REST APIs (WeatherAPI).
- Data normalization and formatting for LLM consumption.
- Asynchronous request handling using
httpx.
3. RAG Knowledge Server
The RAG server (rag_server.py) provides advanced document intelligence:
- Data Ingestion: Support for PDF and TXT formats using
LangChain. - Vector Database: Persistent storage via
ChromaDB. - Search Optimization: Implements Maximal Marginal Relevance (MMR) for diverse information retrieval.
- Embeddings: Integration with HuggingFace transformer models.
Project Structure
βββ client.py # Standard MCP client implementation
βββ rag_agent.py # Specialized agent for RAG operations
βββ server.py # Weather service MCP server
βββ rag_server.py # RAG knowledge base MCP server
βββ test.py # Connectivity test for LLM API
βββ .env # Environment configuration
βββ data/
βββ rag_db/ # Vector store persistence directory
βββ text.txt # Sample knowledge base source
Technical Stack
- Protocol: Model Context Protocol (MCP)
- LLM Interface: OpenAI SDK (Compatible with Qwen/DashScope)
- RAG Framework: LangChain
- Vector Store: ChromaDB
- Communication: Asynchronous I/O (asyncio)
Installation
Prerequisites
- Python 3.10+
- Virtual environment (recommended)
Environment Setup
Create a .env file in the root directory with the following variables:
API_KEY=your_llm_api_key
BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
MODEL=qwen-plus
EMBED_MODEL=sentence-transformers/all-MiniLM-L6-v2
Dependencies
pip install mcp langchain langchain-community langchain-openai chromadb httpx python-dotenv openai
Usage
Running the Weather Agent
To start the client and connect it to the weather server:
python client.py server.py
Running the RAG Agent
To initialize the knowledge base and start the RAG-enabled agent:
python rag_agent.py --server_script rag_server.py
Protocol Implementation Details
The implementation strictly adheres to the MCP specification:
- Initialization: Client initializes the session and retrieves tool manifests.
- Tool Discovery: LLM is informed of available functions via JSON schema.
- Execution: Client intercepts
tool_calls, executes the corresponding server function, and returns the result to the LLM for final synthesis.
