# The MCP server

Point any MCP client at one endpoint and it gets a tool for every operation in the reference, with the permissions of whatever credential you connected with.

The server speaks Streamable HTTP at https://www.jobapplicationtracking.com/api/mcp and keeps no session between requests. Authenticate with either an OAuth access token or an API key — both are bearer tokens, and both resolve to the same principal the REST API uses.

Every operation in the endpoint reference is a tool. The tool name is the operation id with the dot replaced by an underscore, so applications.list is the tool applications_list, and each reference page names its own.

Call me_get before anything else. It says which account you are acting as, whether this is the sandbox or real data, and which organizations that account belongs to.

## Claude.ai and Claude desktop

- Settings → Connectors → Add custom connector.
- Paste the server URL. Leave the client id and client secret blank — the connector discovers authorization and registers itself.
- Sign in when Claude opens this app, review the scopes and choose Allow.

## Claude Code

Add the server and authenticate with OAuth:

```
claude mcp add --transport http job-tracker https://www.jobapplicationtracking.com/api/mcp
# then run /mcp inside Claude Code and follow the sign-in
```

Add the server with an API key instead:

```
claude mcp add --transport http job-tracker https://www.jobapplicationtracking.com/api/mcp \
  --header "Authorization: Bearer jat_test_…"
```

## Cursor

The .cursor/mcp.json entry:

```
{
  "mcpServers": {
    "job-tracker": {
      "url": "https://www.jobapplicationtracking.com/api/mcp",
      "headers": { "Authorization": "Bearer jat_test_…" }
    }
  }
}
```

## The Claude API MCP connector

The connector supports tools only — it does not read resources or prompts — and needs the MCP client beta header.

Declaring the server on a Messages request:

```
{
  "mcp_servers": [
    {
      "type": "url",
      "url": "https://www.jobapplicationtracking.com/api/mcp",
      "name": "job-tracker",
      "authorization_token": "jat_test_…"
    }
  ],
  "tools": [
    { "type": "mcp_toolset", "mcp_server_name": "job-tracker" }
  ]
}
```

## Using Claude Code without MCP

A skill file teaches Claude Code this API without a server connection at all: it carries the same getting-started guidance the MCP server serves, a curl recipe for every capability, and the workflows the server offers as prompts. Save it as SKILL.md inside a directory under .claude/skills, and Claude Code loads it when the work calls for it.

Download the skill into a project:

```
mkdir -p .claude/skills/job-application-tracker
curl -s https://www.jobapplicationtracking.com/developers/claude-skill/SKILL.md \
  -o .claude/skills/job-application-tracker/SKILL.md
```

The file is generated from the same operation registry the server reads, so download it again after a change to the API rather than editing your copy.

## Testing it by hand

Open the MCP Inspector against the server:

```
npx @modelcontextprotocol/inspector
# transport: Streamable HTTP
# URL: https://www.jobapplicationtracking.com/api/mcp
# then use Quick OAuth Flow, or paste a key as a bearer token
```

- [Every tool, by operation](/developers/reference)
- [Keys, OAuth and scopes](/developers/authentication)
- [What the sandbox contains](/developers/sandbox)

These client instructions were last verified in September 2026.