A community-driven registry for Claude, Cursor, Windsurf, Cline & more. Not affiliated with Anthropic.
Are you the author? Sign in to claim
MCP server that turns a Keyword Insights clustering CSV into a prioritised content calendar with Excel export. Works wit
An MCP server that turns a Keyword Insights clustering CSV into a prioritised, week by week content calendar. Works with Claude Desktop, Claude Code, ChatGPT, Windsurf, Cursor, Manus AI, and any MCP-compatible tool. Your AI handles the strategic analysis. The server handles CSV parsing, cluster enrichment, and a formatted Excel export with 5 sheets.

| # | Tool | Description |
|---|---|---|
| 1 | parse_clustering_csv | Reads a KWI clustering CSV, validates 18 required columns, compacts to top N clusters by opportunity, enriches with derived columns (mismatch counts, hub sizes, supporting keywords), and returns data with the full analysis instructions for the AI |
| 2 | export_content_calendar | Takes the calendar JSON that your AI generates and writes a formatted Excel workbook (5 sheets) plus a flat CSV to disk |
When parse_clustering_csv runs, it returns:
max_clusters (default 500). Each row includes cluster metrics, intent, funnel stage, hub/spoke taxonomy, and 4 derived columns: _ranking_kw_count, _mismatch_count, _supporting_kws, _hub_cluster_count
5 formatted sheets:
| Sheet | Description |
|---|---|
| Content Calendar | Week by week plan with 19 columns: week, score, action, target keyword, content type, cluster metrics, cluster URL, needs-scraping flag, intent, journey, hub topic, supporting keywords, SERP features, AI Overview flag, and action rationale. Colour-coded actions, priority colour scale, frozen header, TOTALS row |
| Gap Analysis Logic | Documentation sheet. A 4-step playbook for what to scrape when an action is UPDATE/OPTIMISE/REWRITE: existing page signals, competitor scraping, gap calculation, and enhanced brief generation |
| Pages to Scrape | Filtered to UPDATE/OPTIMISE/REWRITE items with URLs, cluster avg rank, content score, keyword count, and a concrete "What to Look For" instruction per page |
| Priority Backlog | Next 30 clusters not in the calendar, ranked by priority score, including Hub column so you can see topical clustering |
| Summary | Two sections. First: six "Cluster-Level Analysis Approach" principles explaining how the calendar was built. Second: Calendar Metrics including total clusters analysed, scheduled items, items needing page scraping, total cluster search volume, opportunity, keywords covered, and average priority score |
The Action Rationale column writes out intent mismatches in plain English so the reason each CREATE was scheduled is visible at a glance:

Gap Analysis Logic documentation sheet, a 4-step playbook for the scraping pass that feeds the writing brief:

Summary sheet with the Cluster-Level Analysis Approach principles table and the Calendar Metrics block:

Priority Backlog with Hub column for topical clustering context:

git clone https://github.com/Suganthan-Mohanadasan/kwi-content-calendar-mcp.git
cd kwi-content-calendar-mcp
npm install
npm run build
Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"kwi-content-calendar": {
"command": "node",
"args": ["/path/to/kwi-content-calendar-mcp/dist/index.js"]
}
}
}
Claude Code (~/.claude.json under mcpServers):
{
"kwi-content-calendar": {
"type": "stdio",
"command": "node",
"args": ["/path/to/kwi-content-calendar-mcp/dist/index.js"]
}
}
ChatGPT Desktop / Windsurf / Cursor: Same pattern. Point your MCP config at dist/index.js using stdio transport.
Restart your AI tool after adding the config. Once loaded, the two tools appear in the MCP server list:

| Parameter | Required | Default | Description |
|---|---|---|---|
csv_path | Yes | Absolute path to the KWI clustering CSV | |
domain | Yes | Client domain (e.g. example.com) | |
pieces_per_week | No | 3 | Content pieces per week |
weeks | No | 4 | Calendar duration in weeks |
tofu_pct | No | 45 | TOFU (awareness) target percentage |
mofu_pct | No | 30 | MOFU (consideration) target percentage |
bofu_pct | No | 25 | BOFU (conversion) target percentage |
max_clusters | No | 500 | Top N clusters by opportunity to analyse |
| Parameter | Required | Default | Description |
|---|---|---|---|
calendar_json | Yes | JSON string with calendar and backlog arrays | |
output_dir | Yes | Directory to save output files | |
filename_prefix | No | content_calendar | Prefix for output filenames |
total_clusters | No | 0 | Unique clusters from the source CSV (for Summary sheet) |
domain | No | "" | Client domain for the Content Calendar subtitle |
pieces_per_week | No | 3 | Pieces per week used in generation |
weeks | No | 4 | Calendar duration in weeks |
The AI is instructed by the analysis prompt to pass the metadata params through from the parse_clustering_csv stats, so the Content Calendar title and Summary sheet render correctly.

Just talk to your AI:
The AI handles strategy. The server handles I/O.
Every cluster is scored from 0 to 100 using 6 weighted factors plus multipliers for SERP features:
| Factor | Weight | Why it matters |
|---|---|---|
| Opportunity | 25% | Estimated additional traffic if rankings improve |
| Difficulty | 20% | Lower competition means faster results |
| Rank proximity | 20% | Closer to page 1 means less effort needed |
| Intent alignment | 15% | Mismatches get urgency points |
| Funnel stage | 10% | BOFU scores highest, because BOFU converts |
| Hub size | 10% | Clusters in large topic hubs build topical authority |
Multipliers: AI Overview in SERP features applies x1.15. Featured snippet applies x1.10. Clusters with 5 or more keywords apply x1.10. Zero search volume applies x0.70.
Each cluster gets classified before it lands in the calendar or the backlog:
Week 1 is reserved for intent mismatches. Week 2 for striking distance updates. Week 3 mixes quick wins with page 1 optimisations. Week 4 onwards picks up balanced fill with journey stage constraints applied.
The export includes all required columns: cluster metrics, intent classifications, funnel stages, hub/spoke taxonomy, SERP features, and ranking data.
Full walkthrough with screenshots and use cases: How I Turn 5,000 Keywords Into a Content Calendar in 3 Minutes (with Claude and an MCP Server)
MIT
A Jetbrains IDE IntelliJ plugin aimed to provide coding agents the ability to leverage intelliJ's indexing of the codeba
Run Claude Code as an MCP server so any agent can delegate coding tasks to it
Browser automation using accessibility snapshots instead of screenshots
via CLI