@romain-geffrault-mcp/pdf-generator
v0.1.0
Published
Serveur MCP qui génère un PDF multi-pages optimisé pour LinkedIn
Downloads
101
Maintainers
Readme
pdf-generator-mcp
Serveur MCP qui genere un PDF multi-pages (1200x1500px) a partir de markdown, optimise pour LinkedIn.
Emplacement
/Users/romaingeffrault/Documents/projects/prive/pdf-generator-mcp
Installation
npm install
npx playwright installLancer le serveur
npm startConfiguration MCP (exemple)
{
"mcpServers": {
"pdf-generator-mcp": {
"command": "node",
"args": [
"/Users/romaingeffrault/Documents/projects/prive/pdf-generator-mcp/src/index.js"
]
}
}
}Outil disponible
render_linkedin_pdfmarkdown(string, requis)outputDir(string, requis)fileName(string, requis)title(string, requis) - Titre affiche sur la premiere page (texte noir sur fond jaune, centre)body(string, optionnel) - Texte markdown affiche sous le titre de la premiere page pour illustrer le contenuassetBaseDir(string, optionnel; par defaut,outputDir)skipEndPage(boolean, optionnel; par defaut,false)
Retourne le chemin du PDF genere avec une premiere page personnalisee incluant le titre et le body fournis.
Fonctionnalites
- Coloration syntaxique : Les blocs de code markdown sont automatiquement colores avec Shiki (theme github-dark)
- Premiere page personnalisee : Image de fond avec titre centre et texte descriptif optionnel
- Images inline : Toutes les images sont converties en data URI pour un PDF autonome
- Mise en page optimisee : Format 1200x1500px optimise pour LinkedIn
Consignes markdown
- Separe chaque page avec une ligne
---seule. - Chaque page doit contenir exactement 1 image.
- Utilise
#pour le titre principal (fond jaune, texte noir). - Utilise
##ou un blocquote>pour le texte secondaire (jaune sur fond noir transparent). - Les blocs de code (
```language) sont automatiquement colores avec Shiki. - Garde des paragraphes courts (1 a 3 lignes) et des listes concises.
- Les images doivent etre locales (chemins relatifs a
assetBaseDirou chemins absolus). - Ordre recommande: titre, texte secondaire, texte court, code/image.
Exemple de markdown
# Titre principal impactant
## Sous-titre ou contexte court
Un texte court pour introduire la page.

---
# Deuxieme page avec code
> Message secondaire en surbrillance.
```typescript
const counter = state(0, {
increment: (val) => val + 1,
decrement: (val) => val - 1,
});
```
## Exemple d'utilisation avec body
Le parametre `body` permet d'afficher un texte descriptif sous le titre de la premiere page :
```json
{
"title": "Les 5 primitives ng-craft",
"body": "5 primitives pour simplifier Angular :\n- `state` : etat synchrone\n- `query` : fetch de donnees\n- `mutation` : actions async",
"markdown": "# Page 1\n\n...\n\n---\n\n# Page 2\n\n...",
"outputDir": "/path/to/output",
"fileName": "result.pdf",
"assetBaseDir": "/path/to/assets"
}