Compare commits

..

10 Commits

Author SHA1 Message Date
Corey Haines 114587831e Merge pull request #316 from coreyhaines31/development
Release v2.0.1: ai-seo Google guide alignment + image/video model refresh
2026-05-18 22:29:35 -07:00
Corey Haines 908500123b Merge pull request #315 from coreyhaines31/chore/sync-main-pre-v2.0.1
chore: sync development with vendor PRs landed on main
2026-05-18 22:28:29 -07:00
Corey Haines 0fd7bb5ad9 merge main into development (sync vendor PRs landed on main) before v2.0.1 release 2026-05-18 22:27:56 -07:00
Corey Haines 4b54b0dd6f chore(release): bump to v2.0.1 (#314)
Patch release rolling up two content updates that just landed:

- ai-seo (#313): aligned with Google's official AI features optimization
  guide — Google's stance, query fan-out, agentic experiences (UCP),
  what-not-to-do, Search Console expectations; reframed
  llms.txt/pricing.md/schema as "not required by Google but helpful for
  non-Google AI engines"; moved content-type tactics to
  references/content-types.md
- image (#311): refreshed model lineup to current May 2026 releases —
  Nano Banana family, Flux Pro 1.1 + Kontext, Ideogram 3.0, ChatGPT
  Images 2.0, Midjourney v7, Recraft V3, SD 3.5 / SDXL
- video (#311): refreshed model lineup — Sora 2 promoted from
  limited-availability caveat, Kling 2.5/3.0, added Seedance, Hailuo /
  MiniMax, Hunyuan Video / Wan 2, Pika 2.x; new "Quick picks" guide

No new skills, no breaking changes. Only the three affected SKILL.md
files bumped to 2.0.1; the other 37 stay at 2.0.0.

- marketplace.json: 2.0.0 → 2.0.1
- VERSIONS.md: ai-seo, image, video rows bumped; 2.0.1 changelog entry
  added
- skills/{ai-seo,image,video}/SKILL.md: metadata.version → 2.0.1

All 40 skills pass validation. sync-skills.js still no-op.

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 22:26:38 -07:00
Corey Haines 8b0a54eef9 fix(ai-seo): align with Google's official AI features optimization guide (#313)
Source: https://developers.google.com/search/docs/fundamentals/ai-optimization-guide

The skill was framed as "optimize for AI systems," which mis-states Google's
explicit position: AI Overviews and AI Mode are powered by core Search ranking,
so SEO best practices ARE the optimization strategy. Don't write separate
content "for AI."

The structural patterns the skill recommends (FAQ schema, comparison tables,
40-60 word answer blocks, llms.txt, /pricing.md) still help non-Google AI
engines (ChatGPT, Claude, Perplexity, Copilot) materially. The skill now
calls out the platform split explicitly rather than implying universal
benefit.

Major changes:

- New section "Google's Official Stance vs. Multi-Platform Reality":
  Frames Google's "don't optimize for AI" position alongside the reality that
  other AI engines reward extractable structure. Quotes Google's own
  phrasing.

- New section "Query Fan-Out (Google AI Search)":
  Explains Google's documented behavior of generating concurrent related
  queries. Reframes content strategy from per-query targeting to topical
  cluster coverage.

- New section "Agentic Experiences":
  Browser agents accessing sites via visual rendering, DOM inspection, and
  accessibility tree. Semantic HTML, JS-free meaningful render, clean a11y
  tree. Mentions the emerging Universal Commerce Protocol (UCP).

- New section "What NOT to Do":
  Explicit Google guidance: don't write for AI, don't chunk content for AI,
  don't scale variations (scaled content abuse spam policy), don't pursue
  inauthentic mentions, don't block AI crawlers if you want citation.

- Machine-Readable Files section reframed:
  Now opens with Google's stance ("not required") + the reason to include
  them anyway (non-Google AI engines).

- Schema markup note reframed:
  Notes Google's position that structured data is "not required for
  generative AI search" but still recommended.

- Search Console expectations added:
  Sets correct expectation that no AI-specific Search Console reporting
  exists; standard SEO metrics + third-party tools are the measurement
  options.

- Moved "AI SEO for Different Content Types" to references/content-types.md:
  Kept SKILL.md under 500 lines. Added a local-business/ecom subsection
  (Merchant Center + Google Business Profile + Business Agent) per
  Google's emphasis.

All 40 skills still pass validation.

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 22:24:17 -07:00
Corey Haines c08ae5ff3d fix: refresh image + video model lists to current releases (May 2026) (#311)
Video (skills/video/SKILL.md):
- Sora 2 promoted from "limited availability" caveat to a first-class model
- Kling updated to 2.5/3.0 from Kuaishou
- Added Seedance (ByteDance) as a fast, low-cost batch option
- Added Hailuo / MiniMax for character-consistency use case
- Pika updated to 2.x
- Added Hunyuan Video / Wan 2 (open-weight, self-hosted)
- New "Quick picks" guide for cinematic / batch / character-consistent /
  self-hosted / storyboard / image-to-video use cases
- Trigger phrases updated to include Sora, Seedance, Hailuo, MiniMax,
  Hunyuan, Wan

Image (skills/image/SKILL.md):
- Gemini Image labelled with Nano Banana / Nano Banana Pro family names
- Flux entry annotates Pro 1.1, Kontext, Dev, Schnell variants (Kontext for
  in-image editing)
- Ideogram bumped to 3.0
- GPT Image entry renamed to "ChatGPT Images 2.0 / GPT Image" reflecting the
  newer family
- Midjourney bumped to v7
- Added Recraft V3 for vector + brand illustration use case
- Stable Diffusion 3.5 / SDXL specifics noted
- Updated "When to Use Which" decision tree to match
- Trigger phrases updated to include Flux Kontext, ChatGPT Images, Nano
  Banana, Recraft

All 40 skills still pass validation.

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 22:24:09 -07:00
Salvatore Apicella dc7fea85bf Update tool names for static ad images category (#269)
New model to generate images is released by OpenAI, it can be used to improve ad generation
2026-05-18 14:06:44 -07:00
Teo 4b37de5228 feat: add Exa AI-powered search tool (#266)
Adds Exa as an AI search integration for content research, competitor
discovery, link prospecting, news monitoring, and audience research.

- CLI (tools/clis/exa.js): zero-dep Node.js wrapper for /search,
  /findSimilar, and /contents with neural/auto/fast/deep search types,
  category + domain + text + date filtering, and composable content
  retrieval (text, highlights, summary) in a single request
- Integration guide (tools/integrations/exa.md): auth, endpoints,
  common agent operations, parameters, and linked skills
- Registry entry under new 'AI Search' category + MCP-enabled list
- Uses EXA_API_KEY env var with --dry-run support and masked credentials
2026-05-18 14:05:40 -07:00
Abhi Bavishi 75e8221af8 Add RankParse to SEO tools registry (#304)
RankParse is an agent-friendly SEO data API offering backlinks, domain
authority, tech stack, and on-page metadata at credit-based pricing.

- New integration guide: tools/integrations/rankparse.md
- New CLI wrapper: tools/clis/rankparse.js
- Registry entry under SEO category (API + MCP + CLI)
2026-05-18 14:05:36 -07:00
Berner Setterwall 148fe208ed feat: add cogny MCP gateway to tools registry (#275)
* feat: add cogny MCP gateway to tools registry

Adds Cogny as an integration-layer entry alongside Composio. Cogny is a
marketing-focused MCP gateway (Search Console, Bing Webmaster, Semrush,
LinkedIn / Reddit / TikTok Ads, Plausible, Fathom) with managed OAuth
and a per-channel MCP URL.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs(cogny): use federated app.cogny.com/mcp endpoint and claude.ai connector setup

Switches the setup instructions and examples from the per-channel
mcp.cogny.com URLs to the federated https://app.cogny.com/mcp endpoint,
using the Claude.ai custom-connector flow (Settings → Connectors → Add
custom connector). Drops the per-channel path columns and the vendor-
review framing since they aren't needed for the federated setup.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 14:04:33 -07:00
14 changed files with 1138 additions and 75 deletions
+1 -1
View File
@@ -6,7 +6,7 @@
},
"metadata": {
"description": "Marketing skills for AI agents — conversion optimization, copywriting, SEO, paid ads, and growth",
"version": "2.0.0",
"version": "2.0.1",
"repository": "https://github.com/coreyhaines31/marketingskills"
},
"plugins": [
+13 -3
View File
@@ -6,7 +6,7 @@ Current versions of all skills. Agents can compare against local versions to che
|-------|---------|--------------|
| ab-testing | 2.0.0 | 2026-05-05 |
| ad-creative | 2.0.0 | 2026-05-05 |
| ai-seo | 2.0.0 | 2026-05-05 |
| ai-seo | 2.0.1 | 2026-05-18 |
| analytics | 2.0.0 | 2026-05-05 |
| aso | 2.0.0 | 2026-05-05 |
| churn-prevention | 2.0.0 | 2026-05-05 |
@@ -23,7 +23,7 @@ Current versions of all skills. Agents can compare against local versions to che
| directory-submissions | 2.0.0 | 2026-05-05 |
| emails | 2.0.0 | 2026-05-05 |
| free-tools | 2.0.0 | 2026-05-05 |
| image | 2.0.0 | 2026-05-05 |
| image | 2.0.1 | 2026-05-18 |
| launch | 2.0.0 | 2026-05-05 |
| lead-magnets | 2.0.0 | 2026-05-05 |
| marketing-ideas | 2.0.0 | 2026-05-05 |
@@ -43,10 +43,20 @@ Current versions of all skills. Agents can compare against local versions to che
| signup | 2.0.0 | 2026-05-05 |
| site-architecture | 2.0.0 | 2026-05-05 |
| social | 2.0.0 | 2026-05-05 |
| video | 2.0.0 | 2026-05-05 |
| video | 2.0.1 | 2026-05-18 |
## Recent Changes
### 2.0.1 (2026-05-18)
Content patch — no breaking changes, no new skills.
- **ai-seo** (2.0.0 → 2.0.1): aligned with Google's official AI features optimization guide. Added sections for Google's stance on AI optimization, query fan-out, agentic experiences (including UCP), explicit "what NOT to do" (scaled content abuse, etc.), and Search Console expectations. Reframed llms.txt / pricing.md / schema markup recommendations as "Google says not required, helpful for non-Google AI engines." Moved content-type tactics to `references/content-types.md` (added local/ecom Merchant Center + Business Profile guidance per Google).
- **image** (2.0.0 → 2.0.1): refreshed model lineup to current May 2026 releases — Nano Banana / Nano Banana Pro family naming, Flux Pro 1.1 + Kontext + Dev + Schnell variants, Ideogram 3.0, ChatGPT Images 2.0 / GPT Image, Midjourney v7, Recraft V3, SD 3.5 / SDXL. Updated decision tree and trigger phrases.
- **video** (2.0.0 → 2.0.1): refreshed model lineup — Sora 2 promoted from limited-availability caveat, Kling 2.5/3.0, added Seedance (ByteDance), Hailuo / MiniMax (character consistency), Hunyuan Video / Wan 2 (open-weight self-hosted), Pika 2.x. New "Quick picks" guide.
Total skills: 40 (unchanged).
### 2.0.0 (2026-05-05)
**Breaking changes** — Users must reinstall skills after this update.
@@ -8,7 +8,7 @@ Reference for using AI image generators, video generators, and code-based video
| Need | Tool Category | Best Fit |
|------|---------------|----------|
| Static ad images (banners, social) | Image generation | Nano Banana Pro, Flux, Ideogram |
| Static ad images (banners, social) | Image generation | ChatGPT Images 2.0, Nano Banana Pro, Flux, Ideogram |
| Ad images with text overlays | Image generation (text-capable) | Ideogram, Nano Banana Pro |
| Short video ads (6-30 sec) | Video generation | Veo, Kling, Runway, Sora, Seedance |
| Video ads with voiceover | Video gen + voice | Veo/Sora (native), or Runway + ElevenLabs |
+86 -44
View File
@@ -2,7 +2,7 @@
name: ai-seo
description: "When the user wants to optimize content for AI search engines, get cited by LLMs, or appear in AI-generated answers. Also use when the user mentions 'AI SEO,' 'AEO,' 'GEO,' 'LLMO,' 'answer engine optimization,' 'generative engine optimization,' 'LLM optimization,' 'AI Overviews,' 'optimize for ChatGPT,' 'optimize for Perplexity,' 'AI citations,' 'AI visibility,' 'zero-click search,' 'how do I show up in AI answers,' 'LLM mentions,' or 'optimize for Claude/Gemini.' Use this whenever someone wants their content to be cited or surfaced by AI assistants and AI search engines. For traditional technical and on-page SEO audits, see seo-audit. For structured data implementation, see schema."
metadata:
version: 2.0.0
version: 2.0.1
---
# AI SEO
@@ -66,6 +66,45 @@ In traditional search, you need to rank on page 1. In AI search, a well-structur
- Optimized content gets cited 3x more often than non-optimized
- Statistics and citations boost visibility by 40%+ across queries
### Google's Official Stance vs. Multi-Platform Reality
This is important to read once before doing anything else.
**Google's position** ([AI features optimization guide](https://developers.google.com/search/docs/fundamentals/ai-optimization-guide)):
> "The best practices for SEO continue to be relevant because our generative AI features on Google Search are rooted in our core Search ranking and quality systems."
Google explicitly says:
- **No special markup or files are required** for AI Overviews or AI Mode
- **Don't chunk content for AI** — write for people, organize with normal headings and paragraphs
- **Don't write separate content for AI** — that risks "scaled content abuse" spam policy
- **Helpful, reliable, people-first content** wins — same E-E-A-T standards as regular Search
- **No AI-specific Search Console reporting** — use standard SEO metrics
**Other AI engines (ChatGPT, Claude, Perplexity, Copilot) behave differently:**
- They actively reward extractable structure — passages, FAQs, comparison tables, definition blocks
- They parse `llms.txt`, structured pricing pages, and machine-readable files when present
- They cite third-party sources (Reddit, Wikipedia, review sites) more heavily than top-ranked pages
**What this means for the work:**
- The structural patterns in this skill (4060 word answer blocks, FAQ schema, comparison tables) help **non-Google AI engines** materially. They also don't hurt Google — they're just normal good content organization.
- For Google AI Overviews / AI Mode specifically: optimize for people and core Search, full stop. Strong E-E-A-T, original information, semantic HTML, clean indexability.
- For ChatGPT/Claude/Perplexity: layer on the extractable structure + llms.txt + machine-readable files.
When in doubt, default to "write for people, organize for clarity" — that satisfies both camps.
### Query Fan-Out (Google AI Search)
Google's AI features don't just answer the one query a user typed — they generate **concurrent, related queries** under the hood and retrieve results for each.
Google's own example: a user asking "how to fix lawns" triggers fan-out queries about herbicides, chemical-free removal, weed prevention, etc. The AI synthesizes across all of them.
**Implications:**
- Single-page-per-keyword targeting is less effective. Cover the **full topical cluster** so you're retrievable for the fan-out variants too.
- Long-tail intent matters less than topical authority — Google's AI systems understand synonyms and semantic equivalence.
- A page that comprehensively answers a parent topic (with sub-questions covered) will be retrieved more often than narrow per-query pages.
**Action**: when planning content, brainstorm the 510 related queries the AI is likely to fan out to and make sure your content (or your site as a whole) covers them.
---
## AI Visibility Audit
@@ -228,6 +267,10 @@ AI systems don't just cite your website — they cite where you appear.
### Machine-Readable Files for AI Agents
> **Google's stance**: not required for AI Overviews or AI Mode. Their guide explicitly says you don't need new markup, AI files, or markdown to appear in generative AI search.
>
> **Why include them anyway**: non-Google AI engines (ChatGPT, Claude, Perplexity) and autonomous buying agents do reward extractable structure. The files below help with those engines without harming Google.
AI agents aren't just answering questions — they're becoming buyers. When an AI agent evaluates tools on behalf of a user, it needs structured, parseable information. If your pricing is locked in a JavaScript-rendered page or a "contact sales" wall, agents will skip you and recommend competitors whose information they can actually read.
Add these machine-readable files to your site root:
@@ -284,7 +327,32 @@ Structured data helps AI systems understand your content. Key schemas:
| Reviews | `Review`, `AggregateRating` | Trust signals |
| Organization | `Organization` | Entity recognition |
Content with proper schema shows 30-40% higher AI visibility. For implementation, use the **schema** skill.
Content with proper schema shows 30-40% higher AI visibility on non-Google AI engines. **Google's note**: structured data is "not required for generative AI search" but is recommended for overall SEO strategy. For implementation, use the **schema** skill.
---
## Agentic Experiences
Beyond AI search engines summarizing content, autonomous agents are starting to access sites directly — clicking, reading, comparing, even buying on behalf of users. Google's guide flags this as an emerging category to plan for.
**How agents access your site:**
- **Visual rendering** — they screenshot/read the page like a user would
- **DOM inspection** — they parse the page's HTML structure
- **Accessibility tree** — they rely on the same semantic information assistive tech uses (labels, roles, landmarks, headings)
**What to do:**
- **Render meaningful content without heavy JS gymnastics** — if the page is blank until 4 frameworks finish loading, agents see blank
- **Semantic HTML** — use `<main>`, `<nav>`, `<article>`, `<button>`, proper heading hierarchy, `alt` text on images
- **Clean accessibility tree** — every interactive element labelled; ARIA used correctly (or not at all when native HTML suffices)
- **Stable selectors / predictable layouts** — agents struggle with sites that re-render every interaction
- **Visible pricing, specs, contact info** — anything an agent would need to make a buying recommendation should be on a public, indexable page (this is where `/pricing.md` and similar files help)
**Emerging — Universal Commerce Protocol (UCP):**
Google references UCP as a forthcoming protocol that will give agents standardized hooks for commerce interactions (catalog discovery, pricing, checkout). Watch for adoption; for now, the structural recommendations above are the precursor.
For ecom and local business specifically, Google highlights:
- **Merchant Center feeds** + **Google Business Profile** for product/service visibility in AI Search
- **Business Agent** for conversational customer engagement (where applicable)
---
@@ -340,55 +408,29 @@ Monthly manual check:
3. Record: Are you cited? Who is? What page?
4. Log in a spreadsheet, track month-over-month
### Search Console expectations
Google's guide is explicit: **there is no AI-specific Search Console reporting**. AI Overviews and AI Mode use core Search ranking, so the standard Search Console reports (Performance, Coverage, Core Web Vitals) are still what you measure with for Google. The third-party tools above are the only way to see cross-platform AI citation behavior.
---
## AI SEO for Different Content Types
## What NOT to Do
### SaaS Product Pages
Google's guide calls these out explicitly — they hurt across both traditional Search and AI features.
**Goal:** Get cited in "What is [category]?" and "Best [category]" queries.
1. **Write separate content "for AI"**. Same content should serve people and AI. Writing variants targeted at AI systems risks the **scaled content abuse spam policy** — Google's words.
2. **Chunk pages into AI-bait fragments**. Google's guide is direct: *"Don't break your content into tiny pieces for AI to better understand it."* Use normal paragraph + heading structure.
3. **Generate at scale for ranking manipulation**. AI-generated content is fine *if* it meets Search Essentials and spam policies. Mass-producing thin variations does not.
4. **Pursue inauthentic mentions**. Don't fabricate citations or bulk-spam Reddit/Wikipedia for AI visibility. Real participation only.
5. **Block AI crawlers if you want citation**. Blocking GPTBot, PerplexityBot, ClaudeBot, Google-Extended means those engines literally cannot cite you. Block training-only crawlers (CCBot) if you must, not the search-and-cite ones.
6. **Hide your main content behind JS that doesn't render**. Both core Search and AI agents need to see your content; JS-only rendering loses both audiences.
7. **Skip E-E-A-T fundamentals**. Author identity, first-hand experience, expertise signals, transparent sourcing — Google's guide leans heavily on these for AI features.
**Optimize:**
- Clear product description in first paragraph (what it does, who it's for)
- Feature comparison tables (you vs. category, not just competitors)
- Specific metrics ("processes 10,000 transactions/sec" not "blazing fast")
- Customer count or social proof with numbers
- Pricing transparency (AI cites pages with visible pricing) — add a `/pricing.md` file so AI agents can parse your plans without rendering your page (see "Machine-Readable Files" above)
- FAQ section addressing common buyer questions
---
### Blog Content
## AI SEO by Content Type
**Goal:** Get cited as an authoritative source on topics in your space.
**Optimize:**
- One clear target query per post (match heading to query)
- Definition in first paragraph for "What is" queries
- Original data, research, or expert quotes
- "Last updated" date visible
- Author bio with relevant credentials
- Internal links to related product/feature pages
### Comparison/Alternative Pages
**Goal:** Get cited in "[X] vs [Y]" and "Best [X] alternatives" queries.
**Optimize:**
- Structured comparison tables (not just prose)
- Fair and balanced (AI penalizes obviously biased comparisons)
- Specific criteria with ratings or scores
- Updated pricing and feature data
- Cite the competitors skill for building these pages
### Documentation / Help Content
**Goal:** Get cited in "How to [X] with [your product]" queries.
**Optimize:**
- Step-by-step format with numbered lists
- Code examples where relevant
- HowTo schema markup
- Screenshots with descriptive alt text
- Clear prerequisites and expected outcomes
For tactical guidance on SaaS product pages, blog content, comparison/alternative pages, documentation, and local/ecom (Google's emphasis on Merchant Center + Business Profile), see [references/content-types.md](references/content-types.md).
---
+71
View File
@@ -0,0 +1,71 @@
# AI SEO by Content Type
Tactical guidance for optimizing specific content types for AI search citation. These tactics work for non-Google AI engines (ChatGPT, Claude, Perplexity, Copilot) and don't hurt Google AI Overviews / AI Mode.
For the cross-cutting strategy, see [SKILL.md](../SKILL.md).
---
## SaaS Product Pages
**Goal:** Get cited in "What is [category]?" and "Best [category]" queries.
**Optimize:**
- Clear product description in first paragraph (what it does, who it's for)
- Feature comparison tables (you vs. category, not just competitors)
- Specific metrics ("processes 10,000 transactions/sec" not "blazing fast")
- Customer count or social proof with numbers
- Pricing transparency (AI cites pages with visible pricing) — add a `/pricing.md` file so AI agents can parse your plans without rendering your page (see "Machine-Readable Files" in the main skill)
- FAQ section addressing common buyer questions
---
## Blog Content
**Goal:** Get cited as an authoritative source on topics in your space.
**Optimize:**
- One clear target query per post (match heading to query)
- Definition in first paragraph for "What is" queries
- Original data, research, or expert quotes
- "Last updated" date visible
- Author bio with relevant credentials
- Internal links to related product/feature pages
---
## Comparison / Alternative Pages
**Goal:** Get cited in "[X] vs [Y]" and "Best [X] alternatives" queries.
**Optimize:**
- Structured comparison tables (not just prose)
- Fair and balanced (AI penalizes obviously biased comparisons)
- Specific criteria with ratings or scores
- Updated pricing and feature data
- Cite the `competitors` skill for building these pages
---
## Documentation / Help Content
**Goal:** Get cited in "How to [X] with [your product]" queries.
**Optimize:**
- Step-by-step format with numbered lists
- Code examples where relevant
- HowTo schema markup
- Screenshots with descriptive alt text
- Clear prerequisites and expected outcomes
---
## Local Business / Ecom (Google emphasis)
Google's AI features pull from product feeds and business profiles for local + ecom queries. Optimize:
- **Merchant Center feeds** kept current with accurate inventory, pricing, attributes
- **Google Business Profile** complete with hours, services, photos, posts, Q&A answered
- **Reviews** — recent + sufficient volume; respond to reviews to signal active management
- **Service area schema** for local services
- **Business Agent** (where available) for conversational customer engagement
+22 -17
View File
@@ -1,8 +1,8 @@
---
name: image
description: "When the user wants to create, generate, edit, or optimize images for marketing — blog heroes, social graphics, product mockups, profile banners, listing visuals, or brand assets. Also use when the user mentions 'AI image generation,' 'generate an image,' 'create a graphic,' 'product mockup,' 'hero image,' 'social media graphic,' 'banner image,' 'cover photo,' 'profile banner,' 'listing screenshot,' 'Flux,' 'Midjourney,' 'DALL-E,' 'GPT Image,' 'Ideogram,' 'Gemini image,' 'Canva,' 'Figma,' 'image optimization,' 'compress images,' 'WebP,' or 'OG image.' Use this for general-purpose marketing image creation and optimization. For paid ad image creative and platform-specific ad specs, see ad-creative. For video production, see video."
description: "When the user wants to create, generate, edit, or optimize images for marketing — blog heroes, social graphics, product mockups, profile banners, listing visuals, or brand assets. Also use when the user mentions 'AI image generation,' 'generate an image,' 'create a graphic,' 'product mockup,' 'hero image,' 'social media graphic,' 'banner image,' 'cover photo,' 'profile banner,' 'listing screenshot,' 'Flux,' 'Flux Kontext,' 'Midjourney,' 'DALL-E,' 'GPT Image,' 'ChatGPT Images,' 'Ideogram,' 'Gemini image,' 'Nano Banana,' 'Recraft,' 'Stable Diffusion,' 'Canva,' 'Figma,' 'image optimization,' 'compress images,' 'WebP,' or 'OG image.' Use this for general-purpose marketing image creation and optimization. For paid ad image creative and platform-specific ad specs, see ad-creative. For video production, see video."
metadata:
version: 2.0.0
version: 2.0.1
---
# Image
@@ -55,36 +55,41 @@ Generate original images from text prompts. The fastest way to create unique mar
| Model | Best For | Text in Images | API | Cost |
|-------|----------|:-:|-----|------|
| **Gemini Image** (Google) | All-around, editing, text rendering | Good | [Gemini API](https://ai.google.dev/gemini-api/docs/image-generation) | Check [pricing](https://ai.google.dev/gemini-api/docs/pricing) |
| **Flux** (Black Forest Labs) | Photorealism, brand consistency, batch | Limited | [BFL API](https://docs.bfl.ai/), Replicate, fal.ai | Check [pricing](https://docs.bfl.ai/quick_start/pricing) |
| **Ideogram** | Typography, branded graphics | Best | [Ideogram API](https://developer.ideogram.ai/) | Check [pricing](https://about.ideogram.ai/api-pricing) |
| **GPT Image** (OpenAI) | General purpose, ChatGPT integration | Good | [OpenAI API](https://platform.openai.com/docs/guides/image-generation) | Check [pricing](https://platform.openai.com/docs/pricing) |
| **Midjourney** | Artistic, high-aesthetic | Poor | No official API | Subscription-based |
| **Stable Diffusion** | Self-hosted, customizable | Varies | Open source | Free (GPU costs) |
| **Gemini Image** (Google, "Nano Banana" / Nano Banana Pro) | All-around, editing, multi-image reference, text rendering | Good | [Gemini API](https://ai.google.dev/gemini-api/docs/image-generation) | Check [pricing](https://ai.google.dev/gemini-api/docs/pricing) |
| **Flux** (Black Forest Labs — Pro 1.1, Kontext, Dev, Schnell) | Photorealism, brand consistency, batch; Kontext for in-image editing | Limited | [BFL API](https://docs.bfl.ai/), Replicate, fal.ai | Check [pricing](https://docs.bfl.ai/quick_start/pricing) |
| **Ideogram 3.0** | Typography, branded graphics, accurate text rendering | Best | [Ideogram API](https://developer.ideogram.ai/) | Check [pricing](https://about.ideogram.ai/api-pricing) |
| **ChatGPT Images 2.0 / GPT Image** (OpenAI) | General purpose, ChatGPT integration, native editing | Good | [OpenAI API](https://platform.openai.com/docs/guides/image-generation) | Check [pricing](https://platform.openai.com/docs/pricing) |
| **Midjourney v7** | Artistic, high-aesthetic, art-directed visuals | Improved | No official API; Discord + Web | Subscription-based |
| **Recraft V3** | Vector + brand-consistent illustrations, design assets | Strong | [Recraft API](https://www.recraft.ai/docs) | Per-credit |
| **Stable Diffusion 3.5 / SDXL** | Self-hosted, customizable, fine-tunable | Varies | Open source | Free (GPU costs) |
**Note:** DALL-E 3 is deprecated. OpenAI's current image models are the GPT Image family (`gpt-image-1`, etc.).
**Note:** DALL-E 3 is fully deprecated. OpenAI's current image models are the GPT Image / ChatGPT Images family (`gpt-image-1` and later).
### When to Use Which
```
Need text/headlines in the image?
├── Yes → Ideogram (best), Gemini (good), GPT Image (decent)
├── Yes → Ideogram 3.0 (best), Gemini (good), GPT Image / ChatGPT Images (decent)
└── No ↓
Need product/brand consistency across images?
├── Yes → Flux (multi-image reference)
Need product/brand consistency across many images?
├── Yes → Flux (multi-image reference), Gemini Nano Banana Pro, Recraft V3
└── No ↓
Need to edit an existing image?
├── Yes → Gemini (native editing), Flux Flex
Need to edit an existing image (in-place)?
├── Yes → Gemini (native editing), Flux Kontext, ChatGPT Images
└── No ↓
Need highest visual quality?
├── Yes → Flux Pro, Midjourney
Need vector / illustrative brand assets?
├── Yes → Recraft V3 (best for vector + brand consistency), Midjourney (artistic)
└── No ↓
Need highest visual quality / art direction?
├── Yes → Flux Pro 1.1, Midjourney v7
└── No ↓
Need volume at low cost?
└── Flux Klein, Gemini Flash
└── Flux Schnell, Gemini Flash, Stable Diffusion (self-hosted)
```
### Prompting Basics
+18 -8
View File
@@ -1,8 +1,8 @@
---
name: video
description: "When the user wants to create, generate, or produce video content using AI tools or programmatic frameworks. Also use when the user mentions 'video production,' 'AI video,' 'Remotion,' 'Hyperframes,' 'HeyGen,' 'Synthesia,' 'Veo,' 'Runway,' 'Kling,' 'Pika,' 'video generation,' 'AI avatar,' 'talking head video,' 'programmatic video,' 'video template,' 'explainer video,' 'product demo video,' 'video pipeline,' or 'make me a video.' Use this for video creation, generation, and production workflows. For video content strategy and what to post, see social. For paid video ad creative, see ad-creative."
description: "When the user wants to create, generate, or produce video content using AI tools or programmatic frameworks. Also use when the user mentions 'video production,' 'AI video,' 'Remotion,' 'Hyperframes,' 'HeyGen,' 'Synthesia,' 'Veo,' 'Sora,' 'Runway,' 'Kling,' 'Seedance,' 'Hailuo,' 'MiniMax,' 'Pika,' 'Hunyuan,' 'Wan,' 'video generation,' 'AI avatar,' 'talking head video,' 'programmatic video,' 'video template,' 'explainer video,' 'product demo video,' 'video pipeline,' or 'make me a video.' Use this for video creation, generation, and production workflows. For video content strategy and what to post, see social. For paid video ad creative, see ad-creative."
metadata:
version: 2.0.0
version: 2.0.1
---
# Video
@@ -41,7 +41,7 @@ Pick the right tool for the job:
| Approach | Best For | Tools | When to Use |
|----------|----------|-------|-------------|
| **Programmatic** | Templated, data-driven, batch video | Remotion, Hyperframes | Product updates, personalized videos, recurring content |
| **AI Generation** | Original footage from text/image prompts | Veo, Runway, Kling, Pika | B-roll, hero shots, creative visuals you can't film |
| **AI Generation** | Original footage from text/image prompts | Veo 3, Sora 2, Runway, Kling, Seedance | B-roll, hero shots, creative visuals you can't film |
| **AI Avatars** | Talking-head presenter without filming | HeyGen, Synthesia | Explainers, tutorials, multilingual content |
| **Editing/Repurposing** | Cutting long-form into short clips | Descript, Opus Clip, CapCut | Podcast/webinar → social clips |
@@ -130,12 +130,22 @@ Generate original footage from text or image prompts. Use for B-roll, hero visua
| Model | Resolution | Max Duration | Best For | Cost |
|-------|-----------|-------------|----------|------|
| **Veo 3** (Google) | Up to 1080p (4K varies) | Variable | Highest quality, synced audio | API-based |
| **Runway Gen-4** | Up to 4K | ~10 sec/gen | Motion control, temporal consistency | $12-76/mo |
| **Kling 3.0** | Up to 1080p | Up to 2 min | Volume production, lowest cost | $0.029/sec |
| **Pika** | 1080p | Short clips | Fast generation, effects | Per-credit |
| **Veo 3** (Google) | Up to 1080p (4K varies) | Variable | Top overall quality, synced audio | API-based |
| **Sora 2** (OpenAI) | Up to 1080p | Up to ~20 sec | Cinematic + synced audio, ChatGPT/API integration | API + ChatGPT |
| **Runway Gen-4** | Up to 4K | ~10 sec/gen | Motion control, temporal consistency, edit-style workflows | $12-76/mo |
| **Kling 2.5/3.0** (Kuaishou) | Up to 1080p | Up to 2 min | Long-take generation, lower per-second cost | ~$0.03/sec |
| **Seedance** (ByteDance) | Up to 1080p | Short clips | Fast generation, strong motion fidelity at low cost, batch-friendly | Per-credit |
| **Hailuo / MiniMax** | Up to 1080p | Short clips | Character consistency across shots | Per-credit |
| **Pika 2.x** | 1080p | Short clips | Quick effects, image-to-video, lower bar to entry | Per-credit |
| **Hunyuan Video / Wan 2** | 720p1080p | Variable | Open-source self-hosted; full control, no API fees | Free (GPU) |
**Sora (OpenAI)** has had limited availability and reliability issues. Check current status before recommending.
**Quick picks**:
- **Highest quality + audio**: Veo 3 or Sora 2
- **Batch / volume / cost**: Kling, Seedance
- **Character consistency across multiple shots**: Hailuo
- **Self-hosted, brand-controlled**: Hunyuan Video or Wan 2 (open weights)
- **Storyboard → video workflow**: Runway, LTX Studio
- **Image-to-video from a still you already have**: Kling, Pika, Runway
### Prompting for Video Models
+26 -1
View File
@@ -26,6 +26,7 @@ Quick reference for AI agents to discover tool capabilities and integration meth
| ahrefs | SEO | ✓ | - | [](clis/ahrefs.js) | - | [ahrefs.md](integrations/ahrefs.md) |
| dataforseo | SEO | ✓ | - | [](clis/dataforseo.js) | ✓ | [dataforseo.md](integrations/dataforseo.md) |
| keywords-everywhere | SEO | ✓ | - | [](clis/keywords-everywhere.js) | - | [keywords-everywhere.md](integrations/keywords-everywhere.md) |
| rankparse | SEO | ✓ | ✓ | [](clis/rankparse.js) | - | [rankparse.md](integrations/rankparse.md) |
| clearbit | Data Enrichment | ✓ | - | [](clis/clearbit.js) | ✓ | [clearbit.md](integrations/clearbit.md) |
| apollo | Data Enrichment | ✓ | - | [](clis/apollo.js) | - | [apollo.md](integrations/apollo.md) |
| zoominfo | Data Enrichment | ✓ | ✓ | [](clis/zoominfo.js) | - | [zoominfo.md](integrations/zoominfo.md) |
@@ -73,6 +74,7 @@ Quick reference for AI agents to discover tool capabilities and integration meth
| introw | Partner Ecosystem | - | ✓ | - | - | [introw.md](integrations/introw.md) |
| pendo | Product Analytics | ✓ | - | [](clis/pendo.js) | - | [pendo.md](integrations/pendo.md) |
| similarweb | Competitive Intelligence | ✓ | - | [](clis/similarweb.js) | - | [similarweb.md](integrations/similarweb.md) |
| exa | AI Search | ✓ | ✓ | [](clis/exa.js) | ✓ | [exa.md](integrations/exa.md) |
| firehose | Competitive Intelligence | ✓ | - | - | - | [firehose.md](integrations/firehose.md) |
| sparktoro | Audience Research | - | - | - | - | [sparktoro.md](integrations/sparktoro.md) |
| rb2b | Visitor Identification | ✓ | - | - | - | [rb2b.md](integrations/rb2b.md) |
@@ -94,6 +96,7 @@ Quick reference for AI agents to discover tool capabilities and integration meth
| contentful | Headless CMS | ✓ | - | ✓ | ✓ | [contentful.md](integrations/contentful.md) |
| strapi | Headless CMS | ✓ | - | ✓ | ✓ | [strapi.md](integrations/strapi.md) |
| composio | Integration Layer | ✓ | ✓ | ✓ | ✓ | [composio.md](integrations/composio.md) |
| cogny | Integration Layer | - | ✓ | - | - | [cogny.md](integrations/cogny.md) |
---
@@ -126,8 +129,9 @@ Search engine optimization tools for keyword research, rank tracking, and site a
| **ahrefs** | Backlink analysis, content research | Best for links |
| **dataforseo** | SERP tracking, backlinks, on-page audits | Comprehensive API |
| **keywords-everywhere** | Quick keyword research, traffic estimates | Credit-based |
| **rankparse** | Cheap, agent-friendly backlinks + domain data | Credit-based, MCP available |
**Agent recommendation**: Google Search Console is essential (free). Add Semrush or Ahrefs for competitive research. DataForSEO for programmatic SERP data. Keywords Everywhere for quick keyword lookups.
**Agent recommendation**: Google Search Console is essential (free). Add Semrush or Ahrefs for competitive research. DataForSEO for programmatic SERP data. Keywords Everywhere for quick keyword lookups. RankParse for agent workflows where per-call cost matters — backlinks, domain authority, and tech stack at a fraction of enterprise pricing.
### CRM
@@ -387,6 +391,16 @@ AI-powered content generation and optimization platforms.
**Agent recommendation**: AirOps for building AI content workflows that generate SEO-optimized content at scale.
### AI Search
AI-powered web search APIs built for LLMs and agents. Return structured results with on-demand text, highlights, and summaries.
| Tool | Best For | Notes |
|------|----------|-------|
| **exa** | Neural/semantic web search, content research, competitor discovery | Search + findSimilar + Contents; MCP and SDKs available |
**Agent recommendation**: Exa for neural search over the open web — content research, competitor/similar-page discovery, link prospecting, news monitoring, and audience research. Pairs well with seo-audit, content-strategy, and competitor-profiling skills.
### Partner Ecosystem
Partner data sharing, co-sell, and ecosystem management.
@@ -468,6 +482,7 @@ These tools have Model Context Protocol servers available, enabling direct agent
- **outreach** - Sales engagement sequences
- **crossbeam** - Partner ecosystem data
- **introw** - Partner relationship management
- **exa** - AI-powered web search for LLMs and agents
To use MCP tools, ensure the appropriate MCP server is configured in your environment.
@@ -481,6 +496,16 @@ To use MCP tools, ensure the appropriate MCP server is configured in your enviro
Use Composio when you need MCP access to OAuth-heavy tools. Prefer native MCP servers (GA4, Stripe, Mailchimp, etc.) when available — they have deeper coverage.
### Cogny Integration
[Cogny](integrations/cogny.md) is a hosted MCP gateway focused on marketing channels — one federated MCP URL with managed OAuth across every channel you've connected. Narrower than Composio (marketing-only) and useful when you want SEO, paid social, and privacy-friendly analytics behind a single MCP login.
- **Setup**: connect channels at [cogny.com](https://cogny.com), then in Claude.ai go to Settings → Connectors → Add custom connector and paste `https://app.cogny.com/mcp`
- **Channels**: Search Console, Bing Webmaster, Semrush, LinkedIn Ads, Reddit Ads, TikTok Ads, Plausible, Fathom
- **Pricing**: Solo plan starts at $9/mo (7-day trial)
Use Cogny when you only need marketing channels and want to avoid running your own OAuth proxy. Prefer native APIs when you need deep, custom control of a single tool.
---
## Quick Start by Use Case
+2
View File
@@ -50,6 +50,7 @@ Every CLI reads credentials from environment variables:
| `dataforseo` | `DATAFORSEO_LOGIN`, `DATAFORSEO_PASSWORD` |
| `demio` | `DEMIO_API_KEY`, `DEMIO_API_SECRET` |
| `dub` | `DUB_API_KEY` |
| `exa` | `EXA_API_KEY` |
| `g2` | `G2_API_TOKEN` |
| `ga4` | `GA4_ACCESS_TOKEN` |
| `google-ads` | `GOOGLE_ADS_TOKEN`, `GOOGLE_ADS_DEVELOPER_TOKEN`, `GOOGLE_ADS_CUSTOMER_ID` |
@@ -148,6 +149,7 @@ DOMAINS=$(rewardful affiliates list | jq -r '.data[].email')
| `dataforseo.js` | SEO | [DataForSEO](https://dataforseo.com) |
| `demio.js` | Webinar | [Demio](https://demio.com) |
| `dub.js` | Links | [Dub.co](https://dub.co) |
| `exa.js` | AI Search | [Exa](https://exa.ai) |
| `g2.js` | Reviews | [G2](https://g2.com) |
| `ga4.js` | Analytics | [Google Analytics 4](https://analytics.google.com) |
| `google-ads.js` | Ads | [Google Ads](https://ads.google.com) |
+147
View File
@@ -0,0 +1,147 @@
#!/usr/bin/env node
const API_KEY = process.env.EXA_API_KEY
const BASE_URL = 'https://api.exa.ai'
if (!API_KEY) {
console.error(JSON.stringify({ error: 'EXA_API_KEY environment variable required' }))
process.exit(1)
}
async function api(method, path, body) {
if (args['dry-run']) {
return { _dry_run: true, method, url: `${BASE_URL}${path}`, headers: { 'x-api-key': '***', 'Content-Type': 'application/json', 'x-exa-integration': 'marketingskills' }, body: body || undefined }
}
const res = await fetch(`${BASE_URL}${path}`, {
method,
headers: {
'x-api-key': API_KEY,
'Content-Type': 'application/json',
'x-exa-integration': 'marketingskills',
},
body: body ? JSON.stringify(body) : undefined,
})
const text = await res.text()
try {
return JSON.parse(text)
} catch {
return { status: res.status, body: text }
}
}
function parseArgs(args) {
const result = { _: [] }
for (let i = 0; i < args.length; i++) {
const arg = args[i]
if (arg.startsWith('--')) {
const key = arg.slice(2)
const next = args[i + 1]
if (next && !next.startsWith('--')) {
result[key] = next
i++
} else {
result[key] = true
}
} else {
result._.push(arg)
}
}
return result
}
function buildContents(args) {
const contents = {}
if (args.text) {
contents.text = args['max-chars']
? { maxCharacters: Number(args['max-chars']) }
: true
}
if (args.highlights) {
contents.highlights = args['highlight-query']
? { query: args['highlight-query'] }
: true
}
if (args.summary) {
contents.summary = args['summary-query']
? { query: args['summary-query'] }
: {}
}
return Object.keys(contents).length ? contents : null
}
const args = parseArgs(process.argv.slice(2))
const [cmd, ...rest] = args._
async function main() {
let result
switch (cmd) {
case 'search': {
const query = args.query || rest.join(' ')
if (!query) { result = { error: '--query required' }; break }
const body = { query }
if (args.type) body.type = args.type
if (args.num) body.numResults = Number(args.num)
if (args.category) body.category = args.category
if (args['include-domains']) body.includeDomains = args['include-domains'].split(',').map(s => s.trim())
if (args['exclude-domains']) body.excludeDomains = args['exclude-domains'].split(',').map(s => s.trim())
if (args['include-text']) body.includeText = args['include-text'].split(',').map(s => s.trim())
if (args['exclude-text']) body.excludeText = args['exclude-text'].split(',').map(s => s.trim())
if (args['start-published']) body.startPublishedDate = args['start-published']
if (args['end-published']) body.endPublishedDate = args['end-published']
if (args['start-crawl']) body.startCrawlDate = args['start-crawl']
if (args['end-crawl']) body.endCrawlDate = args['end-crawl']
if (args['user-location']) body.userLocation = args['user-location']
const contents = buildContents(args)
if (contents) body.contents = contents
result = await api('POST', '/search', body)
break
}
case 'find-similar': {
const url = args.url
if (!url) { result = { error: '--url required' }; break }
const body = { url }
if (args.num) body.numResults = Number(args.num)
if (args['include-domains']) body.includeDomains = args['include-domains'].split(',').map(s => s.trim())
if (args['exclude-domains']) body.excludeDomains = args['exclude-domains'].split(',').map(s => s.trim())
if (args['start-published']) body.startPublishedDate = args['start-published']
if (args['end-published']) body.endPublishedDate = args['end-published']
if (args['start-crawl']) body.startCrawlDate = args['start-crawl']
if (args['end-crawl']) body.endCrawlDate = args['end-crawl']
const contents = buildContents(args)
if (contents) body.contents = contents
result = await api('POST', '/findSimilar', body)
break
}
case 'contents': {
const urls = args.urls?.split(',').map(s => s.trim())
if (!urls || !urls.length) { result = { error: '--urls required (comma-separated)' }; break }
const body = { urls }
const contents = buildContents(args)
if (contents) Object.assign(body, contents)
else body.text = true
result = await api('POST', '/contents', body)
break
}
default:
result = {
error: 'Unknown command',
usage: {
search: 'search --query <q> [--type neural|fast|auto|deep-lite|deep|deep-reasoning|instant] [--num <n>] [--category company|research paper|news|personal site|financial report|people] [--include-domains <d1,d2>] [--exclude-domains <d1,d2>] [--include-text <phrases>] [--exclude-text <phrases>] [--start-published <ISO>] [--end-published <ISO>] [--user-location <CC>] [--text] [--highlights] [--summary] [--max-chars <n>] [--highlight-query <q>] [--summary-query <q>]',
'find-similar': 'find-similar --url <url> [--num <n>] [--include-domains <d1,d2>] [--exclude-domains <d1,d2>] [--start-published <ISO>] [--end-published <ISO>] [--text] [--highlights] [--summary]',
contents: 'contents --urls <url1,url2> [--text] [--highlights] [--summary] [--max-chars <n>] [--highlight-query <q>] [--summary-query <q>]',
options: '--dry-run (preview request without sending)',
}
}
}
console.log(JSON.stringify(result, null, 2))
}
main().catch(err => {
console.error(JSON.stringify({ error: err.message }))
process.exit(1)
})
+196
View File
@@ -0,0 +1,196 @@
#!/usr/bin/env node
const API_KEY = process.env.RANKPARSE_API_KEY
const BASE_URL = 'https://api.rankparse.com/v1'
if (!API_KEY) {
console.error(JSON.stringify({ error: 'RANKPARSE_API_KEY environment variable required' }))
process.exit(1)
}
async function api(method, path, body) {
if (args['dry-run']) {
return { _dry_run: true, method, url: `${BASE_URL}${path}`, headers: { 'X-API-Key': '***', 'Content-Type': 'application/json' }, body }
}
const init = {
method,
headers: {
'X-API-Key': API_KEY,
'Content-Type': 'application/json',
},
}
if (body) init.body = JSON.stringify(body)
const res = await fetch(`${BASE_URL}${path}`, init)
const text = await res.text()
try {
return JSON.parse(text)
} catch {
return { status: res.status, body: text }
}
}
function parseArgs(args) {
const result = { _: [] }
for (let i = 0; i < args.length; i++) {
const arg = args[i]
if (arg.startsWith('--')) {
const key = arg.slice(2)
const next = args[i + 1]
if (next && !next.startsWith('--')) {
result[key] = next
i++
} else {
result[key] = true
}
} else {
result._.push(arg)
}
}
return result
}
const args = parseArgs(process.argv.slice(2))
const [cmd, sub, ...rest] = args._
function requireDomain() {
if (!args.domain) return { error: '--domain required' }
return null
}
function requireUrl() {
if (!args.url) return { error: '--url required' }
return null
}
async function main() {
let result
switch (cmd) {
case 'domain-authority':
case 'domain-rank':
case 'tech-stack':
case 'site-health':
case 'similar-domains':
case 'link-audit':
case 'site-explorer':
case 'crawl-history': {
const err = requireDomain(); if (err) { result = err; break }
result = await api('GET', `/${cmd}?domain=${encodeURIComponent(args.domain)}`)
break
}
case 'backlinks': {
const err = requireDomain(); if (err) { result = err; break }
const params = new URLSearchParams({ domain: args.domain })
if (args.limit) params.set('limit', args.limit)
if (args.sort) params.set('sort', args.sort)
if (args['from-domain']) params.set('from_domain', args['from-domain'])
if (args['link-type']) params.set('link_type', args['link-type'])
if (args.score) params.set('score', 'true')
result = await api('GET', `/backlinks?${params}`)
break
}
case 'referring-domains':
case 'outbound-links':
case 'anchor-text':
case 'top-pages':
case 'sitemap': {
const err = requireDomain(); if (err) { result = err; break }
const params = new URLSearchParams({ domain: args.domain })
if (args.limit) params.set('limit', args.limit)
result = await api('GET', `/${cmd}?${params}`)
break
}
case 'domain-overlap': {
if (!args.domains) { result = { error: '--domains required (comma-separated, 2-5 domains)' }; break }
const params = new URLSearchParams({ domains: args.domains })
if (args.limit) params.set('limit', args.limit)
result = await api('GET', `/domain-overlap?${params}`)
break
}
case 'link-intersect': {
if (!args['domain-a'] || !args['domain-b']) { result = { error: '--domain-a and --domain-b required' }; break }
const params = new URLSearchParams({ domain_a: args['domain-a'], domain_b: args['domain-b'] })
if (args.limit) params.set('limit', args.limit)
result = await api('GET', `/link-intersect?${params}`)
break
}
case 'competitor-gap': {
const err = requireDomain(); if (err) { result = err; break }
if (!args.vs) { result = { error: '--vs required (competitor domain)' }; break }
const params = new URLSearchParams({ domain: args.domain, vs: args.vs })
if (args.limit) params.set('limit', args.limit)
result = await api('GET', `/competitor-gap?${params}`)
break
}
case 'page-seo': {
const err = requireUrl(); if (err) { result = err; break }
result = await api('GET', `/page-seo?url=${encodeURIComponent(args.url)}`)
break
}
case 'page-performance': {
const err = requireUrl(); if (err) { result = err; break }
const params = new URLSearchParams({ url: args.url })
if (args.strategy) params.set('strategy', args.strategy)
result = await api('GET', `/page-performance?${params}`)
break
}
case 'batch': {
if (!args.domains) { result = { error: '--domains required (comma-separated)' }; break }
const domains = args.domains.split(',').map(d => d.trim()).filter(Boolean)
result = await api('POST', '/batch', { domains })
break
}
case 'me':
result = await api('GET', '/me')
break
case 'credits':
result = await api('GET', '/credits')
break
default:
result = {
error: 'Unknown command',
usage: {
'domain-authority': 'domain-authority --domain <domain>',
'domain-rank': 'domain-rank --domain <domain>',
'backlinks': 'backlinks --domain <domain> [--limit <n>] [--sort importance|recent] [--from-domain <d>] [--link-type <t>] [--score]',
'referring-domains': 'referring-domains --domain <domain> [--limit <n>]',
'outbound-links': 'outbound-links --domain <domain> [--limit <n>]',
'anchor-text': 'anchor-text --domain <domain> [--limit <n>]',
'top-pages': 'top-pages --domain <domain> [--limit <n>]',
'domain-overlap': 'domain-overlap --domains <d1,d2,...> [--limit <n>]',
'link-intersect': 'link-intersect --domain-a <d> --domain-b <d> [--limit <n>]',
'competitor-gap': 'competitor-gap --domain <d> --vs <competitor> [--limit <n>]',
'similar-domains': 'similar-domains --domain <domain>',
'tech-stack': 'tech-stack --domain <domain>',
'site-health': 'site-health --domain <domain>',
'sitemap': 'sitemap --domain <domain> [--limit <n>]',
'crawl-history': 'crawl-history --domain <domain>',
'page-seo': 'page-seo --url <url>',
'page-performance': 'page-performance --url <url> [--strategy mobile|desktop]',
'link-audit': 'link-audit --domain <domain>',
'site-explorer': 'site-explorer --domain <domain>',
'batch': 'batch --domains <d1,d2,...>',
'me': 'me (account info + credit balance)',
'credits': 'credits (credit balance)',
}
}
}
console.log(JSON.stringify(result, null, 2))
}
main().catch(err => {
console.error(JSON.stringify({ error: err.message }))
process.exit(1)
})
+153
View File
@@ -0,0 +1,153 @@
# Cogny
Hosted MCP gateway that bundles several marketing tools behind one URL with managed OAuth. Useful when you want AI agents to talk to multiple marketing channels without standing up your own OAuth proxy.
## Capabilities
| Integration | Available | Notes |
|-------------|-----------|-------|
| API | - | Access is via MCP, not a public REST API |
| MCP | ✓ | One federated MCP URL, OAuth-managed per channel |
| CLI | - | Connect tools via the Cogny dashboard |
| SDK | - | Use any MCP-capable client (Claude.ai, Claude API, Claude CLI, ChatGPT, etc.) |
## How it works
```
┌──────────────────┐ ┌──────────────────────┐ ┌───────────────────┐
│ Claude.ai / │──────│ app.cogny.com/mcp │──────│ Channel API │
│ Claude CLI / │ │ (federated MCP │ │ (LinkedIn, GSC, │
│ ChatGPT, etc. │ │ endpoint) │ │ TikTok, …) │
└──────────────────┘ └──────────────────────┘ └───────────────────┘
│ Federates per-channel
│ mcp.cogny.com endpoints
▼ with managed OAuth
```
`https://app.cogny.com/mcp` is a single federated endpoint that fans out to the per-channel `mcp.cogny.com` MCP servers — you connect once and every channel you've authorized in the dashboard becomes available.
## When to Use Cogny vs. Native or Composio
Cogny is one of several integration paths. Pick based on what you need:
| Scenario | Suggested |
|----------|-----------|
| Tool has a native MCP server you can self-host | Native MCP |
| You want a single bill / single login across many channels | Cogny or Composio |
| You need 500+ tools (CRM, productivity, dev tools, etc.) | [Composio](composio.md) |
| You only need the marketing channels Cogny ships | Cogny |
| You need deep, custom control over a single tool | Native API + CLI |
Cogny is narrower than Composio — it focuses on marketing channels — but the trade-off is fewer moving parts when you only need those channels.
## Setup
### 1. Connect your channels
1. Sign up at [cogny.com](https://cogny.com) and create a workspace.
2. In the dashboard, connect the channels you want (OAuth flow per tool).
### 2. Add Cogny as a custom connector
In Claude.ai:
1. Go to **Settings → Connectors → Add custom connector**.
2. Enter name **Cogny** and paste your MCP URL:
```
https://app.cogny.com/mcp
```
3. Complete the OAuth handshake when prompted.
The same `https://app.cogny.com/mcp` URL works in any MCP-capable client (Claude API, Claude CLI, ChatGPT custom connectors, etc.) — Cogny handles auth and routes each tool call to the right underlying channel.
## Channels Available via Cogny
Coverage changes over time — check the Cogny dashboard for the current list.
### SEO
| Channel | Typical use |
|---------|-------------|
| Search Console | Search analytics, URL inspection, sitemap submission |
| Bing Webmaster | Coverage, query stats, URL submission quota |
| Semrush | Keyword research, competitor checks (subject to Semrush plan) |
### Paid Social
| Channel | Typical use |
|---------|-------------|
| LinkedIn Ads | Campaign reporting, audience overlap, creative checks |
| Reddit Ads | Campaign reporting, audience and conversion lookups |
| TikTok Ads | Campaign reporting, ad group / creative health |
### Analytics
| Channel | Typical use |
|---------|-------------|
| Plausible | Privacy-friendly site analytics, goal reporting |
| Fathom | Privacy-friendly site analytics |
## Common Agent Operations
Once `https://app.cogny.com/mcp` is wired up, the agent picks tools by name across every channel you've connected.
### Search Console — pages losing clicks
```
> "Pull Search Console clicks for the last 28 days vs the previous 28 days,
group by page, and list pages where clicks dropped more than 30%."
```
### LinkedIn Ads — campaign hygiene
```
> "List my active LinkedIn campaigns, their CTR and CPL for the last 14 days,
and flag anything with CTR below 0.4%."
```
### Reddit Ads — audience overlap
```
> "For my Reddit Ads campaigns this month, summarize spend, conversions, and
the subreddits driving the most clicks."
```
### TikTok Ads — creative fatigue
```
> "Find TikTok ad groups where CTR has dropped 25%+ over the last 7 days
compared to the prior 7 days."
```
### Plausible — funnel sanity check
```
> "From Plausible, show top 10 pages by pageviews and the conversion rate
for the 'Signup' goal over the last 30 days."
```
## Limitations
- **Marketing-only scope** — Cogny ships marketing channels; for CRM, productivity, or dev tools use [Composio](composio.md) or the relevant native integration.
- **Hosted dependency** — if `app.cogny.com` is down, the connected channels are unavailable through this path.
- **Coverage depth varies** — read-heavy and reporting tools generally have more depth than write/mutation tools.
- **OAuth tokens** — managed by Cogny; you don't control token refresh or storage directly.
## Pricing
Cogny's Solo plan starts at **$9/month** and includes a 7-day free trial. Higher tiers are available for teams. Check [cogny.com/pricing](https://cogny.com/pricing) for current plans and limits.
## See Also
- [Composio](composio.md) — broader integration layer (500+ tools, OAuth-heavy CRMs and productivity apps)
- [Google Search Console](google-search-console.md) — native API guide if you'd rather call GSC directly
- [LinkedIn Ads](linkedin-ads.md), [TikTok Ads](tiktok-ads.md) — native API guides
## Relevant Skills
- seo-audit (Search Console, Bing Webmaster, Semrush via Cogny)
- paid-ads (LinkedIn, Reddit, TikTok via Cogny)
- analytics-tracking (Plausible, Fathom via Cogny)
+145
View File
@@ -0,0 +1,145 @@
# Exa
AI-powered web search API built for LLMs and agents. Returns high-quality search results with neural and keyword matching, plus on-demand content retrieval (full text, highlights, and summaries) in a single request.
## Capabilities
| Integration | Available | Notes |
|-------------|-----------|-------|
| API | ✓ | Search, Find Similar, Contents |
| MCP | ✓ | Official MCP server available |
| CLI | ✓ | [exa.js](../clis/exa.js) |
| SDK | ✓ | `exa-py` (Python), `exa-js` (TypeScript) |
## Authentication
- **Type**: API Key
- **Header**: `x-api-key: {key}`
- **Get key**: https://dashboard.exa.ai
## Endpoints
Base URL: `https://api.exa.ai`
| Endpoint | Purpose |
|----------|---------|
| `POST /search` | Search the web with neural, keyword-like, or auto-routed modes |
| `POST /findSimilar` | Find pages similar to a given URL |
| `POST /contents` | Fetch text, highlights, or summaries for one or more URLs |
## Common Agent Operations
### Web Search with Content
```bash
POST https://api.exa.ai/search
{
"query": "best B2B SaaS onboarding flows",
"type": "auto",
"numResults": 10,
"contents": {
"text": { "maxCharacters": 1000 },
"highlights": true
}
}
```
### Competitor Content Discovery
```bash
POST https://api.exa.ai/search
{
"query": "landing page teardowns",
"includeDomains": ["goodui.org", "growth.design", "marketingexamples.com"],
"startPublishedDate": "2024-01-01T00:00:00Z",
"contents": { "highlights": true }
}
```
### Find Similar Pages
```bash
POST https://api.exa.ai/findSimilar
{
"url": "https://stripe.com/pricing",
"numResults": 20,
"contents": { "summary": { "query": "What pricing model and price points does this page use?" } }
}
```
### Category-Filtered Search
```bash
POST https://api.exa.ai/search
{
"query": "DTC beauty brand raising Series A",
"category": "news",
"numResults": 25,
"startPublishedDate": "2024-06-01T00:00:00Z"
}
```
### Fetch Contents for Known URLs
```bash
POST https://api.exa.ai/contents
{
"urls": ["https://example.com/post-1", "https://example.com/post-2"],
"text": true,
"summary": { "query": "Summarize this article's key argument in one paragraph." }
}
```
## Key Parameters
### Search Types
- `auto` - Automatically routes between neural and keyword matching (default)
- `neural` - Embedding-based semantic search; best for concept/idea queries
- `fast` - Lower-latency neural search
- `instant` - Returns cached results near-instantly
- `deep-lite`, `deep`, `deep-reasoning` - Agentic search variants that plan multiple queries and synthesize
### Categories
`company`, `research paper`, `news`, `personal site`, `financial report`, `people`
### Filtering
- `includeDomains` / `excludeDomains` - Restrict to or exclude specific domains (up to 1200)
- `includeText` / `excludeText` - Require or forbid phrases in result pages
- `startPublishedDate` / `endPublishedDate` - ISO 8601 publication date range
- `startCrawlDate` / `endCrawlDate` - ISO 8601 crawl date range
- `userLocation` - Two-letter country code (e.g., `US`)
### Contents (Mix and Match)
All three can be requested in the same call:
- `text: true` or `{ maxCharacters, includeHtmlTags, verbosity }` - Full or truncated page text
- `highlights: true` or `{ query, maxCharacters }` - LLM-selected relevant snippets
- `summary: { query, schema }` - LLM-generated summary, optionally conforming to a JSON schema
## When to Use
- **Content research** - Find high-quality long-form content on niche topics by meaning, not just keywords
- **Competitor discovery** - Find companies similar to one you've identified via `findSimilar`
- **SEO content gap analysis** - Search for topics your competitors rank for and pull highlights for quick review
- **Customer research** - Find forum threads, blog posts, and reviews about your product or category
- **Audience research** - Discover blogs, newsletters, and communities where your ICP publishes or comments
- **News monitoring** - Track mentions of your brand, competitors, or category with date-filtered news search
- **Link prospecting** - Find authoritative pages covering topics you write about, for outreach
- **Lead research** - Use the `company` and `people` categories to discover accounts or individuals matching criteria
## Rate Limits
- Varies by plan; see https://exa.ai/pricing
- Most production plans support hundreds of concurrent requests
- Content retrieval (text/highlights/summary) is billed separately from the base search
## Relevant Skills
- seo-audit
- ai-seo
- content-strategy
- competitor-profiling
- competitor-alternatives
- customer-research
- cold-email
- lead-magnets
- marketing-ideas
+257
View File
@@ -0,0 +1,257 @@
# RankParse
Agent-friendly SEO data API for backlinks, domain authority, tech stack, and on-page metadata. Designed as a low-cost alternative to enterprise SEO suites.
## Capabilities
| Integration | Available | Notes |
|-------------|-----------|-------|
| API | ✓ | REST API at `api.rankparse.com` |
| MCP | ✓ | Hosted MCP server for agent use |
| CLI | [](../clis/rankparse.js) | Node CLI wrapper |
| SDK | - | API-only (SDKs in progress) |
## Authentication
- **Type**: API Key
- **Header**: `X-API-Key: rp_...`
- **Get key**: Sign up at https://rankparse.com and create a key in the dashboard
- **Billing**: Credit-based (one-time credit packs, no subscription). Each endpoint deducts a fixed number of credits per call.
## Common Agent Operations
### Domain authority
```bash
GET https://api.rankparse.com/v1/domain-authority?domain=example.com
X-API-Key: rp_...
```
Returns authority score, registered date, registrar, and popularity rank.
### Backlinks
```bash
GET https://api.rankparse.com/v1/backlinks?domain=example.com&limit=100
X-API-Key: rp_...
```
Optional params: `sort=importance|recent`, `from_domain=`, `link_type=`, `score=true`.
### Referring domains
```bash
GET https://api.rankparse.com/v1/referring-domains?domain=example.com&limit=100
X-API-Key: rp_...
```
### Outbound links
```bash
GET https://api.rankparse.com/v1/outbound-links?domain=example.com&limit=100
X-API-Key: rp_...
```
### Anchor text profile
```bash
GET https://api.rankparse.com/v1/anchor-text?domain=example.com&limit=100
X-API-Key: rp_...
```
### Top pages
```bash
GET https://api.rankparse.com/v1/top-pages?domain=example.com&limit=50
X-API-Key: rp_...
```
### Domain overlap
```bash
GET https://api.rankparse.com/v1/domain-overlap?domains=a.com,b.com,c.com
X-API-Key: rp_...
```
Compare 25 domains.
### Link intersect
```bash
GET https://api.rankparse.com/v1/link-intersect?domain_a=a.com&domain_b=b.com
X-API-Key: rp_...
```
Domains that link to both targets.
### Competitor gap
```bash
GET https://api.rankparse.com/v1/competitor-gap?domain=mysite.com&vs=competitor.com
X-API-Key: rp_...
```
### Similar domains
```bash
GET https://api.rankparse.com/v1/similar-domains?domain=example.com
X-API-Key: rp_...
```
### Tech stack
```bash
GET https://api.rankparse.com/v1/tech-stack?domain=example.com
X-API-Key: rp_...
```
### Page SEO
```bash
GET https://api.rankparse.com/v1/page-seo?url=https://example.com/page
X-API-Key: rp_...
```
Returns title, meta description, OG tags, canonical, and structured metadata for a single URL.
### Page performance
```bash
GET https://api.rankparse.com/v1/page-performance?url=https://example.com/page&strategy=mobile
X-API-Key: rp_...
```
Core Web Vitals via Google PageSpeed Insights. Daily quotas apply.
### Site health
```bash
GET https://api.rankparse.com/v1/site-health?domain=example.com
X-API-Key: rp_...
```
### Sitemap
```bash
GET https://api.rankparse.com/v1/sitemap?domain=example.com&limit=100
X-API-Key: rp_...
```
### Crawl history
```bash
GET https://api.rankparse.com/v1/crawl-history?domain=example.com
X-API-Key: rp_...
```
Wayback Machine snapshots for the domain.
### Link audit
```bash
GET https://api.rankparse.com/v1/link-audit?domain=example.com
X-API-Key: rp_...
```
Combined health score, risk flags, anchor profile, and top backlinks.
### Site explorer
```bash
GET https://api.rankparse.com/v1/site-explorer?domain=example.com
X-API-Key: rp_...
```
All-in-one snapshot of a domain.
### Batch lookup
```bash
POST https://api.rankparse.com/v1/batch
Content-Type: application/json
X-API-Key: rp_...
{ "domains": ["a.com", "b.com", "c.com"] }
```
Bulk domain summaries in one call.
## Free Tools (Unauthenticated)
Public, IP-rate-limited endpoints for quick lookups without an API key:
- `GET /v1/tools/backlinks?domain=`
- `GET /v1/tools/domain-authority?domain=`
- `GET /v1/tools/tech-stack?domain=`
- `GET /v1/tools/similar-websites?domain=`
- `GET /v1/tools/domain-age?domain=`
- `GET /v1/tools/meta-tag-analyzer?url=`
- `GET /v1/tools/link-intersect?domain_a=&domain_b=`
- `GET /v1/tools/page-speed?url=`
## Key Response Fields
### Domain Metrics
- `authority` - Domain authority score
- `popularity_rank` - Tranco popularity rank
- `registered_at` - Domain registration date
- `registrar` - Registrar name
### Backlink Fields
- `from_url` - Source URL
- `to_url` - Target URL
- `anchor` - Anchor text
- `link_type` - dofollow / nofollow / ugc / sponsored
- `first_seen` - First discovery date
## When to Use
- Backlink discovery and analysis
- Competitor link research and gap analysis
- Domain authority lookups at scale
- Tech stack detection
- On-page SEO audits
- Sitemap and crawl history discovery
- Agent-driven SEO workflows where per-call cost matters
## Pricing Model
- Pay-as-you-go credit packs (no subscription)
- Most domain endpoints: 12 credits per call
- Aggregated endpoints (overlap, intersect, similar, gap): 5 credits
- Link audit: 8 credits
- Site explorer: 10 credits
- Batch: 1 credit per domain
- Free tier available for unauthenticated endpoints
## MCP Server
RankParse ships a hosted MCP server exposing all endpoints as tools — connect from Claude, Cursor, or any MCP-compatible agent. See https://rankparse.com for connection details.
## Relevant Skills
- seo-audit
- content-strategy
- competitors
- competitor-profiling
- ai-seo
- site-architecture
- schema