mcpField
M
MCP-ChatBot

MCP-ChatBot

Local
github.com/muralianand12345AI & Agents5Updated 81w ago

About MCP-ChatBot

MCP-ChatBot is a containerized weather chatbot example for people exploring LLM applications with MCP. It pairs a Streamlit interface with a FastMCP weather service and GPT-4o, and is structured to add more servers.

Key features

  1. 01Streamlit chat interface
  2. 02Natural-language weather queries
  3. 03WeatherAPI data retrieval
  4. 04Separate client and server containers
  5. 05Extensible MCP server setup

Use cases

  1. 01Ask for current weather by city
  2. 02Explore a containerized MCP chatbot
  3. 03Add service backends to the example

MCP support

The FastMCP server exposes weather retrieval to the Streamlit client over MCP. The example is designed to accommodate additional MCP servers.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

No install method listed yet

We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.

Repository

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

MCP-ChatBot

A versatile chatbot application that uses MCP (Modular Capability Protocol) to interact with multiple service backends.

MCP Chatbot License Python Docker

Overview

MCP-ChatBot is a containerized application that demonstrates the use of Modular Capability Protocol (MCP) to enable LLM interactions with external services. This implementation includes a weather service backend and a Streamlit-based frontend that allows users to query for weather information through natural language.

Features

  • Containerized Architecture: Separate containers for the MCP server and client application
  • Weather Service Integration: Real-time weather data using WeatherAPI
  • Streamlit UI: Clean, responsive user interface for interacting with the chatbot
  • Extensible Design: Ready to add more MCP servers for additional capabilities
  • GPT-4o Integration: Powered by OpenAI's GPT-4o model for natural language understanding

Architecture

The application consists of two main components:

  1. MCP Server: A FastMCP-based service that handles weather data retrieval
  2. Streamlit Client: A web-based UI for interacting with the chatbot

Getting Started

Prerequisites
  • Docker and Docker Compose
  • WeatherAPI Key (sign up at WeatherAPI)
  • OpenAI API Key (sign up at OpenAI)
Installation
  1. Clone the repository:
git clone https://github.com/yourusername/MCP-ChatBot.git
cd MCP-ChatBot
  1. Create an .env file based on the example:
cp .env.example .env
  1. Edit the .env file and add your API keys:
PYTHONUNBUFFERED=1
OPENAI_API_KEY=your_openai_api_key_here
WEATHER_API_KEY=your_weather_api_key_here
  1. Launch the application using Docker Compose:
docker-compose up --build
  1. Access the Streamlit UI at: http://localhost:8501

Usage

Once the application is running, you can interact with the chatbot through the Streamlit interface:

  1. Type natural language queries about weather in the text input
  2. Examples:
    • "What's the weather like in New York?"
    • "How hot is it in Tokyo right now?"
    • "Tell me about the weather in London"

Extending the Application

Adding New MCP Servers
  1. Create a new server file in the servers directory
  2. Add the new service to the docker-compose.yml file
  3. Update the client.py to include the new server in the agent configuration

Example of adding a new server in client.py:

server_1 = MCPServerHTTP(url="http://mcp_server:8001/sse")
server_2 = MCPServerHTTP(url="http://new_server:8002/sse")  # New server

return Agent("openai:gpt-4o", mcp_servers=[server_1, server_2])

Development

Project Structure
MCP-ChatBot/
├── .env.example             # Example environment variables
├── .gitignore               # Git ignore file
├── client.py                # Streamlit client application
├── docker-compose.yml       # Docker Compose configuration
├── Dockerfile.client        # Dockerfile for Streamlit client
├── Dockerfile.server        # Dockerfile for MCP server
├── LICENSE                  # MIT license
├── README.md                # Project documentation
└── servers/                 # MCP server implementations
    └── server.py            # Weather service implementation
Technology Stack
  • FastMCP: Framework for creating MCP servers
  • Streamlit: Web framework for the UI
  • Pydantic-AI: Agent system for LLM interactions
  • Docker: Containerization platform
  • OpenAI GPT-4o: LLM for natural language processing

Troubleshooting

Common Issues
  1. Connection Failed: Ensure that all services are up and running. The client has a retry mechanism, but if it fails, restart the application.

  2. API Key Errors: Verify that you've added valid API keys to the .env file.

  3. Docker Network Issues: If containers can't communicate, check the Docker network configuration and ensure the service names match in the code.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments


Created by Murali Anand © 2025

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.