Skip to main content
Glama
xiaoflow mcp server

xiaoflow mcp server

by xiaoflow-app

XiaoFlow MCP Server (xiaoflow-mcp-server)

xiaoflow-mcp MCP server xiaoflow-mcp MCP server

Official Model Context Protocol (MCP) server for XiaoFlow AI SEO and keyword intelligence tools.

Connect Large Language Models (LLMs) such as Claude Desktop, Cursor, Windsurf, and VS Code directly to XiaoFlow's search engine optimization, keyword discovery, and domain analytics.

Remote endpoint: https://mcp.xiaoflow.com/mcp

Transport: MCP Streamable HTTP with OAuth 2.1 / PKCE, plus stdio through the npm package

Safety: Read-only research tools, except asynchronous expansion task creation; no destructive tools

Official listings


Related MCP server: keyword-steroids-70

✨ Features & Capabilities

  • 🔍 Keyword Discovery: Generate high-intent search keywords and SEO ideas from keyword, URL, or domain seeds.

  • 📊 Domain Analytics: Analyze domain-level search performance, organic traffic metrics, and keyword distributions.

  • 📈 Search Trend Analysis: Compare keyword demand, competition, CPC, and historical trends.

  • 🔒 Flexible Authentication: Supports API Key authentication via query parameters (?key=), Bearer tokens, environment variables, or Web OAuth login.


⚡ Quick Start

1. Run via npx (stdio)

Run the server directly using npx:

npx -y xiaoflow-mcp-server

Pass your XiaoFlow API key via environment variable:

XIAOFLOW_API_KEY="YOUR_API_KEY" npx -y xiaoflow-mcp-server

Use the canonical remote endpoint in clients that support remote MCP. The client discovers XiaoFlow OAuth automatically and opens the browser for login and consent:

https://mcp.xiaoflow.com/mcp

Legacy clients can still use https://mcp.xiaoflow.com/sse?key=YOUR_API_KEY.


💻 Client Integration Guides

Cursor Setup

Add XiaoFlow MCP to Cursor:

  • Name: xiaoflow

  • Type: http

  • URL: https://mcp.xiaoflow.com/mcp

Or click Add to Cursor directly on the XiaoFlow MCP Portal.


Claude Desktop Setup

Add the following entry to your claude_desktop_config.json:

{
  "mcpServers": {
    "xiaoflow": {
      "command": "npx",
      "args": ["-y", "xiaoflow-mcp-server"],
      "env": {
        "XIAOFLOW_API_KEY": "YOUR_API_KEY"
      }
    }
  }
}

Windsurf, VS Code, and other remote clients

Use native HTTP configuration where available:

{
  "mcpServers": {
    "xiaoflow": {
      "type": "http",
      "url": "https://mcp.xiaoflow.com/mcp"
    }
  }
}

For stdio-only clients, bridge to the OAuth-enabled remote endpoint:

{
  "mcpServers": {
    "xiaoflow": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.xiaoflow.com/mcp"]
    }
  }
}

🛠️ Available MCP Tools

MCP Tool

Description

Key Input Parameters

get_keyword_metrics

Exact metrics and monthly history for one keyword

keyword, history_months (1–48), location, language

get_related_keywords

Related keywords with metrics/history and unlimited pagination

seed, history_months, page, page_size (max 1,000)

bulk_keyword_metrics

Complete exact metrics, automatically batched in groups of 1,000

keywords, with_history (default false), history_months, location, language

start_keyword_expansion

Start round-based expansion from one or more seeds

seeds, max_iterations, include/exclude rules

get_keyword_expansion_status

Poll an expansion task and retrieve results

task_id, include_results

analyze_url

Analyze page or domain search visibility

url, site, brand, location, language

get_domain_stats

Overview search metrics & traffic trends for a domain

domain, brand (required: 0=domain, 1=brand)

list_domain_keywords

Retrieve paginated list of domain keywords

domain, brand, page, page_size

get_keyword_details

Retrieve keyword metrics for a 12, 24, or 48 month window

slug, time_range, location, language

Every tool publishes:

  • descriptions for every input parameter;

  • a named JSON output schema, including success and error fields;

  • MCP safety annotations (readOnlyHint, destructiveHint, idempotentHint, and openWorldHint);

  • a human-readable tool title for MCP clients and directories.

Example prompts

Get US English metrics and 24 months of history for "AI SEO tools".
Find every related keyword for "standing desk", 200 per page, and continue
until has_more is false. Return search volume, CPC, competition, intent, and history.
Compare these 1,000 keywords over 48 months and rank them by search volume growth.
Expand "home office" for four rounds, keep terms with at least 100 monthly
searches, and poll the task until it is complete.

🔑 Authentication

Obtain your API key from the XiaoFlow MCP Dashboard.

Supported authentication methods:

  1. Web Login OAuth (recommended): connect to https://mcp.xiaoflow.com/mcp; compatible clients discover OAuth, PKCE, and dynamic client registration automatically.

  2. Environment Variable: set XIAOFLOW_API_KEY when running via npx.

  3. Authorization Header: send Authorization: Bearer YOUR_API_KEY.

  4. Legacy Query Parameter: append ?key=YOUR_API_KEY to the legacy SSE URL.

🐳 Docker / Glama

The repository includes a production multi-stage Dockerfile for directory build verification and stdio deployment:

docker build -t xiaoflow-mcp .
docker run --rm -i \
  -e XIAOFLOW_API_KEY="YOUR_API_KEY" \
  xiaoflow-mcp

The image runs as the unprivileged Node user, excludes local secrets and build state, and writes MCP protocol messages only to stdout.

🔐 Security and data handling

  • OAuth login occurs only on www.xiaoflow.com; MCP clients never receive your password.

  • API keys and OAuth tokens are sent only to the configured XiaoFlow API endpoint.

  • The server does not scan or upload project files.

  • Tool calls query external XiaoFlow/Google Ads-backed data and may consume account credits.

  • No tool deletes or modifies keyword or domain data.

Report vulnerabilities privately through the repository owner or the XiaoFlow contact page. Do not include tokens or customer data in public issues.

✅ Quality and compatibility

  • MCP protocol: Streamable HTTP and stdio

  • Authentication: OAuth 2.1 with PKCE, Bearer API key

  • Tool schemas: parameter descriptions, structured output schemas, annotations

  • Optional discovery methods: resources and prompts return valid empty lists

  • Runtime: Node.js 18+ (node:20-alpine in Docker)

  • Continuous endpoint: https://mcp.xiaoflow.com/mcp


📄 License

MIT © XiaoFlow

Complete bulk results and files

bulk_keyword_metrics return all queried rows (up to 1,000 per request), rather than a 12-row report preview. Hosted MCP responses include CSV and JSON resource links plus structuredContent.exports. Download links are unguessable, valid for 24 hours, and return an attachment without requiring a separate API query. Historical trends are disabled by default; set with_history: true to request them. CSV contains the requested keyword metrics; JSON preserves the entire original result. Save the download itself to keep every row, regardless of the chat client's display limits.

The stdio server returns the full structured result and embedded text/csv and application/json resources, which clients can save locally. A remote MCP server cannot choose a path on your computer; the client saves the downloaded/resource file at your chosen location.

Regression checks: npm run build && node --test tests/keyword-export.test.mjs. To exercise hosted export storage and downloads locally, run Wrangler on port 8799 with XIAOFLOW_API_URL=http://127.0.0.1:8899, then node tests/worker-export.integration.mjs.

MCP results are now raw JSON, without chart images or dashboard widgets. Bulk metrics have no MCP total-keyword ceiling: requests are split into API batches, and discovery/domain keyword listings follow every reported result page. Exports preserve all rows, monthly histories and additional metric fields. The previous 8 MB export cap is removed. Upstream data availability, account credits and platform transport/storage limits still apply; these are not silently bypassed.

Available Tools

11 tools
analyze_urlAnalyze URL or SiteA
Read-onlyIdempotent

Domain/site keyword discovery via /api/v1/websites (requires brand=0|1). Use site for full domain mapping; use url for a single page via /api/v1/keywords.

Inputs: url, site, brand, language, +1 more. Returns: Domain visibility metrics or keyword results.

bulk_keyword_lookupBulk Keyword Lookup (Legacy)A
Read-onlyIdempotent

Bulk volume/CPC for up to 1,000 keywords.

Inputs: keywords (required), language, location. Returns: Successful keyword result page.

bulk_keyword_metricsGet Bulk Keyword MetricsA
Read-onlyIdempotent

Get exact-match base metrics and 1-48 months of history for up to 1,000 keywords.

Inputs: keywords (required), language, location, history_months. Returns: Successful keyword result page.

discover_keywordsDiscover Keywords (Legacy)A
Read-onlyIdempotent

Legacy alias for related keyword discovery. Returns paginated keyword metrics and monthly history.

Inputs: url, site, keyword, language, +1 more. Returns: Successful keyword result page.

get_domain_statsGet Domain StatisticsA
Read-onlyIdempotent

Website overview metrics and traffic history. GET /api/v1/websites/:domain?brand=0|1

Inputs: brand (required), domain (required), language, location. Returns: Domain visibility metrics or keyword results.

get_keyword_detailsGet Keyword DetailsA
Read-onlyIdempotent

Historical volume for a keyword slug.

Inputs: slug (required), language, location, time_range. Returns: Successful keyword result page.

get_keyword_expansion_statusGet Keyword Expansion StatusA
Read-onlyIdempotent

Poll a round-based expansion task and optionally return its results.

Inputs: task_id (required), include_results. Returns: Current state and optional results for an expansion task.

get_keyword_metricsGet Keyword MetricsA
Read-onlyIdempotent

Get exact-match base metrics and 1-48 months of monthly history for one keyword.

Inputs: keyword (required), language, location, history_months. Returns: Successful keyword result page.

list_domain_keywordsList Domain KeywordsA
Read-onlyIdempotent

Paginated keyword list for a domain. GET /api/v1/websites/:domain/keywords?brand=0|1

Inputs: brand (required), domain (required), page, language, +2 more. Returns: Domain visibility metrics or keyword results.

start_keyword_expansionStart Keyword ExpansionB

Start an asynchronous breadth-first/round-based keyword expansion.

Inputs: seeds (required), language_id, location_id, exclude_rules, +3 more. Returns: Asynchronous keyword-expansion task creation result.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.6/5.0

    Scored across 11 tools

    Disambiguation4/5

    Tools are mostly distinct, but discover_keywords is a legacy alias for related keyword discovery, overlapping with get_related_keywords. Also, bulk_keyword_metrics and get_keyword_metrics serve similar purposes at different scales, causing slight ambiguity.

    Naming Consistency3/5

    Naming follows snake_case with verb_noun mostly, but analyze_url deviates from the pattern of having 'keyword' in the name. Additionally, there is inconsistency between 'bulk' and 'get' prefixes for similar operations.

    Tool Count5/5

    11 tools is well-scoped for a keyword research server, covering discovery, metrics, bulk operations, expansion, and domain analysis without being overwhelming.

    Completeness4/5

    The tool set covers major keyword research workflows: discovery, metrics, bulk operations, expansion, and domain analysis. Minor gaps exist, such as keyword trend data or comparison tools, but core needs are addressed.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      C
      maintenance
      Provides search volume and keyword difficulty data via DataForSEO Labs, enabling AI agents to perform SEO keyword research through natural language queries.
      295 npm
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables keyword research across 70 languages without API keys, providing Google Suggest autocomplete, People Also Ask, related searches, Jaccard clustering, and language-specific intent tags via MCP tools.
      MIT