Comprehensive Model Context Protocol server for managing Home Assistant through AI assistants.
Worklittle Jobs is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Find jobs near you. Search over 4 million openings by role, place, pay, visa and more.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --transport http worklittle-jobs-mcp https://mcp.worklittle.com/
# 2 — ask your agent for something these tools do
# search_jobs, search_companies, get_job_details and 16 more
Worklittle Jobs costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. Nothing here runs on your machine and nothing runs on ours: this server answers at its publisher’s own address, and what you install is the connection straight to it.
This is a public server: it answers at its publisher’s own address and this marketplace is not in the path. Claude Code registers it in one command; --scope user makes it available in every project. The transport below is http, as the publisher's own manifest declares it.
claude mcp add --scope user --transport http worklittle-jobs-mcp https://mcp.worklittle.com/Reconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry pointing straight at the publisher’s own address — this marketplace is not in the path, and nothing from this listing executes on your machine.
19 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
Jobs — Opens the Worklittle jobs MAP for a place and an optional role. This is a map query, not a list of jobs: the map recenters on the place and shows jobs there, so send the place and the role as SEPARATE fields. Never write 'product manager in San Francisco' as one query. PLACE: always pass near_lat + near_lng (the city's coordinates, which you know) and location as the display name (e.g. 'San
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | no | Job title or role phrase (merged with keywords). Sent as API title= — matches job TITLE text only, separate from company. Preserve negative title terms with a leading dash, e.g. 'product manager, soft |
| keywords | string | no | Only if the user named skills or stacks in this turn. Omit by default — do not pull from resume or profile. |
| company | string | no | Employer slug(s): bare slug or comma-separated OR include (e.g. meta,google,apple). Prefix with '-' to exclude (e.g. -lucid-motors,-tesla). Mix allowed (meta,google,-amazon). Lowercase hyphenated. Mid |
| location | string | no | Display name of the place (e.g. 'San Francisco, CA'). When near_lat/near_lng are set this is only a label and is NOT used as a text filter. Otherwise a text filter on job location strings (partial mat |
| location_or | string | no | Comma-separated place substrings when the user names two or more metros at once (e.g. San Francisco,New York). The API returns jobs whose location text matches ANY term. Mutually exclusive with distan |
| employment_type | string | no | Type of employment contract. |
| seniority_level | string | no | Omit unless the user explicitly asked for a band. Never infer from profile. Enum when set: |
| posted_within_days | number | no | Days of posted-date lookback. Omit → default 7 (map default). 0 → no cutoff (any age). 1 → today/last 24h. 7 → this week. Any positive integer allowed (e.g. 90, 365). Never encode recency words in que |
| visa_sponsorship | string | no | Filter by explicit visa sponsorship text in the posting (AI-extracted). Use 'yes' for jobs that sponsor visas (H-1B, etc.). Use 'no' only when the user wants roles that explicitly state no sponsorship |
| description_language | string | no | ISO 639-1 code for the language of the job posting body. Examples: en, es, de, fr, pt. |
| country | string | no | ISO 3166-1 alpha-2 country filter (e.g. US, GB, DE). Returns jobs in that country or workplace_type remote. |
| exclude_ids | string | no | Comma-separated job IDs to exclude (e.g. postings already shown in the conversation). |
| near_lat | number | no | Latitude for distance search. Use with near_lng. Typical source: browser geolocation or geocoded city. |
| near_lng | number | no | Longitude for distance search. Required with near_lat. |
| radius_km | number | no | Radius in kilometers around near_lat/near_lng. Default 50, max 500. |
| exclude_remote | boolean | no | When using near_lat/near_lng: false includes remote-only jobs; true (default) excludes them so results are geographically local. |
| limit | number | no | Number of results to return. Default 10, max 50. |
| cursor | string | no | Pagination cursor from a previous search_jobs response to fetch the next page. |
Jobs — Search the Worklittle market company index by name or slug (ranked typeahead). Returns id, name, slug, logo_url, and enrichment fields for employers with open jobs. Use when the user names an employer and you need a real slug/id for search_jobs company= filters, job alerts, or automations. If zero hits, try alternate spellings or related employer names from further search_companies calls —
| Parameter | Type | Required | Notes |
|---|---|---|---|
| q | string | yes | Company name or slug query (min 2 characters, max 80). |
| limit | number | no | Max results to return. Default 5, max 20. |
Jobs — Fetch detailed information about a specific job, including full responsibilities, qualifications, and company details. Pass job_id from search_jobs when you have one. If the user asks for full details of a role without an id (e.g. the first software engineer job in Austin), pass query and optional location instead — the tool loads the first matching live listing.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| job_id | string | no | The job ID from a previous search_jobs result when available. |
| query | string | no | Role/title search used when job_id is missing (picks the first live match). |
| location | string | no | Optional location substring when resolving details by query. |
| summary | boolean | no | If true, request first-time AI generation via GET /jobs/:id?summary=true. Default is raw plus cached AI only. |
Jobs — Returns aggregate job-market statistics from Worklittle. Call with no args for the full indexed market (counts, workplace mix, top hiring companies). When the user names a role and/or city (e.g. product managers in San Francisco), pass query and location. The filtered slice includes match count, top companies in the sample, and salary signals from listings that publish pay.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | no | Role or title filter for a market slice (e.g. product manager). |
| location | string | no | Location substring for a market slice (e.g. San Francisco). |
| workplace_type | string | no | Optional workplace filter for the slice. |
Jobs — Add a job to the user's Applied or Saved list, or change its status, so they can find it later.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| job_id | string | yes | Worklittle job id from search_jobs or get_job_details. |
| job_title | string | yes | — |
| company_name | string | yes | — |
| apply_url | string | no | Optional employer apply URL. |
| method | string | no | How the user applied. Defaults to apply. |
| status | string | no | Pipeline stage when known. Use saved for heart/save, skipped for Job Cards / deck Skip. Defaults to in_progress for apply / apply_with_ai, applied for api. |
Jobs — Get the user's Worklittle profile (name, location, contact details and job preferences). If they have not linked their account it returns connected false; use get_my_resume or apply_for_job to sign them in.
No parameter schema on file.
Business — List the user's recent Worklittle chats (title and status) for the app sidebar.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| limit | number | no | Max chats (default 20, max 50). |
| cursor | string | no | next_cursor from the previous page. |
Business — Create a sign-in link so the Worklittle app can open the user's chats on worklittle.com.
No parameter schema on file.
Business — Sign the user out of Worklittle in this app.
No parameter schema on file.
Jobs — Save the resume the user attached in the chat (PDF, Word, text or image) to their Worklittle profile so it can be used to apply. Pass the attached file as resume_file.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| resume_file | object | no | The resume file the user attached in the chat. |
| filename | string | no | Original file name, e.g. resume.pdf (widget upload). |
| mime | string | no | MIME type, e.g. application/pdf |
| content_base64 | string | no | Base64-encoded file bytes (data: URLs accepted; strip prefix ok). |
Jobs — Get the user's saved resume: its status (ready, processing or missing) and, when ready, the resume text and profile details read from it. Use it to tailor advice or an application to the user's real experience.
No parameter schema on file.
Jobs — Delete the user's saved resume from their profile.
No parameter schema on file.
Jobs — Update the user's Worklittle profile, such as name, location, phone, links or the kind of job they want. Only send the fields to change.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| you_name | string | no | — |
| you_school | string | no | — |
| you_work | string | no | — |
| you_interests | string | no | — |
| school_degree | string | no | — |
| phone | string | no | — |
| phone_national | string | no | — |
| phone_country_iso | string | no | — |
| drivers_license | string | no | valid | none | empty to clear |
| work_authorization_countries | array | no | ISO2 country codes |
| linkedin_url | string | no | — |
| github_url | string | no | — |
| huggingface_url | string | no | — |
| personal_website_url | string | no | — |
| x_url | string | no | — |
| instagram_url | string | no | — |
| youtube_url | string | no | — |
| facebook_url | string | no | — |
| tiktok_url | string | no | — |
| profile_clear_fields | array | no | Field names to clear when empty |
Jobs — Apply to a job for the user: Worklittle fills out and submits the application in a browser. Pass job_id from search_jobs. For a Worklittle-hosted posting also include name, email and resume. It submits by default; pass auto_submit false when the user wants to review first, then show them the answers from check_application_status and send it with submit_application only after they say so.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| job_id | string | yes | Worklittle job id from search_jobs / get_job_details. |
| auto_submit | boolean | no | Default true: submit when the form is complete. false: stop at review (status awaiting_submit) so the user can check every answer; send it with submit_application. |
| resume_html | string | no | Optional resume HTML to seed. |
| cover_letter_html | string | no | Optional cover letter HTML to seed. |
Jobs — Check an application Worklittle is filling out: its status, which form fields are filled, and a live view link. Only the status completed means it was submitted.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| session_id | string | yes | — |
Jobs — Stop an application that Worklittle is filling out for the user. This cancels the application in progress and it cannot be resumed; the user would have to start it again. Needs the session_id from apply_for_job or list_active_applications.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| session_id | string | yes | — |
Business — Change what an application in progress fills in, without stopping it. Use when the user says something about an application Worklittle is filling right now ("say my notice period is one month", "my friend Ana Ruiz referred me", "I need visa sponsorship for the US", "make that answer shorter"). Pass their wish as plain instructions with their exact facts; never add facts. Works while the
| Parameter | Type | Required | Notes |
|---|---|---|---|
| session_id | string | yes | — |
| instructions | string | yes | What to change, in plain words. |
Business — Save standing facts about the user that Worklittle's Apply with AI uses on every future application: work authorization and visa sponsorship by country, relocation, notice period, desired salary, languages, qualifications, who referred them, reasonable adjustments, self-identification, or anything else they want applications to answer a certain way. Stored as the 'More about you' text i
| Parameter | Type | Required | Notes |
|---|---|---|---|
| about_me | string | yes | The full More about you text to store (replaces the old text). |
Jobs — List the user's applications that Worklittle is filling out right now (queued, running, or waiting on the user), with job_id and session_id. Use it to find which one to stop or check.
No parameter schema on file.
- Every tool — any call limit is its publisher’s, not ours
- No card, and mcprush charges nothing for it
- Runs at its publisher’s own address — this marketplace is not in the path
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install Worklittle Jobs or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
| Term | Level | What it prices | Points |
|---|---|---|---|
| capability-exposure | moderate | capability blast radius (moderate) — client exposure if the model is manipulated | −3 |
| coverage-honesty | manifest | inspection depth (manifest) — how much of the target the scan could see | −4 |
What the scan could actually read
A grade is only as meaningful as its coverage, so the scanner publishes its own depth before it publishes its result.
The scan read each tool’s name, description, input schema and annotations exactly as the server listed them the last time it answered us; no code was reviewed. We ask the server again about once a month, and a list that changed is graded again.
The implementation source was not read — this reflects the declared tool metadata only.
Capability — what it could do if the model were manipulated
Tags derived from each tool’s schema and the implementation, not from what the tool calls itself. moderate is the level these add up to.
| Tool | Capability tags | Why the tag was assigned |
|---|---|---|
| search_jobs | untrusted-input | untrusted-input: declares openWorldHint: true (interacts with entities outside the server) |
| search_companies | untrusted-input | untrusted-input: declares openWorldHint: true (interacts with entities outside the server) |
| get_job_details | untrusted-input | untrusted-input: keyword "fetch", declares openWorldHint: true (interacts with entities outside the server) |
| get_market_overview | untrusted-input | untrusted-input: declares openWorldHint: true (interacts with entities outside the server) |
| track_applied_job | external-sink | external-sink: declares readOnlyHint: false, openWorldHint: true |
| get_my_profile | no tags | |
| list_recent_chats | no tags | |
| mint_mcp_ui_embed_session | state-write | state-write: declares readOnlyHint: false |
| logout_connected_account | state-write | state-write: declares readOnlyHint: false |
| upload_my_resume | state-write | state-write: declares readOnlyHint: false |
| get_my_resume | no tags | |
| delete_my_resume | state-write | state-write: declares readOnlyHint: false, destructiveHint: true |
| update_my_profile | state-write | state-write: declares readOnlyHint: false |
| apply_for_job | external-sink | external-sink: declares readOnlyHint: false, openWorldHint: true |
| check_application_status | external-sink | external-sink: declares readOnlyHint: false, openWorldHint: true |
| stop_application | state-write | state-write: declares readOnlyHint: false, destructiveHint: true |
| steer_application | external-sink | external-sink: declares readOnlyHint: false, openWorldHint: true |
| save_about_me | state-write | state-write: declares readOnlyHint: false |
| list_active_applications | no tags |
Toxic-flow graph
The lethal trifecta, checked as a graph rather than as a checklist: untrusted input, a sensitive source and an external sink have to meet before there is a path worth worrying about.
Supply chain and provenance
This is the first scan of this surface here, so there is nothing yet to compare it against.
Every result on this tab comes from one deterministic pass over the published package — offline, rule by rule, and auditable line by line above. Same methodology version, same bytes, same score.
Release history
This is an address its publisher runs: which release it serves is theirs to choose, so there is nothing here to pin. The history below is for reading; the current release on file is 1.1.0.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish Worklittle Jobs can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.