# MCP server

The same public directory over Streamable HTTP, so an agent can read it without a key.

## Connect

Any client that speaks Streamable HTTP connects to `https://seorak-public-directory.glendonchin.workers.dev/mcp/public` directly. There is no OAuth step and no token to store.

A project-scoped `.mcp.json` and a user-scoped client config take the same entry; only the file location differs. A client that predates Streamable HTTP needs a stdio bridge, which this server does not provide.

Every tool is annotated read-only, idempotent, and non-destructive, and returns the same grant-filtered projection as the HTTP API in `structuredContent`.

MCP reads the `mcp` grant, which a publisher enables separately from the web and API grants. A profile you can open in the directory may therefore be absent from a tool result.

```sh
claude mcp add --transport http seorak-public-directory https://seorak-public-directory.glendonchin.workers.dev/mcp/public
```

## Tools

Every tool is a read and takes no credentials. Each one has its own page, with its input schema, the structured content it returns, and a worked call. Only the search tools additionally require discovery permission from the publisher.

- [search_public_profiles](https://seorak.app/docs/mcp/search_public_profiles.md)
- [search_public_projects](https://seorak.app/docs/mcp/search_public_projects.md)
- [get_public_profile](https://seorak.app/docs/mcp/get_public_profile.md)
- [get_public_activity](https://seorak.app/docs/mcp/get_public_activity.md)
- [get_public_project](https://seorak.app/docs/mcp/get_public_project.md)
- [list_public_profile_projects](https://seorak.app/docs/mcp/list_public_profile_projects.md)

## Errors

A refused read returns a tool result with `isError` set, using the same error codes as the HTTP API.

- `bad_request` (400) A path, query, cursor, or bounded request is invalid.
- `not_published` (404) No current projection is available to this public surface.
- `rate_limited` (429) The public read budget is exhausted. Honor Retry-After when present.
- `unavailable` (503) A required hosted dependency or security binding is unavailable.

## More

- Surface overview: https://seorak.app/docs/mcp.md
- Whole reference in one document: https://seorak.app/llms-full.txt
- Machine-readable HTTP schema: https://seorak.app/openapi.json

---

Source: https://seorak.app/docs/mcp
This document: https://seorak.app/docs/mcp.md
