Desk

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

使うべきか

品質と安全性

A
説明の品質
98%
スキーマの完全性
79%
命名の品質
100%
ポイズニングのリスク
100%
権限の一致
100%
プロトコルへの準拠
100%

ツール定義とプロトコルへの準拠に関する自動分析に基づいています。

コンテキストコスト

~2,872トークン数(ツール定義)
~1.5 KB一般的なレスポンスサイズ
注意への影響は大きい(128k コンテキストの 2.24%)

これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。

インストール

ワンクリックインストール

これを `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 件