Skip to main content

Using the MCP Server

Setup

VariableValue
OFFERLY_MCP_API_URLapps/api's origin — e.g. http://localhost:4022 locally
OFFERLY_MCP_TOKENAn ofmcp_… service token, minted via Settings → MCP Connections → New Connection in the Jobweave web app

(A third variable, OFFERLY_MCP_CONFIG, points at a JSON file holding both instead of using separate env vars.) These variable names are a deliberate external contract from before the Offerly → Jobweave rename and are not renamed — see Environment Variables.

Register the local (stdio) MCP server

{
"mcpServers": {
"jobweave": {
"command": "node",
"args": ["/abs/path/to/packages/mcp-tool-server/dist/mcp/index-stdio.js"],
"env": {
"OFFERLY_MCP_API_URL": "http://localhost:4022",
"OFFERLY_MCP_TOKEN": "ofmcp_…"
}
}
}
}

A remote Streamable-HTTP transport also exists for hosted callers that can't run a local process — same tools, same ofmcp_-bearer auth model.

What to expect

  • Tool errors are answers, not crashes. A non-2xx response from apps/api comes back as an MCP tool error carrying the API's own status/error/code verbatim. Report it; don't retry blindly.
  • Scopes are per-resource-and-verb. A token might have applications:read without resumes:read — see Data & Auth for the full list. A tool is only registered on a connection if the token carries the scope it needs.
  • No interactive auth flow. No login, no OAuth, no browser consent screen. You present a pre-issued ofmcp_ token or the request fails — by design, not a gap.

CLI fallback

The offerly-mcp CLI is a fallback for a shell, CI, a container, or a session where the MCP server failed to start. It defaults to fake, in-memory data unless you pass --remote or --config — a deliberate difference from a typical CLI, so a bare run never touches a real account by accident.

Full detail: The Jobweave Claude Code Skill, which packages this guidance for a coding agent.