QuotaPath MCP by usefulapi
Read deals, payouts, plans, teams and users, and create, update or delete deals in QuotaPath.
Should I use this
Quality & Safety
Findings (2)
- LOWin quotapath_list_resolved_payouts
- LOWin quotapath_list_unresolved_payouts
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": {
"quotapath": {
"url": "https://quotapath.usefulapi.io/mcp"
}
}
}Remote endpoints
https://quotapath.usefulapi.io/mcpstreamable-httpWhat it can do
Tool inventory
Tools (12)
🟢quotapath_list_deals(id, integration_id, path_id, user_email, limit, ...)
List deals in the QuotaPath workspace. Filter by id, integration_id (your system's id), path_id or user_email (deal owner). Uses GET /v1/deal/.
Input Schema
{
"type": "object",
"properties": {
"id": {
"description": "Filter by QuotaPath deal id.",
"type": "string"
},
"integration_id": {
"description": "Filter by your system's id for the deal.",
"type": "string"
},
"path_id": {
"description": "Filter by path uuid.",
"type": "string"
},
"user_email": {
"description": "Filter by deal owner email.",
"type": "string"
},
"limit": {
"description": "Maximum records to return (vendor default when omitted).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"offset": {
"description": "Records to skip, for paging.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢quotapath_get_deal(deal_id)
Get one deal by uuid, with its deal values, metadata and state. Uses GET /v1/deal/{uuid}/.
Input Schema
{
"type": "object",
"properties": {
"deal_id": {
"type": "string",
"minLength": 1,
"description": "The deal uuid (from quotapath_list_deals)."
}
},
"required": [
"deal_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴quotapath_create_deal(name, user_email, deal_values, integration_id, date, ...)
Create one deal in QuotaPath, with its owner, amounts per path and state. This changes commission data: confirm the owner, path ids and amounts first. Uses POST /v1/deal/.
Input Schema
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"description": "Deal name (up to 255 characters)."
},
"user_email": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"description": "Email of the deal owner (a QuotaPath user)."
},
"deal_values": {
"minItems": 1,
"type": "array",
"items": {
"type": "object",
"properties": {
"value": {
"type": "number",
"description": "Deal amount as a number."
},
"path_id": {
"type": "string",
"minLength": 1,
"description": "Path uuid this amount applies to (from quotapath_list_plans)."
}
},
"required": [
"value",
"path_id"
]
},
"description": "Amounts per path. Each needs path_id and value."
},
"integration_id": {
"description": "Your system's id for this deal. Keeps the deal linked to your CRM record.",
"type": "string",
"minLength": 1
},
"date": {
"description": "Deal date (yyyy-mm-dd).",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"state": {
"description": "Deal state.",
"type": "string",
"enum": [
"open",
"closed",
"lost"
]
},
"admin_locked": {
"description": "Lock the deal so only admins can change it.",
"type": "boolean"
},
"metadata": {
"type": "object",
"properties": {
"date_field_1": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Date as yyyy-mm-dd."
},
"date_field_2": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Date as yyyy-mm-dd."
},
"number_field_1": {
"type": "string",
"description": "Decimal number as a string."
}
},
"required": [
"date_field_1",
"date_field_2",
"number_field_1"
],
"description": "Optional custom fields used by the plan's paths."
}
},
"required": [
"name",
"user_email",
"deal_values"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴quotapath_bulk_create_deals(deals)
Create many deals in one call. Each item uses the same fields as quotapath_create_deal. This changes commission data. Uses POST /v1/deal/bulk/.
Input Schema
{
"type": "object",
"properties": {
"deals": {
"minItems": 1,
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"description": "Deal name (up to 255 characters)."
},
"user_email": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"description": "Email of the deal owner (a QuotaPath user)."
},
"deal_values": {
"minItems": 1,
"type": "array",
"items": {
"type": "object",
"properties": {
"value": {
"type": "number",
"description": "Deal amount as a number."
},
"path_id": {
"type": "string",
"minLength": 1,
"description": "Path uuid this amount applies to (from quotapath_list_plans)."
}
},
"required": [
"value",
"path_id"
]
},
"description": "Amounts per path. Each needs path_id and value."
},
"integration_id": {
"description": "Your system's id for this deal. Keeps the deal linked to your CRM record.",
"type": "string",
"minLength": 1
},
"date": {
"description": "Deal date (yyyy-mm-dd).",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"state": {
"description": "Deal state.",
"type": "string",
"enum": [
"open",
"closed",
"lost"
]
},
"admin_locked": {
"description": "Lock the deal so only admins can change it.",
"type": "boolean"
},
"metadata": {
"type": "object",
"properties": {
"date_field_1": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Date as yyyy-mm-dd."
},
"date_field_2": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Date as yyyy-mm-dd."
},
"number_field_1": {
"type": "string",
"description": "Decimal number as a string."
}
},
"required": [
"date_field_1",
"date_field_2",
"number_field_1"
],
"description": "Optional custom fields used by the plan's paths."
}
},
"required": [
"name",
"user_email",
"deal_values"
]
},
"description": "Deals to create."
}
},
"required": [
"deals"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡quotapath_update_deal(deal_id, name, user_email, deal_values, integration_id, ...)
Change some fields of one deal. Send only the fields to change; the others stay as they are. Uses PATCH /v1/deal/{uuid}/.
Input Schema
{
"type": "object",
"properties": {
"deal_id": {
"type": "string",
"minLength": 1,
"description": "The deal uuid (from quotapath_list_deals)."
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"description": "Deal name (up to 255 characters)."
},
"user_email": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"description": "Email of the deal owner (a QuotaPath user)."
},
"deal_values": {
"minItems": 1,
"type": "array",
"items": {
"type": "object",
"properties": {
"value": {
"type": "number",
"description": "Deal amount as a number."
},
"path_id": {
"type": "string",
"minLength": 1,
"description": "Path uuid this amount applies to (from quotapath_list_plans)."
}
},
"required": [
"value",
"path_id"
]
},
"description": "Amounts per path. Each needs path_id and value."
},
"integration_id": {
"description": "Your system's id for this deal. Keeps the deal linked to your CRM record.",
"type": "string",
"minLength": 1
},
"date": {
"description": "Deal date (yyyy-mm-dd).",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"state": {
"description": "Deal state.",
"type": "string",
"enum": [
"open",
"closed",
"lost"
]
},
"admin_locked": {
"description": "Lock the deal so only admins can change it.",
"type": "boolean"
},
"metadata": {
"type": "object",
"properties": {
"date_field_1": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Date as yyyy-mm-dd."
},
"date_field_2": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Date as yyyy-mm-dd."
},
"number_field_1": {
"type": "string",
"description": "Decimal number as a string."
}
},
"required": [
"date_field_1",
"date_field_2",
"number_field_1"
],
"description": "Optional custom fields used by the plan's paths."
}
},
"required": [
"deal_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴quotapath_delete_deal(deal_id, confirm)
Remove one deal from QuotaPath. This cannot be undone through this server. Check the deal with quotapath_get_deal first, and get the user's OK. Uses DELETE /v1/deal/{uuid}/.
Input Schema
{
"type": "object",
"properties": {
"deal_id": {
"type": "string",
"minLength": 1,
"description": "The deal uuid (from quotapath_list_deals)."
},
"confirm": {
"type": "boolean",
"const": true,
"description": "Must be true. Set it only after the user confirms this deletion."
}
},
"required": [
"deal_id",
"confirm"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢quotapath_list_payouts(updated_since, limit, offset)
List all payouts, resolved and unresolved. Use updated_since to fetch only changes since a Unix time in seconds. Uses GET /v1/payout/.
Input Schema
{
"type": "object",
"properties": {
"updated_since": {
"description": "Unix timestamp in seconds. Returns records updated after it.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"limit": {
"description": "Maximum records to return (vendor default when omitted).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"offset": {
"description": "Records to skip, for paging.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢quotapath_list_resolved_payouts(updated_since, limit, offset)
List resolved payouts, the ones that can go to your external software systems. Use updated_since to fetch only changes. Uses GET /v1/payout/resolved/.
Input Schema
{
"type": "object",
"properties": {
"updated_since": {
"description": "Unix timestamp in seconds. Returns records updated after it.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"limit": {
"description": "Maximum records to return (vendor default when omitted).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"offset": {
"description": "Records to skip, for paging.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢quotapath_list_unresolved_payouts(limit, offset)
List payouts that are not resolved yet. Uses GET /v1/payout/unresolved/.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"description": "Maximum records to return (vendor default when omitted).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"offset": {
"description": "Records to skip, for paging.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢quotapath_list_plans(limit, offset)
List compensation plans with their assignments and paths. Path uuids from here go into deal values. Uses GET /v1/plan/.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"description": "Maximum records to return (vendor default when omitted).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"offset": {
"description": "Records to skip, for paging.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢quotapath_list_teams(limit, offset)
List teams in the QuotaPath workspace with their current members and managers. Uses GET /v1/team/.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"description": "Maximum records to return (vendor default when omitted).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"offset": {
"description": "Records to skip, for paging.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢quotapath_list_users(limit, offset)
List users in the QuotaPath workspace (name and email). Use the email as user_email on a deal. Uses GET /v1/user/.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"description": "Maximum records to return (vendor default when omitted).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"offset": {
"description": "Records to skip, for paging.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Evidence