# ryze-ai-adgent/open-seo-mcp-skills architecture

> Architecture diagram of the GitHub repository ryze-ai-adgent/open-seo-mcp-skills, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-10-05). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/ryze-ai-adgent/open-seo-mcp-skills
- Repository: https://github.com/ryze-ai-adgent/open-seo-mcp-skills

## Overview

This repository is a set of Markdown SEO/GEO skills for Claude, not an implementation of an SEO server. The documented workflow is that a user asks Claude for an SEO task, Claude uses the matching skill, and the skill accesses data through the Ryze MCP connector. The graph preserves all eight documented skills and their stated data sources. Relationships are based on the README; no skill source excerpts were available to verify finer-grained call order.

Main entry points: [`skills/seo-audit/SKILL.md`](https://github.com/ryze-ai-adgent/open-seo-mcp-skills/blob/main/skills/seo-audit/SKILL.md) (SEO audit), [`skills/keyword-research/SKILL.md`](https://github.com/ryze-ai-adgent/open-seo-mcp-skills/blob/main/skills/keyword-research/SKILL.md) (Keyword research), [`skills/seo-vs-ads/SKILL.md`](https://github.com/ryze-ai-adgent/open-seo-mcp-skills/blob/main/skills/seo-vs-ads/SKILL.md) (SEO vs ads), [`skills/competitor-gap/SKILL.md`](https://github.com/ryze-ai-adgent/open-seo-mcp-skills/blob/main/skills/competitor-gap/SKILL.md) (Competitor gap)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_research["Research and audits"]
  node_seo_audit["SEO audit<br/>[SKILL.md]"]
  node_keyword_research["Keyword research<br/>[SKILL.md]"]
  node_seo_vs_ads["SEO vs ads<br/>[SKILL.md]"]
end

subgraph group_monitoring["Monitoring and competitors"]
  node_rank_tracking["Rank tracking<br/>[SKILL.md]"]
  node_competitor_gap["Competitor gap<br/>[SKILL.md]"]
  node_backlink_check["Backlink check<br/>[SKILL.md]"]
end

subgraph group_content["Content and visibility"]
  node_ai_visibility["AI visibility<br/>[SKILL.md]"]
  node_content_brief["Content brief<br/>[SKILL.md]"]
end

node_user(("User"))
node_claude["Claude client"]
node_ryze_mcp["Ryze MCP"]
node_gsc[("Google Search Console")]
node_ga4[("Google Analytics 4")]
node_google_ads[("Google Ads")]
node_dataforseo[("DataForSEO")]
node_ahrefs_semrush[("Ahrefs / Semrush")]

node_user -->|"asks task"| node_claude
node_claude -->|"uses skill"| node_seo_audit
node_claude -->|"uses skill"| node_keyword_research
node_claude -->|"uses skill"| node_rank_tracking
node_claude -->|"uses skill"| node_competitor_gap
node_claude -->|"uses skill"| node_backlink_check
node_claude -->|"uses skill"| node_ai_visibility
node_claude -->|"uses skill"| node_content_brief
node_claude -->|"uses skill"| node_seo_vs_ads
node_seo_audit -->|"gets data"| node_ryze_mcp
node_keyword_research -->|"gets data"| node_ryze_mcp
node_rank_tracking -->|"gets data"| node_ryze_mcp
node_competitor_gap -->|"gets data"| node_ryze_mcp
node_backlink_check -->|"gets data"| node_ryze_mcp
node_ai_visibility -->|"gets data"| node_ryze_mcp
node_content_brief -->|"gets data"| node_ryze_mcp
node_seo_vs_ads -->|"gets data"| node_ryze_mcp
node_ryze_mcp -->|"reads data"| node_gsc
node_ryze_mcp -->|"reads data"| node_ga4
node_ryze_mcp -->|"reads data"| node_google_ads
node_ryze_mcp -->|"reads data"| node_dataforseo
node_ryze_mcp -.->|"optionally connects"| node_ahrefs_semrush
node_seo_audit -->|"uses"| node_gsc
node_seo_audit -->|"uses"| node_ga4
node_keyword_research -->|"uses"| node_google_ads
node_keyword_research -->|"uses"| node_dataforseo
node_rank_tracking -->|"uses"| node_gsc
node_competitor_gap -->|"uses"| node_dataforseo
node_competitor_gap -->|"uses"| node_gsc
node_backlink_check -->|"uses"| node_dataforseo
node_ai_visibility -->|"uses"| node_ga4
node_content_brief -->|"uses"| node_dataforseo
node_content_brief -->|"uses"| node_gsc
node_seo_vs_ads -->|"compares"| node_gsc
node_seo_vs_ads -->|"compares"| node_google_ads

click node_seo_audit "https://github.com/ryze-ai-adgent/open-seo-mcp-skills/blob/main/skills/seo-audit/SKILL.md"
click node_keyword_research "https://github.com/ryze-ai-adgent/open-seo-mcp-skills/blob/main/skills/keyword-research/SKILL.md"
click node_rank_tracking "https://github.com/ryze-ai-adgent/open-seo-mcp-skills/blob/main/skills/rank-tracking/SKILL.md"
click node_competitor_gap "https://github.com/ryze-ai-adgent/open-seo-mcp-skills/blob/main/skills/competitor-gap/SKILL.md"
click node_backlink_check "https://github.com/ryze-ai-adgent/open-seo-mcp-skills/blob/main/skills/backlink-check/SKILL.md"
click node_ai_visibility "https://github.com/ryze-ai-adgent/open-seo-mcp-skills/blob/main/skills/ai-visibility/SKILL.md"
click node_content_brief "https://github.com/ryze-ai-adgent/open-seo-mcp-skills/blob/main/skills/content-brief/SKILL.md"
click node_seo_vs_ads "https://github.com/ryze-ai-adgent/open-seo-mcp-skills/blob/main/skills/seo-vs-ads/SKILL.md"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_seo_audit,node_keyword_research,node_seo_vs_ads,node_user,node_claude toneBlue
class node_rank_tracking,node_competitor_gap,node_backlink_check,node_gsc,node_ga4,node_google_ads,node_dataforseo,node_ahrefs_semrush toneAmber
class node_ai_visibility,node_content_brief toneMint
class node_ryze_mcp toneIndigo
```

## Components

### Research and audits

- [SEO audit](https://github.com/ryze-ai-adgent/open-seo-mcp-skills/blob/main/skills/seo-audit/SKILL.md): `skills/seo-audit/SKILL.md`
- [Keyword research](https://github.com/ryze-ai-adgent/open-seo-mcp-skills/blob/main/skills/keyword-research/SKILL.md): `skills/keyword-research/SKILL.md`
- [SEO vs ads](https://github.com/ryze-ai-adgent/open-seo-mcp-skills/blob/main/skills/seo-vs-ads/SKILL.md): `skills/seo-vs-ads/SKILL.md`

### Monitoring and competitors

- [Rank tracking](https://github.com/ryze-ai-adgent/open-seo-mcp-skills/blob/main/skills/rank-tracking/SKILL.md): `skills/rank-tracking/SKILL.md`
- [Competitor gap](https://github.com/ryze-ai-adgent/open-seo-mcp-skills/blob/main/skills/competitor-gap/SKILL.md): `skills/competitor-gap/SKILL.md`
- [Backlink check](https://github.com/ryze-ai-adgent/open-seo-mcp-skills/blob/main/skills/backlink-check/SKILL.md): `skills/backlink-check/SKILL.md`

### Content and visibility

- [AI visibility](https://github.com/ryze-ai-adgent/open-seo-mcp-skills/blob/main/skills/ai-visibility/SKILL.md): `skills/ai-visibility/SKILL.md`
- [Content brief](https://github.com/ryze-ai-adgent/open-seo-mcp-skills/blob/main/skills/content-brief/SKILL.md): `skills/content-brief/SKILL.md`

### Other components

- **User**
- **Claude client**
- **Ryze MCP**
- **Google Search Console**
- **Google Analytics 4**
- **Google Ads**
- **DataForSEO**
- **Ahrefs / Semrush**

## Connections

- User → Claude client: asks task (evidence: `README.md`)
- Claude client → SEO audit: uses skill (evidence: `README.md`)
- Claude client → Keyword research: uses skill (evidence: `README.md`)
- Claude client → Rank tracking: uses skill (evidence: `README.md`)
- Claude client → Competitor gap: uses skill (evidence: `README.md`)
- Claude client → Backlink check: uses skill (evidence: `README.md`)
- Claude client → AI visibility: uses skill (evidence: `README.md`)
- Claude client → Content brief: uses skill (evidence: `README.md`)
- Claude client → SEO vs ads: uses skill (evidence: `README.md`)
- SEO audit → Ryze MCP: gets data (evidence: `README.md`)
- Keyword research → Ryze MCP: gets data (evidence: `README.md`)
- Rank tracking → Ryze MCP: gets data (evidence: `README.md`)
- Competitor gap → Ryze MCP: gets data (evidence: `README.md`)
- Backlink check → Ryze MCP: gets data (evidence: `README.md`)
- AI visibility → Ryze MCP: gets data (evidence: `README.md`)
- Content brief → Ryze MCP: gets data (evidence: `README.md`)
- SEO vs ads → Ryze MCP: gets data (evidence: `README.md`)
- Ryze MCP → Google Search Console: reads data (evidence: `README.md`)
- Ryze MCP → Google Analytics 4: reads data (evidence: `README.md`)
- Ryze MCP → Google Ads: reads data (evidence: `README.md`)
- Ryze MCP → DataForSEO: reads data (evidence: `README.md`)
- Ryze MCP → Ahrefs / Semrush: optionally connects (evidence: `README.md`)
- SEO audit → Google Search Console: uses (evidence: `README.md`)
- SEO audit → Google Analytics 4: uses (evidence: `README.md`)
- Keyword research → Google Ads: uses (evidence: `README.md`)
- Keyword research → DataForSEO: uses (evidence: `README.md`)
- Rank tracking → Google Search Console: uses (evidence: `README.md`)
- Competitor gap → DataForSEO: uses (evidence: `README.md`)
- Competitor gap → Google Search Console: uses (evidence: `README.md`)
- Backlink check → DataForSEO: uses (evidence: `README.md`)
- AI visibility → Google Analytics 4: uses (evidence: `README.md`)
- Content brief → DataForSEO: uses (evidence: `README.md`)
- Content brief → Google Search Console: uses (evidence: `README.md`)
- SEO vs ads → Google Search Console: compares (evidence: `README.md`)
- SEO vs ads → Google Ads: compares (evidence: `README.md`)
