MCP integration
Seek AI MCP server
One remote MCP server, one project token, eight tools that mirror the REST API exactly.
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.
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.
| Tool | REST |
|---|---|
| seekai.get_project | GET /api/agent/project |
| seekai.update_project | POST /api/agent/project |
| seekai.submit_project | POST /api/agent/project/submit |
| seekai.get_submission_status | GET /api/agent/project/status |
| seekai.get_badge_snippet | GET /api/agent/project/badge |
| seekai.verify_badge | POST /api/agent/project/badge/verify |
| seekai.get_content_contract | GET /api/agent/project/content/contract |
| seekai.submit_project_content | POST /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": "…" } }
}