# io.github.work0r-ai/workorai: tool descriptions scored

- tools/list taken: 2026-11-02 (UTC)
- From: [Official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers/io.github.work0r-ai%2Fworkorai/versions/latest)
- Connected to: https://workorai.com/mcp
- Repository: https://github.com/work0r-ai/agent-kit
- Scoring rules: v2
- Tools: 29
- Average: 48.0 / 100 (Cloudy)
- Near-identical pairs: 4

This page shows how io.github.work0r-ai/workorai's tool descriptions scored, the issues found and the names of its tools and parameters. The descriptions are the server's own: read them where the copy came from.

Forecall asked the URL this server lists in the official MCP Registry for its tools/list once, on the date above, without calling any tool. The server may have changed since.

## Across the server

- Minor: 29 tools. Above 25, models start to tell tools apart less well.
- Minor: The server has no instructions. Say there, once, what the server is for and when to use it: Claude Code and Gemini CLI read the instructions before the tool descriptions.

## Tools

- `employer.list_jobs`: 20 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: status, limit, offset.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `employer.get_applicant_detail`: 30 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: apiKey, applicationId.
  - Minor: String arguments with no constraint or example: apiKey, applicationId.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: applicationId. Name the tool or the place that returns it, or models look it up first.
- `candidate.get_job`: 34 / 100
  - Major: The description is too short (7 words).
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: jobId.
  - Minor: String arguments with no constraint or example: jobId.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: jobId. Name the tool or the place that returns it, or models look it up first.
- `employer.search_candidates_by_query`: 35 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: apiKey, query, page, pageSize.
  - Minor: String arguments with no constraint or example: apiKey.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `employer.set_review_status`: 35 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: apiKey, applicationId, reviewStatus.
  - Minor: String arguments with no constraint or example: apiKey, applicationId.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: applicationId. Name the tool or the place that returns it, or models look it up first.
- `candidate.get_saved_jobs`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `employer.list_applicants`: 43 / 100
  - Major: Arguments without a description: apiKey, jobId.
  - Minor: String arguments with no constraint or example: apiKey, jobId.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: jobId. Name the tool or the place that returns it, or models look it up first.
- `employer.update_job`: 43 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: jobId, fields, fields.title, fields.seniority, fields.salary, fields.location, fields.workModel, fields.jobType, fields.description, fields.mustHaveSkills, fields.niceToHaveSkills, fields.perks, fields.responsibilities, fields.qualifications, fields.referralBonus.
  - Minor: String arguments with no constraint or example: jobId, fields.title, fields.salary, fields.location, fields.description.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: jobId. Name the tool or the place that returns it, or models look it up first.
- `employer.cancel_invitation`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: jobId, candidateUserId. Name the tool or the place that returns it, or models look it up first.
- `employer.get_job`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: jobId.
  - Minor: String arguments with no constraint or example: jobId.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: jobId. Name the tool or the place that returns it, or models look it up first.
- `employer.list_invitations`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: jobId. Name the tool or the place that returns it, or models look it up first.
- `employer.archive_job`: 47 / 100
  - Minor: Arguments without a description: jobId.
  - Minor: String arguments with no constraint or example: jobId.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: jobId. Name the tool or the place that returns it, or models look it up first.
- `employer.close_job`: 47 / 100
  - Minor: Arguments without a description: jobId.
  - Minor: String arguments with no constraint or example: jobId.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: jobId. Name the tool or the place that returns it, or models look it up first.
- `employer.get_applicant_transcript`: 47 / 100
  - Major: Arguments without a description: apiKey, applicationId.
  - Minor: String arguments with no constraint or example: apiKey, applicationId.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: applicationId. Name the tool or the place that returns it, or models look it up first.
- `employer.publish_job`: 47 / 100
  - Minor: Arguments without a description: jobId.
  - Minor: String arguments with no constraint or example: jobId.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: jobId. Name the tool or the place that returns it, or models look it up first.
- `employer.create_job`: 48 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `request_access`: 48 / 100
  - Major: Arguments without a description: role.
  - Minor: No `required` list, so every argument is optional.
- `employer.get_candidate`: 50 / 100
  - Major: Arguments without a description: apiKey, userId.
  - Minor: String arguments with no constraint or example: apiKey, userId.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: userId. Name the tool or the place that returns it, or models look it up first.
- `candidate.get_applications`: 52 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `candidate.set_saved_job`: 53 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: jobId.
  - Minor: String arguments with no constraint or example: jobId.
  - Major: It may be destructive, but destructiveHint is not set.
  - Minor: Required identifiers whose description does not say where the value comes from: jobId. Name the tool or the place that returns it, or models look it up first.
- `employer.delete_job`: 55 / 100
  - Minor: Arguments without a description: jobId.
  - Minor: String arguments with no constraint or example: jobId.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Major: It may be destructive, but destructiveHint is not set.
  - Minor: Required identifiers whose description does not say where the value comes from: jobId. Name the tool or the place that returns it, or models look it up first.
- `employer.get_candidate_evidence`: 55 / 100
  - Minor: Arguments without a description: apiKey.
  - Minor: String arguments with no constraint or example: apiKey.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: jobId, userId. Name the tool or the place that returns it, or models look it up first.
- `candidate.decline_invitation`: 56 / 100
  - Minor: Arguments without a description: jobId.
  - Minor: String arguments with no constraint or example: jobId.
  - Minor: Required identifiers whose description does not say where the value comes from: jobId. Name the tool or the place that returns it, or models look it up first.
- `candidate.search_jobs`: 57 / 100
  - Major: Arguments without a description: q, workModel, seniority, jobType, limit, offset.
  - Minor: String arguments with no constraint or example: q.
  - Minor: No `required` list, so every argument is optional.
- `candidate.withdraw_application`: 58 / 100
  - Minor: Arguments without a description: jobId.
  - Minor: String arguments with no constraint or example: jobId.
  - Minor: Required identifiers whose description does not say where the value comes from: jobId. Name the tool or the place that returns it, or models look it up first.
- `employer.invite_candidate`: 60 / 100
  - Major: Arguments without a description: apiKey, jobId, candidateUserId.
  - Minor: String arguments with no constraint or example: apiKey, jobId, candidateUserId.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: jobId, candidateUserId. Name the tool or the place that returns it, or models look it up first.
- `candidate.accept_invitation`: 61 / 100
  - Minor: Arguments without a description: jobId.
  - Minor: String arguments with no constraint or example: jobId.
  - Minor: Required identifiers whose description does not say where the value comes from: jobId. Name the tool or the place that returns it, or models look it up first.
- `candidate.apply_to_job`: 66 / 100
  - Minor: Arguments without a description: jobId.
  - Minor: String arguments with no constraint or example: jobId.
  - Minor: Required identifiers whose description does not say where the value comes from: jobId. Name the tool or the place that returns it, or models look it up first.
- `employer.search_candidates_for_job`: 69 / 100
  - Major: Arguments without a description: apiKey, jobId, sort, page, pageSize.
  - Minor: String arguments with no constraint or example: apiKey, jobId.
  - Minor: Required identifiers whose description does not say where the value comes from: jobId. Name the tool or the place that returns it, or models look it up first.

Is your server listed here and you would rather it were not? Email support@forecall.dev, and we will take it off within 7 days.

[All scored servers](https://forecall.dev/en/servers)
