Serveur MCP pencms
Commit 17 oct. 2026Permet aux agents IA et aux humains de collaborer sur du contenu centré sur le Markdown via un CMS headless doté d'un MCP server natif.
Aussi connu sous slpstream/pencms
- Étoiles
- 1
- Outils
- —
- Téléchargements, 30 jours
- —
- Dernière version
- —
- Dernier commit
- 17 oct. 2026
- Licence
- MIT
Qu'est-ce que pencms MCP ?
pencms est un serveur MCP. Permet aux agents IA et aux humains de collaborer sur du contenu centré sur le Markdown via un CMS headless doté d'un MCP server natif.
Résumé généré à partir du README du projet
À propos du MCP server pencms
La collaboration sur du contenu centré sur le Markdown avec des agents IA et des humains est ce que pencms permet grâce à son architecture headless. Ce système auto-hébergé utilise un backend Python FastAPI et un frontend d'administration PHP pour gérer des fichiers plats. Comme il repose sur le Markdown et le YAML plutôt que sur une base de données secondaire pour les brouillons, les agents et les utilisateurs travaillent toujours sur la même source de vérité.
Les développeurs peuvent déployer ce système localement sur un ordinateur portable ou sur un VPS en utilisant Docker Compose et Caddy. La configuration nécessite un backend Python tournant sur le port 8008 et un frontend PHP sur le port 8009. Les agents interagissent avec le système via l'endpoint MCP à l'adresse /api/mcp en utilisant des clés d'accès révocables. Cela permet une lecture et une écriture à haute vitesse tout en conservant le contrôle sur les remotes Git, le stockage disque et les paramètres TLS. Le système inclut également un index SQLite local pour garantir que les requêtes restent réactives, même sur des machines moins puissantes.
Ce que vous pouvez faire avec
- 1Création de contenu agentiqueUn agent IA peut lire et écrire directement dans vos fichiers Markdown pour publier de nouveaux articles.
- 2Synchronisation avec des dépôts distantsVous pouvez synchroniser votre contenu vers GitHub ou GitLab en utilisant des API REST HTTPS sans avoir besoin d'un accès shell.
- 3Gestion de workflows multi-agentsUn seul opérateur peut gérer plusieurs agents IA en émettant des clés d'accès individuelles.
- 4Administration de contenu pilotée par l'humainLes utilisateurs peuvent gérer les thèmes, le stockage et la structure via une interface d'administration PHP dédiée.
Extrait du README du projet. Chaque cas d'utilisation est vérifié par rapport à une citation du document.
Configuration
PHP_CLI_SERVER_WORKERS
| Nom | Description | Type |
|---|---|---|
| PHP_CLI_SERVER_WORKERS | — |
Vérifications automatisées
Exécuté le 15 nov. 2026Rapport complet →Pas encore vérifié. Un serveur nécessite un score de 80, aucune faille sérieuse et suffisamment de données pour que nous puissions effectuer les vérifications. Fonctionnement des vérifications · Ce qu'il faut corriger pour gagner des points
- Dépôt source lié et accessibleslpstream/pencms is public and reachablegithub.com/slpstream/pencms ↗Réussi
- Le nom du package correspond au dépôt sourceNon vérifié
- Provenance du build (attestation Sigstore)Non vérifié
- Licence open source (OSI)MITspdx.org/licenses/MIT.html ↗Réussi
- Commit ou version publiée au cours de l'année écouléeLast commit or release 2026-10-17github.com/slpstream/pencms ↗Réussi
- OpenSSF ScorecardNon vérifié
- Nom du package non proche d'un package populaireNon vérifié
- Aucun avis critique dans le package ou ses dépendancesNon vérifié
- Aucune instruction cachée destinée au modèle0 tool descriptions and the README read; no override phrases, credential paths or hidden charactersRéussi
- Les outils destructifs sont étiquetésNon vérifié
- Le point de terminaison distant répond à la poignée de main MCPNon vérifié
README
Voir sur GitHubMany agents via keys. One operator.
PenCMS is a self-hosted, MIT-licensed Markdown and Git CMS with a Python (FastAPI) backend and a PHP admin frontend. Humans and agents edit the same flat files with no hidden state or secondary database. You control the machine — disk, Git remotes, TLS, and revocable access keys — while agents read and publish directly through MCP.
Self-Hosting PenCMS? Follow the step-by-step Quickstart Guide to get the Python Backend and PHP Frontend running on your machine in 5 minutes.
Key Principles
- Contract-First: Every backend endpoint, schema, and validation rule is defined in a hand-written OpenAPI specification (
core/openapi.yaml). - Flat-File Source of Truth: All pages, posts, and entries are stored as clean Markdown + YAML files. No second database of “AI drafts.”
- Two doors: PHP admin for humans (structure, keys, themes, storage); MCP (
/api/mcp) for agents (read/write at agent speed). - High-Performance Query Cache: Reads use a local SQLite index on write, so the CMS stays responsive on small machines.
- Shell-Free Git Syncing: Remote repos (GitHub/GitLab) via HTTPS REST APIs when a shell is restricted.
- Selfhosting: Run locally, on LAN HTTPS, or a small VPS.
PenCMS v0.2.0 explicitly bundles Traven Editor v0.3.0.
Repository Structure
pencms/
├── core/ # Contract & Specifications
│ ├── openapi.yaml # API Spec (Source of Truth)
│ ├── schemas/ # Document Schemas
│ └── docs/ # Guides (incl. quickstart.md, mcp_guide.md)
│
├── backend-python/ # FastAPI CMS + MCP + OAuth (the product brain, its backend)
│
└── frontend-php/ # Admin UI client (bundles Traven Editor v0.3.0)
Run / Deploy
| Path | Doc |
|---|---|
| Self-hosting on your own hardware (ELI5 Quickstart) | Step-by-step beginner guide — core/docs/quickstart.md |
| VPS / public HTTPS | Docker Compose + Caddy — core/docs/deploy_compose.md (deploy/) |
| LAN home server | mkcert + reverse proxy — core/docs/lan_https.md |
| An agent’s own site | core/docs/agent-owned-site.md |
| Agents / MCP / OAuth | core/docs/mcp_guide.md |
| Users + agent keys | core/docs/users-and-access.md |
2-Minute Local Quickstart (Laptop / Desktop)
PenCMS runs as two coordinated engines—the Python Backend (API & storage on :8008) and the PHP Frontend (Admin UI & Blog on :8009).
-
Start the Backend (Terminal 1):
cd backend-python python3 -m venv venv && source venv/bin/activate pip install -r requirements.txt playwright install chromium uvicorn app.main:app --reload --port 8008 -
Start the Frontend (Terminal 2):
cd frontend-php PHP_CLI_SERVER_WORKERS=8 php -c php.ini -S 127.0.0.1:8009 -t public router.php -
Initialize & Explore:
- Create your admin account: http://127.0.0.1:8009/admin/setup.php
- Admin Dashboard: http://127.0.0.1:8009/admin/
- Public Blog: http://127.0.0.1:8009/blog/
👉 For full step-by-step guidance, home server setup, and troubleshooting, read the ELI5 Quickstart Guide.
Docker Compose (VPS / Public HTTPS)
For cloud VPS deployments with automatic Let's Encrypt TLS:
cd deploy
cp .env.example .env # set PUBLIC_HOST, JWT_SECRET, JWT_ISSUER, MCP_RESOURCE_URL, CORS_ALLOW_ORIGINS
docker compose up -d --build
See core/docs/deploy_compose.md for full VPS configuration and reverse proxy details.
License
Open-source, licensed under the MIT License.
Questions sur pencms MCP
Comment les humains et les agents IA interagissent-ils avec le contenu ?
Les humains utilisent l'interface d'administration PHP tandis que les agents utilisent le MCP server pour lire et écrire du contenu directement.
Où le contenu est-il stocké ?
Toutes les pages, articles et entrées sont stockés sous forme de fichiers Markdown et YAML propres dans un système de fichiers plats (flat-file).
Cela nécessite-t-il une base de données ?
Le système utilise un système de fichiers plats comme source de vérité, bien qu'il utilise un index SQLite local lors de l'écriture pour maintenir des requêtes haute performance.