Weather and Tasks MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Weather and Tasks MCP ServerWhat's the weather in Tokyo and my task list?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
What is MCP? — sample code
Two real, runnable MCP servers for the video — one that reads the world and one that writes to it — plus a boilerplate template to build your own. No API keys. Runs on Windows, macOS, and Linux.
▶️ Video: (link at publish) · 📬 Newsletter: (link)
What's here
File | Does | Shows |
| live weather for any city (Open-Meteo, keyless) | a read tool — your AI reaching the real world |
| a to-do list it can add to / complete / list | write tools — your AI taking action and changing state |
| boilerplate to copy | how to build your own |
| tests both servers without Claude |
Related MCP server: MCP Weather Server
1. Test it in 2 minutes (no Claude needed)
Install uv (one line, any OS), then from this folder:
uv run python client.pyYou'll see a read demo and a write demo:
weather_server.py tools: ['get_weather']
get_weather({'city': 'Tokyo'}) -> Tokyo, Japan: 21.7°C, mainly clear, wind 4.4 km/h.
tasks_server.py tools: ['add_task', 'complete_task', 'list_tasks']
add_task({'task': 'record episode 2'}) -> Added: 'record episode 2' (you now have 1 task(s)).
complete_task({'number': 1}) -> Completed: 'record episode 2'.
list_tasks({}) -> 1. [x] record episode 2The tasks server writes to a tasks.json right next to it — open the file and you'll
see exactly what your AI changed.
2. Connect them to Claude
macOS —
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows —
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"weather": { "command": "uv", "args": ["--directory", "ABSOLUTE/PATH/TO/THIS/FOLDER", "run", "python", "weather_server.py"] },
"tasks": { "command": "uv", "args": ["--directory", "ABSOLUTE/PATH/TO/THIS/FOLDER", "run", "python", "tasks_server.py"] }
}
}Restart Claude, then try:
Read: "What's the weather in Tokyo right now?"
Write: "Add 'finish the thumbnail' to my tasks." → then "What's on my list?"
3. Build your own
Open server_template.py, rename the server, and replace do_something with your tool —
read a file, hit an API, write to a database. Uncomment the resource/prompt examples for
those too, then point Claude at it the same way.
Read vs. write — and the one safety note
weather_server only reads. tasks_server writes (it changes tasks.json). That
write power — letting your AI actually do things — is the whole point of MCP. It's also
exactly why you only connect servers you trust, and why real tools add confirmations and
permissions before destructive actions.
Why it's cross-platform
Pure Python + the standard library for HTTP (urllib), local files via pathlib, and
sys.executable to launch servers — no OS-specific paths or shells. Only dependency: the
mcp SDK.
MIT licensed. Built for the AI Makes Sense channel.
Available Tools
1 toolget_weatherA
Get the current weather for a city anywhere in the world.
Example: get_weather("Tokyo") -> "Tokyo, Japan: 18.4°C, partly cloudy, wind 9 km/h".
| Name | Required | Description | Default |
|---|---|---|---|
| city | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses a read operation but provides no additional behavioral context (e.g., data freshness, error handling). Without annotations, it is adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with a clear statement and example. No wasted words, front-loaded purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, has output schema, no siblings), the description provides sufficient context with purpose, example, and output format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description only adds an example of the city parameter format. It does not elaborate on constraints, defaults, or expected input variations beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves current weather for any city worldwide, with a specific verb and resource. No siblings exist, so differentiation is unnecessary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through an example but lacks explicit when-to-use or when-not-to-use guidance. No alternatives exist, so minimal guidelines are acceptable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v0.1.0- First observed
get_weather
TDQS
Scored across 1 tool
Only one tool exists, so there is no possibility of confusion between tools.
With a single tool, naming is trivially consistent; the verb_noun pattern is followed.
A single tool is insufficient for a server named 'Weather and Tasks', which implies at least a weather and a task tool.
The server only provides a basic weather retrieval function, lacking forecast or task capabilities, making it incomplete for its stated purpose.
Maintenance
Related MCP Connectors
Weather, code search, currency & Solana trust scoring as MCP tools. Free, no API key needed.
Free public MCP for AI agents — 193 tools, 44 workflows. No API key.
Your memory, everywhere AI goes. Build knowledge once, access it via MCP anywhere.
Pay-per-use tool marketplace for AI agents. Search, price-check, and call APIs via MCP.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides paper search and management capabilities along with weather queries, demonstrating MCP integration for AI systems to interact with external resources and tools.-
- FlicenseBqualityDmaintenanceEnables AI agents to retrieve real-time weather conditions and forecasts via OpenWeatherMap API. Supports interactive weather queries and travel planning through MCP tools, resources, and prompts.2-
- FlicenseNot gradedqualityDmaintenanceEnables AI agents and users to manage workspace files, monitor system metrics, take persistent notes, and retrieve weather data via MCP tools and resources.-
- AlicenseAqualityCmaintenanceProvides real-time weather and forecast data via MCP tools, enabling AI agents to query current weather and up to 3-day forecasts for any city.3MIT