Blog Helper MCP Server
by malganis35
README.md
# Blog Helper MCP Server (FastMCP + `uv`)
Un serveur MCP (**Model Context Protocol**) d'exemple en Python utilisant **FastMCP** et géré avec **`uv`**.
Ce serveur expose des notes Markdown locales via des **Tools** et une **Resource**, avec protection contre les attaques de traversée de chemin (*Path Traversal*).
## 📖 Tutoriel Débutant
Pour apprendre à construire ce serveur pas à pas, consultez le guide complet :
👉 **[Lire le Tutoriel Débutant (tutorial/TUTORIAL.md)](tutorial/TUTORIAL.md)**
---
## 🚀 Démarrage rapide
### 1. Prérequis
- [uv](https://docs.astral.sh/uv/) installé (`curl -LsSf https://astral.sh/uv/install.sh | sh`)
- Python >= 3.10
### 2. Installation
```bash
uv sync
```
### 3. Exécuter les tests du client MCP
```bash
uv run python client_test.py
```
### 4. Lancer le serveur
```bash
uv run python server.py
```
---
## 🛠️ Outils & Ressources exposés
| Type | Nom / URI | Description |
| :--- | :--- | :--- |
| **Tool** | `list_notes()` | Liste les fichiers Markdown disponibles dans `notes/` |
| **Tool** | `read_note(name)` | Lit le contenu d'une note spécifique de manière sécurisée |
| **Tool** | `search_notes(query)` | Recherche les notes contenant un mot-clé |
| **Resource** | `note://{name}` | Expose une note comme ressource de contexte |
---
## 🔗 Intégration dans Claude Desktop / Claude Code / Antigravity
Exemple de configuration `claude_desktop_config.json` ou `mcp_config.json` :
```json
{
"mcpServers": {
"blog-helper": {
"command": "uv",
"args": [
"--directory",
"/chemin/absolu/vers/blog-helper-mcp",
"run",
"server.py"
]
}
}
}
```
TDQS
A3.6/5.0
Scored across 3 tools
Disambiguation5/5
Each tool serves a distinct purpose: listing, reading, and searching notes. There is no overlap or ambiguity in their functions.
Naming Consistency4/5
All tools follow the verb_noun pattern, but list_notes and search_notes use plural nouns while read_note uses singular, causing minor inconsistency.
Tool Count3/5
Three tools is on the low end, but for a simple read-only blog notes server, it is borderline acceptable. More tools might be expected for full blog management.
Completeness2/5
The server only covers reading and searching operations. It lacks create, update, and delete capabilities, which are significant gaps for a blog helper.
Maintenance
ActivityMaintained
ResponsivenessNo issues