Terminal-based Chat Client with MCP Server Integration
@alan-meigs
MCP Client and Server Experiments
Overview
What is Terminal-based Chat Client with MCP Server Integration?
A terminal-based chat client that connects to an MCP server and integrates with OpenAI's API, including a weather service as an example of MCP functionality. It demonstrates how to build an extensible chat interface with tool execution.
How to use Terminal-based Chat Client with MCP Server Integration?
Install UV, create a virtual environment, install required packages (httpx, mcp[cli], openai, python-dotenv), set your OpenAI API key in a .env file, start the weather server (python weather.py), then run the chat client (python client.py weather.py). Optionally configure the server in Cursor’s Agent mode via Settings or a .cursor/mcp.json file.
Key features of Terminal-based Chat Client with MCP Server Integration
- Real‑time chat interface with OpenAI integration
- MCP server integration for extensible functionality
- Weather service with alerts and forecasts
- Asynchronous operation for better performance
- Proper error handling and resource cleanup
- Environment variable configuration for API keys
Use cases of Terminal-based Chat Client with MCP Server Integration
- Chat with an AI assistant about general topics
- Ask for current weather conditions in a US state or city
- Retrieve active weather alerts for a given US state
- Get detailed weather forecasts by latitude and longitude
- Integrate the weather tools into Cursor’s Agent mode
FAQ from Terminal-based Chat Client with MCP Server Integration
What are the prerequisites to run the server?
Python 3.8 or higher and the UV package manager are required.
How do I get my OpenAI API key?
Create a .env file in the project root and add OPENAI_API_KEY=your_api_key_here.
Can I use this with Cursor?
Yes. The MCP server can be added in Cursor’s Agent mode (Composer) via Settings → Features → MCP, or by creating a .cursor/mcp.json file with the server command.
What transport does the MCP server use?
The server runs with transport="stdio" for communication with the chat client.
Where does weather data come from?
Weather data is retrieved from the National Weather Service API (api.weather.gov).