Desk

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

我該用這個嗎

品質與安全性

A
說明品質
98%
結構描述完整度
79%
命名品質
100%
汙染風險
100%
權限相符程度
100%
協定合規性
100%

根據工具定義與協定合規性的自動化分析。

上下文成本

~2,872Token(工具定義)
~1.5 KB典型回應大小
顯著的注意力影響(128k 上下文的 2.24%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `claude_desktop_config.json` 檔案:

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

遠端端點

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

它能做什麼

工具清單

工具(13)

🟢 唯讀🟡 寫入🔴 刪除⚪ 未知
🟢list_support_desks(offset)

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

輸入結構描述

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

輸出結構描述

{
  "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.

輸入結構描述

{
  "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#"
}

輸出結構描述

{
  "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.

輸入結構描述

{
  "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#"
}

輸出結構描述

{
  "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.

輸入結構描述

{
  "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#"
}

輸出結構描述

{
  "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.

輸入結構描述

{
  "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#"
}

輸出結構描述

{
  "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.

輸入結構描述

{
  "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#"
}

輸出結構描述

{
  "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.

輸入結構描述

{
  "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#"
}

輸出結構描述

{
  "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.

輸入結構描述

{
  "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#"
}

輸出結構描述

{
  "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.

輸入結構描述

{
  "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#"
}

輸出結構描述

{
  "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.

輸入結構描述

{
  "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#"
}

輸出結構描述

{
  "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.

輸入結構描述

{
  "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#"
}

輸出結構描述

{
  "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.

輸入結構描述

{
  "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#"
}

輸出結構描述

{
  "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.

輸入結構描述

{
  "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#"
}

輸出結構描述

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

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本13 個工具