> ## Documentation Index
> Fetch the complete documentation index at: https://developer.jobmojito.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Connect a custom agent (MCP SDK)

> Connect any MCP-capable client or custom agent to JobMojito using an MCP SDK over Streamable HTTP with OAuth.

Any MCP-capable client works with JobMojito — if your platform isn't listed under **Connect**, wire it up with an MCP SDK.

**Endpoint:** `https://jobmojito.fastmcp.app/mcp` · **Transport:** Streamable HTTP · **Auth:** OAuth 2.0 (no API key).

## What your client needs

1. **Streamable HTTP transport** pointed at `https://jobmojito.fastmcp.app/mcp`.
2. **An OAuth handler.** The server is an OAuth resource server; the authorization server is discovered from `https://jobmojito.fastmcp.app/.well-known/oauth-protected-resource/mcp`. Run the standard authorization-code flow, then send the access token as a `Authorization: Bearer <token>` header on every request. Persist the refresh token so the agent can reconnect without a fresh login each run.
3. **Retry on `401` / `invalid_token`** by re-running the OAuth flow.

Most MCP SDKs (e.g. the Python `mcp` package or the TypeScript `@modelcontextprotocol/sdk`) provide a Streamable HTTP client and an OAuth helper, so you point them at the endpoint and let the SDK manage discovery, tokens, and refresh.

<Note>
  Prefer the interactive OAuth flow over hand-managing tokens. If you must inject a token yourself (e.g. a headless backend), obtain it from the JobMojito OAuth flow and pass it in the `Authorization` header — never hard-code long-lived secrets.
</Note>

## Not building an agent?

For server-to-server automation you often want the [HTTP API](/how-the-api-works) directly with a bearer token, rather than MCP.

## Next steps

* [Identifiers & admin links](/mcp/identifiers) — get the ids right.
* [Tools reference](/mcp/tools) — the full tool inventory.
* [Skills](/skills/overview) — reusable patterns for reliable agent workflows.
