@seodesignlab/mcp-server
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., "@@seodesignlab/mcp-serverWhat's the search volume for 'organic coffee beans'?"
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.
@seodesignlab/mcp-server
MCP (Model Context Protocol) server for SEODesignLab's x402-protected SEO endpoints.
Expose professional SEO tools — content briefs, keyword research, SERP analysis, backlink profiles, and on-page audits — to any MCP-compatible AI agent (Claude Desktop, Cursor, VS Code Copilot, etc.) with automatic x402 micropayment handling on Base.
Tools
Tool | Endpoint | Price | Description |
|
| $2.00 | Generate a POP content brief with keyword analysis, LSI terms, and content structure |
|
| $1.50 | Search volume, CPC, and competition difficulty for a keyword |
|
| $2.00 | Top 10 organic results with domain metrics and SERP features |
|
| $3.00 | Referring domains, link metrics, and anchor text distribution |
|
| $2.50 | Full on-page SEO audit — meta, headings, images, links, speed |
All prices are in USDC on Base and settled via the x402 protocol.
Related MCP server: JMT x402 MCP Server
Quick Start
Install
npm install @seodesignlab/mcp-server
# or
npx @seodesignlab/mcp-serverEnvironment Variables
Variable | Default | Description |
|
| Base URL of the SEO API (CF Worker paywall) |
| (none) | Base wallet address for x402 payments. When set, payment headers are attached automatically. |
|
| Network for x402 settlement |
Configuration
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"seodesignlab-seo": {
"command": "npx",
"args": ["-y", "@seodesignlab/mcp-server"],
"env": {
"SEO_API_BASE": "https://seodesignlab-paywall.seodesignlab.workers.dev",
"X402_PAY_TO": "0xc78e3D02622061961156a18E10bbbF07d8e94529",
"X402_NETWORK": "base"
}
}
}
}Config file locations:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
Cursor
Add to your Cursor MCP settings (.cursor/mcp.json in your project root or global settings):
{
"mcpServers": {
"seodesignlab-seo": {
"command": "npx",
"args": ["-y", "@seodesignlab/mcp-server"],
"env": {
"SEO_API_BASE": "https://seodesignlab-paywall.seodesignlab.workers.dev",
"X402_PAY_TO": "0xc78e3D02622061961156a18E10bbbF07d8e94529",
"X402_NETWORK": "base"
}
}
}
}VS Code (Copilot)
Add to your VS Code MCP settings (.vscode/mcp.json):
{
"servers": {
"seodesignlab-seo": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@seodesignlab/mcp-server"],
"env": {
"SEO_API_BASE": "https://seodesignlab-paywall.seodesignlab.workers.dev",
"X402_PAY_TO": "0xc78e3D02622061961156a18E10bbbF07d8e94529",
"X402_NETWORK": "base"
}
}
}
}Usage Examples
Once configured, the SEO tools appear automatically in your AI agent. Just ask:
Content Brief
Generate a content brief for "HVAC repair Brooklyn"→ Calls get_content_brief → Returns POP brief with LSI terms, word count targets, heading structure.
Keyword Research
What's the search volume and CPC for "roofing contractor Tampa"?→ Calls keyword_research → Returns monthly volume, CPC, competition score.
SERP Analysis
Show me the top 10 results for "dentist near me" in Rockville Centre→ Calls serp_analysis → Returns top 10 results with domain authority, titles, descriptions.
Backlink Profile
Analyze the backlink profile of seodesignlab.com→ Calls backlink_profile → Returns referring domains, link counts, domain rating.
On-Page Audit
Audit https://drbrattrvc.com/services/teeth-whitening/→ Calls on_page_audit → Returns meta analysis, heading structure, image coverage, technical issues.
x402 Payment Flow
AI Agent (Claude, Cursor, etc.)
│
▼
MCP Server (this package)
│
▼ Adds X-Payment-* headers
Cloudflare Worker (x402 paywall)
│
├── Payment valid? ──► YES ──► Proxy to SEO API ──► Return data
│
└── No payment? ──► 402 + x402 settlement instructionsWhen X402_PAY_TO is configured, the MCP server attaches payment headers to every request. The Cloudflare Worker validates the x402 payment and either:
Paid → Forwards the request to the SEO backend on Render, returns the result.
Unpaid → Returns a
402 Payment Requiredwith the price, wallet address, and settlement instructions.
x402 Client Integration
For production use, pair this MCP server with an x402-compatible client that can automatically settle micropayments. The server is designed to be payment-agnostic — it works with or without an x402 client.
API Endpoints
The MCP server proxies to these backend endpoints at SEO_API_BASE:
POST /api/briefs/
Request:
{
"keyword": "HVAC repair Brooklyn",
"location": "United States",
"language": "en"
}Response: Full POP content brief with keyword analysis, LSI terms, recommended structure.
POST /api/dataforseo/keywords/
Request:
{
"keyword": "roofing contractor Tampa",
"location": "United States",
"language": "en"
}Response: Search volume, CPC, competition, related keywords.
POST /api/dataforseo/serp/
Request:
{
"keyword": "dentist near me",
"location": "United States",
"language": "en"
}Response: Top 10 organic results with titles, URLs, descriptions, and domain metrics.
POST /api/dataforseo/backlinks/
Request:
{
"domain": "seodesignlab.com"
}Response: Referring domains, backlinks count, domain rating, anchor distribution.
POST /api/dataforseo/audit/
Request:
{
"url": "https://drbrattrvc.com/services/teeth-whitening/"
}Response: Meta title/description analysis, heading structure, image alt coverage, link counts, page speed, content quality, technical issues.
Development
# Install dependencies
npm install
# Build
npm run build
# Run locally (stdio transport)
npm run dev
# Type check
npx tsc --noEmitTesting with MCP Inspector
npx @modelcontextprotocol/inspector node dist/index.jsPublishing
⚠️ Don't publish yet! Wait until the Cloudflare Worker paywall is deployed and live.
When ready:
npm run build
npm publish --access publicLicense
MIT © SEODesignLab
Available Tools
5 toolsbacklink_profileA
Get the backlink profile for a domain — referring domains, link metrics, and anchor text analysis.
Price: $3.00 (x402 on Base)
Returns:
Referring domains count
Backlinks count
Domain rating / authority
Top referring domains with link metrics
Anchor text distribution
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain to analyze (e.g. 'example.com') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. The verb 'Get' implies a read-only operation, and the price is disclosed. However, there is no explicit statement that the tool does not modify anything, nor any mention of rate limits or authentication requirements. For a simple lookup tool, the read-only nature is reasonably implied, but not fully explicit.
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 well-structured: a concise summary up front, followed by pricing and a bulleted list of returns. It is not overly verbose, and the key purpose is front-loaded. The only minor detraction is the pricing line, which is not directly about tool behavior but still useful.
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?
For a tool with a single parameter and no output schema, the description is fairly complete: it lists the specific metrics returned and mentions pricing. It does not explain the exact format of the 'domain' input beyond the schema example, but that is adequate. The tool is simple enough that no further context is required.
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?
The schema describes the single 'domain' parameter with an example, and the description repeats it without adding new meaning. Schema coverage is 100%, so the baseline of 3 is appropriate; the description does not need to compensate for any gaps.
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 states a specific verb ('Get') and resource ('backlink profile'), and clearly distinguishes its focus (referring domains, link metrics, anchor text) from sibling tools like on_page_audit and serp_analysis. It is immediately clear what this tool does and how it differs.
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. It does not mention any specific conditions, prerequisites, or exclusions. The sibling tools are not referenced, leaving the agent to infer appropriate usage solely from the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_content_briefA
Generate a POP (PageOptimizer Pro) content brief for a target keyword.
Price: $2.00 (x402 on Base)
Returns a detailed content brief including:
Target keyword analysis
Recommended word count and headings
LSI terms and semantic keywords
Title and meta description suggestions
Content structure guidelines
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | Target keyword for the content brief | |
| language | No | Language code (default: 'en') | |
| location | No | Optional location/geo targeting (e.g. 'United States', 'Florida') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral disclosure. It does disclose the price, the fact that it returns a detailed brief, and provides a bulleted list of output contents. However, it does not mention whether this is a paid/external API call with side effects, potential rate limits, or any authorization requirements. The output detail is helpful but incomplete for a paid tool.
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 compact and front-loaded: it states the action and output type immediately, then gives a clear bulleted list of what the brief includes. The price line is useful context, though slightly detracts from the core flow. Overall every sentence earns its place despite minor formatting overhead.
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 tool's moderate complexity and no output schema, the description compensates well by enumerating the key sections of the returned brief. It omits error/edge-case behavior and does not mention language/location effects, but the essential information for calling the tool correctly (target keyword, output expectation, price) is present.
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 already fully documents all three parameters. The description adds no meaning beyond what the schema provides, aside from reinforcing that 'keyword' is the target. Baseline 3 is appropriate when the schema carries the parameter documentation burden.
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 uses a specific verb ('Generate') and names a distinct resource ('POP content brief'), with the target keyword as the object. This clearly distinguishes it from siblings like backlink_profile or on_page_audit, none of which produce content briefs. It is unambiguous what this tool does.
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 implies usage for content brief creation but does not explicitly state when to prefer this over keyword_research or serp_analysis, nor does it mention any exclusions. The context is clear enough that an agent can infer the primary use case, but no direct comparative guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
keyword_researchA
Research keyword metrics including search volume, CPC, and competition difficulty.
Price: $1.50 (x402 on Base)
Returns:
Monthly search volume
Cost per click (CPC)
Competition level / difficulty
Related keyword suggestions
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | Target keyword to research | |
| language | No | Language code (default: 'en') | |
| location | No | Geo target (e.g. 'United States') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the tool costs $1.50 (x402 on Base), which is a behavioral trait beyond schema. However, it does not state whether it is a read-only operation, any rate limits, or potential errors. The cost is a useful addition, but other behavioral aspects are omitted.
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 compact and well-structured: a single opening sentence stating the purpose, a price line, and a bulleted list of return values. It front-loads the core function and avoids any filler, making it easy to scan.
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?
For a tool with no output schema, the description adequately lists the return items. The parameter set is simple and fully described by the schema. The inclusion of pricing adds valuable context. Minor gaps, such as the format or type of the returned data, are acceptable given the tool's simplicity.
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 coverage is 100%, and all parameters have descriptions. The description adds no additional meaning beyond what the schema already provides; it merely repeats that 'keyword' is the target. For a tool with full schema coverage, this baseline is appropriate.
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 explicitly states the tool's function ('Research keyword metrics') and lists concrete outputs (search volume, CPC, competition, related suggestions). This clearly distinguishes it from sibling tools like backlink_profile or on_page_audit, which have different focuses.
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?
Usage context is implied by the purpose, but the description provides no explicit guidance on when to choose this tool over alternatives. It does not mention any conditions, exclusions, or sibling comparisons. The agent must infer that keyword metrics are needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
on_page_auditA
Run a comprehensive on-page SEO audit for a URL.
Price: $2.50 (x402 on Base)
Returns:
Meta title and description analysis
Heading structure (H1-H6)
Image alt text coverage
Internal/external link counts
Page speed insights
Content quality metrics
Technical SEO issues
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Full URL to audit (e.g. 'https://example.com/page') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral burden, and it does disclose the $2.50 price and the outputs. Yet it does not clarify what 'x402 on Base' means, whether the URL is fetched live, or any limitations or error behavior, leaving meaningful behavioral gaps.
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 purpose is front-loaded in one sentence and the returns are formatted as scannable bullets with no filler. A small deduction is taken for the cryptic 'x402 on Base' phrase, which is not explained and may confuse an agent.
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?
For a one-parameter tool with no output schema, the description supplies the essential context: what the audit checks, what it returns, and what it costs. It does not detail response formatting or error behavior, but those are minor gaps given the return list.
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 coverage is 100%, and the single url parameter is already described in the input schema. The description adds no additional parameter-level semantics, so the baseline of 3 applies.
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 opens with a specific verb and resource: 'Run a comprehensive on-page SEO audit for a URL.' This unambiguously states the tool's function and, through the on-page framing, separates it from sibling tools such as keyword_research or serp_analysis.
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 gives clear context that this tool is for auditing a URL's on-page SEO elements, and the returns list signals the kinds of issues it addresses. However, it never explicitly names alternatives or states when not to use this tool, so it falls just short of fully explicit routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
serp_analysisA
Analyze the top 10 SERP results for a keyword with metrics.
Price: $2.00 (x402 on Base)
Returns:
Top 10 organic results with URLs
Domain authority / rating for each
Title and description snippets
SERP feature detection (featured snippets, PAA, etc.)
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | Target keyword for SERP analysis | |
| language | No | Language code (default: 'en') | |
| location | No | Geo target (e.g. 'United States') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden, and it does disclose the key behavioral facts: it returns exactly ten organic results with authority metrics, snippets, and SERP feature detection, and it costs a listed price. It does not mention rate limits or authentication, but for a read-style analysis tool the return contract is otherwise explicit.
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 compact and front-loaded with the core action, followed by cost and a bulleted return list. Every sentence earns its place, and the structure makes the return contract easy to scan. The only mildly cryptic element is 'x402 on Base,' but it does not hurt readability.
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?
For a low-complexity tool with one required parameter, the description provides enough to invoke it: the required keyword, cost, and a detailed list of return values. It could add explicit notes on how language and location affect results or describe the exact response format, but with no output schema the Returns list largely covers an agent's needs.
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%, since keyword, language, and location each have explicit descriptions in the input schema. The tool description itself adds no extra meaning about how language or location affect the analysis, so it stays at the baseline of 3.
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 opening line names a specific action ('Analyze the top 10 SERP results') and a concrete resource ('for a keyword with metrics'), so an agent can immediately identify this as the SERP-analysis tool rather than a generic keyword tool. The bulleted return list further pinpoints the tool's scope, distinguishing it from siblings like keyword_research and backlink_profile.
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 never says when to choose serp_analysis over keyword_research, on_page_audit, or backlink_profile. There is no 'use when...' or 'instead of...' guidance; the closest is the implication in the first line, which is not an explicit routing rule.
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.
5 tool updates
v1.0.4- First observed
backlink_profile - First observed
get_content_brief - First observed
keyword_research - First observed
on_page_audit - First observed
serp_analysis
TDQS
Each tool targets a clearly distinct SEO function: backlinks, on-page audit, content briefs, keyword metrics, and SERP features. There is no meaningful overlap between them, so an agent can reliably select the right one.
All names use lowercase snake_case, but the pattern is mixed: most are noun_phrase names (backlink_profile, keyword_research, serp_analysis) while one uses get_ (get_content_brief) and another is an adjective_noun (on_page_audit). The naming is readable but not uniformly verb-first.
Five tools is well-scoped for an SEO-focused server. Each tool provides a distinct, meaningful capability without unnecessary redundancy or bloat.
The set covers the core SEO workflow: keyword research, content brief generation, SERP analysis, on-page auditing, and backlink analysis. Minor gaps like rank tracking or competitor analysis are possible extensions, but the main use cases are covered.
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
5 pay-per-call SEO tools over MCP. Free discovery, tool calls settle in USDC on Base via x402.
- VibeSEOOAuthdev.vibeseo
SEO research, audits, backlinks, GSC, and content workflow tools for AI agents.
Production-grade MCP gateway delivering 8 real-time AI tools with instant x402 micropayments settled in USDC on Base Mainnet or SPL-USDC on Solana. Features Basescan contract auditing, wallet analytics, headless browser scraping, and pre-scraped oracle data feeds.
Production-grade MCP gateway delivering 8 real-time AI tools with instant x402 micropayments settled in USDC on Base Mainnet or SPL-USDC on Solana. Features Basescan contract auditing, wallet analytics, headless browser scraping, and pre-scraped oracle data feeds.
Related MCP Servers
- AlicenseAqualityDmaintenanceProvides AI agents with professional-grade SEO capabilities including on-page analysis, technical audits, PageSpeed insights, and Ahrefs data integration.13185MIT
- AlicenseBqualityCmaintenanceExposes 25 paid API endpoints as MCP tools for AI agents, with payments in USDC on Base mainnet via the x402 protocol, enabling tasks like web search, company intelligence, and crypto research.2578MIT
- AlicenseAqualityBmaintenanceProvides AI agents with typed SEO tools for domain authority, keyword opportunities, competitor gap analysis, content briefs, site audits, and internal links, backed by Common Crawl graph data and optional x402 payment settlement.21119MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to run full on-page SEO audits for any URL or up to 10 URLs at once, returning 0-100 scores, meta tag and heading checks, schema/image/link analysis, load time, and prioritized fixes via pay-per-call x402 micropayments.MIT
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/SEODesignLab/seo-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server