@vibecheck/mcp
Enables AI agents to manage git-backed website content through natural language, with tools to create, update, delete, and draft pages that are schema-validated and committed to a repository.
README
VibeCheck
The CMS you talk to. A git-backed, schema-safe, headless CMS you edit by chatting with an AI agent.
š Live demo ā itself built with VibeCheck. You bring the vibe ā a sentence to the agent ā it does the check: validates against a schema, commits to your repo, and your host redeploys. Content is typed data, not markup, so an agent can't break the build.
Part of the EpleCheck family. Built with Astro + the Model Context Protocol.
You: "Add a pricing page with three tiers."
ā agent writes structured content ā commits to GitHub ā Vercel ships it. ~30s.
Why
- Edit by conversation ā no admin UI, no dashboard. Just talk to Claude.
- Can't break the build ā every change is schema-validated. A bad edit fails the check, not the site.
- Git-native ā every edit is a reviewable commit / pull request. Full history, rollbacks, the workflow you already trust.
- Deploys itself ā static output to Vercel / Netlify / Cloudflare Pages.
Layout (npm workspaces monorepo)
packages/schema @vibecheck/schema ā the content contract (zod). One source of truth.
apps/site the Astro site ā renderer + your content. This is what deploys.
apps/mcp @vibecheck/mcp ā the MCP server: lets an agent edit from anywhere.
site and mcp both import @vibecheck/schema, so the contract can never drift.
Quickstart
- Use this template ā your own GitHub repo (or
git clone). - Deploy to Vercel ā import the repo. For this monorepo, set the project
Root Directory to
apps/site. (Netlify / Cloudflare Pages / GitHub Pages work too ā it's static output.) - Edit by chat, two ways:
- Claude Code (local, zero infra): open the repo in Claude Code and ask it to edit pages. It writes the YAML directly; the schema validates at build.
- MCP server (edit from anywhere): run the VibeCheck MCP and add it to
Claude as a connector ā edit from claude.ai, Desktop, or your phone:
cp apps/mcp/.env.example apps/mcp/.env # fill in GITHUB_TOKEN + GITHUB_REPO npm run build && npm start -w @vibecheck/mcp
- Talk to it: "Create an FAQ page", "change the hero headline", "unpublish the pricing page" ā committed ā live.
Content model
A page is a YAML file in apps/site/src/content/pages/**/*.yaml ā a title and
a list of typed sections:
| Section | What it is |
|---|---|
hero |
heading, subheading, CTA |
features |
grid of cards (optional links / images) |
pricing |
plans with features + CTAs |
cta |
a call-to-action band |
richtext |
the only section with raw HTML |
form |
a simple form (name/email/fields) |
Only richtext carries HTML, so machine-generated content stays safe. The schema
lives in packages/schema/src/index.ts.
The MCP server
@vibecheck/mcp exposes tools (create_page, update_page, get_page,
delete_page, rename_page, set_draft, list_pages, plus blog-post tools)
that commit content into your repo. Configure it via apps/mcp/.env:
- GitHub (default):
GITHUB_TOKEN,GITHUB_REPO(owner/name). - GitLab (optional): set
VIBECHECK_PROVIDER=gitlab+GITLAB_*. MCP_AUTH_TOKENā clients send this as the Bearer token.
Publish modes on every write tool: merge_request (default ā opens a PR for
review) or direct (commit to the default branch; your host deploys on push).
Run it ā locally (npm start -w @vibecheck/mcp), or with Docker:
cp apps/mcp/.env.example apps/mcp/.env # fill in token + repo
docker compose up -d --build # or pull the prebuilt image:
# docker pull ghcr.io/eplecheck/vibecheck-mcp:latest
It listens on :8787 (POST /mcp); add it to Claude as an MCP connector with
Authorization: Bearer <MCP_AUTH_TOKEN>.
CI
build.ymlrunsnpm run buildon every push/PR ā because the site build validates every page against the schema, a green build means all content is valid.docker.ymlbuilds the MCP image and publishes it toghcr.io/eplecheck/vibecheck-mcp.
License
MIT Ā© EpleCheck AS.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.