npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

mcp-ghost-optimized

v1.1.0

Published

MCP server for Ghost CMS with optimized field projection - reduces token usage by 90-98%

Readme

MCP Ghost Optimized

Serveur MCP pour Ghost CMS avec field projection pour réduire la consommation de tokens de 90-98%.

Pourquoi ce MCP ?

Le MCP officiel @fanyangmeng/ghost-mcp retourne ~14K tokens par appel. Ce MCP optimisé retourne ~200-1500 tokens selon le mode choisi.

Installation

Via Claude Code CLI

# Installation globale
claude mcp add ghost-optimized -e GHOST_URL=https://votre-blog.ghost.io -e GHOST_ADMIN_API_KEY=id:secret -- npx -y mcp-ghost-optimized

# Installation dans un projet spécifique
claude mcp add ghost-optimized -s project -e GHOST_URL=https://votre-blog.ghost.io -e GHOST_ADMIN_API_KEY=id:secret -- npx -y mcp-ghost-optimized

Le nom ghost-optimized évite les conflits si vous avez déjà un MCP Ghost installé.

Via .mcp.json (manuel)

Ajouter dans votre .mcp.json :

{
  "mcpServers": {
    "ghost-optimized": {
      "command": "npx",
      "args": ["-y", "mcp-ghost-optimized"],
      "env": {
        "GHOST_URL": "https://votre-blog.ghost.io",
        "GHOST_ADMIN_API_KEY": "id:secret"
      }
    }
  }
}

Installation locale

git clone https://github.com/Mathunterix/mcp-ghost-perso.git
cd mcp-ghost-perso
npm install
npm run build

Puis dans .mcp.json :

{
  "mcpServers": {
    "ghost-optimized": {
      "command": "node",
      "args": ["/chemin/vers/mcp-ghost-perso/dist/index.js"],
      "env": {
        "GHOST_URL": "https://votre-blog.ghost.io",
        "GHOST_ADMIN_API_KEY": "id:secret"
      }
    }
  }
}

Configuration

Variables d'environnement

| Variable | Obligatoire | Description | |----------|-------------|-------------| | GHOST_URL | Oui | URL de votre blog Ghost | | GHOST_ADMIN_API_KEY | Oui | Clé API Admin (format id:secret) | | GHOST_DEFAULT_TEMPLATE | Non | Template par défaut pour les nouveaux posts |

Tools disponibles

Posts

| Tool | Description | |------|-------------| | posts_browse | Liste les posts avec modes minimal, compact, standard | | posts_read | Lit un post avec modes metadata, content, full | | posts_add | Crée un post (supporte HTML via ?source=html) | | posts_edit | Modifie un post (gère auto updated_at) | | posts_delete | Supprime un post (requiert confirm: true + title) |

Tags

| Tool | Description | |------|-------------| | tags_browse | Liste les tags avec modes minimal, standard | | tags_read | Lit un tag par ID ou slug |

Images

| Tool | Description | |------|-------------| | images_upload | Upload une image depuis file_path ou url |

Exemples d'utilisation

Lister les posts publiés

posts_browse(status: "published", mode: "compact", limit: 10)

Filtrer par tag (NQL)

posts_browse(filter: "tag:finance+status:published")

Créer un post avec HTML

posts_add(
  title: "Mon article",
  html: "<p>Contenu de l'article</p>",
  status: "draft",
  tags: ["tech", "tutorial"]
)

Uploader une image

# Depuis un fichier local
images_upload(file_path: "/tmp/image.jpg")

# Depuis une URL
images_upload(url: "https://example.com/image.jpg", filename: "image.jpg")

Supprimer un post

posts_delete(id: "xxx", title: "Titre du post", confirm: true)

Modes de réponse

posts_browse

| Mode | Tokens/post | Champs | |------|-------------|--------| | minimal | ~15 | id, title, slug, status | | compact | ~50 | + published_at, updated_at | | standard | ~150 | + tags, excerpt, reading_time |

posts_read

| Mode | Tokens | Champs | |------|--------|--------| | metadata | ~200 | Métadonnées sans contenu | | content | ~500-2000 | + plaintext (HTML converti) | | full | ~500-3000 | + HTML brut |

Développement

npm run dev    # Watch mode
npm run build  # Compile TypeScript

Structure

src/
├── index.ts          # Entry point (stdio transport)
├── server.ts         # Définition des tools MCP
├── api/
│   ├── auth.ts       # Génération JWT
│   └── client.ts     # Client HTTP avec field projection
└── utils/
    ├── fields.ts     # Presets de champs par mode
    └── html.ts       # Conversion HTML → plaintext

Licence

MIT