Pathwize
Run data annotation and evaluation tasks with vetted domain experts: create, publish, get results.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
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": {
"pathwize": {
"url": "https://www.gopathwize.com/api/mcp"
}
}
}Remote endpoints
https://www.gopathwize.com/api/mcpstreamable-httpWhat it can do
Tool inventory
Tools (10)
🟢list_pools
Pools a task can run on: active curated pools plus your own, with member counts.
Input Schema
{
"type": "object",
"properties": {}
}🟢list_tasks
Your AI tasks, newest first, with status and item counts.
Input Schema
{
"type": "object",
"properties": {}
}🟢get_task(taskId)
One task with settings, classes, examples, qualification, reference item count and item counts by status.
Input Schema
{
"type": "object",
"properties": {
"taskId": {
"type": "string",
"format": "uuid"
}
},
"required": [
"taskId"
]
}🟡create_task(title, type, instructions, classes, annotation, ...)
Create a labeling or evaluation task as a draft; nobody is notified until publish_task. Typical order: list_pools, create_task with instructions, classes, rate, pool_ids and one example image per class, add_items, then publish_task after the user confirms.
Input Schema
{
"type": "object",
"properties": {
"title": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"type": {
"type": "string",
"enum": [
"data_labeling",
"preference",
"evaluation",
"red_team",
"domain"
],
"description": "Default data_labeling"
},
"instructions": {
"type": "string",
"description": "Instructions for the experts in Markdown. A table whose first column names the classes becomes the per-class briefing."
},
"classes": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 50,
"description": "Class names experts choose from"
},
"annotation": {
"type": "string",
"enum": [
"classification",
"bounding_box",
"segmentation",
"attributes"
],
"description": "Default classification"
},
"rate": {
"type": "number",
"minimum": 5,
"maximum": 500,
"description": "Hourly pay for the expert in EUR"
},
"pool_ids": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
},
"description": "Pools the task runs on (see list_pools)"
},
"members_only": {
"type": "boolean",
"description": "Only members of these pools see the task, even on public pools"
},
"domain": {
"type": "string"
},
"expertise": {
"type": "string",
"description": "What experts need to know, one line"
},
"multi_select": {
"type": "boolean"
},
"allow_note": {
"type": "boolean"
},
"allow_cant_tell": {
"type": "boolean",
"description": "Let experts skip an item without a class (default true)"
},
"seconds_per_item": {
"type": "integer",
"minimum": 1,
"maximum": 3600
},
"language": {
"type": "string",
"enum": [
"en",
"de"
],
"description": "Language of the instructions"
},
"deadline": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"qualification": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"sample": {
"type": "integer",
"minimum": 5,
"maximum": 1000,
"description": "Test items per candidate (default 50)"
},
"scoring": {
"type": "string",
"enum": [
"auto",
"customer"
],
"description": "auto: scored against reference labels; customer: you approve each candidate"
},
"threshold": {
"type": "integer",
"minimum": 50,
"maximum": 100,
"description": "Pass mark in percent"
},
"days_to_complete": {
"type": "integer",
"minimum": 1,
"maximum": 30
}
}
},
"examples": {
"type": "array",
"maxItems": 40,
"items": {
"type": "object",
"properties": {
"url": {
"type": "string",
"format": "uri"
},
"label": {
"type": "string"
}
},
"required": [
"url",
"label"
]
},
"description": "Example images by public URL with the class they show. Labeling tasks need one per class before they can open."
}
},
"required": [
"title"
]
}🟡update_task(taskId, title, instructions, classes, annotation, ...)
Change a task's settings; only the fields you pass change, examples are added. Does not publish.
Input Schema
{
"type": "object",
"properties": {
"taskId": {
"type": "string",
"format": "uuid"
},
"title": {
"type": "string"
},
"instructions": {
"type": "string",
"description": "Instructions for the experts in Markdown. A table whose first column names the classes becomes the per-class briefing."
},
"classes": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 50,
"description": "Class names experts choose from"
},
"annotation": {
"type": "string",
"enum": [
"classification",
"bounding_box",
"segmentation",
"attributes"
],
"description": "Default classification"
},
"rate": {
"type": "number",
"minimum": 5,
"maximum": 500,
"description": "Hourly pay for the expert in EUR"
},
"pool_ids": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
},
"description": "Pools the task runs on (see list_pools)"
},
"members_only": {
"type": "boolean",
"description": "Only members of these pools see the task, even on public pools"
},
"domain": {
"type": "string"
},
"expertise": {
"type": "string",
"description": "What experts need to know, one line"
},
"multi_select": {
"type": "boolean"
},
"allow_note": {
"type": "boolean"
},
"allow_cant_tell": {
"type": "boolean",
"description": "Let experts skip an item without a class (default true)"
},
"seconds_per_item": {
"type": "integer",
"minimum": 1,
"maximum": 3600
},
"language": {
"type": "string",
"enum": [
"en",
"de"
],
"description": "Language of the instructions"
},
"deadline": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"qualification": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"sample": {
"type": "integer",
"minimum": 5,
"maximum": 1000,
"description": "Test items per candidate (default 50)"
},
"scoring": {
"type": "string",
"enum": [
"auto",
"customer"
],
"description": "auto: scored against reference labels; customer: you approve each candidate"
},
"threshold": {
"type": "integer",
"minimum": 50,
"maximum": 100,
"description": "Pass mark in percent"
},
"days_to_complete": {
"type": "integer",
"minimum": 1,
"maximum": 30
}
}
},
"examples": {
"type": "array",
"maxItems": 40,
"items": {
"type": "object",
"properties": {
"url": {
"type": "string",
"format": "uri"
},
"label": {
"type": "string"
}
},
"required": [
"url",
"label"
]
},
"description": "Example images by public URL with the class they show. Labeling tasks need one per class before they can open."
}
},
"required": [
"taskId"
]
}🟡add_items(taskId, reference, items)
Add items by public URL; Pathwize copies the files into its own storage. reference: true adds them to the qualification set (optionally with gold_label for automatic scoring). Idempotent per id, up to 1000 per call.
Input Schema
{
"type": "object",
"properties": {
"taskId": {
"type": "string",
"format": "uuid"
},
"reference": {
"type": "boolean"
},
"items": {
"type": "array",
"minItems": 1,
"maxItems": 1000,
"items": {
"type": "object",
"properties": {
"url": {
"type": "string",
"format": "uri"
},
"id": {
"type": "string",
"description": "Defaults to the file name in the URL"
},
"mime": {
"type": "string",
"description": "Defaults from the file extension"
},
"gold_label": {
"type": "string"
}
},
"required": [
"url"
]
}
}
},
"required": [
"taskId",
"items"
]
}🟡publish_task(taskId, confirm)
Open a task for experts. This emails every expert in the task's pools once and cannot be undone, so call it only after the user explicitly confirmed, with confirm: true. Fails with a list of anything missing.
Input Schema
{
"type": "object",
"properties": {
"taskId": {
"type": "string",
"format": "uuid"
},
"confirm": {
"type": "boolean",
"const": true
}
},
"required": [
"taskId",
"confirm"
]
}⚪close_task(taskId, status)
closed ends the task, draft pauses it. Experts are not emailed.
Input Schema
{
"type": "object",
"properties": {
"taskId": {
"type": "string",
"format": "uuid"
},
"status": {
"type": "string",
"enum": [
"closed",
"draft"
]
}
},
"required": [
"taskId"
]
}🟢get_results(taskId, limit, starting_after, since)
Finished items with final label, agreement, notes and flags. Page with starting_after (the last item id).
Input Schema
{
"type": "object",
"properties": {
"taskId": {
"type": "string",
"format": "uuid"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 1000
},
"starting_after": {
"type": "string"
},
"since": {
"type": "string"
}
},
"required": [
"taskId"
]
}⚪open_dashboard(taskId)
One-time link that opens the Pathwize business dashboard signed in as this business (optionally one task). Single use, one hour; give it only to the user.
Input Schema
{
"type": "object",
"properties": {
"taskId": {
"type": "string",
"format": "uuid"
}
}
}Community
Evidence