WorldRole

Free remote and overseas job search with sources and eligibility checks. Usage limits apply.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
62%
Naming quality
98%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~3,174Tokens (tool definitions)
~2.8 KBTypical response size
Significant attention impact (2.48% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "worldrole": {
      "url": "https://mcp.worldrole.work/mcp"
    }
  }
}

Remote endpoints

https://mcp.worldrole.work/mcpstreamable-http

What it can do

Tool inventory

Tools (10)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢get_profile

Read/export the current account's compact career summary for conversational onboarding. Empty fields are missing, not a reason to send the user a form. Never accepts another user ID.

Input Schema

{
  "type": "object",
  "properties": {},
  "title": "get_profileArguments"
}
🟡update_profile(expected_version, request_id, patch, resume, mode)

Save important career facts. mode=compiled submits COMPLETE merged summaries for changed fields; omitted fields stay, null explicitly deletes. mode=supplement fills missing fields and skips exact duplicates; changes to populated fields return PROFILE_MERGE_REQUIRED with affected context, atomically without saving. Compile that context and retry compiled, preserving old facts. No server LLM or pending queue. Read first; batch meaningful changes, no-op does not bump version. user_reported needs user statements; document_supported needs accessible evidence, inference stays needs_confirmation. Values <=500 chars, total <=8 KB; no full chats/files/secrets. Reuse request_id for identical retry, re-read on conflict. resume=True only on explicit request to resume paused memory; never reconstruct deleted facts.

Input Schema

{
  "type": "object",
  "properties": {
    "expected_version": {
      "minimum": 0,
      "title": "Expected Version",
      "type": "integer"
    },
    "request_id": {
      "format": "uuid",
      "title": "Request Id",
      "type": "string"
    },
    "patch": {
      "$ref": "#/$defs/ProfilePatch"
    },
    "resume": {
      "default": false,
      "title": "Resume",
      "type": "boolean"
    },
    "mode": {
      "default": "compiled",
      "enum": [
        "compiled",
        "supplement"
      ],
      "title": "Mode",
      "type": "string"
    }
  },
  "required": [
    "expected_version",
    "request_id",
    "patch"
  ],
  "$defs": {
    "Fact": {
      "additionalProperties": false,
      "properties": {
        "value": {
          "anyOf": [
            {
              "maxLength": 500,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Value"
        },
        "state": {
          "enum": [
            "user_reported",
            "document_supported",
            "needs_confirmation",
            "unknown"
          ],
          "title": "State",
          "type": "string"
        }
      },
      "required": [
        "state"
      ],
      "title": "Fact",
      "type": "object"
    },
    "ProfilePatch": {
      "additionalProperties": false,
      "properties": {
        "direction": {
          "anyOf": [
            {
              "$ref": "#/$defs/Fact"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "skills": {
          "anyOf": [
            {
              "$ref": "#/$defs/Fact"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "experience": {
          "anyOf": [
            {
              "$ref": "#/$defs/Fact"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "education": {
          "anyOf": [
            {
              "$ref": "#/$defs/Fact"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "languages": {
          "anyOf": [
            {
              "$ref": "#/$defs/Fact"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "location_authorization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Fact"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "salary": {
          "anyOf": [
            {
              "$ref": "#/$defs/Fact"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "availability": {
          "anyOf": [
            {
              "$ref": "#/$defs/Fact"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "preferences": {
          "anyOf": [
            {
              "$ref": "#/$defs/Fact"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "constraints": {
          "anyOf": [
            {
              "$ref": "#/$defs/Fact"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "materials": {
          "anyOf": [
            {
              "$ref": "#/$defs/Fact"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "next_step": {
          "anyOf": [
            {
              "$ref": "#/$defs/Fact"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "title": "ProfilePatch",
      "type": "object"
    }
  },
  "title": "update_profileArguments"
}
🔴delete_profile(expected_version, request_id)

When the user asks to forget or stop remembering, clear their career summary and pause future saves. Retains only an empty version marker. The user can later ask to resume via update_profile(resume=True), without visiting a settings page.

Input Schema

{
  "type": "object",
  "properties": {
    "expected_version": {
      "minimum": 0,
      "title": "Expected Version",
      "type": "integer"
    },
    "request_id": {
      "format": "uuid",
      "title": "Request Id",
      "type": "string"
    }
  },
  "required": [
    "expected_version",
    "request_id"
  ],
  "title": "delete_profileArguments"
}
🟢get_usage

Read current hosted account/guest allowance when requested. No promotion at install/startup; external free sources have independent limits. Does not spend a job.

Input Schema

{
  "type": "object",
  "properties": {},
  "title": "get_usageArguments"
}
🟡create_referral_link(request_id)

Only when the user explicitly requests an invitation link. Returns a public URL and grants the account's once-ever 20-job bonus. Never call during installation, startup or automatically after an exhaustion notice. Repeated calls return the same link without another bonus. No message is sent.

Input Schema

{
  "type": "object",
  "properties": {
    "request_id": {
      "format": "uuid",
      "title": "Request Id",
      "type": "string"
    }
  },
  "required": [
    "request_id"
  ],
  "title": "create_referral_linkArguments"
}
🟢boardwork_start(workflow, locale, profile_state, assistance_context)

Restore known facts and plan useful work before asking. Optional assistance_context describes actual task requirements and client checks, without private answers. Defaults to zero questions; no profile writes, sending, monitoring or live verification are performed.

Input Schema

{
  "type": "object",
  "properties": {
    "workflow": {
      "default": "initialize",
      "enum": [
        "initialize",
        "find_jobs",
        "target_company",
        "prepare_application",
        "follow_up",
        "review_offer"
      ],
      "title": "Workflow",
      "type": "string"
    },
    "locale": {
      "default": "zh-CN",
      "enum": [
        "zh-CN",
        "en"
      ],
      "title": "Locale",
      "type": "string"
    },
    "profile_state": {
      "default": "unknown",
      "enum": [
        "missing",
        "draft",
        "usable",
        "unknown"
      ],
      "title": "Profile State",
      "type": "string"
    },
    "assistance_context": {
      "anyOf": [
        {
          "$ref": "#/$defs/AssistanceContext"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "$defs": {
    "AssistanceContext": {
      "additionalProperties": false,
      "properties": {
        "requirements_checked": {
          "default": false,
          "description": "Client inspected actual task/form/reply requirements; a generic profile checklist does not count.",
          "title": "Requirements Checked",
          "type": "boolean"
        },
        "available_context_checked": {
          "default": false,
          "description": "Client checked permitted current conversation, saved facts and accessible supplied materials before asking.",
          "title": "Available Context Checked",
          "type": "boolean"
        },
        "requirements": {
          "items": {
            "$ref": "#/$defs/Requirement"
          },
          "maxItems": 12,
          "title": "Requirements",
          "type": "array"
        }
      },
      "title": "AssistanceContext",
      "type": "object"
    },
    "Requirement": {
      "additionalProperties": false,
      "properties": {
        "id": {
          "maxLength": 64,
          "minLength": 1,
          "pattern": "^[a-zA-Z0-9_-]+$",
          "title": "Id",
          "type": "string"
        },
        "field": {
          "enum": [
            "direction",
            "skills",
            "experience",
            "education",
            "languages",
            "location_authorization",
            "salary",
            "availability",
            "preferences",
            "constraints",
            "materials",
            "next_step",
            "resume_file",
            "contact_details",
            "application_answer",
            "decision",
            "host_capability"
          ],
          "title": "Field",
          "type": "string"
        },
        "reason": {
          "description": "Why this specific item blocks the current requested action; no private answer content.",
          "maxLength": 200,
          "minLength": 1,
          "title": "Reason",
          "type": "string"
        },
        "state": {
          "default": "unchecked",
          "enum": [
            "unchecked",
            "resolved",
            "missing",
            "uncertain",
            "declined"
          ],
          "title": "State",
          "type": "string"
        },
        "self_service_checked": {
          "default": false,
          "description": "Client tried applicable authorized alternatives (locate an existing file, draft from known facts, inspect sources). Never fabricate personal facts to resolve a gap.",
          "title": "Self Service Checked",
          "type": "boolean"
        }
      },
      "required": [
        "id",
        "field",
        "reason"
      ],
      "title": "Requirement",
      "type": "object"
    }
  },
  "title": "boardwork_startArguments"
}
🟢search_jobs(intent, count, filters, preferences, exclude_job_ids, ...)

Search a small page of sourced jobs by explicit filters and weighted preferences. Defaults to one role per company. Exclusions apply before pagination.

Input Schema

{
  "type": "object",
  "properties": {
    "intent": {
      "default": "best_matches",
      "enum": [
        "best_matches",
        "discover_more",
        "latest"
      ],
      "title": "Intent",
      "type": "string"
    },
    "count": {
      "default": 5,
      "maximum": 10,
      "minimum": 1,
      "title": "Count",
      "type": "integer"
    },
    "filters": {
      "anyOf": [
        {
          "$ref": "#/$defs/Filters"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "preferences": {
      "anyOf": [
        {
          "$ref": "#/$defs/Preferences"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "exclude_job_ids": {
      "anyOf": [
        {
          "items": {
            "format": "uuid",
            "type": "string"
          },
          "maxItems": 500,
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Exclude Job Ids"
    },
    "exclude_company_ids": {
      "anyOf": [
        {
          "items": {
            "format": "uuid",
            "type": "string"
          },
          "maxItems": 500,
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Exclude Company Ids"
    },
    "one_per_company": {
      "default": true,
      "title": "One Per Company",
      "type": "boolean"
    },
    "cursor": {
      "anyOf": [
        {
          "maxLength": 5000,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Cursor"
    }
  },
  "$defs": {
    "Filters": {
      "additionalProperties": false,
      "properties": {
        "q": {
          "anyOf": [
            {
              "maxLength": 120,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Q"
        },
        "mode": {
          "anyOf": [
            {
              "enum": [
                "remote",
                "contract",
                "relocation",
                "international"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Mode"
        },
        "company_id": {
          "anyOf": [
            {
              "format": "uuid",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Company Id"
        },
        "required_tags": {
          "items": {
            "maxLength": 64,
            "minLength": 1,
            "type": "string"
          },
          "maxItems": 12,
          "title": "Required Tags",
          "type": "array"
        },
        "any_tags": {
          "items": {
            "maxLength": 64,
            "minLength": 1,
            "type": "string"
          },
          "maxItems": 12,
          "title": "Any Tags",
          "type": "array"
        },
        "excluded_tags": {
          "items": {
            "maxLength": 64,
            "minLength": 1,
            "type": "string"
          },
          "maxItems": 12,
          "title": "Excluded Tags",
          "type": "array"
        },
        "required_skills": {
          "items": {
            "maxLength": 64,
            "minLength": 1,
            "type": "string"
          },
          "maxItems": 12,
          "title": "Required Skills",
          "type": "array"
        },
        "required_languages": {
          "items": {
            "pattern": "^[a-z]{2}$",
            "type": "string"
          },
          "maxItems": 12,
          "title": "Required Languages",
          "type": "array"
        },
        "arrangements": {
          "items": {
            "maxLength": 64,
            "minLength": 1,
            "type": "string"
          },
          "maxItems": 12,
          "title": "Arrangements",
          "type": "array"
        },
        "china": {
          "anyOf": [
            {
              "enum": [
                "yes",
                "no",
                "unknown"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "China"
        },
        "salary": {
          "anyOf": [
            {
              "$ref": "#/$defs/Salary"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "first_seen_since": {
          "anyOf": [
            {
              "maxLength": 40,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "First Seen Since"
        },
        "first_seen_before": {
          "anyOf": [
            {
              "maxLength": 40,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "First Seen Before"
        }
      },
      "title": "Filters",
      "type": "object"
    },
    "Preference": {
      "additionalProperties": false,
      "properties": {
        "value": {
          "maxLength": 64,
          "minLength": 1,
          "title": "Value",
          "type": "string"
        },
        "weight": {
          "default": 1,
          "maximum": 10,
          "minimum": 1,
          "title": "Weight",
          "type": "integer"
        }
      },
      "required": [
        "value"
      ],
      "title": "Preference",
      "type": "object"
    },
    "Preferences": {
      "additionalProperties": false,
      "properties": {
        "tags": {
          "items": {
            "$ref": "#/$defs/Preference"
          },
          "maxItems": 12,
          "title": "Tags",
          "type": "array"
        },
        "skills": {
          "items": {
            "$ref": "#/$defs/Preference"
          },
          "maxItems": 12,
          "title": "Skills",
          "type": "array"
        },
        "languages": {
          "items": {
            "$ref": "#/$defs/Preference"
          },
          "maxItems": 12,
          "title": "Languages",
          "type": "array"
        }
      },
      "title": "Preferences",
      "type": "object"
    },
    "Salary": {
      "additionalProperties": false,
      "properties": {
        "currency": {
          "pattern": "^[A-Z]{3}$",
          "title": "Currency",
          "type": "string"
        },
        "period": {
          "enum": [
            "hour",
            "day",
            "week",
            "fortnight",
            "month",
            "year"
          ],
          "title": "Period",
          "type": "string"
        },
        "component": {
          "enum": [
            "base",
            "bonus",
            "commission",
            "ote",
            "total_cash",
            "cash_unspecified"
          ],
          "title": "Component",
          "type": "string"
        },
        "min_amount": {
          "minimum": 0,
          "title": "Min Amount",
          "type": "number"
        }
      },
      "required": [
        "currency",
        "period",
        "component",
        "min_amount"
      ],
      "title": "Salary",
      "type": "object"
    }
  },
  "title": "search_jobsArguments"
}
🟢get_jobs(job_ids, sections)

Read selected details; verification includes cached links, relationship basis, times and missing checks. Use host search/browser to verify before acting. not_available is not proof the employer closed the job.

Input Schema

{
  "type": "object",
  "properties": {
    "job_ids": {
      "items": {
        "format": "uuid",
        "type": "string"
      },
      "maxItems": 10,
      "minItems": 1,
      "title": "Job Ids",
      "type": "array"
    },
    "sections": {
      "anyOf": [
        {
          "items": {
            "enum": [
              "requirements",
              "salary",
              "evidence",
              "verification"
            ],
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Sections"
    }
  },
  "required": [
    "job_ids"
  ],
  "title": "get_jobsArguments"
}
🟢search_companies(name, domain, limit, cursor)

Find known companies by name OR exact website hostname. An empty list is only a corpus gap; never fetches arbitrary URLs.

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "anyOf": [
        {
          "maxLength": 120,
          "minLength": 1,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Name"
    },
    "domain": {
      "anyOf": [
        {
          "maxLength": 253,
          "minLength": 3,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Domain"
    },
    "limit": {
      "default": 5,
      "maximum": 5,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    },
    "cursor": {
      "anyOf": [
        {
          "maxLength": 5000,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Cursor"
    }
  },
  "title": "search_companiesArguments"
}
🟢get_company(company_id, roles_limit, include_evidence)

Read company identity and a few accepted roles. Company-wide policies do not automatically apply to every role.

Input Schema

{
  "type": "object",
  "properties": {
    "company_id": {
      "format": "uuid",
      "title": "Company Id",
      "type": "string"
    },
    "roles_limit": {
      "default": 3,
      "maximum": 5,
      "minimum": 0,
      "title": "Roles Limit",
      "type": "integer"
    },
    "include_evidence": {
      "default": false,
      "title": "Include Evidence",
      "type": "boolean"
    }
  },
  "required": [
    "company_id"
  ],
  "title": "get_companyArguments"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded10 tools