Desk by Ouroboros Apps
REMOTE · DESK-MCP-CONTINUITY2.VERCEL.APP
Customer support answers, refund rules, and escalation limits for AI assistants
Available components
Last scanned (20 hours ago)
Scores higher than 94% of remote servers
Reachable. Last reached 4 Nov 2026.
Category CRM and Sales
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security94
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token. View diagnostics → Pass
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
- The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents. View diagnostics → Partial
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability70
- AI-judged instruction clarity (good).Pass
- Tool/resource definitions use about 1352 tokens (~104/item across 13 items; 13 tools + 0 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management83
- Stability observed for 25 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage71
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 0% of tool parameters carry a description.Fail
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety88
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- 1 of 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "list_refund_rules" implies "refund" and declares readOnlyHint instead, contradicting what its own name says it does. See how to fix → Partial
- An AI judge read all 14 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 4 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.
- 2 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 73 to 77. That category is still filling its 30-day observation window: 22 days of observed history at the previous scan, 23 at this one. The score rises as the window fills, whether or not the server changes.
- 30 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 63 to 67. That category is still filling its 30-day observation window: 19 days of observed history at the previous scan, 20 at this one. The score rises as the window fills, whether or not the server changes.
- 28 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 57 to 60. That category is still filling its 30-day observation window: 17 days of observed history at the previous scan, 18 at this one. The score rises as the window fills, whether or not the server changes.
- 26 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 50 to 53. That category is still filling its 30-day observation window: 15 days of observed history at the previous scan, 16 at this one. The score rises as the window fills, whether or not the server changes.
- 24 Oct 26 +1
- The server rewrote its instructions, which are the text every model session reads security
- The server changed its declared name: Desk → Rampart security
- Server version: 0.1.0 → 1.0.6 functional
- 21 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.
- 19 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 4 Nov 2026 · Probed https://desk-mcp-continuity2.vercel.app/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=*.vercel.app | CN=WR1,O=Google Trust Services,C=US | 31 Oct 2026 | 29 Jan 2027 | RSA 2048 | SHA256-RSA | 9c5f0e6a35c955e113044c86848e4cd5 |
| SANs: *.vercel.app | ||||||
| CN=WR1,O=Google Trust Services,C=US (CA) | CN=GTS Root R1,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | RSA 2048 | SHA256-RSA | 7fd9e2c2d2048a0474b627a26d0868a7 |
| CN=GTS Root R1,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 19 Jun 2020 | 28 Jan 2028 | RSA 4096 | SHA256-RSA | 77bd0d6cdb36f91aea210fc4f058d30d |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of desk-mcp-continuity2.vercel.app. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| app. | present | 23684 | 8 | Verified |
| vercel.app. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication Enforced and verified
The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.
| Result | Enforced and verified |
|---|---|
| Enforced | On tool calls |
| HTTP status | 200 |
WWW-Authenticate challenge Bearer resource_metadata="https://desk-mcp-continuity2.vercel.app/.well-known/oauth-protected-resource/mcp"
Bearer resource_metadata="https://desk-mcp-continuity2.vercel.app/.well-known/oauth-protected-resource/mcp" | Header | Value |
|---|---|
| strict-transport-security | max-age=63072000; includeSubDomains; preload |
| x-content-type-options | nosniff |
| x-frame-options | DENY |
| referrer-policy | no-referrer |
Protected resource metadata
| Document | https://desk-mcp-continuity2.vercel.app/.well-known/oauth-protected-resource/mcp |
|---|---|
| Retrieved | Yes |
| Resource | https://desk-mcp-continuity2.vercel.app/mcp |
| Authorisation server | https://rwmcpgsdugkishzsgxnw.supabase.co/auth/v1 |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://desk-mcp-continuity2.vercel.app/mcp | Verified | 200 | |
| http (plaintext) | http://desk-mcp-continuity2.vercel.app/mcp | HTTPS enforced | 308 | https://desk-mcp-continuity2.vercel.app/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
create_support_desk create support desk ~50
Create a support desk when the user asks for a new policy home. Does not approve answers, refunds, features, or timelines.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | – | – |
| name | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | – | – |
No examples provided.
evaluate_commitment evaluate commitment ~99
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.
| Name | Type | Req | Description |
|---|---|---|---|
| channel | string | – | – |
| deskId | string | yes | – |
| kind | string | yes | – |
| proposal | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | – | – |
No examples provided.
evaluate_escalation evaluate escalation ~94
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.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | – |
| channel | string | yes | – |
| deskId | string | yes | – |
| targetTier | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | – | – |
No examples provided.
get_desk_context get desk context ~111
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.
| Name | Type | Req | Description |
|---|---|---|---|
| deskId | string | yes | – |
| limit | integer | – | – |
| question | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | – | – |
No examples provided.
list_approved_commitments list approved commitments ~63
Read approved feature and timeline statements. Listing them does not approve a different promise. Call evaluate_commitment with the exact wording before saying one.
| Name | Type | Req | Description |
|---|---|---|---|
| deskId | string | yes | – |
| includeRetired | boolean | – | – |
| kind | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | – | – |
No examples provided.
list_escalation_limits list escalation limits ~57
Read escalation limits. A channel with no APPROVED limit cannot promise a refund, feature, or timeline and cannot be given an invented escalation path.
| Name | Type | Req | Description |
|---|---|---|---|
| deskId | string | yes | – |
| includeRetired | boolean | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | – | – |
No examples provided.
list_refund_rules list refund rules ~61
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.
| Name | Type | Req | Description |
|---|---|---|---|
| deskId | string | yes | – |
| includeRetired | boolean | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | – | – |
No examples provided.
list_support_desks list support desks ~34
List this team's support desks. Use the returned id. Do not guess a desk.
| Name | Type | Req | Description |
|---|---|---|---|
| offset | integer | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | – | – |
No examples provided.
save_approved_answer save approved answer ~84
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.
| Name | Type | Req | Description |
|---|---|---|---|
| answer | string | yes | – |
| deskId | string | yes | – |
| expectedRevision | integer | – | – |
| question | string | yes | – |
| status | string | – | – |
| topic | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | – | – |
No examples provided.
save_approved_commitment save approved commitment ~95
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.
| Name | Type | Req | Description |
|---|---|---|---|
| deskId | string | yes | – |
| expectedRevision | integer | – | – |
| kind | string | yes | – |
| name | string | yes | – |
| statement | string | yes | – |
| status | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | – | – |
No examples provided.
save_escalation_limit save escalation limit ~146
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.
| Name | Type | Req | Description |
|---|---|---|---|
| allowFeaturePromise | boolean | – | – |
| allowRefundPromise | boolean | – | – |
| allowTimelinePromise | boolean | – | – |
| channel | string | yes | – |
| deskId | string | yes | – |
| expectedRevision | integer | – | – |
| maxTier | string | yes | – |
| name | string | yes | – |
| notes | string | – | – |
| status | string | – | – |
| tierLadder | array | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | – | – |
No examples provided.
save_refund_rule save refund rule ~125
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.
| Name | Type | Req | Description |
|---|---|---|---|
| decision | string | yes | – |
| deskId | string | yes | – |
| expectedRevision | integer | – | – |
| matchTerms | array | yes | – |
| name | string | yes | – |
| remedy | string | yes | – |
| status | string | – | – |
| windowDays | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | – | – |
No examples provided.
search_approved_answers search approved answers ~82
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.
| Name | Type | Req | Description |
|---|---|---|---|
| deskId | string | yes | – |
| includeRetired | boolean | – | – |
| offset | integer | – | – |
| query | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | – | – |
No examples provided.
How do I install the Desk by Ouroboros Apps MCP server?
Desk by Ouroboros Apps is a hosted endpoint at https://desk-mcp-continuity2.vercel.app/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · desk-mcp-continuity2.vercel.app
claude mcp add --transport http lahutchins91-desk 'https://desk-mcp-continuity2.vercel.app/mcp'
What is the Desk by Ouroboros Apps MCP server?
Desk by Ouroboros Apps is an MCP server listed in the public MCP registry as io.github.LAHutchins91/desk. Customer support answers, refund rules, and escalation limits for AI assistants. This page covers its hosted endpoint (https://desk-mcp-continuity2.vercel.app/mcp).
Is the Desk by Ouroboros Apps MCP server safe to use?
Desk by Ouroboros Apps scores 87 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Desk by Ouroboros Apps MCP server expose?
Desk by Ouroboros Apps exposes 13 tools: list_support_desks, create_support_desk, save_approved_answer, search_approved_answers, save_refund_rule, and 8 more. Their descriptions and schemas cost roughly 1,101 tokens of context every time the server is loaded.
Does the Desk by Ouroboros Apps MCP server require authentication?
Yes. Desk by Ouroboros Apps asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.
Is the Desk by Ouroboros Apps MCP server still maintained?
Desk by Ouroboros Apps is still listed as active in the MCP registry. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.