Keyword Research Tool MCP Server
Utilizes Perplexity's AI models to generate seed keywords and perform AI-powered competitor analysis during the SEO research process.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Keyword Research Tool MCP Serverrun an SEO analysis for https://startup.io as a SaaS business"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Keyword Research Tool MCP Server
An MCP (Model Context Protocol) server that provides comprehensive SEO keyword research and analysis capabilities. This server adapts the functionality from the original boringmarketer/keyword-research-tool into a single, powerful MCP tool.
Features
š Comprehensive Analysis
Website content crawling and analysis using Firecrawl
AI-powered seed keyword generation with Perplexity
Search volume and competition data via DataForSEO
Smart keyword clustering and competitor analysis
Timestamped report generation
š Detailed Reports
Keyword clusters with commercial intent scoring
Quick wins (low competition opportunities)
High-value targets (commercial keywords)
Competitor domain analysis with AI research
Actionable SEO strategy recommendations
Dual format: JSON (technical) + Text (human-readable)
Professional text reports matching original HTML tool format
šÆ Business-Focused
Auto-detects and optimizes for business type
Commercial intent scoring for ROI focus
Industry-specific keyword suggestions
Professional report format
Related MCP server: SiteScore MCP Server
Prerequisites
You'll need API keys from these services:
Required APIs
Firecrawl (Website Scraping)
Sign up at: https://firecrawl.dev/
Format:
fc-xxxxxxxxxxCost: ~$0.01 per website scrape
Perplexity (AI Keyword Generation)
Sign up at: https://www.perplexity.ai/
Format:
pplx-xxxxxxxxxxCost: ~$0.02 per keyword generation
DataForSEO (Keyword & SERP Data)
Sign up at: https://dataforseo.com/
Uses your login credentials (username/password)
Cost: ~$0.50-1.00 per analysis
Total estimated cost per analysis: ~$0.53-1.03
Installation
Clone and install dependencies:
git clone <this-repo>
cd keyword-research-tool-mcp
npm install
npm run buildAdd to your MCP client configuration (e.g., in Claude Desktop's config):
{
"mcpServers": {
"seo-keyword-research": {
"command": "node",
"args": ["path/to/keyword-research-tool-mcp/dist/index.js"],
"env": {
"FIRECRAWL_API_KEY": "fc-xxxxxxxxxxxxxxxxxxxxxxxxxx",
"PERPLEXITY_API_KEY": "pplx-xxxxxxxxxxxxxxxxxxxxxxxxxx",
"DATAFORSEO_USERNAME": "your-username",
"DATAFORSEO_PASSWORD": "your-password"
}
}
}
}If you are running a tool like Cursor or Windsurf, you may need to remind it to search for API keys in the above JSON file.
3. Build the Server
npm run buildUsage
The server provides one comprehensive tool:
analyze_website
Performs complete SEO keyword research and analysis for any website.
Parameters:
website_url(string): Website URL to analyze (e.g., "https://example.com")business_type(enum): Business type for targeted analysisOptions: "E-commerce", "SaaS", "Service Business", "Blog/Content", "Education", "Other"
firecrawl_api_key(string): Firecrawl API key (format: fc-xxxxxxxxxx)perplexity_api_key(string): Perplexity API key (format: pplx-xxxxxxxxxx)dataforseo_username(string): DataForSEO username (your email)dataforseo_password(string): DataForSEO password
Example Usage:
analyze_website({
"website_url": "https://example.com",
"business_type": "SaaS",
"firecrawl_api_key": "fc-your-key-here",
"perplexity_api_key": "pplx-your-key-here",
"dataforseo_username": "your@email.com",
"dataforseo_password": "your_password"
})Output
The analysis generates:
Console Output
Analysis Summary: Total keywords, search volume, traffic potential
Quick Wins: Low competition opportunities for immediate targeting
High-Value Targets: Keywords with highest commercial potential
Top Keyword Clusters: Organized keyword groups with metrics
Main Competitors: Competing domains identified
Report Location: Path to detailed JSON report
Saved Reports
Timestamped reports are automatically saved to reports/ directory in two formats:
JSON Report (<company domain>_YYYY-MM-DD_HH-MM-SS.json):
Complete analysis data for technical use
All keyword metrics and search volumes
Competitor domains and SERP analysis
Commercial intent scores
Clustering analysis
Raw API response data
Text Report (<company domain>_YYYY-MM-DD_HH-MM-SS_formatted.txt):
Comprehensive formatted report matching the original HTML tool
Executive summary with key metrics
Quick wins section (low competition opportunities)
High-value targets (commercial keywords)
Detailed keyword clusters with complete breakdowns
Competitor analysis with AI and SERP sources
Strategic action plan (immediate, medium-term, long-term)
Raw analysis data section
Professional formatting with ASCII art borders
Analysis Process
The tool follows the same comprehensive process as the original app.js:
Website Scraping: Extract content using Firecrawl API
Content Cleaning: Filter technical terms, focus on business-relevant content
Keyword Generation: AI-powered seed keyword creation with Perplexity
Keyword Enhancement: Get search volumes, competition data via DataForSEO
SERP Analysis: Analyze top-ranking pages and competitor domains
Clustering: Group related keywords into themed clusters
Scoring: Calculate commercial intent and difficulty scores
Report Generation: Create comprehensive analysis report
Code Structure
The MCP server is built by adapting the original app.js functions:
src/index.ts
āāā KeywordResearchTool class
ā āāā scrapeWebsite() # Website content extraction
ā āāā cleanWebsiteContent() # Content filtering and cleaning
ā āāā generateKeywords() # AI keyword generation
ā āāā filterTechnicalKeywords() # Remove irrelevant terms
ā āāā performAnalysis() # Main orchestration function
āāā MCP Server setup
ā āāā Tool definition (analyze_website)
ā āāā Request handlers
ā āāā Response formatting
āāā Report generation and file savingKey Adaptations from Original
Single Tool: Condensed the multi-step web UI into one comprehensive MCP tool
Simplified Flow: Removed UI progress indicators, kept core analysis logic
Enhanced Output: Structured markdown output plus detailed JSON reports
Type Safety: Full TypeScript implementation with proper interfaces
Error Handling: Comprehensive error messages and validation
Report Persistence: Automatic timestamped report saving
Development
Build the project:
npm run buildRun in development mode:
npm run devStart the server:
npm startTroubleshooting
Common Issues
"Analysis failed" errors:
Verify all API keys are correct and active
Check API credit balances
Ensure website URL is accessible
Test individual API endpoints
"Failed to scrape website":
Check if website blocks crawlers/bots
Try with different website URL
Verify Firecrawl API key format and permissions
DataForSEO errors:
Confirm username/password are correct
Check account has sufficient credits
Some keywords may have limited data available
API Documentation
Firecrawl: https://docs.firecrawl.dev/
Perplexity: https://docs.perplexity.ai/
DataForSEO: https://docs.dataforseo.com/
License
MIT License - Feel free to use and modify for your SEO research needs.
Built for marketers and SEO professionals who want comprehensive keyword research integrated into their AI workflows.
Available Tools
1 toolanalyze_websiteC
Perform comprehensive SEO keyword research and analysis for a website. Generates detailed reports with keyword clusters, competitor analysis, and actionable insights.
| Name | Required | Description | Default |
|---|---|---|---|
| website_url | Yes | The website URL to analyze (e.g., https://example.com) | |
| business_type | Yes | The type of business for targeted keyword analysis |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions generating 'detailed reports' but doesn't specify format, size, or delivery method. It lacks information on permissions, rate limits, execution time, or error handling, leaving key behavioral traits unclear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose ('Perform comprehensive SEO keyword research and analysis for a website') and follows with specific outputs. Every word earns its place with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of SEO analysis and lack of annotations or output schema, the description is incomplete. It doesn't address what the reports contain in detail, how insights are generated, or any behavioral aspects like data sources or processing time. For a tool with no structured support, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents both parameters. The description adds no additional meaning beyond what's in the schema, such as explaining how 'business_type' influences analysis or providing examples beyond the enum. Baseline 3 is appropriate when the schema handles parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('perform comprehensive SEO keyword research and analysis') and resources ('for a website'), and outlines the outputs ('detailed reports with keyword clusters, competitor analysis, and actionable insights'). It lacks differentiation from siblings, but since there are no sibling tools, this doesn't reduce clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, prerequisites, or limitations. It states what the tool does but offers no context for its application, such as when SEO analysis is appropriate or what scenarios it's designed for.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
1 tool update
- First observed
analyze_website
TDQS
With only one tool, there is no possibility of ambiguity or overlap between tools, as there are no other tools to confuse it with. The tool's purpose is clearly defined and distinct by default in this single-tool context.
The single tool name 'analyze_website' follows a clear verb_noun pattern, and since there are no other tools, consistency is inherently perfect with no deviations or mixed conventions to evaluate.
A single tool for a 'Keyword Research Tool MCP Server' feels too thin for the apparent scope, as keyword research typically involves multiple operations like trend analysis, volume checks, or competitor comparisons. This limited set may hinder agent workflows by lacking necessary breadth.
The tool surface is severely incomplete for a keyword research domain; it only offers website analysis, missing obvious gaps such as keyword suggestion, search volume queries, trend tracking, or competitor keyword analysis, which are core to comprehensive keyword research.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
AI-powered SEO and marketing: keyword research, SERP analysis, and content optimization tools.
- VibeSEOOAuthdev.vibeseo
SEO research, audits, backlinks, GSC, and content workflow tools for AI agents.
AI visibility reports, competitor insights, readiness audits, and GEO content workflows.
Full-cycle SEO automation for AI agents: technical audits, SEO articles, machine-readable pricing.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides SEO automation with tools for keyword research, SERP analysis, and competitor analysis through Google Ads API integration, enabling AI assistants to access these capabilities via MCP.51-
- FlicenseNot gradedqualityNot gradedmaintenanceProvides comprehensive website auditing for SEO, performance, accessibility, and security using AI-powered analysis. It enables users to generate detailed audit reports and actionable improvement suggestions for any given URL.-
- AlicenseAqualityDmaintenanceProvides AI agents with professional-grade SEO capabilities including on-page analysis, technical audits, PageSpeed insights, and Ahrefs data integration.13185MIT
- AlicenseNot gradedqualityCmaintenanceEnables querying Google Search Console and Google Analytics 4 through natural language, with tools for SEO analysis like anomaly detection, cannibalization detection, and opportunity scoring.291MIT
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/rpark/keyword-research-tool-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server