blink-cms
Blink CMS via MCP
Publish and manage content on blink.new using the user-blink-mcp server. The MCP treats the Blink CMS like a virtual file system with built-in versioning and draft management.
Quick Reference
| Task | Tool | Key Params |
|---|---|---|
| List content | cms_list_dir |
path: "docs" or "blog" |
| Read article | cms_read_file |
path: "blog/article.mdx" |
| Create/Update | cms_write_file |
path, content, publish |
| Edit section | cms_search_replace |
path, old_string, new_string |
| Publish | cms_publish |
paths: ["blog/x.mdx"] |
| Find text | cms_grep |
query, type |
| Semantic search | cms_search |
query, type |
| See drafts | cms_list_drafts |
type |
| Version history | cms_get_versions |
path |
Content Structure
/docs/ → Documentation (quickstart, pricing, reference, etc.)
/docs/build/ → Build guides (prompting, tutorials, web-apps)
/docs/extend/ → Backend features (database, auth, storage)
/docs/launch/ → Deployment (domains, analytics)
/blog/ → Blog articles
Frontmatter Schema
Every article must include frontmatter:
---
title: "Article Title"
description: "Brief summary for SEO and cards"
category: "Engineering" # Product, Engineering, Tutorial, Case Study
tags: ["AI", "Productivity"] # Free-form array
status: "published" # Overridden by publish action
---
Categories:
Product— Announcements, launches, feature updatesEngineering— Technical deep-dives, best practicesTutorial— Step-by-step guidesCase Study— Customer success stories
Creating a New Article
cms_write_file(
path: "blog/my-article.mdx",
content: ---
title: "My Article Title"
description: "What this article is about"
category: "Engineering"
tags: ["AI", "Tips"]
---
## Introduction
Your content here with MDX components.
<Tip>Helpful tips use the Tip component.</Tip>
,
publish: false # Save as draft first
)
Then publish when ready:
cms_publish(paths: ["blog/my-article.mdx"])
Editing Existing Articles
Method 1: Full rewrite (use sparingly)
cms_write_file(path: "blog/article.mdx", content: "...full content...", publish: true)
Method 2: Surgical edit (preferred)
cms_search_replace(
path: "blog/article.mdx",
old_string: "## Introduction\n\nOld text here",
new_string: "## Introduction\n\nNew text here"
)
Include 3-5 lines of context for unique matches. Flexible whitespace matching handles indentation differences automatically.
Finding Content
Fuzzy text search (finds exact phrases):
cms_grep(query: "deployment", type: "blog", limit: 10)
Semantic search (finds by meaning):
cms_search(query: "how to deploy apps", type: "blog")
Version Control
# See all versions
cms_get_versions(path: "blog/article.mdx")
# Restore a specific version
cms_activate_version(path: "blog/article.mdx", version: 3)
Draft Workflow
# Check for unpublished changes
cms_list_drafts(type: "blog")
# Discard draft (revert to last published)
cms_discard_draft(path: "blog/article.mdx")
MDX Components
Common components for rich content:
<Tip>Helpful tip text</Tip>
<Note>Informational note</Note>
<Warning>Caution about something</Warning>
<Steps>
<Step title="First Step">Instructions</Step>
<Step title="Second Step">More instructions</Step>
</Steps>
<CodeGroup>
<CodeTab title="JavaScript">code here</CodeTab>
<CodeTab title="Python">code here</CodeTab>
</CodeGroup>
<CardGroup cols={2}>
<Card title="Feature Name" href="/docs/path" icon="Star">
Brief description
</Card>
</CardGroup>
<AccordionGroup>
<Accordion title="Question?">Answer content</Accordion>
</AccordionGroup>
Workflow Best Practices
- Read before editing: Always
cms_read_filefirst to understand current content - Use surgical edits: Prefer
cms_search_replaceover full rewrites - Preview drafts: Set
publish: falseto save drafts, review, thencms_publish - Version awareness:
cms_publishcreates version snapshots—use for rollback safety - Search first: Use
cms_grepto find exact text beforecms_search_replace
Complete Publishing Workflow
1. cms_list_dir(path: "blog") → See current articles
2. cms_write_file(path, content, false) → Create/update as draft
3. cms_read_file(path) → Review the saved content
4. cms_publish(paths: [path]) → Go live with version snapshot
MCP Server Name
All tools are accessed via the user-blink-mcp server:
server: "user-blink-mcp"
toolName: "cms_list_dir"
arguments: { "path": "blog" }
More from blink-new/claude
saas-sidebar
Build a modern, collapsible sidebar for SaaS dashboards following the ChatGPT/Notion design pattern
76pg-boss
Implement reliable PostgreSQL-based job queues with PG Boss. Use when implementing background jobs, scheduled tasks, cron-like functionality, task rollover, or email notifications in Node.js/TypeScript projects.
57bulk-select-actions
Build world-class table bulk selection with floating action toolbar. Linear/Notion-quality UX with proper checkbox states, smooth animations, and confirmation dialogs
49firecrawl
|
47watch-video
Analyze any public video URL (Loom, YouTube, etc.) and produce a vivid, engineer-grade report of what was shown and said. Use when a user shares a Loom, YouTube, or other video URL and wants it analyzed, summarized, transcribed, or understood by an AI — without needing to watch it themselves.
46gmail
Access and operate Gmail directly from scripts. Supports multiple accounts (link, list, unlink). Read inbox, search emails, read threads, reply with HTML/attachments/CC/BCC, send emails, manage labels, and manage drafts. On first use, runs an OAuth2 auth flow. Use when the user wants to read, search, reply, send, label, draft emails, or manage multiple Gmail accounts.
45