batch-process
Batch-produce many content pieces as one resumable queue, highest priority first. \"write these 15 posts\"
Connect a registry MCP connector (Webflow, WordPress, Notion) with endpoint and credential steps. \"connect WordPress\"
Claude Code
$ npx -y skills add indranilbanerjee/contentforge --skill cf-connect --agent claude-code
Codex
$ npx skills add indranilbanerjee/contentforge --skill cf-connect -a codex -y
Cursor
$ npx skills add indranilbanerjee/contentforge --skill cf-connect -a cursor -y
Gemini CLI
$ npx skills add indranilbanerjee/contentforge --skill cf-connect -a gemini-cli -y
GitHub Copilot
$ npx skills add indranilbanerjee/contentforge --skill cf-connect -a github-copilot -y
OpenCode
$ npx skills add indranilbanerjee/contentforge --skill cf-connect -a opencode -y
Windsurf
$ npx skills add indranilbanerjee/contentforge --skill cf-connect -a windsurf -y
name: cf-connect description: "Connect a registry MCP connector (Webflow, WordPress, Notion) with endpoint and credential steps. \"connect WordPress\"" argument-hint: "[connector-name]" effort: low
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
Set up a specific MCP integration for ContentForge with step-by-step instructions tailored to the connector's transport type. Handles HTTP connectors (OAuth-based), npx connectors (API keys, environment variables, `.mcp.json` entry), unknown connector names (fuzzy matching), and post-setup verification.
ContentForge ships **no `.mcp.json`** (it is gitignored). This is deliberate (v3.9.0 Cowork-safety decision): no connector auto-connects when the plugin is installed. **Every connector is opt-in** — the user adds it to their own `.mcp.json` (or connects it at the platform level in Cowork/Desktop Settings → Integrations).
Never claim a connector is pre-wired or already connected. All status claims must come from running `python "${CLAUDE_PLUGIN_ROOT}/scripts/connector-status.py"` — never from this file or from memory.
Use `/contentforge:cf-connect <name>` when:
1. **Look Up Connector** — Find the connector in the registry, handle typos and close matches 2. **Check Current Status** — Determine if already configured or needs setup 3. **Present Setup Instructions** — Tailored to transport type (HTTP vs npx) 4. **Guide Credential Acquisition** — Where to get API keys, which permissions to set 5. **Provide .mcp.json Entry** — Ready-to-paste configuration 6. **Verify After Setup** — Confirm environment variables are set and configuration is valid
**Required:**
**Optional:**
Run the setup guide lookup:
python "${CLAUDE_PLUGIN_ROOT}/scripts/connector-status.py" --action setup-guide --name <connector>This returns:
**If the connector name is not found**, check common aliases before showing an error:
| Input | Matches To | |-------|-----------| | `wp`, `wordpress` | `wordpress` | | `gsheets`, `sheets`, `google-sheets` | `google-sheets` | | `gdrive`, `drive`, `google-drive` | `google-drive` | | `ga`, `ga4`, `google-analytics` | `google-analytics` | | `gsc`, `search-console` | `google-search-console` | | `gcal`, `calendar` | `google-calendar` | | `x`, `twitter` | `twitter-x` | | `li`, `linkedin` | `linkedin-publishing` | | `ig`, `insta` | `instagram` | | `hs`, `hubspot` | `hubspot-cms` | | `sarvam` | `sarvam-ai` |
If no match is found after alias lookup, run `python "${CLAUDE_PLUGIN_ROOT}/scripts/connector-status.py" --action list-available` and present the actual list.
python "${CLAUDE_PLUGIN_ROOT}/scripts/connector-status.py" --action check --name <connector>This returns `connected` or `not_connected`, plus (for npx connectors) which env vars are set vs missing. Render exactly what the script reports.
**If already configured:** confirm to the user, list the skills it enables (from the script JSON), and stop — no action needed.
**If not configured, proceed to Step 3.**
Instructions differ based on transport type. Both types require the user to add an entry to `.mcp.json` (or connect at the platform level) — nothing is pre-wired.
HTTP connectors are the easiest: one `.mcp.json` entry, no API keys for OAuth-based ones, and they work in **both Cowork and Claude Code**.
Setup pattern to walk the user through:
1. **Get the verified endpoint URL.** Use the endpoint from the setup-guide script output, cross-checked against `.mcp.json.connectors-reference` (the plugin's catalog of verified HTTP endpoints). Do not guess endpoint URLs from memory — unverified URLs waste the user's time. 2. **Add the entry to `.mcp.json`** in the plugin root:
"notion": {
"type": "http",
"url": "<verified endpoint from the reference file>"
}In Cowork/Claude Desktop, the platform-level integration (Settings → Integrations) may be simpler — mention it when available. 3. **Restart the session** so the new entry is picked up. 4. **Authorize on first use.** The first time a skill accesses the connector, the platform shows an OAuth prompt. Sign in and grant permissions. The token is managed by the platform afterward.
ContentForge gives a runnable `npx` command only for a package the service's **vendor** publishes, and the list is `config/verified-npx-packages.json` (the package name, the npm account expected on it,
🌐 Read this in: English · हिन्दी · 中文 · 日本語 · 한국어 · Español · Português · العربية · اردو · தமிழ் · বাংলা · Русский You need to ship 30 articles this quarter that sound human, cite real sources, link into your funnel, and survive an editor who checks.
Batch-produce many content pieces as one resumable queue, highest priority first. \"write these 15 posts\"
Add a custom MCP connector for any external API or service. \"hook up our internal CMS\"
Re-check a published piece's AEO: cited in AI Overviews and AI answers, tracked over time. \"did AI cite our article\"
Show content analytics: quality-score trends, slowest pipeline phase and alerts over 7-90 days. \"how is production going\"
Audit a content library for stale posts and topic gaps; ranks what to refresh or retire. \"which posts need refreshing\"
Write a research-backed content brief from a keyword or topic: intent, competitors, outline. \"brief me on this topic\"
Activates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use…
AI-driven presentation workflow for generating editable PPTX decks and slides, reconstructing page visuals, creating reusable…
Use this skill when the user wants a .pptx with smooth cross-slide animation — PowerPoint Morph transitions, Keynote-style…
Create stunning, animation-rich HTML presentations from scratch or by converting PowerPoint files. Use when the user wants to…