# What MCP Tools Are Available in OpenSEO for AI Agents: Complete Reference Guide

> Discover the 15 MCP tools in OpenSEO for AI agents. Automate SEO workflows like keyword research, SERP analysis, and technical audits with this comprehensive reference guide.

- Repository: [Every App/open-seo](https://github.com/every-app/open-seo)
- Tags: api-reference
- Published: 2026-08-05

---

**OpenSEO provides 15 MCP (Machine-Controlled Platform) tools that AI agents can invoke via JSON-RPC to automate SEO workflows including project management, keyword research, SERP analysis, backlink profiling, and technical site audits.**

OpenSEO is an open-source SEO platform that exposes its functionality through a standardized MCP interface located in `src/server/mcp/`. These **MCP tools in OpenSEO for AI agents** allow automated systems to perform complex SEO operations programmatically, with each tool implemented as a TypeScript module under `src/server/mcp/tools/` and validated through Zod schemas defined in [`src/server/mcp/output-schemas.ts`](https://github.com/every-app/open-seo/blob/main/src/server/mcp/output-schemas.ts).

## MCP Tool Categories

The available MCP tools in OpenSEO span seven functional categories, enabling comprehensive SEO automation for AI agents.

### Project Management Tools

Manage SEO projects and authentication context through three core tools located in `src/server/mcp/tools/`:

- **[`create-project.ts`](https://github.com/every-app/open-seo/blob/main/create-project.ts)** – Creates a new SEO project with specified parameters.
- **[`list-projects.ts`](https://github.com/every-app/open-seo/blob/main/list-projects.ts)** – Returns all projects accessible to the authenticated user.
- **[`whoami.ts`](https://github.com/every-app/open-seo/blob/main/whoami.ts)** – Retrieves identity information about the authenticated MCP caller using the auth context from [`src/server/mcp/context.ts`](https://github.com/every-app/open-seo/blob/main/src/server/mcp/context.ts).

### Keyword Research and Management

Execute keyword research and persist findings using DataForSEO integration:

- **[`research-keywords.ts`](https://github.com/every-app/open-seo/blob/main/research-keywords.ts)** – Executes keyword research queries via the DataForSEO API.
- **[`save-keywords.ts`](https://github.com/every-app/open-seo/blob/main/save-keywords.ts)** – Persists keyword sets to the user's saved keyword store.
- **[`list-saved-keywords.ts`](https://github.com/every-app/open-seo/blob/main/list-saved-keywords.ts)** – Retrieves the user's saved keyword collections.

These tools handle the complete keyword lifecycle from discovery to storage, with input validation enforced by [`src/server/mcp/output-schemas.ts`](https://github.com/every-app/open-seo/blob/main/src/server/mcp/output-schemas.ts).

### SERP and Rank Tracking

Monitor search engine results and ranking positions:

- **[`get-serp-results.ts`](https://github.com/every-app/open-seo/blob/main/get-serp-results.ts)** – Fetches SERP data for specific queries and geographic locations.
- **[`get-rank-tracker.ts`](https://github.com/every-app/open-seo/blob/main/get-rank-tracker.ts)** – Accesses rank tracking information for previously saved keywords.

### Domain Intelligence

Analyze domain performance and generate content ideas:

- **[`get-domain-overview.ts`](https://github.com/every-app/open-seo/blob/main/get-domain-overview.ts)** – Returns high-level metrics including traffic estimates, authority scores, and organic keyword counts.
- **[`get-domain-keyword-suggestions.ts`](https://github.com/every-app/open-seo/blob/main/get-domain-keyword-suggestions.ts)** – Generates keyword ideas based on a domain's existing content profile.

### Backlink Analysis

Evaluate link profiles and referring domain authority:

- **[`get-backlinks-profile.ts`](https://github.com/every-app/open-seo/blob/main/get-backlinks-profile.ts)** – Delivers detailed backlink profiles with individual link data.
- **[`get-backlinks-overview.ts`](https://github.com/every-app/open-seo/blob/main/get-backlinks-overview.ts)** – Summarizes aggregate metrics including total backlink counts and referring domains.

### Site Audit and Search Console Integration

Perform technical SEO analysis and access Google Search Console data:

- **[`site-audit-tools.ts`](https://github.com/every-app/open-seo/blob/main/site-audit-tools.ts)** – Executes comprehensive site audits and returns technical SEO findings.
- **[`search-console-tools.ts`](https://github.com/every-app/open-seo/blob/main/search-console-tools.ts)** – Interfaces with Google Search Console to fetch queries, clicks, and performance metrics.

### DataForSEO Bridge

Low-level API integration support:

- **[`dataforseo-research-tools.ts`](https://github.com/every-app/open-seo/blob/main/dataforseo-research-tools.ts)** – Provides lower-level DataForSEO API helpers used by higher-level research tools.

## Tool Architecture and Transport Layer

The MCP tools in OpenSEO rely on a robust transport and validation system. The [`src/server/mcp/transport.ts`](https://github.com/every-app/open-seo/blob/main/src/server/mcp/transport.ts) file handles incoming JSON-RPC requests to the `/mcp` endpoint, validates OAuth scopes (`MCP_SCOPE`), and routes calls to the appropriate tool implementations. Each tool receives an auth context from [`src/server/mcp/context.ts`](https://github.com/every-app/open-seo/blob/main/src/server/mcp/context.ts) containing the `openSeoAuth` payload.

Output formatting is standardized through [`src/server/mcp/table.ts`](https://github.com/every-app/open-seo/blob/main/src/server/mcp/table.ts), which renders results as plain-text tables for text-only clients. Structured data follows the Zod schemas in [`src/server/mcp/output-schemas.ts`](https://github.com/every-app/open-seo/blob/main/src/server/mcp/output-schemas.ts), ensuring type-safe responses. Authentication is managed via [`src/server/mcp/oauth-provider.ts`](https://github.com/every-app/open-seo/blob/main/src/server/mcp/oauth-provider.ts), securing access control for external AI agents.

## Calling MCP Tools from AI Agents

AI agents interact with OpenSEO MCP tools through JSON-RPC requests. Each request must include the method name matching the tool implementation (using snake_case) and parameters validated against the Zod schemas.

### Example: Domain Overview Request

To retrieve domain metrics, call [`get-domain-overview.ts`](https://github.com/every-app/open-seo/blob/main/get-domain-overview.ts) using the `get_domain_overview` method:

```json
{
  "jsonrpc": "2.0",
  "id": "1",
  "method": "get_domain_overview",
  "params": {
    "domain": "example.com",
    "language_code": "en"
  }
}

```

The MCP server validates the request against [`output-schemas.ts`](https://github.com/every-app/open-seo/blob/main/output-schemas.ts), executes the tool, and returns structured data:

```json
{
  "jsonrpc": "2.0",
  "id": "1",
  "result": {
    "domain": "example.com",
    "traffic": 12500,
    "authority_score": 72,
    "backlinks": 3421,
    "organic_keywords": 87
  }
}

```

### Example: Saving Keywords

To persist keywords to a project, invoke [`save-keywords.ts`](https://github.com/every-app/open-seo/blob/main/save-keywords.ts) using the `save_keywords` method:

```json
{
  "jsonrpc": "2.0",
  "id": "2",
  "method": "save_keywords",
  "params": {
    "project_id": "proj_123",
    "keywords": ["cloud hosting", "serverless SEO"]
  }
}

```

Response confirmation:

```json
{
  "jsonrpc": "2.0",
  "id": "2",
  "result": {
    "status": "saved",
    "count": 2
  }
}

```

### Example: Listing Saved Keywords

Retrieve stored keywords using [`list-saved-keywords.ts`](https://github.com/every-app/open-seo/blob/main/list-saved-keywords.ts) via the `list_saved_keywords` method:

```json
{
  "jsonrpc": "2.0",
  "id": "3",
  "method": "list_saved_keywords",
  "params": { "project_id": "proj_123" }
}

```

The response includes timestamped keyword data:

```json
{
  "jsonrpc": "2.0",
  "id": "3",
  "result": [
    { "keyword": "cloud hosting", "saved_at": "2024-09-01T12:34:00Z" },
    { "keyword": "serverless SEO", "saved_at": "2024-09-01T12:35:00Z" }
  ]
}

```

## Summary

- OpenSEO exposes **15 MCP tools** organized across seven functional categories: project management, keyword handling, SERP tracking, domain insights, backlink analysis, site audits, and DataForSEO integration.
- All tools are implemented in `src/server/mcp/tools/` and accessed via the `/mcp` JSON-RPC endpoint handled by [`src/server/mcp/transport.ts`](https://github.com/every-app/open-seo/blob/main/src/server/mcp/transport.ts).
- The architecture uses **Zod schemas** in [`src/server/mcp/output-schemas.ts`](https://github.com/every-app/open-seo/blob/main/src/server/mcp/output-schemas.ts) for type-safe validation and **OAuth scope enforcement** via [`src/server/mcp/oauth-provider.ts`](https://github.com/every-app/open-seo/blob/main/src/server/mcp/oauth-provider.ts).
- AI agents invoke tools using JSON-RPC with method names matching the TypeScript file implementations (e.g., `get_domain_overview` calls [`get-domain-overview.ts`](https://github.com/every-app/open-seo/blob/main/get-domain-overview.ts)).

## Frequently Asked Questions

### What does MCP stand for in OpenSEO?

MCP stands for **Machine-Controlled Platform**. It is the protocol layer that allows AI agents to programmatically invoke SEO tools within the OpenSEO ecosystem through standardized JSON-RPC requests to the `/mcp` endpoint.

### How do AI agents authenticate with OpenSEO MCP tools?

AI agents authenticate using **OAuth tokens** with the `MCP_SCOPE` scope. The [`src/server/mcp/oauth-provider.ts`](https://github.com/every-app/open-seo/blob/main/src/server/mcp/oauth-provider.ts) module handles token issuance, while [`src/server/mcp/context.ts`](https://github.com/every-app/open-seo/blob/main/src/server/mcp/context.ts) provides the `openSeoAuth` context to each tool invocation, ensuring secure access to project data and SEO APIs.

### Can AI agents save and retrieve keyword research data?

Yes. AI agents can use **[`research-keywords.ts`](https://github.com/every-app/open-seo/blob/main/research-keywords.ts)** to discover keywords via DataForSEO, **[`save-keywords.ts`](https://github.com/every-app/open-seo/blob/main/save-keywords.ts)** to persist them to a project, and **[`list-saved-keywords.ts`](https://github.com/every-app/open-seo/blob/main/list-saved-keywords.ts)** to retrieve previously stored keyword collections. All operations are project-scoped and validated through the Zod schemas in [`src/server/mcp/output-schemas.ts`](https://github.com/every-app/open-seo/blob/main/src/server/mcp/output-schemas.ts).

### What is the difference between [`get-backlinks-profile.ts`](https://github.com/every-app/open-seo/blob/main/get-backlinks-profile.ts) and [`get-backlinks-overview.ts`](https://github.com/every-app/open-seo/blob/main/get-backlinks-overview.ts)?

**[`get-backlinks-overview.ts`](https://github.com/every-app/open-seo/blob/main/get-backlinks-overview.ts)** provides aggregate metrics such as total backlink counts and referring domain statistics, while **[`get-backlinks-profile.ts`](https://github.com/every-app/open-seo/blob/main/get-backlinks-profile.ts)** delivers granular, detailed information about individual backlinks. Agents typically use the overview for high-level competitive analysis and the profile for deep-dive link audits.