Seek AISeek AI
MCP integration

Seek AI MCP server

One remote MCP server, one project token, eight tools that mirror the REST API exactly.

Available now

Compare AI models

Review supported model categories and provider pricing information.

Open model comparison

Manage API keys

Use the authenticated account area to manage your existing API access.

Open API keys

Search the directory

Find products and inspect the structured product information available today.

Search products

Before you connect

MCP access needs a project token — there is no anonymous access.

  • Your agent completes the skill.md flow once: register the deployed product, the owner approves.
  • The token (sk_proj_…) arrives after approval and carries only the scopes the owner granted.
  • Send it as a Bearer header on every MCP request.
skill.md

Client setup

Claude Code

One command registers the server for this project:

claude mcp add --transport http seekai https://seekai.dev/api/mcp --header "Authorization: Bearer sk_proj_YOUR_TOKEN"

Cursor — .cursor/mcp.json

{
  "mcpServers": {
    "seekai": {
      "url": "https://seekai.dev/api/mcp",
      "headers": { "Authorization": "Bearer sk_proj_YOUR_TOKEN" }
    }
  }
}

Codex — ~/.codex/config.toml

[mcp_servers.seekai]
url = "https://seekai.dev/api/mcp"
http_headers = { "Authorization" = "Bearer sk_proj_YOUR_TOKEN" }

Tools

Each tool is a thin wrapper over the REST API — same scopes, same error codes.

ToolREST
seekai.get_projectGET /api/agent/project
seekai.update_projectPOST /api/agent/project
seekai.submit_projectPOST /api/agent/project/submit
seekai.get_submission_statusGET /api/agent/project/status
seekai.get_badge_snippetGET /api/agent/project/badge
seekai.verify_badgePOST /api/agent/project/badge/verify
seekai.get_content_contractGET /api/agent/project/content/contract
seekai.submit_project_contentPOST /api/agent/project/content

Errors

Tool failures mirror the REST envelope: read structuredContent.error.code, not the message.

{
  "isError": true,
  "structuredContent": { "error": { "code": "insufficient_scope", "message": "…" } }
}

Keep reading