Skip to content

Commit 11ae94b

Browse files
committed
Release SEO Dungeon v2.2.5 env-first integrations
1 parent c9608bb commit 11ae94b

60 files changed

Lines changed: 717 additions & 247 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,24 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [2.2.5] - 2026-06-13
9+
10+
### Added
11+
- **Project `.env` integration path**: the dungeon bridge now forwards known
12+
SEO-related keys from the selected project `.env` and `.env.local` into the
13+
selected local CLI, including DataForSEO, Firecrawl, Google, GA4, GSC, and
14+
Railway variables.
15+
- **Direct API helpers**: added lightweight DataForSEO and Firecrawl scripts so
16+
live SEO data and crawl workflows can run from project credentials without
17+
requiring MCP setup.
18+
19+
### Changed
20+
- **Env-first audit policy**: audit and chat prompts now instruct Codex, Claude,
21+
and Gemini to prefer direct API/script access from project credentials, using
22+
MCP servers only as quiet optional adapters when already available.
23+
- **Integration docs**: DataForSEO, Firecrawl, Google, and extension docs now
24+
frame MCP as optional instead of required for normal SEO Dungeon audits.
25+
826
## [2.2.4] - 2026-06-13
927

1028
### Changed

README.md

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
[![CI](https://github.com/avalonreset/seo-dungeon/actions/workflows/ci.yml/badge.svg)](https://github.com/avalonreset/seo-dungeon/actions/workflows/ci.yml)
88
[![License: MIT](https://img.shields.io/badge/license-MIT-green)](LICENSE)
9-
[![Version](https://img.shields.io/badge/version-2.2.4-blue)](CHANGELOG.md)
9+
[![Version](https://img.shields.io/badge/version-2.2.5-blue)](CHANGELOG.md)
1010
[![Runtime](https://img.shields.io/badge/runtime-Codex%20%7C%20Claude%20%7C%20Gemini-2ea44f)](dungeon/)
1111

1212
SEO Dungeon turns SEO audits into a 16-bit dungeon crawler. Enter a domain,
@@ -136,6 +136,28 @@ Runtime environment:
136136
Set a model variable to `default`, `auto`, or `none` to let that CLI use its own
137137
configured default model.
138138

139+
### Project API Credentials
140+
141+
SEO Dungeon treats the selected project folder as the credential source for
142+
audit integrations. Add a `.env` or `.env.local` file at that project root when
143+
you want live data:
144+
145+
```bash
146+
DATAFORSEO_USERNAME=your-login
147+
DATAFORSEO_PASSWORD=your-password
148+
FIRECRAWL_API_KEY=fc-your-api-key
149+
GOOGLE_API_KEY=your-google-api-key
150+
GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/service-account.json
151+
GSC_SITE_URL=https://example.com/
152+
GA4_PROPERTY_ID=123456789
153+
```
154+
155+
The bridge forwards known SEO-related keys from the project `.env` into the
156+
selected local CLI. DataForSEO, Firecrawl, and Google workflows should use those
157+
credentials directly first. MCP servers are optional adapters: if you already
158+
have one configured, an agent may use it quietly, but SEO Dungeon does not
159+
require MCP setup for audits.
160+
139161
First audits can take 5-10 minutes because `/seo audit` fans out many tool
140162
calls. Cached audits are much faster.
141163

agents-codex/seo-backlinks.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ You are a backlink profile analyst. When delegated tasks during an SEO audit:
3838
- Bing's unique competitor comparison is especially valuable for gap analysis
3939
4040
### Tier 3 (+ DataForSEO — Premium)
41-
- If DataForSEO MCP tools are available, use them for highest-fidelity data
41+
- If DataForSEO credentials or optional tools are available, use direct DataForSEO data for highest-fidelity analysis
4242
- DataForSEO data gets **confidence: 1.00**
4343
- Combine with free source data for cross-validation
4444
- When DataForSEO and Moz disagree, trust DataForSEO but note the discrepancy

agents-codex/seo-dataforseo.toml

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
name = "seo-dataforseo"
2-
description = "DataForSEO data analyst. Fetches live SERP data, keyword metrics, backlink profiles, on-page analysis, content analysis, business listings, and AI visibility checks via DataForSEO MCP tools."
2+
description = "DataForSEO data analyst. Fetches live SERP data, keyword metrics, backlink profiles, on-page analysis, content analysis, business listings, and AI visibility checks via project .env credentials and direct API scripts, with optional adapters when already available."
33
nickname_candidates = ["seo-dataforseo", "seo dataforseo", "dataforseo"]
44
developer_instructions = """
55
You are a DataForSEO data analyst. When delegated tasks during an SEO audit or analysis:
66
7-
1. Check that DataForSEO MCP tools are available before attempting calls
8-
2. Use the most efficient tool combination for the requested data
9-
3. Apply default parameters: location_code=2840 (US), language_code=en unless specified
10-
4. Format output to match codex-seo conventions (tables, priority levels, scores)
7+
1. Prefer direct DataForSEO API access via `DATAFORSEO_USERNAME` or `DATAFORSEO_LOGIN` plus `DATAFORSEO_PASSWORD` from the selected project's `.env`.
8+
2. Use `python scripts/dataforseo_api.py ...` for generic DataForSEO endpoints and specialized scripts such as `scripts/dataforseo_merchant.py` when they fit.
9+
3. If an optional DataForSEO adapter is already available, you may use it quietly, but do not require MCP setup or spend context inventorying MCP servers unless the user explicitly asks.
10+
4. Apply default parameters: location_code=2840 (US), language_code=en unless specified.
11+
5. Format output to match codex-seo conventions (tables, priority levels, scores).
1112
1213
## Efficient Tool Usage
1314
@@ -18,8 +19,8 @@ You are a DataForSEO data analyst. When delegated tasks during an SEO audit or a
1819
1920
## Error Handling
2021
21-
- If a DataForSEO tool returns an error, report the error clearly to the user
22-
- If credentials are invalid, suggest running the extension installer again
22+
- If a DataForSEO API call or optional tool returns an error, report the error clearly to the user
23+
- If credentials are missing or invalid, ask the user to set `DATAFORSEO_USERNAME` or `DATAFORSEO_LOGIN` and `DATAFORSEO_PASSWORD` in the selected project `.env`
2324
- If a module is not enabled, note which module is needed
2425
2526
## Output Format

agents-codex/seo-firecrawl.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
name = "seo-firecrawl"
2-
description = "Firecrawl-backed site crawling specialist for URL discovery, site mapping, and crawl coverage analysis when the Firecrawl MCP server is available."
2+
description = "Firecrawl-backed site crawling specialist for URL discovery, site mapping, and crawl coverage analysis via FIRECRAWL_API_KEY and direct API scripts, with optional adapters when already available."
33
nickname_candidates = ["seo-firecrawl", "seo firecrawl", "firecrawl"]
44
developer_instructions = """
5-
You are a Firecrawl-backed SEO crawl specialist. Use Firecrawl MCP tools only when they are available and the user has requested or approved crawl-based discovery.
5+
You are a Firecrawl-backed SEO crawl specialist. Prefer direct Firecrawl API access via `FIRECRAWL_API_KEY` in the selected project's `.env` and `python scripts/firecrawl_api.py ...`. Use an optional Firecrawl adapter only when it is already available and the user has requested or approved crawl-based discovery.
66
77
When delegated during a full audit:
8-
1. Confirm Firecrawl MCP availability before using it.
8+
1. Check for `FIRECRAWL_API_KEY` before using Firecrawl. Do not require MCP setup.
99
2. Map the target site to discover canonical URLs, important sections, and crawl gaps.
1010
3. Respect user crawl budgets, robots constraints, and same-domain boundaries.
1111
4. Return a concise URL inventory, sitemap comparison notes, crawl errors, and suggested follow-up specialist skills.
12-
5. If Firecrawl is unavailable, report that state clearly and recommend the deterministic sitemap/page workflows instead.
12+
5. If Firecrawl credentials and optional MCP tools are unavailable, continue with deterministic sitemap/page workflows instead of blocking.
1313
"""

agents-codex/seo-geo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ Only 11% of domains are cited by both ChatGPT and Google AI Overviews, so platfo
4747
4848
## DataForSEO Integration (Optional)
4949
50-
If DataForSEO MCP tools are available, use `ai_optimization_chat_gpt_scraper` for live ChatGPT visibility and `ai_opt_llm_ment_search` for LLM mention tracking.
50+
If DataForSEO credentials or optional tools are available, use direct DataForSEO calls for live ChatGPT visibility and LLM mention tracking.
5151
5252
## Output Format
5353

agents-codex/seo-local.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ Load `skills/seo/references/local-schema-types.md` for:
5656
5757
## DataForSEO Integration (Optional)
5858
59-
If DataForSEO MCP tools are available, use `local_business_data` for live GBP data and `google_local_pack_serp` for real-time local pack positions.
59+
If DataForSEO credentials or optional tools are available, use direct DataForSEO calls for live GBP data and real-time local pack positions.
6060
6161
## Output Format
6262

agents-codex/seo-maps.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ nickname_candidates = ["seo-maps", "seo maps", "maps"]
44
developer_instructions = """
55
You are a Maps Intelligence specialist. When delegated tasks during an SEO audit or given a business URL/name:
66
7-
1. Detect capability tier: check if DataForSEO MCP tools are available (try `business_data_business_listings_search`). If available = Tier 1. If not = Tier 0 (free APIs only).
7+
1. Detect capability tier: check if DataForSEO credentials are present in the selected project environment, or whether an optional DataForSEO adapter is already available. If available = Tier 1. If not = Tier 0 (free APIs only).
88
2. Identify the target business: extract name, location, and category from the URL or provided context
99
3. Geocode the business address using Nominatim (free) or DataForSEO (Tier 1)
1010
4. Run available analyses based on tier (see below)

agents/seo-backlinks.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ You are a backlink profile analyst. When delegated tasks during an SEO audit:
4242
- Bing's unique competitor comparison is especially valuable for gap analysis
4343

4444
### Tier 3 (+ DataForSEO — Premium)
45-
- If DataForSEO MCP tools are available, use them for highest-fidelity data
45+
- If DataForSEO credentials or optional tools are available, use direct DataForSEO data for highest-fidelity analysis
4646
- DataForSEO data gets **confidence: 1.00**
4747
- Combine with free source data for cross-validation
4848
- When DataForSEO and Moz disagree, trust DataForSEO but note the discrepancy

agents/seo-dataforseo.md

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,18 @@
11
---
22
name: seo-dataforseo
3-
description: DataForSEO data analyst. Fetches live SERP data, keyword metrics, backlink profiles, on-page analysis, content analysis, business listings, and AI visibility checks via DataForSEO MCP tools.
3+
description: DataForSEO data analyst. Fetches live SERP data, keyword metrics, backlink profiles, on-page analysis, content analysis, business listings, and AI visibility checks via project .env credentials and direct API scripts, with optional adapters when already available.
44
model: sonnet
55
maxTurns: 25
66
tools: Read, Bash, Write, Glob, Grep
77
---
88

99
You are a DataForSEO data analyst. When delegated tasks during an SEO audit or analysis:
1010

11-
1. Check that DataForSEO MCP tools are available before attempting calls
12-
2. Use the most efficient tool combination for the requested data
13-
3. Apply default parameters: location_code=2840 (US), language_code=en unless specified
14-
4. Format output to match claude-seo conventions (tables, priority levels, scores)
11+
1. Prefer direct DataForSEO API access via `DATAFORSEO_USERNAME` or `DATAFORSEO_LOGIN` plus `DATAFORSEO_PASSWORD` from the selected project's `.env`.
12+
2. Use `python scripts/dataforseo_api.py ...` for generic DataForSEO endpoints and specialized scripts such as `scripts/dataforseo_merchant.py` when they fit.
13+
3. If an optional DataForSEO adapter is already available, you may use it quietly, but do not require MCP setup or spend context inventorying MCP servers unless the user explicitly asks.
14+
4. Apply default parameters: location_code=2840 (US), language_code=en unless specified.
15+
5. Format output to match claude-seo conventions (tables, priority levels, scores).
1516

1617
## Efficient Tool Usage
1718

@@ -22,8 +23,8 @@ You are a DataForSEO data analyst. When delegated tasks during an SEO audit or a
2223

2324
## Error Handling
2425

25-
- If a DataForSEO tool returns an error, report the error clearly to the user
26-
- If credentials are invalid, suggest running the extension installer again
26+
- If a DataForSEO API call or optional tool returns an error, report the error clearly to the user
27+
- If credentials are missing or invalid, ask the user to set `DATAFORSEO_USERNAME` or `DATAFORSEO_LOGIN` and `DATAFORSEO_PASSWORD` in the selected project `.env`
2728
- If a module is not enabled, note which module is needed
2829

2930
## Output Format

0 commit comments

Comments
 (0)