OpenSEO MCP Tool Domains: Complete Guide to Available AI Agent Tools

OpenSEO exposes six MCP tool domains—Keyword, SERP, Domain, Backlink, Saved Keyword, and Rank-Tracking—that AI agents use to retrieve and manipulate SEO data via the Multi-Channel Protocol.

OpenSEO's MCP (Multi-Channel Protocol) layer provides structured access to SEO data through domain-specific tool collections. Each MCP tool domain maps to a distinct data model and implements validated, OAuth-scoped functions that both UI components and external AI clients can invoke. This guide breaks down all six available domains with their source implementations and practical usage patterns.

What Is an MCP Tool Domain in OpenSEO?

An MCP tool domain is a logical grouping of AI-callable functions that share a primary data model and business purpose. Domains enforce consistent input schemas, apply the MCP OAuth scope, and return standardized payloads consumable by agents.

According to the OpenSEO source, domains are registered in src/server/mcp/server.ts and implemented as individual TypeScript modules under src/server/mcp/tools/. The transport layer in src/server/mcp/transport.ts handles authentication, CORS, and request routing for all domain calls.

Six Available MCP Tool Domains

The following table summarizes every MCP tool domain currently available in OpenSEO, including their data models, representative tools, and implementation files:

MCP Tool Domain Primary Data Model Key Tools Source File
Keyword Keyword (search terms) search_keywords, save_keyword, list_keywords src/server/mcp/tools/saved-keywords-tools.ts
SERP SerpResult (search results) search_serp, list_serp_pages src/server/mcp/tools/search-console-tools.ts
Domain DomainOverview (traffic, keywords, pages) get_domain_overview, list_domains, add_tracked_domains src/server/mcp/tools/project-context.ts
Backlink BacklinkProfile (incoming links) get_backlinks_profile, list_backlinks, list_referring_domains src/server/mcp/tools/get-backlinks-profile.ts
Saved Keyword Keyword (persistent storage) save_keyword, delete_keyword, update_keyword src/server/mcp/tools/saved-keywords-tools.ts
Rank-Tracking RankTrackingConfig (monitoring setup) create_rank_tracker, list_rank_trackers, delete_rank_tracker src/server/mcp/tools/rank-tracking-management-tools.ts

Keyword Domain

The Keyword domain provides query and persistence operations for search terms.

Located in src/server/mcp/tools/saved-keywords-tools.ts, this domain handles both transient keyword searches and saved keyword management. The search_keywords tool performs live lookups, while save_keyword and list_keywords interact with the persistent Keyword store.

SERP Domain

The SERP domain retrieves search engine results pages for analysis.

Implemented in src/server/mcp/tools/search-console-tools.ts, this domain exposes search_serp for fetching result data and list_serp_pages for paginated access to historical SERP captures.

Domain Domain

The Domain domain (note: the domain is named "Domain," not to confuse with the protocol concept) provides project-level website analytics.

Found in src/server/mcp/tools/project-context.ts, tools like get_domain_overview return traffic estimates, keyword counts, and page metrics. list_domains and add_tracked_domains manage the portfolio of monitored sites.

The Backlink domain analyzes incoming link profiles.

The implementation in src/server/mcp/tools/get-backlinks-profile.ts offers get_backlinks_profile for aggregate metrics, plus list_backlinks and list_referring_domains for detailed link inventories.

Saved Keyword Domain

The Saved Keyword domain offers CRUD operations specifically for persistent keyword storage.

While sharing the Keyword model with the Keyword domain, this scoped domain in src/server/mcp/tools/saved-keywords-tools.ts focuses on lifecycle management: save_keyword, delete_keyword, and update_keyword.

Rank-Tracking Domain

The Rank-Tracking domain configures monitoring jobs for keyword-domain-location combinations.

From src/server/mcp/tools/rank-tracking-management-tools.ts, agents use create_rank_tracker to set up watches, list_rank_trackers to query configurations, and delete_rank_tracker to remove tracking jobs.

Calling MCP Tools: Code Examples

Every MCP tool domain follows the same request pattern: a name identifying the tool and an args object matching the tool's input schema. The fetchMcp client injects authentication automatically.

Domain Overview Lookup

import { fetchMcp } from "@/lib/mcp-client";

const response = await fetchMcp({
  name: "get_domain_overview",
  args: { domain: "example.com" },
});

console.log(response.data);

Saved Keyword Listing

const kwResponse = await fetchMcp({
  name: "list_keywords",
  args: { projectId: "proj_123" },
});

kwResponse.data.forEach((kw) => console.log(kw.keyword));
const blResponse = await fetchMcp({
  name: "get_backlinks_profile",
  args: { domain: "example.com", limit: 20 },
});

console.log(blResponse.data.backlinks);

Key Implementation Files

Understanding these source files helps when extending or debugging MCP tool domains:

File Purpose
src/server/mcp/server.ts Registers all domains and enforces the MCP OAuth scope
src/server/mcp/transport.ts Handles CORS, auth context, and request routing
src/server/mcp/tools/*.ts Individual domain implementations (one or more domains per file)
web/src/lib/feature-pages.ts UI layer that advertises available domains
docs/SELF_HOSTING_CLOUDFLARE_OPERATIONS.md Client connection guide for Cloudflare Access

Summary

  • OpenSEO provides six MCP tool domains: Keyword, SERP, Domain, Backlink, Saved Keyword, and Rank-Tracking
  • Each domain maps to a specific data model (Keyword, SerpResult, DomainOverview, BacklinkProfile, RankTrackingConfig)
  • Domain tools are implemented in src/server/mcp/tools/*.ts and registered in src/server/mcp/server.ts
  • All calls require the MCP OAuth scope and route through src/server/mcp/transport.ts
  • The request pattern is standardized: { name: "tool_name", args: { ... } }

Frequently Asked Questions

What is the difference between the Keyword and Saved Keyword MCP tool domains?

Both domains use the Keyword data model, but Keyword handles search and general operations while Saved Keyword is scoped specifically to persistent storage CRUD. They share implementation in src/server/mcp/tools/saved-keywords-tools.ts but expose different tool sets for distinct use cases.

How do I add a new domain to track in OpenSEO via MCP?

Use the Domain domain's add_tracked_domains tool, defined in src/server/mcp/tools/project-context.ts. Pass the domain string in the args payload alongside your project identifier to attach it to your monitoring portfolio.

Where is the MCP authentication scope enforced?

The MCP OAuth scope is validated in src/server/mcp/server.ts at the entry point before any domain tool executes. The transport layer in src/server/mcp/transport.ts handles token extraction and CORS headers for cross-origin MCP clients.

Can external AI agents use these MCP tool domains?

Yes. OpenSEO's MCP layer is designed for both internal UI components and external clients. Documentation in docs/SELF_HOSTING_CLOUDFLARE_OPERATIONS.md explains connecting via Cloudflare Access, and the fetchMcp pattern shown above works with any HTTP client that supplies valid OAuth credentials.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →