Available MCP Tools

The Rampify MCP server provides several tools that bring SEO intelligence directly into your coding workflow.

Pro Tip: Personalized Recommendations

Fill out your Business Profile to get personalized, context-aware recommendations. Without it, AI tools generate generic output. With it, they understand your audience, brand voice, and differentiators.

Available Tools#

Rampify provides 6 MCP tools that bridge your IDE and the Rampify platform. The tools support two complementary workflows:

Site Analysis & Monitoring — Diagnostic tools that surface SEO intelligence: indexing status, site health, and content opportunities from Google Search Console.

Content Creation & Optimization — Extends your AI's code generation to SEO content. Your model generates optimized meta tags and schema markup using real data from your site instead of hallucinated patterns.

ToolPurpose
Site Analysis & Monitoring
crawl_site()Trigger fresh site crawl and update data
get_page_seo()Analyze individual page SEO in detail
get_issues()Get site-wide health check with SEO score
get_gsc_insights()Find content opportunities from GSC data
Content Creation & Optimization
generate_meta()Generate optimized meta tags for any page
generate_schema()Auto-generate schema.org JSON-LD markup

crawl_site()#

Trigger a fresh site crawl and analysis. This actively fetches and analyzes all pages.

Usage#

crawl_site({
  domain: "example.com"
})

Parameters#

  • domain (optional) - Site domain (uses SEO_CLIENT_DOMAIN if not provided)

Returns#

{
  "status": "completed",
  "total_urls": 156,
  "urls_checked": 156,
  "issues_detected": 15,
  "duration_ms": 45000,
  "crawl_method": "sitemap"
}

Example#

Crawl my site after deploying changes
Analyze example.com
Refresh SEO data for my site

get_page_seo()#

Get comprehensive SEO data and insights for a specific page. Works with both production sites AND local dev servers!

Usage#

get_page_seo({
  domain: "example.com",
  url_path: "/blog/post"
})

Parameters#

  • domain (optional) - Site domain (e.g., "example.com" or "localhost:3000"). Uses SEO_CLIENT_DOMAIN env var if not provided.
  • url_path (optional) - Page URL path (e.g., "/blog/post")
  • file_path (optional) - Local file path (will be resolved to URL)
  • content (optional) - Current file content

Returns#

{
  "source": "production_database",
  "fetched_from": "https://example.com/blog/post",
  "url": "https://example.com/blog/post",
  "performance": {
    "clicks": 1234,
    "impressions": 45678,
    "ctr": 2.7,
    "position": 8.5
  },
  "top_keywords": [
    {
      "query": "seo tools",
      "clicks": 234,
      "impressions": 8900,
      "position": 6.2
    }
  ],
  "issues": [
    {
      "type": "title_length_suboptimal",
      "severity": "warning",
      "message": "Title is only 35 characters (recommended: 50-60)"
    }
  ],
  "ai_summary": "This page is performing well but could improve its title..."
}

Example#

What's the SEO status of this page?
Check SEO for /blog/post
Audit the local version of this page (localhost:3000)

get_issues()#

Get SEO issues for entire site with health score. Returns a comprehensive report of all detected problems.

Usage#

get_issues({
  domain: "example.com",
  filters: {
    severity: ["critical"],
    limit: 50
  }
})

Parameters#

  • domain (optional) - Site domain (uses SEO_CLIENT_DOMAIN if not provided)
  • filters (optional):
    • severity: Array of severity levels (['critical', 'warning', 'info'])
    • issue_types: Array of specific issue types
    • limit: Max issues to return (1-100, default: 50)

Returns#

{
  "health_score": 78,
  "grade": "B",
  "summary": {
    "critical": 3,
    "warning": 12,
    "info": 5
  },
  "issues": [
    {
      "type": "http_404",
      "severity": "critical",
      "url": "https://example.com/missing-page",
      "title": "Page not found",
      "fix": "Fix broken link or create missing page"
    }
  ],
  "recommendations": [
    "Fix 3 critical issues first (404 errors)",
    "Add missing meta descriptions to 12 pages"
  ]
}

Example#

What SEO issues does my site have?
Show me only critical SEO issues
Check SEO issues for example.com

get_gsc_insights()#

Get Google Search Console performance insights with AI-powered content recommendations. Analyzes your GSC data to identify content opportunities, improve rankings, and optimize CTR.

Requires GSC Connection

This tool requires your Google Search Console account to be connected. Connect GSC in Settings →

Usage#

get_gsc_insights({
  domain: "example.com",
  period: "28d",
  include_recommendations: true
})

Parameters#

  • domain (optional) - Site domain (uses SEO_CLIENT_DOMAIN if not provided)
  • period (optional) - Time period: "7d", "28d", or "90d" (default: "28d")
  • include_recommendations (optional) - Include AI content recommendations (default: true)

Returns#

{
  "performance_summary": {
    "total_clicks": 1234,
    "total_impressions": 45678,
    "average_ctr": 2.7,
    "average_position": 8.5,
    "date_range": "Last 28 days"
  },
  "top_pages": [
    {
      "url": "/blog/seo-tips",
      "clicks": 234,
      "impressions": 8900,
      "ctr": 2.6,
      "position": 4.2,
      "top_queries": ["seo tips", "seo best practices", "seo guide"]
    }
  ],
  "query_opportunities": [
    {
      "query": "next.js seo",
      "type": "improve_ctr",
      "current_ctr": 1.2,
      "impressions": 450,
      "position": 4.5,
      "recommendation": "Low CTR for page 1 ranking. Improve title and meta description to stand out in search results."
    },
    {
      "query": "schema markup guide",
      "type": "improve_ranking",
      "position": 12,
      "impressions": 890,
      "clicks": 15,
      "recommendation": "Currently on page 2. Add more examples, internal links, and depth to reach page 1."
    },
    {
      "query": "nextjs vs remix seo",
      "type": "keyword_gap",
      "position": 8,
      "impressions": 120,
      "recommendation": "Ranking well but low search volume. Create comparison content to capture this query cluster."
    }
  ],
  "content_recommendations": [
    "Write: 'Complete Guide to Next.js SEO' targeting 'next.js seo' (450 monthly impressions, position 4.5, opportunity to improve CTR)",
    "Expand: '/blog/schema-basics' with more examples and internal links to improve ranking for 'schema markup guide' (position 12 → target top 5)",
    "Create: 'Next.js vs Remix SEO Comparison' to capture comparison queries ('nextjs vs remix seo', 'remix seo features')"
  ]
}

Opportunity Types#

The tool detects 4 types of query opportunities:

TypeCriteriaRecommended Action
improve_ctrHigh impressions (100+), low CTR (<2%)Rewrite title and meta description to improve click-through rate
improve_rankingPosition 6-20 (page 1-2), opportunity for top 5Add more depth, examples, and internal links to boost rankings
keyword_gapGood ranking but low search volume, indicates topic clusterCreate comprehensive content around related keywords
cannibalizationMultiple pages competing for the same queryConsolidate content or differentiate page targeting

Example#

What should I write next?
What queries am I ranking for?
Show me content opportunities from GSC
Which pages have low CTR?
Find keyword gaps in my content

generate_meta()#

Generate optimized meta tags (title, description, Open Graph tags) for a page. Uses your client profile for personalized recommendations.

Uses Your Business Profile

This tool automatically fetches your Business Profile to personalize recommendations based on your target audience, brand voice, and differentiators. Learn why this matters →

Usage#

generate_meta({
  domain: "example.com",
  url_path: "/blog/post",
  include_og_tags: true,
  framework: "nextjs"
})

Parameters#

  • domain (optional) - Site domain (uses SEO_CLIENT_DOMAIN if not provided)
  • url_path (required) - Page URL path (e.g., "/blog" or "/blog/post")
  • include_og_tags (optional) - Include Open Graph tags for social sharing (default: true)
  • framework (optional) - Framework format - nextjs, html, astro, or remix (default: "nextjs")

Returns#

{
  "page_analysis": {
    "current_title": "SEO Tips",
    "current_description": "Tips for SEO",
    "page_type": "blog_post",
    "word_count": 1500,
    "key_topics": ["seo", "optimization", "rankings"]
  },
  "issues": [
    "Title too short (only 8 characters, recommended: 50-60)"
  ],
  "profile_warnings": [
    "⚠️ Target audience not set - add this for better results"
  ]
}

The AI then uses this analysis to generate optimized meta tags based on your business profile.

Example#

Generate better meta tags for /blog
Fix the title too short issue on /blog/post
Create HTML meta tags for /products/widget

generate_schema()#

Auto-generate structured data (schema.org JSON-LD) for any page. Detects page type and generates appropriate schema with validation.

Usage#

generate_schema({
  domain: "example.com",
  url_path: "/blog/post",
  schema_type: "auto"
})

Parameters#

  • domain (optional) - Site domain (uses SEO_CLIENT_DOMAIN if not provided)
  • url_path (required) - Page URL path (e.g., "/blog/post")
  • schema_type (optional) - Specific schema type or "auto" to detect (default: "auto")

Supported schema types:

  • Article / BlogPosting - Blog posts, articles, news
  • Product - Product pages, e-commerce
  • Organization - About pages, company info
  • FAQPage - FAQ pages with Q&A
  • BreadcrumbList - Auto-added for navigation

Returns#

{
  "detected_page_type": "Article",
  "recommended_schemas": ["Article", "BreadcrumbList"],
  "schemas": [
    {
      "type": "Article",
      "json_ld": {
        "@context": "https://schema.org",
        "@type": "Article",
        "headline": "Your article title",
        "author": { "@type": "Person", "name": "Author Name" }
      },
      "validation": {
        "valid": false,
        "warnings": ["Replace placeholder values with actual data"]
      }
    }
  ],
  "implementation": {
    "where_to_add": "In your page component's metadata",
    "code_snippet": "// Next.js code here",
    "instructions": "1. Add code to page.tsx..."
  }
}

Example#

Generate schema for /blog/indexnow-faster-indexing
Generate Product schema for /products/widget
Add structured data to this page