{"name":"PageGun MCP Server","description":"Organic ops control plane for PageGun projects: content inventory, SEO/GEO audits, draft creation, safe updates, launch checks, and explicit-approval publishing.","transport":"streamable-http","endpoint":"https://mcp.pagegun.com","docs":"https://pagegun.com/docs/api-reference/mcp","auth":{"header":"Authorization: Bearer <api_key>","env_var":"PAGEGUN_API_KEY","recommendation":"Use a project-scoped API key when possible. If the key is not project-scoped, pass project_id explicitly."},"tool_surface":{"full_tool_count":125,"default_profile":"seo-agent","discovery_tool":"get_tool_profiles","select_profile":"Use ?profile=full|seo-agent|readonly|cms|publisher on the MCP URL or send x-pagegun-mcp-profile.","profiles":[{"name":"full","label":"Full","description":"Every PageGun MCP tool. Use this for internal operator work and one-off maintenance.","tool_count":125},{"name":"seo-agent","label":"SEO Agent","description":"Default profile for organic growth agents: strategy, research, keyword targets, internal links, article drafting/updates, media, and explicit-approval publishing. Hides page/doc mutation, project creation, route/homepage/item wrappers, destructive deletes, and broad project settings tools.","tool_count":88},{"name":"readonly","label":"Read Only","description":"Audit and research surface only. No content, media, category, route, project, publish, or delete mutations are exposed.","tool_count":84},{"name":"cms","label":"CMS","description":"Content-management surface for pages, articles, docs, media, authors, categories, routes, and publishing. SEO research and costed external intelligence are hidden.","tool_count":78},{"name":"publisher","label":"Publisher","description":"Minimal publish/release surface: inspect content, run readiness/launch checks, then publish or unpublish after explicit approval.","tool_count":36}],"mutating_tools":["create_author","update_author","create_category","update_category","delete_category","merge_category","reorder_categories","create_page","set_page_schema","patch_page_config","update_page","publish_page","unpublish_page","create_article","update_article","create_doc","update_doc","create_project","keyword_targets_upsert","keyword_targets_update","keyword_targets_delete","linking_start_crawl","update_project","update_project_settings","create_subroute","update_subroute","delete_subroute","upload_media_from_url","upload_media_from_file","delete_media","update_item","collection_create","collection_update_schema","collection_update_item","collection_update_ops_config","collection_bulk_upsert_items","collection_publish_snapshot","route_ownership_upsert","indexing_configure_indexnow","indexing_submit_indexnow","update_homepage"],"dangerous_tools":["create_project","update_project","update_project_settings","publish_page","collection_publish_snapshot","unpublish_page","delete_category","delete_subroute","delete_media"]},"what_this_mcp_can_do":["Read project, brand, route, inventory, site-surface, URL snapshot, and content context.","Prioritize commercial SEO work from GSC URL queries, domain authority/backlink trends, internal links, conversion/CTA signals, canonical groups, indexing state, and product capability evidence.","Generate backlink outreach opportunity lists and email-writing prompts from 1-3 competitor domains without writing or sending email.","Create projects through a homepage onboarding and two-step confirmation flow.","Audit SEO/GEO readiness from persisted PageGun data and optional cached research data.","Find keyword owners, content gaps, cannibalization risks, internal-link issues, and launch blockers.","Configure IndexNow and submit guarded URL batches after publish/bulk changes.","Persist project keyword targets and reuse shared keyword metrics without turning every agent run into a fresh vendor call.","Explain the Data Mode renderer read path: content key, CDN artifacts, encrypted snapshots, and static build wiring.","Manage structured Collection CMS records for directory/tool/local SEO sites, including schema validation, bulk upsert, export, route ownership, and Data Mode collection snapshots.","Create draft landing pages, articles, docs, schemas, routes, authors, categories, and media.","Patch JSON page configs safely with dry-run diffs, schema/link validation, and publish guards; full config replacement remains available for intentional rewrites.","Publish or unpublish only after explicit user approval."],"available_tool_categories":[{"category":"read-only audit","tools":["context_get_project_brief","context_get_brand_profile","context_get_product_capabilities","content_get_inventory","content_list_site_surface","content_site_search","content_get_url_snapshot","content_get_coverage_map","content_search","content_get_summary","seo_get_overview","seo_get_growth_brief","seo_export_audit","seo_get_canonical_groups","seo_plan_bulk_repairs","seo_audit_page","seo_find_keyword_owner","seo_find_cannibalization","seo_find_content_gaps","gsc_get_ranked_keywords_by_url","analytics_get_domain_metrics","analytics_get_url_conversions","indexing_get_status","indexing_get_indexnow_setup","publishing_get_readiness","publishing_get_launch_audit","adapter_get_static_site_plan","adapter_get_static_collection_plan","get_data_mode_renderer_guide"],"safety":"No writes. Default cache-only behavior spends no live research quota."},{"category":"indexing actions","tools":["indexing_get_indexnow_setup","indexing_configure_indexnow","indexing_submit_indexnow"],"safety":"Setup/configure writes only project.settings.indexnow. Submit defaults to preview and requires confirm_submit=true for the live external IndexNow request."},{"category":"keyword target management","tools":["keyword_targets_list","keyword_targets_upsert","keyword_targets_update","keyword_targets_delete"],"safety":"Scoped to project keyword-target rows. Upsert/update/delete do not create content or publish. Delete preserves the shared global keyword row."},{"category":"collection CMS","tools":["get_collection_guide","collection_list","collection_create","collection_get_schema","collection_update_schema","collection_list_items","collection_get_item","collection_validate_item","collection_get_ops_config","collection_update_ops_config","collection_query_items","collection_get_qa_queue","collection_preview_snapshot","relation_validate","collection_update_item","collection_bulk_upsert_items","collection_diff_items","collection_export_items","collection_publish_snapshot","adapter_get_static_collection_plan","route_ownership_list","route_ownership_suggest_from_crawl","route_ownership_upsert"],"safety":"Collections are structured source-of-truth records. Bulk writes should use dry_run first. Publishing collection snapshots requires explicit approval."},{"category":"draft/create","tools":["create_project","create_page","create_article","create_doc","create_author","create_category","create_subroute"],"safety":"create_project runs homepage onboarding, asks for missing required data, then requires a preview token plus explicit confirmation. Other tools create drafts or metadata only. Does not publish."},{"category":"update draft","tools":["patch_page_config","update_page","update_article","update_doc","set_page_schema","update_project_settings","update_subroute","upload_media_from_url","upload_media_from_file"],"safety":"patch_page_config dry-runs by default and never publishes. update_page config is a full overwrite escape hatch."},{"category":"publish","tools":["publish_page"],"safety":"Requires publishing_get_readiness and explicit user approval. Do not infer approval from the original task."},{"category":"destructive/unpublish","tools":["unpublish_page","delete_media","delete_category","delete_subroute"],"safety":"Requires explicit user approval and a clear target."},{"category":"external/costed research","tools":["research_fetch_serp","research_get_serp_snapshot","research_keyword_metrics","competitor_research_get_overlap","backlink_outreach_generate_pitches","geo_get_entity_profile","seo_get_overview","gsc_get_page_query_metrics","analytics_get_domain_metrics"],"safety":"cache_only is free. analytics_get_domain_metrics defaults to refresh_if_missing; other paid research tools default cache_only. refresh_if_missing refreshes missing, 3-day-stale GSC rows, or 14-day-stale provider rows; force_refresh always refreshes. Live calls must return freshness/cost status without upstream vendor details."}],"recommended_paths":{"seo_audit":["context_get_project_brief","content_get_inventory","seo_get_overview","seo_audit_page"],"commercial_growth":["seo_get_growth_brief","analytics_get_domain_metrics","gsc_get_ranked_keywords_by_url","analytics_get_url_conversions","content_get_url_snapshot","content_get_coverage_map","linking_find_opportunities"],"backlink_outreach":["backlink_outreach_generate_pitches with 1-3 competitor domains","pass returned email prompt values to the email-writing agent","review generated email drafts before any send step"],"new_content":["context_get_project_brief","content_list_site_surface","keyword_targets_list","seo_find_keyword_owner","content_site_search","content_get_coverage_map","get_workflow_guide","get_json_page_guide|get_article_guide|get_docs_guide","create_page|create_article|create_doc"],"publish":["publishing_get_readiness","ask_user_for_explicit_approval","publish_page","indexing_submit_indexnow with confirm_submit=false","indexing_submit_indexnow with confirm_submit=true if the user wants IndexNow notification"],"launch_audit":["publishing_get_launch_audit","linking_start_crawl if no recent crawl exists","publishing_get_launch_audit again"],"static_site_adapter":["get_data_mode_renderer_guide","content_get_inventory|content_search","adapter_get_static_site_plan","apply JSON/Markdown/route plan in the target repo","rerun target repo sitemap checks"]},"minimal_config":{"codex_cli":"codex mcp add pagegun --url https://mcp.pagegun.com --bearer-token-env-var PAGEGUN_API_KEY","mcp_json":{"mcpServers":{"pagegun":{"type":"http","url":"https://mcp.pagegun.com","headers":{"Authorization":"Bearer ${PAGEGUN_API_KEY}"}}}}},"warnings":["Publishing pushes a CDN snapshot and must never be guessed. Run publishing_get_readiness first, then ask for explicit approval.","Unpublish and delete tools are destructive and also require explicit approval.","Strategy and research tools are cache-first. Do not run live research unless the user asked for fresh research.","backlink_outreach_generate_pitches only returns opportunities and email-writing prompts; it does not write emails, send emails, or create approval state.","For JSON pages, define or inspect the effective content_schema before creating, updating, or publishing.","Renderer/build jobs should use PAGEGUN_CONTENT_KEY plus Data Mode CDN snapshots, not PAGEGUN_API_KEY, unless the job is intentionally mutating PageGun state.","Project creation runs homepage onboarding and is a two-step write. Call create_project once for a preview token, ask for explicit user approval, then call it again with confirm_create=true."]}