cf-connect · git:20260526.e64078c · 2026-05-26 · sha256 2f02b828c51c1950
cf-connect git:20260526.e64078cA
Immutable. This exact content never changes and is served at /api/v1/blob/2f02b828c51c1950.
---
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
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.
## Context efficiency
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.
## When to Use
Use `/contentforge:connect <name>` when:
- You want to connect a specific service (e.g., `/contentforge: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
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
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>
```
This returns:
- Connector metadata (name, category, description, transport type)
- Whether it's already configured
- 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:
| 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.
### 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:**
```
-----------------------------------------------------------
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.
Tip: Try /contentforge to start producing content with Notion
as your requirement and brand document source.
-----------------------------------------------------------
```
**If not connected, 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
Step 4: Verify the connection.
Restart Claude Code to pick up the new .mcp.json entry.
Then test with:
/contentforge:integrations --category=cms
WordPress should appear as [connected].
ENVIRONMENT VARIABLES:
-----------------------------------------------------------
| Variable | Status | Description |
|-----------------------|---------|--------------------------------|
| WORDPRESS_SITE_URL | missing | Your WordPress site URL |
| WORDPRESS_AUTH_TOKEN | missing | Application password from WP |
.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}"
}
}
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
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
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.
-----------------------------------------------------------
```
### 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
Result: Configuration looks correct.
Next step: Restart Claude Code and try:
/contentforge:publish --platform=wordpress --test
This will attempt a test connection to verify credentials
are valid and the WordPress site is reachable.
-----------------------------------------------------------
```
For HTTP connectors, verification is not needed — they authenticate on first use via OAuth.
## Output
The complete setup guide includes these sections:
| Section | Description |
|---------|------------|
| **Connector Info** | Name, category, description, transport type |
| **Current Status** | Connected or not connected, with details |
| **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 |
| **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 |
## 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
### npx connector shows "connected" 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
### 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
### OAuth prompt never appears for 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
### "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
### 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
## Example Workflows
### Workflow 1: Set Up WordPress Publishing
```
1. /contentforge:connect wordpress
→ Follow steps: 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
```
### Workflow 2: Add Google Sheets for Batch Processing
```
1. /contentforge:connect google-sheets
→ Follow steps: create service account, download credentials JSON, set env var
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
```
### 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
```
## 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
---
**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)