About MCP Demo
MCP Python Demo is a weather example for developers learning Python MCP clients and tool calls. It connects a DeepSeek client to an MCP server and uses its weather tools.
Key features
- 01Connect to a weather MCP server
- 02List available weather tools
- 03Call tools through DeepSeek
- 04Enter weather queries interactively
Use cases
- 01Test an MCP client-to-server connection
- 02Query a location's weather forecast
MCP support
The demo includes an MCP client and weather MCP server; the client discovers and calls the get_alerts and get_forecast tools.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEMCP Python Demo
LLM 使用的
deepseek-chat因为只有v3有tools属性 (deepseek-reasoner是不行的)
chat_response = client.chat.completions.create(
model="deepseek-chat", # 通过指定 model='deepseek-chat' 即可调用 DeepSeek-V3 V3有tools属性
messages=messages,
tools=available_tools,
tool_choice="auto"
)
安装
pip install uv
# uv init mcp-demo-python
git clone [email protected]:guobinqiu/mcp-demo-python.git
cd mcp-demo-python
uv venv
source .venv/bin/activate
# uv add "mcp[cli]" httpx
# uv add mcp openai python-dotenv
# rm main.py
运行
运行前把.env文件里的OPENAI_API_KEY换成你自己的
source .venv/bin/activate
python client/main.py server/main.py
输出
[04/23/25 21:11:54] INFO Processing request of type ListToolsRequest server.py:534
Connected to server with tools: ['get_alerts', 'get_forecast']
MCP Client Started!
Type your queries or 'quit' to exit.
Query: what's the weather in new york
[04/23/25 21:12:09] INFO Processing request of type ListToolsRequest server.py:534
[04/23/25 21:12:15] INFO Processing request of type CallToolRequest server.py:534
INFO HTTP Request: GET https://api.weather.gov/points/40.7128,-74.006 "HTTP/1.1 200 OK" _client.py:1740
[04/23/25 21:12:16] INFO HTTP Request: GET https://api.weather.gov/gridpoints/OKX/33,35/forecast "HTTP/1.1 200 OK" _client.py:1740
[DEBUG] final_text[0] type: <class 'str'>, value: Here's the current weather forecast for New York:
### Today:
- **Temperature:** 73°F
- **Wind:** 7 mph NW
- **Forecast:** Mostly sunny, with a high near 73.
### Tonight:
- **Temperature:** 57°F
- **Wind:** 3 to 7 mph SE
- **Forecast:** Mostly clear.
### Thursday:
- **Temperature:** 68°F (falling to 64°F in the afternoon)
- **Wind:** 3 to 12 mph SE
- **Forecast:** Sunny.
### Thursday Night:
- **Temperature:** 56°F
- **Wind:** 6 to 12 mph S
- **Forecast:** Mostly clear.
### Friday:
- **Temperature:** 70°F (falling to 66°F in the afternoon)
- **Wind:** 5 to 14 mph S
- **Forecast:** Partly sunny.
Let me know if you'd like more details!
Here's the current weather forecast for New York:
### Today:
- **Temperature:** 73°F
- **Wind:** 7 mph NW
- **Forecast:** Mostly sunny, with a high near 73.
### Tonight:
- **Temperature:** 57°F
- **Wind:** 3 to 7 mph SE
- **Forecast:** Mostly clear.
### Thursday:
- **Temperature:** 68°F (falling to 64°F in the afternoon)
- **Wind:** 3 to 12 mph SE
- **Forecast:** Sunny.
### Thursday Night:
- **Temperature:** 56°F
- **Wind:** 6 to 12 mph S
- **Forecast:** Mostly clear.
### Friday:
- **Temperature:** 70°F (falling to 66°F in the afternoon)
- **Wind:** 5 to 14 mph S
- **Forecast:** Partly sunny.
Let me know if you'd like more details!
Query:
Golang版
Comments
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.