Installs into .claude/skills of the current project.
Are you the author of Cf Add Integration?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/indranilbanerjee-cf-add-integration)
---
name: cf-add-integration
description: "Add a custom MCP connector — connect any API or service to ContentForge via .mcp.json configuration."
disable-model-invocation: true
argument-hint: "[service-name]"
effort: medium
---
# /contentforge:add-integration
## Purpose
Help users connect any external API, tool, or service to ContentForge as an MCP connector. Walk through the entire process conversationally — from finding the right MCP package to testing the connection — without requiring technical MCP knowledge.
## Input Required
The user provides (or will be asked):
- **What they want to connect**: The service name and what they want it to do — e.g., "Google Analytics to track content performance", "Ahrefs for keyword research", "our internal CMS to publish directly"
- **Credentials**: API keys, tokens, or OAuth setup they have (or will need to obtain). The system will guide them on exactly what's needed. **Never ask users to paste secrets into the conversation.**
## Process
### Step 1: Understand what the user wants
Ask the user what service they want to connect and what they want it to do within ContentForge. Map their intent to content workflow stages:
| Workflow Stage | Example Integrations |
|---------------|---------------------|
| Research (Phase 1) | Ahrefs, Similarweb, Google Search Console |
| Publishing (Phase 8) | Webflow, WordPress, HubSpot CMS |
| Collaboration | Notion, Slack, Google Drive |
| Tracking | Google Sheets, Google Analytics |
| Translation | DeepL, Sarvam AI |
| Social distribution | Twitter/X, LinkedIn, Instagram |
### Step 2: Check if a connector already exists
Run `python scripts/connector-status.py --action check <name>` to see if the connector is already in the registry.
- **If it exists and is connected**: Tell the user it's already active and which skills use it.
- **If it exists but not connected**: Run `python scripts/connector-status.py --action setup-guide <name>` and walk through the guided setup.
- **If it doesn't exist**: Proceed to Step 3.
### Step 3: Find an MCP package
Search for an existing MCP server package that provides the desired integration:
1. **Check known HTTP endpoints first** — Anthropic-hosted HTTP MCP servers are the easiest (work in both Cowork and Claude Code, no API keys for OAuth-based ones):
- Slack: `https://mcp.slack.com/mcp`
- Canva: `https://mcp.canva.com/mcp`
- Figma: `https://mcp.figma.com/mcp`
- HubSpot: `https://mcp.hubspot.com/anthropic`
- Notion: `https://mcp.notion.com/mcp`
- Ahrefs: `https://api.ahrefs.com/mcp/mcp`
- Similarweb: `https://mcp.similarweb.com`
- Klaviyo: `https://mcp.klaviyo.com/mcp`
- Google Calendar: `https://calendarmcp.googleapis.com/mcp/v1`
- Gmail: `https://gmailmcp.googleapis.com/mcp/v1`
- Stripe: `https://mcp.stripe.com/`
- Asana: `https://mcp.asana.com/sse`
- Webflow: `https://mcp.webflow.com/sse`
2. **Search npm for npx packages** — Search for `mcp-<service-name>` or `@anthropic/mcp-<service-name>`. Evaluate by downloads, last update, and GitHub stars.
3. **If no package exists** — Guide the user through custom MCP server development (see Step 5).
### Step 4: Configure the connector
Generate the exact configuration entry for `.mcp.json`:
**For HTTP connectors:**
```json
{
"mcpServers": {
"service-name": {
"type": "http",
"url": "https://mcp.service.com/mcp",
"description": "Service Name — what it provides for ContentForge"
}
}
}
```
**For npx connectors:**
```json
{
"mcpServers": {
"service-name": {
"command": "npx",
"args": ["-y", "mcp-package-name"],
"env": {
"SERVICE_API_KEY": "${SERVICE_API_KEY}"
},
"description": "Service Name — what it provides for ContentForge"
}
}
}
```
**Walk the user through:**
1. Open `.mcp.json` in the plugin root directory
2. Add the new entry inside the `mcpServers` object
3. Set up environment variables (explain where: `.env` file or system environment)
4. Save and restart the session
### Step 5: Custom MCP server (if needed)
If no existing package covers the user's needs, provide a development template:
```
Project Structure:
my-mcp-server/
├── index.js # Main server with tool definitions
├── package.json # Dependencies
└── .env.example # Required credentials
Key Components:
- Tool definitions (what Claude can call)
- Authentication handler (API key, OAuth, etc.)
- Request/response formatting
- Error handling with meaningful messages
.mcp.json Entry:
"my-service": {
"command": "node",
"args": ["path/to/my-mcp-server/index.js"],
"env": { "MY_API_KEY": "${MY_API_KEY}" }
}
```
Provide a starter skeleton specific to the user's API, with:
- Endpoint URLs pre-filled
- Authentication pattern matching their API
- Tool definitions for common operations
### Step 6: Test and verify
After configuration:
1. Ask the user to restart their Claude session
2. Run `/contentforge:integrations` to verify the new connector shows up
3. Try a basic read operation to confirm it works
4. Report success or diagnose failures
### Step 7: Platform-level integrations
Some services (Google Drive, Google Docs) can be connected at the **Claude platform level** rather than through MCP. These are managed in:
- **Cowork/Claude Desktop**: Settings → Integrations → Connect
- **Benefit**: No API keys needed — uses OAuth through Anthropic's infrastructure
- **Limitation**: May offer fewer capabilities than a dedicated MCP server
If the user's desired service is available as a platform integration, mention this as the simpler option.
## Output
- **Configuration JSON**: Ready-to-paste `.mcp.json` entry
- **Credential setup**: Step-by-step instructions for API key or OAuth setup
- **Verification**: Confirm the connector is working or provide error diagnostics
- **Skills affected**: Which ContentForge skills gain capabilities from this connector
## Tone
Conversational and supportive. This skill exists so that non-technical users can connect services without understanding MCP internals. Avoid jargon. Use "connector" not "MCP server". Say "connect your API key" not "configure environment variables."