Weather & WordPress MCP Server
# wp-mcp
`wp-mcp` is a weather and WordPress integration tool built using the [Model Context Protocol (MCP)](https://github.com/modelcontextprotocol/sdk). This project provides two primary features:
1. **Weather Alerts & Forecasts** using the [National Weather Service API](https://www.weather.gov/documentation/services-web-api).
2. **Various contents** from a personal WordPress blog (`hafiz.blog`).
The project exposes these features as tools within a MCP server, allowing easy access through a command-line interface.
## Features
### Weather Tools
- **Get Active Alerts**: Fetch current weather alerts for a U.S. state.
- **Get Forecast**: Get weather forecasts based on geographical coordinates (latitude and longitude).
### WordPress Tools
- **Get Latest Posts**: Retrieve the 10 most recent posts from a WordPress blog (specifically, my personal blog [hafiz.blog](https://hafiz.blog)).
- **Get Categories**: Retrieve all categories in the site.
- **Get Posts by Category**: Retrieve posts from a specific category by providing the category slug.
### Combine them!
To demo Claude using both tools at once, you can try some clever prompt like:
- "Get the date from the latest post on hafiz.blog, and check the weather in San Francisco on that date."
- "Check all the categories in hafiz.blog, find one that's likely written in Indonesian, and then make me an poem in Indonesian language based on a post from that category."
## Installation
### Prerequisites
- [Node.js](https://nodejs.org/en/) (v14.x or above)
- [npm](https://www.npmjs.com/)
### Steps:
1. `npm run build`
2. Connect the server with Claude Desktop, which needs to be installed locally. [Follow the instruction here.](https://modelcontextprotocol.io/quickstart/server#test-with-commands)
3. Once Claude Desktop detects the MCP server, try various prompts to check weather, or get latest posts on hafiz.blog, or do a combo prompt as mentioned above.TDQS
Scored across 5 tools
The tools are clearly split into two domains (weather and WordPress), but within each domain there is some overlap. For weather, get-alerts and get-forecast both provide weather information but for different purposes, which could cause confusion. For WordPress, get-latest-posts and get-posts-by-category both retrieve posts but with different filters, which might lead to misselection if the agent isn't clear on the distinction.
All tool names follow a consistent verb_noun pattern with hyphens (get-alerts, get-categories, get-forecast, get-latest-posts, get-posts-by-category). This makes them predictable and easy to understand, with no deviations in style or convention across the set.
With 5 tools, the count is reasonable, but it feels thin for covering two distinct domains (weather and WordPress). Each domain only has 2-3 tools, which might not provide enough functionality for comprehensive workflows in either area, making it borderline appropriate.
There are significant gaps in both domains. For weather, there's no way to get current conditions or historical data, limiting coverage. For WordPress, there are no tools for creating, updating, or deleting posts or categories, making it read-only and incomplete for typical content management tasks.