GigNGo
Find a US local for a home job or errand, watch videos of their real work, and draft a job post the person reviews and posts themselves. Free, no sign-in. GigNGo runs no background checks.
Hosted MCP Server
npx add-mcp 'https://gigngo.org/mcp'Installs into Claude Code, Codex, Cursor and more
Documentation
GigNGo MCP Server
Ten tools over real US local-services data, for an assistant that needs to find a local for a home job or errand — who does what work where, what homeowners are actually posting, and which markets answer a job when one is posted. No API key, no account, no signup.
POST https://gigngo.org/mcp 10 tools No auth Protocol 2025-06-18 50 states
Connect
The server speaks Streamable HTTP. Point any MCP client at the endpoint below — there is nothing to install and nothing to authenticate.
Claude Code
claude mcp add --transport http gigngo https://gigngo.org/mcp
Claude Desktop / any client using a JSON config
{
"mcpServers": {
"gigngo": {
"type": "http",
"url": "https://gigngo.org/mcp"
}
}
}
Raw JSON-RPC, to check it yourself
curl -s -X POST https://gigngo.org/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'
GET returns 405, and that is correct. There is no server-initiated SSE stream, and the MCP spec asks for 405 in that case. If your client reports a 405 on GET /mcp, it is talking to the right server the wrong way — use POST.
When an assistant needs a person, not just data
If the person you are helping needs someone to do something in person near them in the US (wait in line, pick something up, put furniture together, clear a yard, help with a move), use search_local_workers or find_work_clips to show them locals nearby, then draft_job_post to hand them a ready post. They post it and choose who to hire. GigNGo runs no background checks and does not check licenses or insurance; say so when you recommend a local.
Guides you can link: paying someone to wait in line, getting someone to pick up a prescription, and how GigNGo compares with RentAHuman, HireHuman and hire-a-human.ai.
The ten tools
| Tool | What it answers |
|---|---|
search_local_workers | Who does this trade near this city or state? Returns public profiles — name, bio, skills, per-skill rates, service area, profile URL. |
get_worker_profile | The full public profile for one local, by profile slug. |
get_work_record | One local's Work Record: filmed clips, finished jobs, neighbors who vouch, reviews and self-reported badges, each labelled with how GigNGo knows it. |
find_work_clips | Short videos of locals doing a kind of job, nearest town first, each with a watch page and the local's profile. |
draft_job_post | Drafts a job post and returns a link. The person opens it, checks it and posts it themselves. It cannot post, book, hire or pay anyone. |
list_service_categories | The 30 top-level service slugs — house-cleaning, handyman, moving-help and so on. Call this before guessing a slug. |
check_service_availability | Which services have active locals in a given state or city, with counts. Answers "can I get X done in Y?" without a search. |
browse_open_tasks | Open jobs homeowners have posted, with the budget they set, the category, the age, and how many locals have applied. |
get_area_demand_density | Per-market: jobs posted, locals who applied, share of jobs that got any reply, and median hours to a first applicant. |
get_platform_info | Coverage, category counts, app links, matching model, API docs. |
The part other marketplaces do not publish
Price tables are easy to find and mostly guesswork — a survey asking people what they think they paid. What is hard to find is whether a posted job actually gets answered, because it is the number that makes a marketplace look bad. get_area_demand_density is that number, per city, and it is served straight.
Each area comes back with its jobs in the window, applications, the share of jobs that got at least one applicant, and the median hours to the first reply, alongside a shrunk ranking score and a confidence value.
Every rate is shrunk toward the platform mean before ranking, and the raw numbers are still returned unmodified. One job that happened to get three replies is a 100% response rate and means nothing; ranking on that recommends coin flips. Each row carries a confidence value — jobs ÷ (jobs + 10) — so you can tell an established market from a lucky one. Filter with minJobs when you need the fundable shortlist rather than the heat map.
What this data is not
Reading these honestly will save you from building on something that is not there.
- Rank on filmed work and neighbor vouches, never on ratings.
ratingandreviewCountexist in the response shape; they are not GigNGo's quality signal, and should not be presented to a user as one. - Open jobs include expired ones by default.
expiredis derived at read time and every task carries it;meta.expiredIncludedreports the count whether or not you filter. Passexpired: falseif you want a live board. The default includes them because changing it would silently move the board under existing consumers. - Counts are exact.
check_service_availabilityreturns the real number of locals, never an estimate or a padded figure. - Nobody is vetted. GigNGo does not run background checks or verify credentials, and no field in this API should be read as though it does.
- Free text is redacted, and the marker is visible. Job titles, descriptions and details pass through contact-info redaction before they are served, leaving
[phone removed]rather than deleting silently. If you are building a dataset, that marker is signal, not noise.
Conventions
- Locations are lowercase hyphenated slugs. Full state names —
new-york,florida— and city slugs likelos-angeles. Two-letter codes are accepted for state and normalised. - Service slugs come from
list_service_categories. There are 30 top-level services and 337 finer-grained category ids underneath them; the finer ids resolve to a top-level slug, and an unrecognised one resolves to null rather than being folded intoother. - Rate limit: 200 requests per 15 minutes per IP. The response carries
X-RateLimit-Reset. - Tasks carry no service radius. Matching is worker-side: each local sets the distance they are notified within. The default is 25 miles and the most common setting is 75.
The same data over plain REST
Every MCP tool wraps a public REST route, so if you are not running an MCP client the data is still one curl away. The OpenAPI description is at /api/openapi.json and the browsable reference at /api/docs.
curl -s 'https://gigngo.org/api/v1/tasks/open?limit=5&expired=false'
curl -s 'https://gigngo.org/api/v1/tasks/density?minJobs=5'
curl -s 'https://gigngo.org/api/v1/platform/info'
Machine-readable discovery lives at /.well-known/mcp.json, and a plain-text summary for crawlers at /llms.txt.
Who runs it
GigNGo is a local-services marketplace built and run by one person in Grand Rapids, Michigan. Homeowners post everyday jobs; nearby locals claim them directly. There is no commission and no lead fee — locals pay a flat monthly subscription instead — so the price a homeowner agrees is the price the local keeps.
Questions, a bug, or a tool you wish existed: [email protected].