MCP server for managing a Mataroa blog via natural language
Project description
mataroa-mcp
An MCP server that lets you manage your Mataroa blog through natural language in Claude Desktop, Claude Code, or any MCP-compatible AI client.
What you can do
Tell Claude things like:
- "Show me all my blog posts"
- "Write a post about my weekend hike and save it as a draft"
- "Publish my sourdough post"
- "Are there any comments waiting for approval?"
- "Delete the draft called testing-123"
- "Create an About page for my blog"
Claude will call the right tool automatically.
Setup (5 minutes)
1. Get your Mataroa API key
- Go to mataroa.blog and log in (or create a free account).
- Open Dashboard → API and copy your API key.
2. Install the server
You need Python 3.10 or later. Clone this repo and install it locally:
git clone https://github.com/ayush111111/matoroa-mcp.git
cd matoroa-mcp
pip install -e .
3. Add to Claude Desktop
Open your Claude Desktop config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
If there is no "mcpServers" key, add it at the top level alongside any existing keys:
{
"mcpServers": {
"mataroa": {
"command": "python",
"args": ["-m", "mataroa_mcp.server"],
"env": {
"MATAROA_API_KEY": "paste-your-key-here"
}
}
},
"...your other existing config keys...": "..."
}
Note: Once
mataroa-mcpis published to PyPI you can replace"command": "python", "args": ["-m", "mataroa_mcp.server"]with"command": "uvx", "args": ["mataroa-mcp"]and skip the clone/install step entirely.
4. Restart Claude Desktop
Quit and reopen Claude Desktop. You should see a small plug icon in the chat bar indicating MCP tools are active.
5. Test it
Type: "Show me my blog posts" — Claude should list them.
Add to Claude Code
Create or edit .mcp.json in your project root:
{
"mcpServers": {
"mataroa": {
"command": "python",
"args": ["-m", "mataroa_mcp.server"],
"env": {
"MATAROA_API_KEY": "paste-your-key-here"
}
}
}
}
Available tools
| Tool | What it does |
|---|---|
list_posts |
List all posts (published + drafts) |
list_drafts |
List only unpublished drafts |
get_post |
Get a single post by slug |
create_post |
Create a new post |
update_post |
Edit an existing post |
delete_post |
Permanently delete a post |
publish_post |
Publish a draft (sets today's date, or a date you choose) |
unpublish_post |
Revert a published post back to draft |
list_comments |
List all comments (or just for one post) |
list_pending_comments |
List comments awaiting moderation |
approve_comment |
Approve a pending comment |
delete_comment |
Delete a comment |
list_pages |
List all pages |
get_page |
Get a single page by slug |
create_page |
Create a new page |
update_page |
Edit an existing page |
delete_page |
Permanently delete a page |
Notes
- API key is never stored in code — it's always read from the
MATAROA_API_KEYenvironment variable. - Mataroa has no rate limiting, so you can make requests freely.
- Blog-level settings (title, custom domain, etc.) are not accessible via the Mataroa API and therefore not exposed here.
- Draft posts have
published_at: null. Publishing sets it to a date; unpublishing clears it.
Running tests
# Unit tests (no API key needed)
pip install -e .
pip install pytest pytest-asyncio respx
pytest tests/test_client.py tests/test_server.py -v
# Integration tests (requires a real Mataroa API key)
MATAROA_API_KEY=your-key pytest tests/test_integration.py --run-integration -v
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mataroa_mcp-0.1.0.tar.gz.
File metadata
- Download URL: mataroa_mcp-0.1.0.tar.gz
- Upload date:
- Size: 186.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ca602daa000d27a7a4a3ccf2602a0b42c6602385103c417221d328000c496c8d
|
|
| MD5 |
9770d48f5efc7e04071afa44345ca876
|
|
| BLAKE2b-256 |
645665a7df85a7cd514f6637d750ffffee74080b0921e3c4bb591bd6d5d3b4d6
|
File details
Details for the file mataroa_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: mataroa_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 8.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b8b5d6124adbdbf2f4a1636f7d32c189ef6adbb48e434126947b3ec3371f198a
|
|
| MD5 |
318786eb0589235ffaed3660b2725229
|
|
| BLAKE2b-256 |
864de642614b406a6c11e50d5a8cdcc26c33ecd344ed998fa4bd65abd0f556bf
|