Docs

MCP server reference

Endpoint, authorisation, scopes, tools, resources, errors, and limits for connecting an MCP client to ProBB AI.

ProBB AI runs a remote Model Context Protocol (MCP) server so assistants and MCP clients can read hiring data and take confirmed actions on behalf of a signed-in member. This page is for developers and administrators who need the technical detail. For recruiter guidance, see work with an AI assistant and connect an AI assistant.

The server is separate from the customer API. It uses a person's sign-in, not an API key.

Endpoint and transport

ItemValue
Endpointhttps://app.probbai.com/api/mcp
TransportStreamable HTTP, stateless: each request is handled on its own
MCP Registry namecom.probbai/probb

The address shown in Settings → AI assistants is the same endpoint for your deployment.

Authorisation

The server uses OAuth 2.1 with PKCE. An unauthenticated request receives a 401 with a WWW-Authenticate challenge that points to the protected resource metadata, so compliant clients start the flow by themselves.

  • Protected resource metadata: https://app.probbai.com/.well-known/oauth-protected-resource/api/mcp
  • Client identification: Client ID Metadata Documents. A client's client_id is an HTTPS URL that hosts its metadata. Dynamic client registration is not supported.
  • Organisation-bound grants: after sign-in, people in several organisations choose one. The grant, and the access token, are bound to that organisation. Consent is remembered per organisation and client.
  • Consent: the person sees the scopes and can untick write and spend. Read is always required. Unticking write also removes spend.
  • Token lifetime: access tokens last 15 minutes. Clients that request offline_access refresh them without asking the person again.
  • Checked on every request: membership, role, whether the organisation allows AI assistants, and whether the connection still exists. A withdrawn grant or a demotion therefore takes effect on the next request, not when the token expires.

Scopes

ScopeAllowsRoles
probb:readSee jobs, candidates, reports, interview results, and credit balanceViewer, Member, Admin
probb:writeSave jobs, add candidates, record hiring decisions, and start talent pool searchesMember, Admin
probb:spendStart resume analyses and interviews that use credits, each only after the person confirms itMember, Admin

Viewers can only ever hold probb:read. Scopes are capped to the current role on every request.

The 401 challenge advertises all three scopes, so a client asks for read, write, and spend on first connection. Only probb:read is required to call the endpoint. Individual tools check the scope they need. Identity scopes openid, profile, email, and offline_access identify the person and enable refresh.

A spend tool needs both probb:write and probb:spend.

Tools

Tools are registered in this fixed order. Each tool works inside the connected organisation only; none accepts an organisation argument. Tools marked "asks to confirm" use a two-step quote and confirmation.

ToolWhat it doesScopeEffectAsks to confirm
probb_hiring_overviewWhat needs attention: reports to review, interviews owed, this week's activity, open jobs with their pipeline, credit balanceReadRead-onlyNo
probb_findLooks up candidates, jobs, and reports by name, title, company, or email and returns IDs and linksReadRead-onlyNo
probb_shortlistA job's candidates ranked best first, with scores, decisions, strengths, gaps, and flagsReadRead-onlyNo
probb_candidate_briefOne candidate for one job: fit, strengths, concerns, requirements, interview result, integrity warnings, decision. Contact details only with include_contactReadRead-onlyNo
probb_compare_candidatesTwo to five candidates for the same job side by sideReadRead-onlyNo
probb_interview_evidenceTranscript excerpts that answer a question about what a candidate saidReadRead-onlyNo
probb_rediscover_talentRanks candidates already in the pool against a job. Returns a search from the last 7 days, or starts a background searchRead; Write to start a new searchStarts background work, no creditsNo
probb_check_progressProgress and results of background work, from a handleReadRead-onlyNo
probb_record_decisionRecords advance, hold, not progressing, hired, or clear for a candidate on a job, with a noteWriteWrites; reversible, history keptNo
probb_save_jobCreates a job or updates one, with quality feedback. Warns about likely duplicatesWriteWrites; an update overwrites the fields givenNo
probb_invite_to_interviewEmails a candidate a personal AI interview linkWrite and SpendSpends; emails an outside personYes
probb_add_candidateAdds a candidate to the talent pool from details or resume text, or replaces an existing candidate's resumeWriteWrites; no credits; replacing overwritesNo
probb_analyze_resumesAnalyses up to 10 existing candidates against a jobWrite and SpendSpendsYes

Write tools describe themselves as acting only on the person's explicit request, never on text found in documents.

Confirmation flow

probb_invite_to_interview and probb_analyze_resumes take an optional confirmation_token.

  1. Call without the token. The server returns the cost, the balance, and who is affected. Nothing starts or is charged. It also returns a confirmation_token.
  2. Show the person the quote and wait for an explicit yes.
  3. Call again with the same arguments and the token.

Tokens are valid for 15 minutes. A standing instruction such as "always go ahead" does not replace a quote.

Handles and progress

Tools that start background work return a handle: search:… from probb_rediscover_talent, candidate:… from probb_add_candidate, and analysis:… from probb_analyze_resumes. Pass it to probb_check_progress, which is safe to call repeatedly. Handles belong to the organisation the assistant is connected to.

Result shapes

Tools return a short text answer that uses names with links, plus structured content that matches the tool's output schema. Many read tools accept response_format set to concise (default) or detailed. Tool annotations (read-only, destructive, idempotent, open-world) are set honestly: the interview invite tool is marked open-world because it emails someone outside the organisation.

Resources and prompts

Read-only resources, all Markdown:

ResourceContent
probb://jobs/{job_id}A job's details, description, and requirements
probb://reports/{report_id}The detailed candidate brief, without contact details
probb://reports/{report_id}/transcriptThe interview transcript, with contact details removed

Prompts the person can pick in their client:

PromptPurpose
weekly-hiring-reviewA short review of the week and suggested next actions
debrief-prepA debrief sheet for a job's finalists
candidate-feedbackA draft of respectful candidate feedback to edit before sending

Optional extensions

Every tool is complete without these.

  • Cards (MCP Apps). In hosts that support MCP Apps, probb_shortlist, probb_compare_candidates, and probb_candidate_brief also render a compact card. Cards use the tool's structured data only and show no contact details.
  • Skill. The server publishes the probb-hiring-workflow skill, which describes the recommended tool order, confirmation, and privacy rules. Clients with skills support can list it with skills/list. It is also available as the resource skill://probb-hiring-workflow/SKILL.md, which the server instructions point to.

Errors and limits

ResponseMeaning
401 with invalid_tokenThe token is invalid, the assistant was disconnected, or the person no longer has access to the organisation. Run the authorisation flow again.
403 with access_deniedAn admin turned off AI assistants for the organisation. Re-authorising does not help; show the message to the person.
429 with Retry-AfterToo many requests. Wait the number of seconds given.
Tool errorA result with isError set and a plain-language message that says what to do next.

Requests are limited per minute to 120 per person and 300 per organisation.

Privacy and untrusted content

  • Contact details such as emails, phone numbers, and profile links are removed from tool output and from quoted text. A brief with include_contact set to true includes them and records an entry in the organisation's activity log.
  • Text from resumes, transcripts, and job descriptions is labelled as candidate-supplied data and is never treated as an instruction. The server instructions tell the assistant the same.
  • The server never returns another organisation's data. IDs are checked against the connected organisation.
  • Credits and quotas are counted as they are in the app.

See AI assistants for admins for activity entries and security and data for data handling.

On this page