Appty

Find open slots on any appty link and book solo providers. Providers manage bookings by API key.

我該用這個嗎

品質與安全性

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

發現項目(1)

  • LOWTool 'list_clients' description lacks action verb在 list_clients 中

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

上下文成本

~2,174Token(工具定義)
~1.4 KB典型回應大小
中等的注意力影響(128k 上下文的 1.70%)

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

安裝

一鍵安裝

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

{
  "mcpServers": {
    "appty": {
      "url": "https://getappty.com/api/mcp"
    }
  }
}

遠端端點

https://getappty.com/api/mcpstreamable-http

它能做什麼

工具清單

工具(11)

🟢 唯讀🟡 寫入🔴 刪除⚪ 未知
🟢get_provider(slug)

Public booking page for a provider slug: name, headline, time zone, currency, services, upcoming group sessions, and the booking URL. No client data.

輸入結構描述

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80,
      "description": "Booking link slug, the part after getappty.com/"
    }
  },
  "required": [
    "slug"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢find_open_slots(slug, service_id, from_date, to_date, timezone)

Open start times for a public service, using the same slot rules as the booking page. from_date and to_date are YYYY-MM-DD and at most 31 days apart. Each start is ISO 8601 with the provider's offset, plus a provider-local label.

輸入結構描述

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80,
      "description": "Booking link slug, the part after getappty.com/"
    },
    "service_id": {
      "type": "string",
      "format": "uuid",
      "description": "Service id from get_provider"
    },
    "from_date": {
      "type": "string",
      "description": "First day to include, YYYY-MM-DD"
    },
    "to_date": {
      "type": "string",
      "description": "Last day to include, YYYY-MM-DD. At most 31 days after from_date."
    },
    "timezone": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80,
      "description": "IANA zone the dates are in. Defaults to the provider's zone. Slot labels stay in the provider's zone."
    }
  },
  "required": [
    "slug",
    "service_id",
    "from_date",
    "to_date"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_booking_link(slug, service_id, start)

Check that a start is still open, then return a link to the booking page with that service and time selected. The client confirms and pays on Appty. Nothing is booked here.

輸入結構描述

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80,
      "description": "Booking link slug, the part after getappty.com/"
    },
    "service_id": {
      "type": "string",
      "format": "uuid",
      "description": "Service id from get_provider"
    },
    "start": {
      "type": "string",
      "minLength": 1,
      "description": "Slot start, ISO 8601, from find_open_slots"
    }
  },
  "required": [
    "slug",
    "service_id",
    "start"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_bookings(from, to, status, limit)

This provider's bookings. Omit from and to for upcoming sessions. Never includes pay or manage tokens.

輸入結構描述

{
  "type": "object",
  "properties": {
    "from": {
      "type": "string",
      "minLength": 1,
      "description": "Include sessions starting at or after this ISO 8601 time. When from and to are both omitted, this is now."
    },
    "to": {
      "type": "string",
      "minLength": 1,
      "description": "Include sessions starting before this ISO 8601 time."
    },
    "status": {
      "type": "string",
      "enum": [
        "held",
        "requested",
        "confirmed",
        "completed",
        "cancelled"
      ]
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "description": "Default 50. Maximum 100."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_clients(query, limit)

This provider's clients: id, name, email, phone, billing currency, and default pay mode.

輸入結構描述

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "maxLength": 200,
      "description": "Case-insensitive match on the client's name or email."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "description": "Default 50. Maximum 100."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢who_owes

Unpaid balances for this provider, grouped by client and currency. Same figures as the dashboard who-owes page.

輸入結構描述

{
  "type": "object",
  "properties": {},
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴book_session(client_id, service_id, start, confirm)

Book a client into a service at a start time, the same way the dashboard books. Returns a preview first and only acts when confirm=true. A past start is saved as completed with no email. A future start emails the usual confirmation. No money moves through the assistant. Any pay link is only a request the client pays on Appty.

輸入結構描述

{
  "type": "object",
  "properties": {
    "client_id": {
      "type": "string",
      "format": "uuid",
      "description": "Client id from list_clients."
    },
    "service_id": {
      "type": "string",
      "format": "uuid",
      "description": "Service id. One-off shells are refused."
    },
    "start": {
      "type": "string",
      "minLength": 1,
      "description": "Session start, ISO 8601. Does not have to be an open public slot."
    },
    "confirm": {
      "type": "boolean",
      "description": "Set true only after the caller has seen a preview and wants it done. Anything else, including the string \"true\", is a preview and changes nothing."
    }
  },
  "required": [
    "client_id",
    "service_id",
    "start"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴reschedule_booking(booking_id, new_start, confirm)

Move a booking to an open slot. The client is not emailed. Returns a preview first and only acts when confirm=true. No money moves through the assistant.

輸入結構描述

{
  "type": "object",
  "properties": {
    "booking_id": {
      "type": "string",
      "format": "uuid"
    },
    "new_start": {
      "type": "string",
      "minLength": 1,
      "description": "New start, ISO 8601. Must be an open slot for this booking's length."
    },
    "confirm": {
      "type": "boolean",
      "description": "Set true only after the caller has seen a preview and wants it done. Anything else, including the string \"true\", is a preview and changes nothing."
    }
  },
  "required": [
    "booking_id",
    "new_start"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴cancel_booking(booking_id, reason, confirm)

Cancel one booking under the provider's cancellation policy and email the client. Returns a preview first and only acts when confirm=true. No money moves through the assistant. Any refund or fee is applied by Appty, the same as the dashboard. The client pays anything still due on Appty.

輸入結構描述

{
  "type": "object",
  "properties": {
    "booking_id": {
      "type": "string",
      "format": "uuid"
    },
    "reason": {
      "type": "string",
      "maxLength": 500
    },
    "confirm": {
      "type": "boolean",
      "description": "Set true only after the caller has seen a preview and wants it done. Anything else, including the string \"true\", is a preview and changes nothing."
    }
  },
  "required": [
    "booking_id"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴send_pay_link(client_id, booking_id, confirm)

Email a pay link for one booking, or for a client's unpaid sessions and invoices. Returns a preview first and only acts when confirm=true. No money moves through the assistant. This only sends a request the client pays on Appty. Group spots, packages, and fees are not emailed.

輸入結構描述

{
  "type": "object",
  "properties": {
    "client_id": {
      "type": "string",
      "format": "uuid",
      "description": "Email a pay reminder for each unpaid session and invoice this client has. Pass this or booking_id."
    },
    "booking_id": {
      "$ref": "#/properties/client_id",
      "description": "Email a pay link for this booking. Pass this or client_id."
    },
    "confirm": {
      "type": "boolean",
      "description": "Set true only after the caller has seen a preview and wants it done. Anything else, including the string \"true\", is a preview and changes nothing."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴send_invoice(client_id, booking_ids, period, confirm)

Create one invoice per currency for a client's sessions (by id or by calendar month) and email it. Returns a preview first and only acts when confirm=true. No money moves through the assistant. The invoice only sends a request the client pays on Appty.

輸入結構描述

{
  "type": "object",
  "properties": {
    "client_id": {
      "type": "string",
      "format": "uuid"
    },
    "booking_ids": {
      "type": "array",
      "items": {
        "$ref": "#/properties/client_id"
      },
      "minItems": 1,
      "maxItems": 100,
      "description": "Sessions to put on the invoice. Pass this or period."
    },
    "period": {
      "type": "string",
      "pattern": "^\\d{4}-(0[1-9]|1[0-2])$",
      "description": "Calendar month YYYY-MM in the provider's time zone. Uninvoiced sessions in that month."
    },
    "confirm": {
      "type": "boolean",
      "description": "Set true only after the caller has seen a preview and wants it done. Anything else, including the string \"true\", is a preview and changes nothing."
    }
  },
  "required": [
    "client_id"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

社群

為此伺服器評分

證據

近期觀測

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