Consultant.dev
Server Details
Search live consulting, contractor, and freelance assignments worldwide. Account required.
- Status
- Healthy
- Uptime
- 38.0% over 69 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- Consultant.dev
- Claude
- –
TDQS
Scored across 4 tools
Each tool has a clearly distinct purpose: get_assignment fetches one assignment by ID, search_assignments searches live listings, my_matches reads saved scored matches, and upload_cv manages the CV document. There is no meaningful overlap that would cause misselection.
Three tools follow a consistent verb_noun pattern (get_assignment, search_assignments, upload_cv). my_matches deviates as a possessive noun phrase, but it remains readable and the overall convention is mostly predictable.
Four tools are well-scoped for the server's search, matching, and CV-upload purpose. Each tool earns its place, and there is no bloat or obvious missing core operation.
The surface covers searching assignments, fetching assignment details, uploading a CV, and viewing scored matches. Minor gaps exist around CV deletion/status and applying to or saving assignments, but the described workflows can be completed.
Available Tools
4 toolsget_assignmentGet assignment detailsAInspect
Use this tool when a user provides an assignment ID and asks for its full details.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The job/assignment ID (1-128 letters, numbers, underscores, or hyphens) |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| url | No | |
| role | No | |
| title | No | |
| posted | No | |
| skills | No | |
| company | No | |
| currency | No | |
| deadline | No | |
| location | No | |
| provider | No | |
| rate_max | No | |
| rate_unit | No | |
| work_mode | No | |
| description | No | |
| company_masked | No | |
| employment_type | No | |
| seniority_level | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare openWorldHint=false, destructiveHint=false, and (notably) readOnlyHint=false, so the safety profile is covered by structured fields. The description adds no behavioral context at all — no note on whether the flag-disabled readOnlyHint has practical consequences, no permission or scope information — so it earns little credit here.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the usage trigger and containing no redundant or filler content. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool with a full input schema and an output schema that documents the return shape, the description covers everything an agent needs to call it. The only missing piece is explicit differentiation from search_assignments.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema coverage at 100% and a single fully documented 'id' parameter (pattern and length constraints included), the schema carries the parameter semantics. The description only restates that an assignment ID is required, adding nothing beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (assignment) and the operation (returning its full details by ID), which is a clear verb+resource pair. It does not, however, distinguish itself from the sibling search_assignments, leaving the agent to infer the difference between a lookup-by-ID and a search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a concrete trigger condition: the user supplies an assignment ID and wants the complete record. This implicitly routes away from search_assignments, but no alternative or exclusion is named explicitly, so it stops short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
my_matchesList assignments matched to my CVAInspect
List the assignments consultant.dev has scored against the signed-in user's CV, highest scoring first. Use this tool when the user asks which assignments suit them, fit their profile, or match their CV. Requires a CV to have been uploaded first, and requires the account holder to have accepted AI processing of their CV on consultant.dev. Reads saved data only: it stores nothing, sends no email, and does not change the CV on file.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many matches to return (default 10) |
Output Schema
| Name | Required | Description |
|---|---|---|
| total | Yes | How many live matches exist for this CV |
| matches | Yes | |
| returned | Yes | How many are included in `matches` |
| last_scored | No | When matching last completed, ISO 8601 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description asserts 'Reads saved data only: it stores nothing, sends no email, and does not change the CV on file,' but the annotations declare readOnlyHint=false, i.e. the tool is not guaranteed read-only. The stated side-effect profile directly conflicts with the structured safety hint an agent would otherwise rely on.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, tightly front-loaded: what it returns and ordering first, then triggering conditions, then prerequisites and side effects. No filler and nothing repeated from the schema or title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-optional-parameter list tool with an output schema, the description covers everything an agent needs beyond structure: ordering semantics, the CV-upload and AI-consent preconditions, and the no-email/no-CV-change behavior. Return-value shape is correctly left to the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single `limit` parameter already documents its default (10) and 1-25 bounds, so the schema carries the full burden. The description adds no parameter-level detail (e.g. what happens if limit exceeds available matches), which is the baseline-3 case.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource with scope and ordering: 'List the assignments consultant.dev has scored against the signed-in user's CV, highest scoring first.' That is enough to distinguish it from get_assignment/search_assignments, but it never names a sibling or explicitly contrasts with refresh_matches, which is the closest neighbor in intent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit trigger ('when the user asks which assignments suit them, fit their profile, or match their CV') plus prerequisites (CV uploaded, AI-processing consent accepted). It does not say when NOT to use it or point to refresh_matches for recomputation, which is the main remaining inference the agent must make.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_assignmentsSearch assignmentsAInspect
Search live assignments for independent contractors, consultants, and freelancers worldwide across all fields. Use this tool when a user asks for assignments, contract roles, freelance gigs, consulting work, or 'uppdrag'/'konsultuppdrag' in a city, region, or country. Pass a city or country name as location to filter by geography; the backend resolves city names to coordinates for geographic filtering (e.g. 'London', 'Berlin', 'Singapore', 'Stockholm', 'Remote').
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | 1-based page number to return | |
| role | No | Filter by job role | |
| sort | No | Ordering for the returned assignments | quality |
| limit | No | Maximum number of assignments to return | |
| query | No | Search query for job title, description, or skills | |
| skills | No | Filter by one or more skills | |
| location | No | City or region name (e.g., 'London', 'Berlin', 'Singapore', 'Stockholm', 'Remote') | |
| seniority | No | Filter by seniority level | |
| includeRemote | No | Include assignments marked as remote | |
| employment_type | No | Filter by employment type |
Output Schema
| Name | Required | Description |
|---|---|---|
| page | No | |
| total | No | |
| hasMore | No | |
| results | No | |
| browse_url | No | |
| totalPages | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description describes a read-only 'Search' operation, but the annotations declare readOnlyHint=false, directly contradicting the read-only implication. Although it usefully explains that the backend resolves city names to coordinates, this behavioral detail cannot offset the core contradiction about whether the tool has side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three focused sentences with the core purpose front-loaded, followed by usage context and a parameter behavior note. No sentences are wasted, though the location examples duplicate what is already in the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter, zero-required search tool with an output schema and full schema description coverage, the description supplies purpose, trigger conditions, and location-resolution behavior. It omits pagination/sorting guidance and does not acknowledge the readOnlyHint inconsistency.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds extra semantic value by explaining that the backend resolves a city or country name into coordinates for geographic filtering, clarifying the `location` parameter's behavior beyond the schema's example list.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Search') and resource ('live assignments for independent contractors, consultants, and freelancers worldwide across all fields'), and distinguishes itself from siblings like get_assignment (single-item retrieval) by being a broad discovery tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use it ('when a user asks for assignments, contract roles, freelance gigs, consulting work, or ‘uppdrag’/‘konsultuppdrag’'), including multilingual keyword triggers and geographic scoping. It does not, however, name alternative siblings or state when NOT to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upload_cvUpload a CV for assignment matchingADestructiveInspect
Upload the user's CV (resume) to consultant.dev so live assignments can be scored against it. Use this tool when the user offers, attaches, or asks you to use their CV to find assignments that suit them. Pass the document as base64 in document_base64. If you have already read the document's text, pass it as cv_text as well, which avoids re-parsing the file. Matching starts immediately; call my_matches afterwards to read the scored results. Before using this tool, make sure the user actually wants their CV uploaded, and tell them what it does: the CV is stored on their consultant.dev account and REPLACES any CV already on file; it is processed by AI to extract skills and experience, which the account holder must have consented to once on consultant.dev (this tool cannot collect that consent and will say so if it is missing); and if the account has match alert emails switched on, a stored CV is used to generate those emails. The user can remove the CV or change their email settings at any time on consultant.dev.
| Name | Required | Description | Default |
|---|---|---|---|
| cv_text | No | The plain text of the CV, if you have already read it. Omit to have the PDF read server side. | |
| filename | Yes | The document's filename, e.g. 'cv.pdf' | |
| document_base64 | Yes | The CV file (PDF) encoded as base64 |
Output Schema
| Name | Required | Description |
|---|---|---|
| stage | No | Pipeline stage the upload reached, e.g. parsing |
| message | Yes | Human-readable summary of what happened |
| accepted | Yes | Whether the CV was accepted and matching started |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true; the description independently explains exactly what gets destroyed ('REPLACES any CV already on file'), that processing is AI-based, that prior account-level consent is required and cannot be collected here, and that match-alert emails may result. This is far beyond the safety hints and is exactly the kind of context a write tool needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action and the trigger, then the mechanics, then the caveats — a sensible ordering. It is on the long side for a three-parameter tool, but nearly every sentence carries distinct operational or consent information rather than padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the write's side effects, consent gating, follow-up read step, and reversibility (user can remove the CV in the account), which is complete for a destructive upload. An output schema exists, so no return-value explanation is required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so filename, document_base64, and cv_text are already documented in the schema, including the 'omit to have the PDF read server side' tradeoff. The description restates the base64 and cv_text guidance with only marginal added framing ('avoids re-parsing the file'), so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (upload the user's CV) plus the downstream effect (live assignments scored against it), which no sibling does. It is clearly distinguished from my_matches, which it explicitly names as the follow-up read tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit trigger ('when the user offers, attaches, or asks you to use their CV'), a precondition (confirm the user actually wants the upload and consent precedent exists), and the next tool to call (my_matches). Nothing about when to use or avoid this tool is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Removed
refresh_matches
5 tool updates
- First observed
get_assignment - First observed
my_matches - First observed
refresh_matches - First observed
search_assignments - First observed
upload_cv
Publisher details
- Operator
- Bytelope AB · Publisher source
- Operator website
- https://consultant.dev
- Vendor relationship
- First-party
- Documentation
- https://consultant.dev/mcp
- Trust center
- https://consultant.dev/account
- Restrictions
- https://consultant.dev/pricing
Related MCP Connectors
Search live jobs, read postings, and look up how employers hire and pay. Free, no sign-in.
Live job postings worldwide: search by role, country, remote, salary, visa; pay and demand stats.
Search live remote jobs worldwide: salary bands, work-from-anywhere eligibility, hourly refresh.
Search live job openings in many countries and languages, and read a full job ad.
Related MCP Servers
AlicenseNot gradedqualityCmaintenanceSearch live job postings from 30+ job boards, ATS feeds and public employment services, and watch for new matches.MIT- AlicenseNot gradedqualityCmaintenanceEnables agents to search and manage freelance listings, message authors, propose and respond to terms, and watch for new opportunities across six languages, with human approval for sensitive actions.MIT
- AlicenseAqualityDmaintenanceSearch current remote / work-from-home jobs by category, region, perk, or company — with ready-to-apply links.5MIT
- AlicenseNot gradedqualityBmaintenanceSearch job vacancies and freelance orders from freelance boards, RSS and Telegram, and retrieve market analytics via OpenRadar.484 npm23AGPL 3.0
Glama MCP Gateway
Add one secure layer between your agents and this server.