CAT
/MCP
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Cross AI Tools

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by @mertduzgun

Independent project, not affiliated with Anthropic

Seatable

seatable/seatable-mcp
918 toolsSTDIOregistry active
Summary

Connects Claude to SeaTable bases with read, write, search, and query tools. Handles rows and data operations but intentionally skips schema management (no creating tables or columns), keeping the surface area safe for agent use. SeaTable Cloud users get a hosted endpoint at mcp.seatable.com with no local install. Self-hosted instances run via npx with stdio transport. Also ships managed mode for multi-tenant deployments with OAuth 2.0 support and per-token rate limiting. All writes validate against table schemas and strip read-only columns like formulas and auto-numbers. Responses include system fields like _id and timestamps. Reach for this when you need Claude to query, filter, and manipulate structured data in SeaTable without giving it the keys to alter your database structure.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →

Tools

Public tool metadata for what this MCP can expose to an agent.

18 tools
list_tablesList tables in the SeaTable base

List tables in the SeaTable base

No parameter schema in public metadata yet.

list_rowsList rows from a table with pagination (defaults: page=1, page_size=100). Use find_rows for filtering/sorting or query_sql for SQL queries.4 params

List rows from a table with pagination (defaults: page=1, page_size=100). Use find_rows for filtering/sorting or query_sql for SQL queries.

Parameters* required
pageinteger
Page number (1-based)default: 1
viewstring
Optional SeaTable view name
tablestring
Table name
page_sizeinteger
Rows per page (max 1000)default: 100
get_rowGet a row by ID from a table2 params

Get a row by ID from a table

Parameters* required
tablestring
Target table name
row_idstring
Row ID (the _id field)
add_rowAdd a new row to a table. Link and file/image columns cannot be set here — use link_rows and upload_file instead.2 params

Add a new row to a table. Link and file/image columns cannot be set here — use link_rows and upload_file instead.

Parameters* required
rowobject
Row object (column -> value)
tablestring
Target table name
append_rowsBatch insert rows. Rejects unknown columns. Link and file/image columns cannot be set here — use link_rows and upload_file instead.2 params

Batch insert rows. Rejects unknown columns. Link and file/image columns cannot be set here — use link_rows and upload_file instead.

Parameters* required
rowsarray
Array of row objects (column name -> value)
tablestring
Target table name
update_rowsBatch update rows. Rejects unknown columns. Link and file/image columns cannot be modified here — use link_rows/unlink_rows and upload_file instead.2 params

Batch update rows. Rejects unknown columns. Link and file/image columns cannot be modified here — use link_rows/unlink_rows and upload_file instead.

Parameters* required
tablestring
Target table name
updatesarray
Array of updates, each with row_id and values
delete_rowsDelete one or more rows from a table by their IDs.2 params

Delete one or more rows from a table by their IDs.

Parameters* required
tablestring
Target table name
row_idsarray
List of row IDs (_id field) to delete
find_rowsFind rows using a predicate DSL. Filtering is performed client-side. where format: {"eq":{"field":"Name","value":"foo"}} or shorthand {"Name":"foo"}. Operators: eq, ne, in, gt, gte, lt, lte, contains, starts_with, ends_with, is_null. Combine with {"and":[...]} or {"or":[...]}....6 params

Find rows using a predicate DSL. Filtering is performed client-side. where format: {"eq":{"field":"Name","value":"foo"}} or shorthand {"Name":"foo"}. Operators: eq, ne, in, gt, gte, lt, lte, contains, starts_with, ends_with, is_null. Combine with {"and":[...]} or {"or":[...]}....

Parameters* required
pageinteger
Page number (1-based)default: 1
tablestring
Target table name
wherevalue
Filter predicate (e.g. {"eq":{"field":"Name","value":"foo"}} or shorthand {"Name":"foo"})
order_bystring
Column name to sort by
directionstring
Sort directionone of asc · descdefault: asc
page_sizeinteger
Rows per page (max 1000)default: 100
search_rowsSearch rows with a filter object2 params

Search rows with a filter object

Parameters* required
queryobject
Filter object with column name -> value pairs
tablestring
Target table name
upsert_rowsBatch upsert rows by matching on one or more key columns. If a match exists, update it; otherwise insert a new row. Rejects unknown columns. Link and file/image columns cannot be set here — use link_rows/unlink_rows and upload_file instead.3 params

Batch upsert rows by matching on one or more key columns. If a match exists, update it; otherwise insert a new row. Rejects unknown columns. Link and file/image columns cannot be set here — use link_rows/unlink_rows and upload_file instead.

Parameters* required
rowsarray
Array of row objects (column name -> value)
tablestring
Target table name
key_columnsarray
Columns to match on for finding existing rows
link_rowsCreate links between rows via the dedicated links endpoint. This is the ONLY way to create links — link columns cannot be written via add_row or update_rows.3 params

Create links between rows via the dedicated links endpoint. This is the ONLY way to create links — link columns cannot be written via add_row or update_rows.

Parameters* required
pairsarray
Array of row ID pairs to link
tablestring
Source table name
link_columnstring
Name of the link column
unlink_rowsRemove links between rows via the dedicated links endpoint. This is the ONLY way to remove links — link columns cannot be modified via update_rows.3 params

Remove links between rows via the dedicated links endpoint. This is the ONLY way to remove links — link columns cannot be modified via update_rows.

Parameters* required
pairsarray
Array of row ID pairs to unlink
tablestring
Source table name
link_columnstring
Name of the link column
get_schemaReturns the normalized schema for the base

Returns the normalized schema for the base

No parameter schema in public metadata yet.

query_sqlExecute raw SQL queries against SeaTable. Supports SELECT, INSERT, UPDATE, DELETE. Use ? placeholders for parameters to prevent SQL injection.2 params

Execute raw SQL queries against SeaTable. Supports SELECT, INSERT, UPDATE, DELETE. Use ? placeholders for parameters to prevent SQL injection.

Parameters* required
sqlstring
SQL query (SELECT, INSERT, UPDATE, DELETE)
parametersarray
Values for ? placeholders in the SQL query
list_collaboratorsList users who have access to this base. Returns email (internal user ID) and display name. Use the email values when writing to collaborator columns.

List users who have access to this base. Returns email (internal user ID) and display name. Use the email values when writing to collaborator columns.

No parameter schema in public metadata yet.

upload_fileUpload a file or image to a row. Accepts base64-encoded file data and attaches it to the specified file or image column. By default appends to existing files; set replace=true to overwrite.6 params

Upload a file or image to a row. Accepts base64-encoded file data and attaches it to the specified file or image column. By default appends to existing files; set replace=true to overwrite.

Parameters* required
tablestring
Target table name
columnstring
Name of the file or image column
row_idstring
Row ID to attach the file to
replaceboolean
Replace existing files (default: append)default: false
file_datastring
Base64-encoded file content
file_namestring
File name with extension (e.g. "report.pdf")
add_select_optionsAdd new options to a single-select or multi-select column. Use this before writing rows with option values that do not exist yet.3 params

Add new options to a single-select or multi-select column. Use this before writing rows with option values that do not exist yet.

Parameters* required
tablestring
Target table name
columnstring
Name of the single-select or multi-select column
optionsarray
Array of options to add
ping_seatableHealth check that verifies connectivity and auth to SeaTable

Health check that verifies connectivity and auth to SeaTable

No parameter schema in public metadata yet.

SeaTable MCP

The official Model Context Protocol (MCP) server for SeaTable, built and maintained by SeaTable GmbH. It lets AI agents interact with data in your bases — reading, writing, searching, linking, and querying rows through a focused set of tools. The server intentionally focuses on data operations, not schema management (creating/deleting tables or columns), keeping the tool set lean and safe for autonomous agent use.

Quick Start

The fastest way to get started depends on your setup:

  • SeaTable Cloud — Use the hosted MCP server at mcp.seatable.com, no installation needed
  • Self-hosted SeaTable — Run the MCP server locally via npx in your IDE

SeaTable Cloud (hosted MCP server)

If you use SeaTable Cloud, there is a hosted MCP server ready to use — no installation required. Configure your MCP client with the Streamable HTTP endpoint:

Claude Desktop — add to claude_desktop_config.json:

{
  "mcpServers": {
    "seatable": {
      "type": "streamable-http",
      "url": "https://mcp.seatable.com/mcp",
      "headers": {
        "Authorization": "Bearer your-api-token"
      }
    }
  }
}

Cursor / VSCode — add to your MCP settings (JSON):

{
  "mcp.servers": {
    "seatable": {
      "type": "streamable-http",
      "url": "https://mcp.seatable.com/mcp",
      "headers": {
        "Authorization": "Bearer your-api-token"
      }
    }
  }
}

ChatGPT and other OAuth-compatible clients — use the built-in OAuth flow. In ChatGPT's developer mode, configure:

  • Server URL: https://mcp.seatable.com/mcp
  • Auth type: OAuth
  • Authorization URL: https://mcp.seatable.com/authorize
  • Token URL: https://mcp.seatable.com/token

You will be prompted to enter your SeaTable API token during the authorization step.

Self-hosted SeaTable

For self-hosted SeaTable instances, run the MCP server locally via npx. Your IDE starts and manages the process automatically.

Claude Desktop — add to claude_desktop_config.json:

{
  "mcpServers": {
    "seatable": {
      "command": "npx",
      "args": ["-y", "@seatable/mcp-seatable"],
      "env": {
        "SEATABLE_SERVER_URL": "https://your-seatable-server.com",
        "SEATABLE_API_TOKEN": "your-api-token"
      }
    }
  }
}

Cursor / VSCode — add to your MCP settings (JSON):

{
  "mcp.servers": {
    "seatable": {
      "command": "npx",
      "args": ["-y", "@seatable/mcp-seatable"],
      "env": {
        "SEATABLE_SERVER_URL": "https://your-seatable-server.com",
        "SEATABLE_API_TOKEN": "your-api-token"
      }
    }
  }
}

Deployment Options

If you need to run your own server instance — for example on your own infrastructure, with multi-base support, or in multi-tenant mode — use one of the options below.

HTTP Server (Network Access)

Run a local HTTP server with Streamable HTTP transport:

PORT=3001 npx -y @seatable/mcp-seatable --sse

# Health check
curl http://localhost:3001/health

# MCP endpoint: POST/GET/DELETE http://localhost:3001/mcp

Multi-Base (Selfhosted)

Serve multiple bases from a single process:

SEATABLE_SERVER_URL=https://your-seatable-server.com \
SEATABLE_BASES='[{"base_name":"CRM","api_token":"token_abc"},{"base_name":"Projects","api_token":"token_def"}]' \
npx -y @seatable/mcp-seatable

Each tool automatically gets a base parameter. Use list_bases to see available bases.

Managed Mode (Multi-Tenant HTTP)

For hosting an MCP endpoint where each client authenticates with their own SeaTable API token:

SEATABLE_MODE=managed \
SEATABLE_SERVER_URL=https://your-seatable-server.com \
PORT=3000 npx -y @seatable/mcp-seatable --sse

Clients pass their API token via Authorization: Bearer <token> on session initialization. The server validates the token against SeaTable and applies rate limits (60 req/min per token, 120/min per IP, 20 concurrent connections per token).

OAuth support: Managed mode also exposes OAuth 2.0 endpoints (/authorize and /token), enabling OAuth-compatible clients like ChatGPT to connect. During the OAuth flow, the user enters their SeaTable API token, which is then used as the access token — no external OAuth provider required.

OAuth endpoints follow the MCP specification (RFC 8414 metadata discovery, PKCE, dynamic client registration):

EndpointPath
Metadata Discovery/.well-known/oauth-authorization-server
Authorization/authorize
Token/token
Client Registration/register

Client ID and secret are not validated — dynamic client registration generates one automatically.

Docker

docker run -d --name seatable-mcp \
  -p 3000:3000 \
  -e SEATABLE_SERVER_URL=https://your-seatable-server.com \
  -e SEATABLE_API_TOKEN=your-api-token \
  seatable/seatable-mcp:latest

# Health check
curl http://localhost:3000/health

Security Model

The security characteristics differ significantly between transport modes:

stdio (default)Selfhosted HTTPManaged HTTP
Network exposureNone (local process)TCP port, no authTCP port, Bearer auth
AuthenticationNot needed (local)NoneBearer token or OAuth 2.0, validated against SeaTable
Rate limitingNoneNonePer-token, per-IP, global
Connection limitsN/ANone20 concurrent sessions per token
Data scopeAll configured basesAll configured basesOne base per client token

⚠️ Warning: Selfhosted HTTP mode (--sse / --http) has no authentication. Anyone who can reach the port gets full access to all configured bases, including write and delete operations. Only run it in trusted networks (localhost, Docker-internal) or behind a reverse proxy that handles authentication. For untrusted networks, use managed mode instead.

Rate Limiting

SeaTable's own API gateway enforces rate limits per base (default: 500 requests/minute per base_uuid) and per organization (monthly quota). These limits apply regardless of whether requests come from the MCP server, the web UI, or direct API calls. The MCP server does not duplicate these limits — instead, it retries automatically with exponential backoff when SeaTable returns 429 Too Many Requests.

In managed mode, the MCP server adds its own rate limits to protect the server process itself (not the SeaTable backend): 60 req/min per token, 120/min per IP, 30/min for new session creation, and 20 concurrent connections per token.

Input Validation

All tool inputs are validated with Zod schemas before execution. Write tools (add_row, append_rows, update_rows, upsert_rows) additionally validate row data against the table schema — unknown columns are rejected, and read-only columns (formula, auto-number, creator, etc.) are stripped with a note in the response.

Tool schemas are published with additionalProperties: true to remain compatible with MCP clients that may attach internal fields (e.g. _meta). Unexpected fields are ignored by the server — they do not cause errors but are not processed either. This is a deliberate trade-off: stricter validation would improve error messages for typos but risk breaking compatibility with MCP clients.

Row Responses

Row responses include all columns and SeaTable system fields (_id, _mtime, _ctime, _creator, _last_modifier). System fields are not filtered — _id is required for updates and deletes, timestamps are useful for sorting and freshness checks, and creator/modifier fields can be resolved to display names via list_collaborators.

Caching

The server caches base metadata (table/column definitions) for 60 seconds to avoid redundant API calls during write operations. Schema-reading tools (get_schema, list_tables) always bypass the cache and return fresh data. If a cached schema becomes stale (e.g. a column was renamed), the SeaTable API will reject the write and the AI agent can call get_schema to refresh.

Environment Variables

Required:

  • SEATABLE_SERVER_URL — Your SeaTable server URL

Authentication (one of these is required in selfhosted mode):

  • SEATABLE_API_TOKEN — Single-base API token
  • SEATABLE_BASES — Multi-base: JSON array (e.g. '[{"base_name":"CRM","api_token":"..."}]')

Optional:

  • SEATABLE_MODE — selfhosted (default) or managed (multi-tenant HTTP with per-client auth)
  • SEATABLE_MOCK=true — Enable mock mode for offline testing
  • CORS_ALLOWED_ORIGINS — Comma-separated list of allowed origins for CORS (HTTP mode only, disabled if unset)
  • METRICS_PORT — Prometheus metrics port (default: 9090, HTTP mode only)

Monitoring

In HTTP mode, the server exposes Prometheus metrics on a separate port (default 9090):

curl http://localhost:9090/metrics

Available metrics:

MetricTypeDescription
mcp_tool_calls_total{tool, status}CounterTool calls by name and result (success/error)
mcp_tool_calls_by_tool_total{tool}CounterTotal calls per tool (regardless of outcome)
mcp_tool_duration_seconds{tool}HistogramTool execution time
mcp_http_requests_total{method, status}CounterHTTP requests by method and status code
mcp_rate_limit_exceeded_total{type}CounterRate limit rejections (global/per_ip/per_token)
mcp_auth_validations_total{result}CounterAuth validations (success/failure/cache_hit)
mcp_active_sessionsGaugeCurrently active HTTP sessions
mcp_active_connectionsGaugeCurrently active connections
seatable_api_requests_total{operation, status}CounterSeaTable API calls by operation
seatable_api_duration_seconds{operation}HistogramSeaTable API latency

Plus standard Node.js metrics (memory, CPU, event loop) via prom-client.

The metrics server only starts in HTTP mode (not stdio) and binds to 0.0.0.0 — in Docker, expose the port only within your internal network.

MCP Tools

Schema Introspection

  • list_tables — Get all tables with metadata
  • get_schema — Get complete database structure
  • list_bases — List available bases (multi-base mode only)
  • list_collaborators — List users with access to the base (for collaborator columns)

Reading Data

  • list_rows — Paginated row listing (use query_sql for filtering/sorting)
  • get_row — Retrieve specific row by ID
  • find_rows — Client-side filtering with DSL
  • search_rows — Search via SQL WHERE clauses
  • query_sql — Execute SQL queries with parameterized inputs

Writing Data

  • add_row — Add single new row
  • append_rows — Batch insert rows
  • update_rows — Batch update rows
  • upsert_rows — Insert or update rows by key columns
  • delete_rows — Remove rows by ID

Files

  • upload_file — Upload a file or image to a row (base64-encoded)
  • download_file — Read file content from a file or image column (text files and PDFs as text, binary files as download link, max 1 MB)

Linking

  • link_rows — Create relationships between rows
  • unlink_rows — Remove relationships between rows

Utilities

  • get_row_activities — Get change history of a row (who changed what, when, old/new values)
  • create_snapshot — Create a snapshot of the current base (10 min cooldown)
  • add_select_options — Add new options to single-select or multi-select columns
  • ping_seatable — Health check with latency monitoring

Supported Column Types

SeaTable bases can contain many different column types. The following table shows which types can be written via the API and what format to use.

Column TypeWritableValue Format
TextYes"string"
Long TextYes"Markdown string"
Number (incl. percent, currency)Yes123.45
CheckboxYestrue / false
DateYes"YYYY-MM-DD" or "YYYY-MM-DD HH:mm"
DurationYes"h:mm" or "h:mm:ss"
Single SelectYes"option name"
Multiple SelectYes["option a", "option b"]
EmailYes"user@example.com"
URLYes"https://..."
RatingYes4 (integer)
GeolocationYes{"lat": 52.52, "lng": 13.40}
CollaboratorYes["0b995819003140ed8e9efe05e817b000@auth.local"] — use list_collaborators to get user IDs
LinkYesUse link_rows / unlink_rows tools
Image / FileYesUse upload_file to upload (base64), download_file to read content
Formula / Link FormulaNoRead-only, computed by SeaTable
Creator / Created Time / Modified TimeNoRead-only, set automatically
Auto NumberNoRead-only, set automatically
Button / Digital SignatureNoNot accessible via API

Tool Examples

// List all tables
{ "tool": "list_tables", "args": {} }

// Get rows with pagination
{ "tool": "list_rows", "args": { "table": "Tasks", "page_size": 10 } }

// Add rows
{ "tool": "append_rows", "args": { "table": "Tasks", "rows": [{ "Title": "New Task", "Status": "Todo" }] } }

// SQL query
{ "tool": "query_sql", "args": { "sql": "SELECT Status, COUNT(*) as count FROM Tasks GROUP BY Status" } }

Programmatic Usage

import { createMcpServer } from '@seatable/mcp-seatable'

const server = await createMcpServer({
  serverUrl: 'https://your-seatable-server.com',
  apiToken: 'your-api-token',
})

Mock Mode

SEATABLE_MOCK=true npm run dev

In-memory tables and rows for demos and tests without a live SeaTable instance.

Development

Prerequisites

  • Node.js >= 20

Setup

git clone https://github.com/seatable/seatable-mcp
cd seatable-mcp
npm install
cp .env.example .env   # Configure your SeaTable settings
npm run dev             # Start in watch mode

Scripts

  • npm run dev — Start server in watch mode (tsx)
  • npm run build — Compile TypeScript
  • npm run start — Run compiled server
  • npm test — Run tests (vitest)
  • npm run lint — Lint code
  • npm run typecheck — TypeScript type check

Testing Tools

node scripts/mcp-call.cjs ping_seatable '{}'
node scripts/mcp-call.cjs list_tables '{}'
node scripts/mcp-call.cjs list_rows '{"table": "Tasks", "page_size": 5}'

Troubleshooting

IssueSolution
Invalid API tokenCheck SEATABLE_API_TOKEN
Base not foundCheck API token permissions
Connection timeoutCheck SEATABLE_SERVER_URL and network access
Permission deniedEnsure API token has required base permissions
You don't have permission to perform this operation on this base.API token is read-only or row limit exceeded
Asset quota exceeded.Storage quota reached — delete files or upgrade plan
too many requestsRate-limited by SeaTable — requests are automatically retried with backoff (3 attempts)

License

MIT

Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →

Configuration

SEATABLE_SERVER_URL

URL of your SeaTable server (e.g. https://cloud.seatable.io)

SEATABLE_API_TOKEN

API token for a single SeaTable base

Categories
Search & Web CrawlingData & Analytics
Registryactive
Package@seatable/mcp-seatable
TransportSTDIO
UpdatedMar 21, 2026
View on GitHub

Related Search & Web Crawling MCP Servers

View all →
Google Search

com.mcparmory/google-search

Scrape Google search results with SERP data, ads, and knowledge panels
25
Brave Search

io.github.pipeworx-io/brave-search

Brave Search MCP — independent web index (no Google/Bing dependency)
Serper Search and Scrape

marcopesani/mcp-server-serper

Serper MCP Server supporting search and webpage scraping
154
Brave Search Mcp Server

brave/brave-search-mcp-server

Brave Search MCP Server: web results, images, videos, rich results, AI summaries, and more.
1.2k
Google Search Console

com.mcparmory/google-search-console

Query search analytics, manage sitemaps, and inspect site URLs and status
25
Google Search Console

acamolese/google-search-console-mcp

Google Search Console MCP server: SEO audits, performance queries, URL inspection, indexing checks.
3