Skip to main content
Glama
viadjo
by viadjo

md-cms-mcp-server

MCP-server die een AI-assistent (Claude, ChatGPT) vijf tools geeft om Markdown-content in een GitHub-repo te beheren, als een headless CMS:

  • list_content — lijst alle .md-bestanden in de content-directory.

  • read_content — leest de ruwe inhoud (incl. frontmatter) van één bestand.

  • create_content — maakt een nieuw .md-bestand aan via branch + PR.

  • update_content — vervangt de inhoud van een bestaand bestand via branch + PR.

  • delete_content — verwijdert een bestand via branch + PR.

Alle schrijfoperaties gaan altijd via een branch + pull request — er wordt nooit direct naar de base branch geschreven, zodat wijzigingen reviewbaar zijn.

De server is multi-repo: standaard werkt hij met de repo uit de env-vars, maar elke tool accepteert een optioneel repo-parameter ("owner/repo") om een andere repo te beheren. De GitHub-token moet dan wel toegang hebben tot die repo.

De server draait stateless over Streamable HTTP (één /mcp-endpoint), zodat hij als custom connector in zowel Claude als ChatGPT werkt.

1. Lokaal testen

npm install
cp .env.example .env   # vul GITHUB_TOKEN, GITHUB_OWNER, GITHUB_REPO, MCP_ACCESS_TOKEN in
npm run dev

Health check: curl http://localhost:3000/healthzok.

Test met de MCP Inspector of voeg de server direct als connector toe aan Claude Desktop.

Related MCP server: GitHub MCP Server

2. GitHub token aanmaken

Maak een fine-grained personal access token aan (GitHub → Settings → Developer settings → Fine-grained tokens), scoped tot de repo('s) die je wilt beheren, met permissies:

  • Contents: Read and write

  • Pull requests: Read and write

Voor multi-repo: scope de token naar alle repo's die je wilt beheren.

3. Deployen

De server is een gewone Node/Express-app:

docker build -t md-cms-mcp-server .
docker run -p 3000:3000 --env-file .env md-cms-mcp-server

Past op elk platform met Dockerfile of Node-buildpack support (Render, Fly.io, Railway, VPS). Zorg dat de server bereikbaar is via https — MCP-clients accepteren doorgaans geen http-only servers.

4. Koppelen aan Claude

In claude.ai: Settings → Connectors → Add custom connector.

  • URL: https://jouw-domein.tld/mcp

  • Header: Authorization: Bearer <jouw MCP_ACCESS_TOKEN>

In Claude Desktop/Claude Code:

{
  "mcpServers": {
    "md-cms": {
      "type": "http",
      "url": "https://jouw-domein.tld/mcp",
      "headers": {
        "Authorization": "Bearer <jouw MCP_ACCESS_TOKEN>"
      }
    }
  }
}

5. Koppelen aan ChatGPT

Onder Settings → Connectors voeg je dezelfde URL en Authorization-header toe.

Ontwerpkeuzes

  • Altijd via branch + PR, nooit direct commit naar de base branch.

  • Eén gedeeld bearer-token voor alle clients.

  • CONTENT_DIR-sandboxing: alle paths worden genormaliseerd en gedwongen binnen de content-directory te blijven.

  • Multi-repo: env-vars zetten de standaard-repo, maar tools accepteren een repo-override. De token-scope is de security-boundary.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers