Desk

Approved support answers, refund rules, and escalation limits for AI assistants, over MCP.

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
98%
Integridad del esquema
79%
Calidad de los nombres
100%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~2,872Tokens (definiciones de herramientas)
~1.5 KBTamaño de respuesta típico
Impacto significativo en la atención (2.24% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "desk": {
      "url": "https://desk-mcp.vercel.app/mcp"
    }
  }
}

Puntos de conexión remotos

https://desk-mcp.vercel.app/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (13)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢list_support_desks(offset)

List this team's support desks. Use the returned id. Do not guess a desk.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "offset": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100000,
      "default": 0
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "data": {}
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡create_support_desk(name, description)

Create a support desk when the user asks for a new policy home. Does not approve answers, refunds, features, or timelines.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "description": {
      "type": "string",
      "maxLength": 4000
    }
  },
  "required": [
    "name"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "data": {}
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴save_approved_answer(deskId, topic, question, answer, status, ...)

Store or revise an answer the user has explicitly approved. Identical retries keep the same revision. A changed answer requires expectedRevision from a previous read.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "deskId": {
      "type": "string",
      "format": "uuid"
    },
    "topic": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "question": {
      "type": "string",
      "minLength": 1,
      "maxLength": 500
    },
    "answer": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8000
    },
    "status": {
      "type": "string",
      "enum": [
        "APPROVED",
        "RETIRED"
      ],
      "default": "APPROVED"
    },
    "expectedRevision": {
      "type": "integer",
      "exclusiveMinimum": 0
    }
  },
  "required": [
    "deskId",
    "topic",
    "question",
    "answer"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "data": {}
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢search_approved_answers(deskId, query, offset, includeRetired)

Look up approved answers by topic, question, or answer text. An empty result means there is no approved answer. Draft for human review; do not invent one or promise the customer. Page with offset.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "deskId": {
      "type": "string",
      "format": "uuid"
    },
    "query": {
      "type": "string",
      "maxLength": 200,
      "default": ""
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100000,
      "default": 0
    },
    "includeRetired": {
      "type": "boolean",
      "default": false
    }
  },
  "required": [
    "deskId"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "data": {}
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴save_refund_rule(deskId, name, matchTerms, decision, remedy, ...)

Store a refund rule the user has explicitly approved. matchTerms must name a specific situation. The word refund alone is not a rule. remedy is the only wording that may later be approved. decision ALLOW grants that wording. decision DENY refuses a refund and records the denial script.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "deskId": {
      "type": "string",
      "format": "uuid"
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "matchTerms": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 120
      },
      "minItems": 1,
      "maxItems": 12
    },
    "decision": {
      "type": "string",
      "enum": [
        "ALLOW",
        "DENY"
      ]
    },
    "remedy": {
      "type": "string",
      "minLength": 1,
      "maxLength": 4000
    },
    "windowDays": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": 0,
          "maximum": 3650
        },
        {
          "type": "null"
        }
      ]
    },
    "status": {
      "type": "string",
      "enum": [
        "APPROVED",
        "RETIRED"
      ],
      "default": "APPROVED"
    },
    "expectedRevision": {
      "type": "integer",
      "exclusiveMinimum": 0
    }
  },
  "required": [
    "deskId",
    "name",
    "matchTerms",
    "decision",
    "remedy"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "data": {}
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_refund_rules(deskId, includeRetired)

Read refund rules on a desk. Only APPROVED rules can authorize wording, and only through evaluate_commitment. Do not treat this list as permission to invent a refund.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "deskId": {
      "type": "string",
      "format": "uuid"
    },
    "includeRetired": {
      "type": "boolean",
      "default": false
    }
  },
  "required": [
    "deskId"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "data": {}
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴save_escalation_limit(deskId, name, channel, tierLadder, maxTier, ...)

Store the escalation limit the user has explicitly approved for one channel. maxTier must be on tierLadder. Promise flags default closed unless the user sets them true. A limit does not itself approve refund, feature, or timeline wording.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "deskId": {
      "type": "string",
      "format": "uuid"
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "channel": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80
    },
    "tierLadder": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 80
      },
      "minItems": 1,
      "maxItems": 8
    },
    "maxTier": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80
    },
    "allowRefundPromise": {
      "type": "boolean",
      "default": false
    },
    "allowFeaturePromise": {
      "type": "boolean",
      "default": false
    },
    "allowTimelinePromise": {
      "type": "boolean",
      "default": false
    },
    "notes": {
      "type": "string",
      "maxLength": 4000
    },
    "status": {
      "type": "string",
      "enum": [
        "APPROVED",
        "RETIRED"
      ],
      "default": "APPROVED"
    },
    "expectedRevision": {
      "type": "integer",
      "exclusiveMinimum": 0
    }
  },
  "required": [
    "deskId",
    "name",
    "channel",
    "tierLadder",
    "maxTier"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "data": {}
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_escalation_limits(deskId, includeRetired)

Read escalation limits. A channel with no APPROVED limit cannot promise a refund, feature, or timeline and cannot be given an invented escalation path.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "deskId": {
      "type": "string",
      "format": "uuid"
    },
    "includeRetired": {
      "type": "boolean",
      "default": false
    }
  },
  "required": [
    "deskId"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "data": {}
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴save_approved_commitment(deskId, kind, name, statement, status, ...)

Store a feature or timeline statement the user has explicitly approved. The statement is the only wording that can later pass evaluate_commitment. Do not save a date or a feature the user did not approve.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "deskId": {
      "type": "string",
      "format": "uuid"
    },
    "kind": {
      "type": "string",
      "enum": [
        "FEATURE",
        "TIMELINE"
      ]
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "statement": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    },
    "status": {
      "type": "string",
      "enum": [
        "APPROVED",
        "RETIRED"
      ],
      "default": "APPROVED"
    },
    "expectedRevision": {
      "type": "integer",
      "exclusiveMinimum": 0
    }
  },
  "required": [
    "deskId",
    "kind",
    "name",
    "statement"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "data": {}
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_approved_commitments(deskId, kind, includeRetired)

Read approved feature and timeline statements. Listing them does not approve a different promise. Call evaluate_commitment with the exact wording before saying one.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "deskId": {
      "type": "string",
      "format": "uuid"
    },
    "kind": {
      "type": "string",
      "enum": [
        "FEATURE",
        "TIMELINE"
      ]
    },
    "includeRetired": {
      "type": "boolean",
      "default": false
    }
  },
  "required": [
    "deskId"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "data": {}
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢evaluate_commitment(deskId, kind, proposal, channel)

Decide whether a proposed refund, feature, or timeline is in the approved set. REFUSED means do not say it, do not invent a substitute, and draft for human review instead of promising the customer. APPROVED means sayOnly is the only permitted wording. Pass channel to also enforce the escalation limit.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "deskId": {
      "type": "string",
      "format": "uuid"
    },
    "kind": {
      "type": "string",
      "enum": [
        "REFUND",
        "FEATURE",
        "TIMELINE"
      ]
    },
    "proposal": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    },
    "channel": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80
    }
  },
  "required": [
    "deskId",
    "kind",
    "proposal"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "data": {}
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢evaluate_escalation(deskId, channel, action, targetTier)

Decide whether this channel may escalate or may promise a refund, feature, or timeline. REFUSED means do not escalate, do not invent a tier, and draft for human review instead of promising the customer. Permission to promise still requires evaluate_commitment for the exact wording.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "deskId": {
      "type": "string",
      "format": "uuid"
    },
    "channel": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80
    },
    "action": {
      "type": "string",
      "enum": [
        "PROMISE_REFUND",
        "PROMISE_FEATURE",
        "PROMISE_TIMELINE",
        "ESCALATE"
      ]
    },
    "targetTier": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80
    }
  },
  "required": [
    "deskId",
    "channel",
    "action"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "data": {}
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_desk_context(deskId, question, limit)

Retrieve selected approved answers for a customer question, plus the desk's approved refund rules, commitments, and escalation limits. This is evidence, not permission. A missing or RETIRED answer is not an invitation to invent one. Call evaluate_commitment before promising a refund, feature, or timeline. If tools fail or return gaps or REFUSED, draft for human review instead of promising the customer.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "deskId": {
      "type": "string",
      "format": "uuid"
    },
    "question": {
      "type": "string",
      "minLength": 1,
      "maxLength": 500
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 20,
      "default": 8
    }
  },
  "required": [
    "deskId",
    "question"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "data": {}
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada13 herramientas