cf-connect · diff

git:20260526.e64078c to git:20260706.1a06b16

112 added, 370 removed. Audit A to A.

---
name: cf-connect
description: "Set up an MCP connector with step-by-step instructions. Use to connect Notion, Canva, Webflow, etc."
argument-hint: "[connector-name]"
effort: low
---
- # Guided Connector Setup
+ # /contentforge:cf-connect — Guided Connector Setup
- 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, zero config), npx connectors (API keys, environment variables, `.mcp.json` entry), unknown connector names (fuzzy matching), and post-setup verification.
+ 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.
- ## Context efficiency
+ ## The ground truth about connectors
- Pipeline phase. **Grep before Read** for `references/`, `humanization-patterns.json`, brand voice profiles. Pass earlier-phase outputs by path + line range, not by reloading. On `/contentforge:resume`, load only the failed phase's state.
+ ContentForge ships with an **empty `.mcp.json`** (`"mcpServers": {}`). 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 `.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 scripts/connector-status.py` — never from this file or from memory.
+
## When to Use
- Use `/contentforge:connect <name>` when:
- - You want to connect a specific service (e.g., `/contentforge:connect wordpress`)
+ Use `/contentforge:cf-connect <name>` when:
+ - You want to connect a specific service (e.g., `/contentforge:cf-connect wordpress`)
- A skill told you a connector is missing and suggested using this command
- You're setting up a new ContentForge installation and configuring integrations
- You need the exact environment variables and `.mcp.json` entry for an npx connector
- You want to verify an existing connector is working correctly
## What This Command Does
1. **Look Up Connector** — Find the connector in the registry, handle typos and close matches
- 2. **Check Current Status** — Determine if already connected or needs setup
+ 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 for npx connectors
+ 5. **Provide .mcp.json Entry** — Ready-to-paste configuration
6. **Verify After Setup** — Confirm environment variables are set and configuration is valid
## Required Inputs
**Required:**
- **Connector name** — The service to connect (e.g., `notion`, `wordpress`, `google-sheets`, `canva`)
- Fuzzy matching is supported: `wp` matches `wordpress`, `gsheets` matches `google-sheets`, `ga` matches `google-analytics`
**Optional:**
- **Environment** — `cowork` or `claude-code` (auto-detected if not specified)
- ## How to Use
-
- ### Basic Usage
- ```
- /contentforge:connect wordpress
- ```
- Shows step-by-step setup instructions for WordPress.
-
- ### Already Connected Connector
- ```
- /contentforge:connect notion
- ```
- If Notion is already configured, shows confirmation and which skills it enables.
-
- ### Unknown Connector Name
- ```
- /contentforge:connect wp
- ```
- Fuzzy matches to `wordpress` and shows setup guide.
-
- ### With Environment Override
- ```
- /contentforge:connect google-sheets --env=claude-code
- ```
- Forces Claude Code-specific instructions (relevant for npx connectors).
-
## What Happens
### Step 1: Look Up Connector (Instant)
Run the setup guide lookup:
```
- python3 scripts/connector-status.py --action setup-guide --name <connector>
+ python scripts/connector-status.py --action setup-guide --name <connector>
```
This returns:
- Connector metadata (name, category, description, transport type)
- - Whether it's already configured
+ - Whether it's already configured in this installation
- Setup steps specific to the transport type
- Skills unlocked by this connector
- For npx: required environment variables and `.mcp.json` entry
- **If the connector name is not found:**
- - The script returns an error with a hint to list available connectors
- - Before showing the error, check for common aliases and close matches:
+ **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` |
- | `sw`, `similarweb` | `similarweb` |
| `sarvam` | `sarvam-ai` |
- If no match is found after alias lookup, present the full list of available connectors and ask the user to pick one.
+ If no match is found after alias lookup, run `python scripts/connector-status.py --action list-available` and present the actual list.
### Step 2: Check Current Status (Instant)
- Run the status check:
-
```
- python3 scripts/connector-status.py --action check --name <connector>
- ```
-
- This returns:
- - `connected` or `not_connected`
- - For npx connectors: which env vars are set vs missing
- - Transport type and URL (HTTP) or package name (npx)
-
- **If already connected:**
+ python scripts/connector-status.py --action check --name <connector>
```
- -----------------------------------------------------------
- CONNECTOR STATUS: Notion
- -----------------------------------------------------------
- Status: Connected
- Transport: HTTP
- Category: Knowledge base
- URL: https://mcp.notion.com/mcp
-
- Skills enabled by this connector:
- - /contentforge — content production pipeline
- - /batch-process — parallel content processing
- - /content-refresh — update existing content
- - /contentforge:brief — data-driven content briefs
- - /contentforge:audit — content quality audit
- - /contentforge:style-guide — brand style guide management
-
- This connector is working. No action needed.
+ This returns `connected` or `not_connected`, plus (for npx connectors) which env vars are set vs missing. Render exactly what the script reports.
- Tip: Try /contentforge to start producing content with Notion
- as your requirement and brand document source.
- -----------------------------------------------------------
- ```
+ **If already configured:** confirm to the user, list the skills it enables (from the script JSON), and stop — no action needed.
- **If not connected, proceed to Step 3.**
+ **If not configured, proceed to Step 3.**
### Step 3: Present Setup Instructions
- Instructions differ based on transport type.
-
- #### HTTP Connectors (7 pre-configured: Notion, Canva, Figma, Webflow, Slack, Gmail, Google Calendar; plus Ahrefs, Similarweb available)
-
- The 7 pre-configured HTTP connectors are the easiest to set up because they're already in ContentForge's `.mcp.json` file. No API keys, no environment variables, no manual configuration. Ahrefs and Similarweb are also HTTP connectors but must be added to `.mcp.json` by the user.
-
- ```
- -----------------------------------------------------------
- SETUP GUIDE: Canva
- -----------------------------------------------------------
-
- Transport: HTTP (pre-configured)
- Category: Design
- URL: https://mcp.canva.com/mcp
-
- SETUP STEPS:
- -----------------------------------------------------------
-
- Step 1: Nothing to configure.
- This connector is already defined in ContentForge's
- .mcp.json file. HTTP connectors are managed by the
- platform automatically.
-
- Step 2: Use a skill that needs Canva.
- Try: /contentforge (with image generation enabled)
- Or: /contentforge:social-adapt (for social media graphics)
-
- Step 3: Authorize when prompted.
- The first time a skill accesses Canva, the platform
- will display an OAuth authorization prompt. Sign in
- with your Canva account and grant the requested
- permissions.
-
- Step 4: Done.
- After authorization, Canva is fully connected. The
- OAuth token is managed by the platform — you won't
- need to re-authorize unless you revoke access.
-
- SKILLS UNLOCKED:
- -----------------------------------------------------------
- - /contentforge — generate featured images alongside content
- - /batch-process — auto-generate images for batch runs
- - /contentforge:social-adapt — create platform-specific social graphics
-
- ENVIRONMENT:
- -----------------------------------------------------------
- Works in: Cowork and Claude Code
- Credentials: Managed by platform (OAuth)
- .mcp.json: Already configured (no changes needed)
-
- -----------------------------------------------------------
- ```
-
- #### npx Connectors (WordPress, Google Sheets, Google Drive, Semrush, DeepL, etc.)
-
- npx connectors require environment variables and a `.mcp.json` entry. They work in Claude Code only.
-
- ```
- -----------------------------------------------------------
- SETUP GUIDE: WordPress
- -----------------------------------------------------------
-
- Transport: npx (local server)
- Category: CMS
- Package: mcp-wordpress
-
- SETUP STEPS:
- -----------------------------------------------------------
-
- Step 1: Obtain API credentials.
- - Log in to your WordPress admin panel
- - Go to Users > Your Profile > Application Passwords
- - Create a new application password for "ContentForge"
- - Copy the generated password (shown once only)
- - Note your site URL (e.g., https://example.com)
-
- Step 2: Set environment variables.
- Add these to your shell profile (.bashrc, .zshrc) or .env file:
-
- export WORDPRESS_SITE_URL="https://your-site.com"
- export WORDPRESS_AUTH_TOKEN="your-application-password"
-
- Then reload your shell:
- source ~/.bashrc # or source ~/.zshrc
-
- Step 3: Add to .mcp.json.
- Add this entry to the mcpServers object in your
- ContentForge .mcp.json file:
-
- "wordpress": {
- "command": "npx",
- "args": ["-y", "mcp-wordpress"],
- "env": {
- "WORDPRESS_SITE_URL": "${WORDPRESS_SITE_URL}",
- "WORDPRESS_AUTH_TOKEN": "${WORDPRESS_AUTH_TOKEN}"
- }
- }
-
- If you prefer, copy the full .mcp.json.example file
- which includes all npx connectors pre-configured:
-
- cp .mcp.json.example .mcp.json
+ 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.
- Step 4: Verify the connection.
- Restart Claude Code to pick up the new .mcp.json entry.
- Then test with:
+ #### HTTP Connectors (e.g., Notion, Canva, Figma, Webflow, Slack, Gmail, Google Calendar, Ahrefs)
- /contentforge:integrations --category=cms
+ 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**.
- WordPress should appear as [connected].
+ Setup pattern to walk the user through:
- ENVIRONMENT VARIABLES:
- -----------------------------------------------------------
- | Variable | Status | Description |
- |-----------------------|---------|--------------------------------|
- | WORDPRESS_SITE_URL | missing | Your WordPress site URL |
- | WORDPRESS_AUTH_TOKEN | missing | Application password from WP |
+ 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:
+ ```json
+ "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.
- .MCP.JSON ENTRY (ready to paste):
- -----------------------------------------------------------
- "wordpress": {
- "command": "npx",
- "args": ["-y", "mcp-wordpress"],
- "env": {
- "WORDPRESS_SITE_URL": "${WORDPRESS_SITE_URL}",
- "WORDPRESS_AUTH_TOKEN": "${WORDPRESS_AUTH_TOKEN}"
- }
- }
+ #### npx Connectors (e.g., WordPress, Google Sheets, Semrush, DeepL)
- SKILLS UNLOCKED:
- -----------------------------------------------------------
- - /contentforge:publish — publish directly to WordPress from ContentForge
- - /contentforge — end-to-end pipeline with WordPress as publish target
- - /batch-process — auto-publish batch runs to WordPress
+ npx connectors require environment variables and a `.mcp.json` entry. They work in **Claude Code only** (Cowork cannot run local Node.js servers).
- ENVIRONMENT:
- -----------------------------------------------------------
- Works in: Claude Code only (requires Node.js + npx)
- Does NOT work in: Cowork (npx servers not supported)
- Requirements: Node.js 18+, npx available in PATH
+ Setup pattern:
- NOTES:
- -----------------------------------------------------------
- - API keys are read from environment variables at runtime.
- Never hardcode credentials in .mcp.json or plugin files.
- - If you use .env files, make sure they're loaded before
- starting Claude Code (e.g., via direnv or shell profile).
- - The npx package is downloaded automatically on first use.
- No separate npm install step required.
+ 1. **Get the package name and env vars** from `python scripts/connector-status.py --action setup-guide --name <connector>`.
+ 2. **Verify the npm package actually exists before recommending it:**
+ ```
+ npm view <package-name> version
+ ```
+ If the package doesn't exist or looks abandoned (no updates in 12+ months, negligible downloads), tell the user and search npm for a maintained alternative rather than proceeding.
+ 3. **Obtain credentials** from the service (e.g., WordPress: admin panel → Users → Profile → Application Passwords; create one named "ContentForge" and note the site URL).
+ 4. **Set environment variables** (shell profile or `.env` loaded before Claude Code starts; on Windows: System Properties → Environment Variables, then restart the terminal):
+ ```
+ export WORDPRESS_SITE_URL="https://your-site.com"
+ export WORDPRESS_AUTH_TOKEN="your-application-password"
+ ```
+ 5. **Add the `.mcp.json` entry** (use the exact block from the setup-guide output):
+ ```json
+ "wordpress": {
+ "command": "npx",
+ "args": ["-y", "<verified-package-name>"],
+ "env": {
+ "WORDPRESS_SITE_URL": "${WORDPRESS_SITE_URL}",
+ "WORDPRESS_AUTH_TOKEN": "${WORDPRESS_AUTH_TOKEN}"
+ }
+ }
+ ```
+ 6. **Restart Claude Code** and verify (Step 5).
- -----------------------------------------------------------
- ```
+ Never hardcode credentials in `.mcp.json` or plugin files — always reference environment variables.
### Step 4: Handle Unknown Connectors
- When a connector name is not found in the registry and no fuzzy match exists:
-
- ```
- -----------------------------------------------------------
- CONNECTOR NOT FOUND: "monday"
- -----------------------------------------------------------
-
- "monday" is not in the ContentForge connector registry.
-
- Did you mean one of these?
- - notion (knowledge-base) — content requirements, brand docs
- - confluence (knowledge-base) — team wikis, brand guidelines
-
- Or browse all 22 available connectors:
- /contentforge:integrations --show=available
-
- MANUAL CONFIGURATION:
- -----------------------------------------------------------
- If you have an MCP server for Monday.com, you can add it
- manually to .mcp.json:
-
- For HTTP MCP servers:
- "monday": {
- "type": "http",
- "url": "https://your-mcp-server-url/mcp"
- }
-
- For npx MCP servers:
- "monday": {
- "command": "npx",
- "args": ["-y", "mcp-monday"],
- "env": {
- "MONDAY_API_KEY": "${MONDAY_API_KEY}"
- }
- }
-
- Note: Manually added connectors will work with Claude but
- won't appear in /contentforge:integrations until added to the registry.
-
- -----------------------------------------------------------
- ```
-
- ### Step 5: Verify After Setup (npx only)
-
- After the user follows the setup steps for an npx connector, help them verify:
-
- ```
- -----------------------------------------------------------
- VERIFICATION: WordPress
- -----------------------------------------------------------
-
- Checking environment variables...
- WORDPRESS_SITE_URL: set ("https://example.com")
- WORDPRESS_AUTH_TOKEN: set (value hidden)
-
- Checking .mcp.json...
- "wordpress" entry: found
+ When a connector name is not in the registry and no fuzzy match exists:
- Result: Configuration looks correct.
+ 1. Say clearly it's not in the registry.
+ 2. Suggest the closest same-category connectors from `--action list-available` output.
+ 3. Offer manual configuration: an HTTP entry (`"type": "http", "url": ...`) if the service publishes an MCP endpoint, or an npx entry if a maintained npm MCP package exists (verify with `npm view` first).
+ 4. Note: manually added connectors work with Claude but won't appear in `/contentforge:cf-integrations` until added to the registry.
+ 5. For a fully guided custom flow, hand off to `/contentforge:cf-add-integration`.
- Next step: Restart Claude Code and try:
- /contentforge:publish --platform=wordpress --test
+ ### Step 5: Verify After Setup
- This will attempt a test connection to verify credentials
- are valid and the WordPress site is reachable.
+ For npx connectors, after the user follows the setup steps:
- -----------------------------------------------------------
- ```
+ 1. Re-run `python scripts/connector-status.py --action check --name <connector>` and render the result (env vars set/missing, `.mcp.json` entry found).
+ 2. Remind the user to restart Claude Code — `.mcp.json` is read at startup only.
+ 3. Suggest a first test, e.g. `/contentforge:cf-publish --platform=wordpress --status=draft` for WordPress.
- For HTTP connectors, verification is not needed — they authenticate on first use via OAuth.
+ For HTTP connectors, verification happens implicitly: the OAuth prompt appears on first real use.
## Output
- The complete setup guide includes these sections:
+ The complete setup guide includes:
| Section | Description |
|---------|------------|
- | **Connector Info** | Name, category, description, transport type |
- | **Current Status** | Connected or not connected, with details |
+ | **Connector Info** | Name, category, description, transport type (from script) |
+ | **Current Status** | Configured or not, with details (from script) |
| **Setup Steps** | Numbered walkthrough tailored to transport type |
- | **Skills Unlocked** | Which ContentForge skills this connector enables |
- | **Credential Requirements** | For npx: environment variables needed with set/missing status |
- | **.mcp.json Entry** | For npx: ready-to-paste JSON configuration block |
+ | **Skills Unlocked** | Which ContentForge skills this connector enables (from script) |
+ | **Credential Requirements** | For npx: env vars needed with set/missing status |
+ | **.mcp.json Entry** | Ready-to-paste JSON block |
| **Environment Notes** | Cowork vs Claude Code compatibility, Node.js requirements |
- | **Verification Steps** | How to confirm the connector is working after setup |
- | **Alternative Connectors** | Other connectors in the same category if this one doesn't fit |
- | **Next Steps** | Suggested skill to try first with the new connector |
-
- ## Connector Quick Reference
-
- ### HTTP Connectors (7 Pre-Configured + 2 Available)
-
- | Connector | Category | URL | Pre-configured | Skills |
- |-----------|----------|-----|----------------|--------|
- | Notion | Knowledge base | `https://mcp.notion.com/mcp` | Yes | contentforge, batch-process, content-refresh, cf-brief, cf-audit, cf-style-guide |
- | Canva | Design | `https://mcp.canva.com/mcp` | Yes | contentforge, batch-process, cf-social-adapt |
- | Figma | Design | `https://mcp.figma.com/mcp` | Yes | contentforge, cf-social-adapt |
- | Webflow | CMS | `https://mcp.webflow.com/sse` | Yes | cf-publish, contentforge, batch-process |
- | Slack | Chat | `https://mcp.slack.com/mcp` | Yes | batch-process, cf-publish, cf-calendar |
- | Gmail | Email | `https://gmailmcp.googleapis.com/mcp/v1` | Yes | batch-process, cf-publish |
- | Google Calendar | Calendar | `https://calendarmcp.googleapis.com/mcp/v1` | Yes | cf-calendar, batch-process |
- | Ahrefs | SEO | `https://api.ahrefs.com/mcp/mcp` | No | cf-brief, cf-audit, content-refresh |
- | Similarweb | SEO | `https://mcp.similarweb.com` | No | cf-brief, cf-audit |
-
- ### npx Connectors (Require Setup)
-
- | Connector | Category | Package | Env Vars |
- |-----------|----------|---------|----------|
- | Confluence | Knowledge base | `mcp-confluence` | CONFLUENCE_URL, CONFLUENCE_TOKEN |
- | WordPress | CMS | `mcp-wordpress` | WORDPRESS_SITE_URL, WORDPRESS_AUTH_TOKEN |
- | HubSpot CMS | CMS | `mcp-hubspot-cms` | HUBSPOT_ACCESS_TOKEN |
- | Google Sheets | Spreadsheets | `@anthropic/mcp-google-sheets` | GOOGLE_APPLICATION_CREDENTIALS |
- | Google Drive | File storage | `@anthropic/mcp-google-drive` | GOOGLE_APPLICATION_CREDENTIALS |
- | Semrush | SEO | `mcp-semrush` | SEMRUSH_API_KEY |
- | DeepL | Translation | `deepl-mcp-server` | DEEPL_API_KEY |
- | Sarvam AI | Translation | `sarvam-mcp-server` | SARVAM_API_KEY |
- | Twitter/X | Social media | `mcp-twitter` | TWITTER_API_KEY, TWITTER_API_SECRET, TWITTER_ACCESS_TOKEN, TWITTER_ACCESS_SECRET |
- | LinkedIn | Social media | `mcp-linkedin-publishing` | LINKEDIN_ACCESS_TOKEN |
- | Instagram | Social media | `mcp-instagram` | INSTAGRAM_ACCESS_TOKEN, INSTAGRAM_BUSINESS_ACCOUNT_ID |
- | Google Analytics | Analytics | `@anthropic/mcp-google-analytics` | GA_PROPERTY_ID, GOOGLE_APPLICATION_CREDENTIALS |
- | Google Search Console | Analytics | `@anthropic/mcp-google-search-console` | GSC_SITE_URL, GOOGLE_APPLICATION_CREDENTIALS |
+ | **Verification Steps** | How to confirm the connector works after setup |
## Troubleshooting
### "Unknown connector" even though you typed the right name
- Connector names use lowercase kebab-case: `google-sheets`, not `Google Sheets` or `googlesheets`
- Try the fuzzy match: the skill checks common aliases automatically
- - Run `/contentforge:integrations --show=available` to see all valid connector names
+ - Run `python scripts/connector-status.py --action list-available` to see all valid names
- ### npx connector shows "connected" but skills still can't use it
+ ### npx connector configured but skills still can't use it
- Restart Claude Code after modifying `.mcp.json` — changes are read at startup only
- - Verify the npx package name is correct (check `.mcp.json.example` for reference)
- - Check that Node.js and npx are in your PATH: `npx --version` should return a version number
+ - Verify the npm package name (`npm view <pkg> version`)
+ - Check that Node.js and npx are in your PATH: `npx --version`
### Environment variables set but still showing "missing"
- - Variables must be exported, not just assigned: `export VAR=value`, not `VAR=value`
- - If using `.env` files, they must be loaded before the shell session starts
- - On Windows, set them in System Properties > Environment Variables, then restart the terminal
+ - Variables must be exported, not just assigned: `export VAR=value`
+ - `.env` files must be loaded before the Claude Code session starts
+ - On Windows, set them in System Properties → Environment Variables, then restart the terminal
- ### OAuth prompt never appears for HTTP connector
+ ### OAuth prompt never appears for an HTTP connector
- HTTP connectors authenticate only when a skill actively requests data from them
- - Try using a skill first (e.g., `/contentforge` for Notion, `/contentforge:social-adapt` for Canva)
- - If the prompt still doesn't appear, check that `.mcp.json` contains the connector's URL
+ - Confirm the entry exists in `.mcp.json` and the session was restarted after adding it
### "npx: command not found"
- - Install Node.js 18+ from https://nodejs.org
- - Verify: `node --version` and `npx --version`
- - On some systems, you may need to add Node.js to your PATH manually
+ - Install Node.js 18+ from https://nodejs.org, then verify `node --version` and `npx --version`
### Connector works in Claude Code but not in Cowork
- npx connectors are Claude Code only — they require local Node.js
- - If you need this integration in Cowork, check if an HTTP alternative exists:
- - WordPress (npx) has no HTTP equivalent — Claude Code only
- - Google Sheets (npx) has no HTTP equivalent — Claude Code only
- - Use `/contentforge:integrations` to see which connectors work in Cowork
+ - In Cowork, prefer HTTP connectors or platform-level integrations (Settings → Integrations)
+ - Run `/contentforge:cf-integrations` to see which configured connectors are Cowork-compatible
## Example Workflows
### Workflow 1: Set Up WordPress Publishing
```
- 1. /contentforge:connect wordpress
- → Follow steps: get application password, set env vars, add to .mcp.json
+ 1. /contentforge:cf-connect wordpress
+ -> Follow steps: verify package on npm, get application password, set env vars, add to .mcp.json
2. Restart Claude Code
- 3. /contentforge:integrations --category=cms
- → Verify WordPress shows as [connected]
- 4. /contentforge "Your Topic" --type=blog --brand=YourBrand
- → Produces content
- 5. /contentforge:publish --platform=wordpress --status=draft
- → Pushes to WordPress as draft
+ 3. /contentforge:cf-integrations
+ -> Verify WordPress shows as configured (from script output)
+ 4. /contentforge:create-content "Your Topic" --type=blog --brand=YourBrand
+ 5. /contentforge:cf-publish --platform=wordpress --status=draft
```
### Workflow 2: Add Google Sheets for Batch Processing
```
- 1. /contentforge:connect google-sheets
- → Follow steps: create service account, download credentials JSON, set env var
+ 1. /contentforge:cf-connect google-sheets
+ -> Follow steps: create service account, download credentials JSON, set env var, add to .mcp.json
2. Restart Claude Code
- 3. /contentforge:integrations --category=spreadsheets
- → Verify Google Sheets shows as [connected]
- 4. /batch-process https://docs.google.com/spreadsheets/d/ABC123
- → Reads requirements from sheet, processes in parallel
+ 3. /contentforge:batch-process <sheet URL>
+ -> Reads requirements from the sheet, processes in parallel
```
### Workflow 3: Connect SEO Tools for Data-Driven Briefs
```
- 1. /contentforge:connect ahrefs
- → HTTP connector, already in .mcp.json, just use it
- 2. /contentforge:brief "AI in Healthcare 2026" --brand=AcmeMed
- → Brief now includes real keyword volumes from Ahrefs
- 3. /contentforge:connect semrush (optional, for additional data)
- → Follow npx setup steps
+ 1. /contentforge:cf-connect ahrefs
+ -> HTTP connector: add the verified endpoint to .mcp.json, restart, authorize on first use
+ 2. /contentforge:cf-brief "AI in Healthcare 2026" --brand=AcmeMed
+ -> Brief now includes real keyword data from Ahrefs
```
## Agent Used
None. This skill is entirely script-driven using `scripts/connector-status.py`.
## Related Skills
- - **[/contentforge:integrations](../cf-integrations/SKILL.md)** — Full integration status dashboard
- - **[/contentforge](../contentforge/SKILL.md)** — Main content production pipeline
- - **[/batch-process](../batch-process/SKILL.md)** — Parallel content processing
- - **[/content-refresh](../content-refresh/SKILL.md)** — Update existing content
+ - **[/contentforge:cf-integrations](../cf-integrations/SKILL.md)** — Full integration status dashboard
+ - **[/contentforge:cf-add-integration](../cf-add-integration/SKILL.md)** — Guided flow for services not in the registry
+ - **[/contentforge:create-content](../../commands/create-content.md)** — Main content production pipeline
+ - **[/contentforge:batch-process](../batch-process/SKILL.md)** — Parallel content processing
---
- **Version:** 3.4.0
- **Script:** `scripts/connector-status.py --action setup-guide --name <connector>`
- **Processing Time:** <10 seconds
- **Network Required:** No (reads local config and env vars only)
+ **Script:** `python scripts/connector-status.py --action setup-guide --name <connector>`
+ **Network Required:** No for status checks (reads local config and env vars); yes only for `npm view` package verification