Provides web search functionality through DuckDuckGo, allowing users to search for information on the internet.
Leverages LangChain for building the agent architecture that coordinates tool usage and query processing.
Uses LangGraph as part of the agent orchestration framework to manage workflow between different tools.
Integrates with OpenAI's LLM (ChatOpenAI) to power an agent that understands user queries and orchestrates tools to provide answers.
Enables querying PostgreSQL databases, allowing users to retrieve information from configured database instances.
Utilizes Pydantic for data validation and settings management within the MCP server implementation.
Multi-Server MCP Project with OpenAI LLM
Overview
This project demonstrates a multi-server setup using MCP (Multi-Channel Protocol) with multiple tool servers and a client that orchestrates them. The servers expose various tools such as web search, weather lookup, random facts, and PostgreSQL database querying. The client uses OpenAI's LLM to interact with these tools via an agent.
Features
- Multiple MCP servers each exposing different tools.
- Tools include:
- Web search (DuckDuckGo)
- Weather information (Open-Meteo API)
- Random fun facts
- PostgreSQL database querying
- Multi-server client that loads tools from all servers.
- Agent powered by OpenAI LLM (
ChatOpenAI
) that uses tools to answer user queries. - Modular and clean code structure with explicit tool registration.
Repository Structure
. ├── mcp_server.py # Server 1: Search & Weather tools ├── mcp_server_2.py # Server 2: Random Fact & Postgres tools ├── src │ └── multi.py # Multi-server client using OpenAI LLM ├── tools │ ├── init.py │ ├── mcp_instance.py # MCP instance factory │ ├── search_tool.py │ ├── weather_tool.py │ ├── random_fact_tool.py │ └── postgres_tool.py └── README.md
Prerequisites
- Python 3.8+
- OpenAI API key set in environment variable
OPENAI_API_KEY
- PostgreSQL database accessible at the configured host and credentials
- Required Python packages (see below)
Installation
- Clone the repository:
- Create and activate a virtual environment (optional but recommended):
- Install dependencies:
Example requirements.txt
includes:
mcp-server langchain langchain-openai langgraph psycopg2-binary requests pydantic
Configuration
- Set your OpenAI API key:
- Update PostgreSQL connection details in
tools/postgres_tool.py
if needed.
Running the Servers
Server 1: Search & Weather
Server 2: Random Fact & Postgres
Both servers will run and listen on stdio for MCP client connections.
Running the Multi-Server Client
- You will be prompted to enter a query.
- The client will load tools from both servers and use OpenAI LLM to answer your query using the tools.
Example Queries
- "Tell me a fun fact."
- "What’s the weather in New York?"
- "Search for the latest news about space exploration."
Code Highlights
- Explicit tool registration: Each tool defines a
register_<tool>_tool(mcp)
function to register itself with the MCP server instance. - Separate MCP instances: Each server creates its own MCP instance for isolation.
- Multi-server client: Connects to multiple MCP servers, loads their tools, and combines them for the agent.
- OpenAI LLM: Uses
ChatOpenAI
fromlangchain_openai
for language understanding and generation.
Troubleshooting
- If tools do not appear in the client, ensure servers are running and tools are properly registered.
- Check for import errors or exceptions in server logs.
- Verify OpenAI API key is set and valid.
- Confirm PostgreSQL database is reachable and credentials are correct.
Future Improvements
- Integrate local LLMs such as DeepSeek for offline inference.
- Add authentication and security to MCP servers.
- Expand toolset with more APIs and custom tools.
- Add UI frontend for better user experience.
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
A multi-server implementation that uses OpenAI's LLM to orchestrate multiple tool servers providing web search, weather lookup, random facts, and PostgreSQL database querying capabilities.
Related MCP Servers
- -securityAlicense-qualityA server implementation that provides a unified interface for OpenAI services, Git repository analysis, and local filesystem operations through REST API endpoints.Last updated -PythonGPL 3.0
Aiven MCP Serverofficial
AsecurityAlicenseAqualityA Model Context Protocol server that provides access to Aiven services (PostgreSQL, Kafka, ClickHouse, Valkey, OpenSearch), enabling LLMs to build full stack solutions by interacting with these services.Last updated -36PythonApache 2.0- -securityAlicense-qualityA server that integrates the MCP library with OpenAI's API, allowing users to interact with various tools, such as the weather tool, through natural language queries.Last updated -PythonMIT License
- -security-license-qualityA FastMCP server that enables natural language querying of PostgreSQL databases through LLM integration, allowing users to generate SQL queries from plain English and visualize the results.Last updated -Python