Skip to main content
Glama
SEODesignLab

@seodesignlab/mcp-server

by SEODesignLab

@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

get_content_brief

/api/briefs/

$2.00

Generate a POP content brief with keyword analysis, LSI terms, and content structure

keyword_research

/api/dataforseo/keywords/

$1.50

Search volume, CPC, and competition difficulty for a keyword

serp_analysis

/api/dataforseo/serp/

$2.00

Top 10 organic results with domain metrics and SERP features

backlink_profile

/api/dataforseo/backlinks/

$3.00

Referring domains, link metrics, and anchor text distribution

on_page_audit

/api/dataforseo/audit/

$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-server

Environment Variables

Variable

Default

Description

SEO_API_BASE

https://seodesignlab-paywall.seodesignlab.workers.dev

Base URL of the SEO API (CF Worker paywall)

X402_PAY_TO

(none)

Base wallet address for x402 payments. When set, payment headers are attached automatically.

X402_NETWORK

base

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.json

  • Windows: %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.

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 instructions

When X402_PAY_TO is configured, the MCP server attaches payment headers to every request. The Cloudflare Worker validates the x402 payment and either:

  1. Paid → Forwards the request to the SEO backend on Render, returns the result.

  2. Unpaid → Returns a 402 Payment Required with 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 --noEmit

Testing with MCP Inspector

npx @modelcontextprotocol/inspector node dist/index.js

Publishing

⚠️ Don't publish yet! Wait until the Cloudflare Worker paywall is deployed and live.

When ready:

npm run build
npm publish --access public

License

MIT © SEODesignLab

Available Tools

5 tools
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

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordYesTarget keyword for the content brief
languageNoLanguage code (default: 'en')
locationNoOptional location/geo targeting (e.g. 'United States', 'Florida')

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordYesTarget keyword to research
languageNoLanguage code (default: 'en')
locationNoGeo target (e.g. 'United States')

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesFull URL to audit (e.g. 'https://example.com/page')

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.)

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordYesTarget keyword for SERP analysis
languageNoLanguage code (default: 'en')
locationNoGeo target (e.g. 'United States')

TDQS

A3.8/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

  1. 5 tool updatesv1.0.4
    • First observedbacklink_profile
    • First observedget_content_brief
    • First observedkeyword_research
    • First observedon_page_audit
    • First observedserp_analysis

TDQS

A3.8/5.0
Disambiguation5/5

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.

Naming Consistency3/5

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.

Tool Count5/5

Five tools is well-scoped for an SEO-focused server. Each tool provides a distinct, meaningful capability without unnecessary redundancy or bloat.

Completeness4/5

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

ActivitySlowing
ResponsivenessSyncing

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

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Provides AI agents with professional-grade SEO capabilities including on-page analysis, technical audits, PageSpeed insights, and Ahrefs data integration.
    13
    18
    5
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Exposes 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.
    25
    78
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Provides 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.
    2
    11
    19
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables 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

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