Skip to main content
Glama
malganis35

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