freelancehunt-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FH_TOKEN | No | Alternative to FREELANCEHUNT_TOKEN. API token for Freelancehunt. | |
| FREELANCEHUNT_LANG | No | Response language: uk, ru or en. Affects skill and status names. | en |
| FREELANCEHUNT_TOKEN | No | Required. API token for Freelancehunt. FH_TOKEN also works as an alias. | |
| FREELANCEHUNT_TIMEOUT_MS | No | Per-request timeout in milliseconds. | 30000 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_projectsA | Open projects from the Freelancehunt feed, newest first, 10 per page. Only |
| find_projectsA | Walks several feed pages and filters them locally on criteria the API cannot express: keywords, budget floor, bid-count ceiling and employer quality. Use this to surface the few projects worth a bid instead of reading the whole feed. |
| get_projectB | Full details of one project, including the employer block and bid count. |
| list_my_projectsA | Projects published by the authenticated account. Requires an employer profile — a freelancer-only account gets HTTP 400 from this endpoint. |
| create_projectA | Publishes a new project as an employer. Costs money or quota on the platform — confirm with the user before calling. |
| update_projectA | Edits a project that has not received bids yet. Once bids exist, use project_action with action |
| project_actionA | Employer-side lifecycle actions: |
| list_my_bidsB | Bids placed by the authenticated freelancer, including their status and winner flag. |
| list_project_bidsA | Bids placed on one project — useful for sizing up the competition. The endpoint is documented but answers 404 for accounts that do not own the project. |
| add_bidA | Places a real bid on behalf of the token owner. Bids are a finite monthly resource and the employer sees them immediately, so confirm the amount, duration and comment with the user before calling. Note the API expects |
| bid_actionA |
|
| get_my_profileA | The authenticated account: rating, per-skill ranking positions, Plus status, verification state and completed-project counters. |
| get_freelancerA | Public profile of one freelancer by id. |
| get_employerA | Public profile of one employer by id. |
| get_reviewsA | Reviews with their per-axis grades: communication, brief definition, payment and scope stability. For an employer these grades are the strongest available signal of how the project will actually go — check them before bidding. |
| list_profilesA | Directory listing. Documented in the API but currently answers 404 for regular tokens — kept for completeness and in case access is restored. |
| get_feedB | Notifications for the authenticated account: bid replies, project updates, messages. |
| mark_feed_readA | Clears the unread state of the activity feed. |
| list_threadsC | Conversation threads of the authenticated account. |
| get_threadB | Messages inside one thread. |
| send_messageA | Posts a message into an existing thread, or opens a new thread with |
| thread_actionA |
|
| list_workspacesA | Active project or contest workspaces of the authenticated account. |
| get_workspaceC | One workspace: agreed conditions, deadline and current state. |
| workspace_actionA | Drives the working agreement: |
| complete_contest_workspaceB | Closes a contest workspace as completed. |
| list_skillsA | The full skill catalogue with ids and groups. Skill ids are the only feed filter the API actually enforces, so start here before calling list_projects or find_projects. Names come back in the language set by FREELANCEHUNT_LANG. |
| list_locationsB | Geography reference. Documented in the API but currently answers 404 for regular tokens — kept for completeness and in case access is restored. |
| list_contestsA | Contest listings. Documented in the API but currently answers 404 for regular tokens — kept for completeness and in case access is restored. |
| get_contestB | One contest by id. |
| contest_actionA |
|
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 31 tools
Most tools map cleanly to a distinct resource and action, and the generic *_action tools are separated by their target resource. There is minor overlap between workspace_action and complete_contest_workspace, and a few stubbed 404 tools add noise, but the descriptions generally resolve ambiguity.
The set is predominantly snake_case verb_noun: list_*, get_*, create_project, update_project, add_bid, send_message. The *_action batch tools are a recognizable pattern, though they are noun_noun rather than verb_noun, and complete_contest_workspace / mark_feed_read deviate slightly.
With 31 tools the surface is too large for the rubric's 25+ threshold. Several tools are documented but return 404 for normal tokens, so they inflate the count without adding usable capability.
Core lifecycles are well covered: projects support list/find/get/create/update/actions, bids support add/list/action, workspaces have list/get/action, and threads have list/get/send/action. Missing contest creation, working profile search, and the 404 stubs keep it from a perfect score.