Easy!Appointments

ai.qiyuanlabs由 qiyuanlabs.ai 發布官方發布者v0.1.0更新於 Nov 1, 2026

Find open slots, book, move and cancel Easy!Appointments bookings, with OAuth and a call log.

已驗證Streamable HTTP可網頁執行效率與工作流商業與電商

概覽

AI 產生的概覽

遠端 MCP 伺服器,讓助理處理 Easy!Appointments 預約系統的櫃檯事務:尋找空檔、查詢客戶,並預約、改期或取消預約。

可以做什麼
  • 列出服務及其時長、價格、提供者與營業時區
  • 依服務查詢最多 14 天內的可用開始時間,可依提供者與上午、下午、晚上篩選
  • 依姓名、電子郵件或電話尋找客戶,並依客戶、提供者或日期範圍列出預約
  • 為既有或新客戶建立預約
  • 將預約改到新的時間或提供者,或取消未來的預約
  • 記錄每次工具呼叫,產生可匯出且已遮蔽個人資料的呼叫日誌
適用情境
適合管理 Easy!Appointments 預約系統的員工,希望讓 AI 助理在受控、依權限授權的連線下回答可預約時段並處理預約、改期與取消。
執行需求
需將遠端 MCP 端點加入為自訂連接器,並以管理員建立的員工帳號透過 OAuth 登入。所連接的 Easy!Appointments 需為 1.5 或更新版本、已啟用 API 並設定 API 權杖。自架需 PHP 8.3 或更新版本或 Docker,正式環境需 HTTPS。
安裝前請注意
櫃檯權限可建立、移動與取消真實預約,取消會在 Easy!Appointments 中直接刪除預約,沒有軟取消。每次變更都會觸發 Easy!Appointments 寄送確認、變更與取消郵件。所連接的 API 權杖為管理員層級,加密儲存於伺服器。呼叫日誌會遮蔽個人資料,預設保留 90 天。沒有自助註冊。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Easy!Appointments,將其新增到工作區。
  2. 連接 所需的 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
  3. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/ai.qiyuanlabs%2Feasyappointments/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。 客戶端會在首次連接時完成 OAuth 登入。

{
  "mcpServers": {
    "easy-appointments": {
      "type": "http",
      "url": "https://ea-mcp-demo.qiyuanlabs.ai/mcp"
    }
  }
}

README

Easy!Appointments MCP server

A remote MCP server that lets Claude, ChatGPT and other AI assistants work the front desk of an Easy!Appointments booking system: find open slots, look up customers, and book, move or cancel appointments.

It is built for the people who run the booking system, not only for developers:

  • Sign in with OAuth. Staff connect their AI assistant with their own login. The Easy!Appointments API token never leaves the server.
  • Two access levels per connection. Read only sees services, open times, customers and bookings. Front desk can also book, reschedule and cancel. Each person has a ceiling set by an administrator.
  • Nothing changes without a preview. Every change is a two-step call: a preview the assistant shows to the person, then a confirmed call with an idempotency key, so a retried request never books twice.
  • A call log. Every tool call is recorded with masked personal details, the Easy!Appointments requests it made and how long it took. Staff can see it, export it as CSV and disconnect any assistant.
  • Gentle on Easy!Appointments. The API allows 100 requests per IP every two minutes. The server caches the catalog and open times and caps how many days one search covers.

Not affiliated with or endorsed by Easy!Appointments. Easy!Appointments is a trademark of its owner.

Tools

ToolAccessWhat it does
list_servicesRead onlyServices with duration, price and who offers them, plus the business time zone
find_open_slotsRead onlyOpen start times for a service over up to 14 days, for one provider or all, filtered by morning, afternoon or evening
find_customerRead onlyCustomers by name, email or phone
list_appointmentsRead onlyBookings for a customer, a provider or a date range
book_appointmentFront deskBooks for an existing or new customer
reschedule_appointmentFront deskMoves a booking to a new time or provider
cancel_appointmentFront deskCancels a future booking

Easy!Appointments sends its usual confirmation, change and cancellation emails for every change made through the API.

Requirements

  • Easy!Appointments 1.5 or newer with the API enabled (Settings > Integrations > API: set an API token). Tested with 1.6.1.
  • PHP 8.3 or newer, or Docker.
  • HTTPS in production. AI clients will not connect to a plain HTTP server on the internet.

Run the demo locally

The compose file starts Easy!Appointments 1.6.1, a mail catcher and this server, then seeds a fictional physio clinic with services, providers, customers and two weeks of bookings.

sh
cp .env.docker.example .env.docker# Set APP_KEY (see the comment in the file) and EA_API_TOKEN (any long random string)docker compose up -d --buildsh demo/setup.sh

Then:

To check the whole flow without an AI client, run the end-to-end script. It registers an OAuth client, signs in, picks an access level and calls every tool, including a real booking that it then moves and cancels:

sh
php demo/e2e.php http://localhost:8000 [email protected] demo-password-1 front_deskphp demo/e2e.php http://localhost:8000 [email protected] demo-password-1 read

To put the demo on a public server with HTTPS, follow docs/deploy-demo.md.

Install for a real booking system

With Docker:

sh
docker run -d --name ea-mcp \  -e APP_KEY=base64:... \  -e APP_URL=https://mcp.example.com \  -e TRUSTED_PROXIES='*' \  -v ea-mcp-data:/data/app \  -p 8080:8080 \  ea-mcp-server

Put it behind your HTTPS load balancer or reverse proxy, or set SERVER_NAME=mcp.example.com and publish ports 80 and 443 to let the built-in Caddy get a certificate. Run php artisan schedule:work in a second container from the same image to prune old logs and expired tokens daily.

Without Docker it is a standard Laravel 13 app: composer install --no-dev, copy .env.example to .env, php artisan key:generate, php artisan passport:keys, php artisan migrate, and point your web server at public/.

Then link the booking system and add staff:

sh
php artisan ea:connect "Maple Street Physio" https://booking.example.com   # asks for the API tokenphp artisan ea:user [email protected] --name="Anna" --level=front_desk       # asks for a password

--level is the most that person may grant an assistant. They still choose per assistant on the consent screen.

If ea:connect gets a 401 from a working token, your web server is not passing the Authorization header to PHP. On Apache with PHP-FPM add SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1 to the Easy!Appointments vhost.

Connect an AI assistant

Add https://your-server/mcp as a custom connector (Claude: Settings > Connectors; ChatGPT: a workspace connector in developer mode). The client registers itself, opens the sign-in page, and the person picks Read only or Front desk. They can change or remove that at any time on /dashboard.

Security model

  • The Easy!Appointments API token is admin-level, so it is stored encrypted on this server and never sent to clients. Each person signs in with their own account and gets a short-lived token (1 hour, refreshable for 30 days) that only works here.
  • Tools a connection may not use are not listed to the assistant, and are refused if called anyway.
  • Writes need a confirmed second call with an idempotency key. The slot is checked again, uncached, right before booking.
  • Names, emails, phone numbers, addresses, notes and search text are masked in the call log. Easy!Appointments error messages that echo customer records are stripped before they reach the assistant or the log.
  • Logs are kept 90 days by default (MCP_LOG_RETENTION_DAYS).

Known limits

  • The Easy!Appointments API cannot check availability while ignoring the booking being moved, so a reschedule that overlaps its own current time is refused with an explanation. Cancel and rebook in that case.
  • Cancelling deletes the booking in Easy!Appointments; there is no soft cancel in the API.
  • One server can link several Easy!Appointments instances, one per account. There is no self-service sign-up; an administrator adds people with ea:user.

Development

sh
composer installcp .env.example .env && php artisan key:generate && php artisan passport:keys && php artisan migratephp artisan testvendor/bin/pint

Tests run against an in-memory fake of the Easy!Appointments API (tests/Support/FakeEasyAppointments.php). demo/e2e.php runs against a real instance.

License

MIT

來源:README.md,提交 1e56f89

工具

0
該伺服器需要登入,因此 SourceWeft 無法在沒有帳號的情況下讀取其工具,也未收錄。已連接帳號所能看到的內容可能因帳號及其權限而異。

版本歷史

1
  1. v0.1.0最新Nov 1, 2026

評分

已滿足適用檢查項的 85%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分