AgendaPro MCP by usefulapi
io.usefulapi/agendaprousefulapi.iostreamable-httpv1.1.0Scanned
Read AgendaPro bookings, slots, clients, services and sales; create, update and cancel bookings.
24 tools: 5 can delete or cancel things and 19 only read.
- Reads private data · 5
- Reads text others write · 24
- Can send data out · 0
- No findings
Anlyon alternative
5 of these tools change something. Run those as governed actions.
Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.
Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.
Import an OpenAPI spec →Tools
Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.
24 tools
Deletes or cancels 5Claude Code: deny
agendapro_cancel_bookingWRITE: cancel a booking.Reads text others writeNo findings
Why it is in this group
- The name "agendapro_cancel_booking" says "cancel": a word for removing or ending something.
- The description says "cannot be undone".
- The server marks it destructive (destructiveHint: true).
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it WRITE: cancel a booking. This cannot be undone through the API. The merchant's customer policy applies: a cancellation that is disabled, too close to the start time or past the maximum number of changes is refused with HTTP 422 (tell the user the merchant does not allow it; do not retry). Confirm with the user before calling. PATCH /v3/bookings/{id}/cancel.
Annotations the server declares
- title: Cancel booking
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
agendapro_create_bookingWRITE: create a booking for an existing client, service, provider and location.Reads text others writeNo findings
Why it is in this group
- The name "agendapro_create_booking" says "create": a word for a change.
- The server marks it destructive (destructiveHint: true).
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it WRITE: create a booking for an existing client, service, provider and location. Check agendapro_list_available_slots first. status_id must be a non-cancelled status: copy the status.id of an existing booking (agendapro_list_bookings). AgendaPro does NOT send email/SMS/WhatsApp notifications for bookings created through the API. Not idempotent: calling twice books twice. POST /v3/bookings.
Annotations the server declares
- title: Create booking
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
agendapro_create_clientWRITE: create a new client.Reads text others writeNo findings
Why it is in this group
- The name "agendapro_create_client" says "create": a word for a change.
- The server marks it destructive (destructiveHint: true).
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it WRITE: create a new client. first_name is required and at least one of last_name, email or phone must also be given (AgendaPro's rule). Search first (agendapro_search_clients) to avoid duplicates; not idempotent. No message is sent to the client. POST /v3/clients.
Annotations the server declares
- title: Create client
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
agendapro_update_bookingWRITE: change an existing booking (partial update: only the fields you pass change): move it, switch service/provider/location, change status, price or notes.Reads text others writeNo findings
Why it is in this group
- The name "agendapro_update_booking" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it WRITE: change an existing booking (partial update: only the fields you pass change): move it, switch service/provider/location, change status, price or notes. The merchant's customer policy applies: a change too close to the start time, or past the maximum number of changes, is refused with HTTP 422 and must not be retried. PATCH /v3/bookings/{id}.
Annotations the server declares
- title: Update booking
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
agendapro_update_clientWRITE: change an existing client (partial update: only the fields you pass change; it overwrites the stored value).Reads text others writeNo findings
Why it is in this group
- The name "agendapro_update_client" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it WRITE: change an existing client (partial update: only the fields you pass change; it overwrites the stored value). PATCH /v3/clients/{id}.
Annotations the server declares
- title: Update client
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
Only reads 19Show 19 read-only tools
agendapro_get_bookingOne booking by id with status, service, provider, client id, location, prices, notes and the linked sale.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "agendapro_get_booking" says "get": a word for reading.
What it can reach
- private-dataThe description's first sentence says "note": it reads notes.
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it One booking by id with status, service, provider, client id, location, prices, notes and the linked sale. GET /v3/bookings/{id}.
Annotations the server declares
- title: Get booking
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
agendapro_get_clientOne client by id with contact details, address, birth date, record number and active flag.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "agendapro_get_client" says "get": a word for reading.
What it can reach
- private-dataThe description's first sentence says "contact": it reads contacts.
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it One client by id with contact details, address, birth date, record number and active flag. GET /v3/clients/{id}.
Annotations the server declares
- title: Get client
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
agendapro_get_locationOne location by id, with address, coordinates, timezone and weekly opening hours.Reads text others writeNo findings
Why it is in this group
- The name "agendapro_get_location" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it One location by id, with address, coordinates, timezone and weekly opening hours. GET /v3/locations/{id}.
Annotations the server declares
- title: Get location
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
agendapro_get_productOne catalog product by id with description, SKU, price, category, brand and display.Reads text others writeNo findings
Why it is in this group
- The name "agendapro_get_product" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it One catalog product by id with description, SKU, price, category, brand and display. GET /v3/products/{id}.
Annotations the server declares
- title: Get product
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
agendapro_get_providerOne service provider by id, with biography, images and working hours including breaks.Reads text others writeNo findings
Why it is in this group
- The name "agendapro_get_provider" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it One service provider by id, with biography, images and working hours including breaks. GET /v3/providers/{id}.
Annotations the server declares
- title: Get provider
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
agendapro_get_saleOne sale by id with amounts, status, location and its payment transactions (amount, paid-at, payment method).Reads text others writeNo findings
Why it is in this group
- The name "agendapro_get_sale" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it One sale by id with amounts, status, location and its payment transactions (amount, paid-at, payment method). GET /v3/sales/{id}.
Annotations the server declares
- title: Get sale
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
agendapro_get_serviceOne service by id, including its category, images and the providers who perform it.Reads text others writeNo findings
Why it is in this group
- The name "agendapro_get_service" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it One service by id, including its category, images and the providers who perform it. GET /v3/services/{id}.
Annotations the server declares
- title: Get service
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
agendapro_list_available_slotsFree booking time windows at a location on one date (optionally for one service and/or provider): start/end time, provider, plus a metadata summary (service duration, slot count).Reads text others writeNo findings
Why it is in this group
- The name "agendapro_list_available_slots" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Free booking time windows at a location on one date (optionally for one service and/or provider): start/end time, provider, plus a metadata summary (service duration, slot count). Use before creating a booking. GET /v3/available_slots.
Annotations the server declares
- title: List available slots
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
agendapro_list_bookingsList bookings (reservas / appointments) with time, status, service, provider, client id, location, price and the linked sale.Reads text others writeNo findings
Why it is in this group
- The name "agendapro_list_bookings" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it List bookings (reservas / appointments) with time, status, service, provider, client id, location, price and the linked sale. AgendaPro requires at least ONE of client_id, location_id, service_id or service_provider_id; dates only narrow the result. A sale may be a membership covering several bookings, so do not total amounts by sale id. GET /v3/bookings.
Annotations the server declares
- title: List bookings
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
agendapro_list_client_custom_attributesThe custom attribute values stored for one client (id, name, datatype, value).Reads text others writeNo findings
Why it is in this group
- The name "agendapro_list_client_custom_attributes" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it The custom attribute values stored for one client (id, name, datatype, value). GET /v3/clients/{id}/custom_attributes.
Annotations the server declares
- title: List a client's custom attributes
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
agendapro_list_clientsList the business's clients (customers) page by page: name, email, phone, identification number, address, birth date, record number, active flag.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "agendapro_list_clients" says "list": a word for reading.
What it can reach
- private-dataThe description's first sentence says "list" and "email": it reads mail.
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- untrusted-inputThe description's first sentence says "list" and "email": it reads inbound email, which other people can write.
Description, as the server wrote it List the business's clients (customers) page by page: name, email, phone, identification number, address, birth date, record number, active flag. Personal data: only use it for the task at hand. To find one person use agendapro_search_clients. GET /v3/clients.
Annotations the server declares
- title: List clients
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
agendapro_list_custom_attributesThe custom client fields the business defined (id, name, datatype, mandatory, group, choices).Reads text others writeNo findings
Why it is in this group
- The name "agendapro_list_custom_attributes" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it The custom client fields the business defined (id, name, datatype, mandatory, group, choices). Use the template ids when setting custom_attributes on a client. GET /v3/custom_attributes.
Annotations the server declares
- title: List custom attribute templates
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
agendapro_list_locationsList the business's locations (sucursales / locales): id, name, address, phone, email, timezone, opening hours and country.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "agendapro_list_locations" says "list": a word for reading.
What it can reach
- private-dataThe description's first sentence says "list" and "email": it reads mail.
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- untrusted-inputThe description's first sentence says "list" and "email": it reads inbound email, which other people can write.
Description, as the server wrote it List the business's locations (sucursales / locales): id, name, address, phone, email, timezone, opening hours and country. Location ids are needed for bookings, slots and sales filters. GET /v3/locations.
Annotations the server declares
- title: List locations
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
agendapro_list_productsList retail products in the catalog: name, SKU, price, active flag, category, brand and display.Reads text others writeNo findings
Why it is in this group
- The name "agendapro_list_products" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it List retail products in the catalog: name, SKU, price, active flag, category, brand and display. GET /v3/products.
Annotations the server declares
- title: List products
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
agendapro_list_providersList service providers (the staff who take bookings): id, public name, location, active flag, online-booking flag and working hours.Reads text others writeNo findings
Why it is in this group
- The name "agendapro_list_providers" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it List service providers (the staff who take bookings): id, public name, location, active flag, online-booking flag and working hours. Provider ids are needed to book. GET /v3/providers.
Annotations the server declares
- title: List providers
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
agendapro_list_salesList sales (ventas): status (partially_paid, paid, canceled, refunded), paid and pending amounts, paid-at time, location, client id and the payment transactions.Reads text others writeNo findings
Why it is in this group
- The name "agendapro_list_sales" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it List sales (ventas): status (partially_paid, paid, canceled, refunded), paid and pending amounts, paid-at time, location, client id and the payment transactions. Filter by paid date range, location or client. GET /v3/sales.
Annotations the server declares
- title: List sales
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
agendapro_list_service_categoriesList service categories, ordered as the business arranges them.Reads text others writeNo findings
Why it is in this group
- The name "agendapro_list_service_categories" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it List service categories, ordered as the business arranges them. GET /v3/categories.
Annotations the server declares
- title: List service categories
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
agendapro_list_servicesList the services (treatments, classes, sessions) the business offers: id, name, price, duration, type, category, whether online booking/payment is on, and the location.Reads text others writeNo findings
Why it is in this group
- The name "agendapro_list_services" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it List the services (treatments, classes, sessions) the business offers: id, name, price, duration, type, category, whether online booking/payment is on, and the location. Service ids are needed to book. GET /v3/services.
Annotations the server declares
- title: List services
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
agendapro_search_clientsFind clients by free text (name, email, phone, identification number or record number): a short ranked list with id, full name, email, phone.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "agendapro_search_clients" says "search": a word for reading.
What it can reach
- private-dataThe description's first sentence says "find" and "email": it reads mail.
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- untrusted-inputThe description's first sentence says "find" and "email": it reads inbound email, which other people can write.
Description, as the server wrote it Find clients by free text (name, email, phone, identification number or record number): a short ranked list with id, full name, email, phone. The fastest way to get a client_id. GET /v3/clients/quick-search.
Annotations the server declares
- title: Search clients
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Exfil surface
Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.
No private-data, untrusted-input, outbound path in this server alone: no tool is tagged outbound.
- Reads private data5
- Reads files, mail, messages, databases, secrets, calendars or repositories.
- Reads text others write24
- Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
- Can send data out0
- Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.
Findings
Matches of fixed checks, with the text they matched.
No check matched anything in these tool definitions. That is not a safety guarantee.
History
Changes to its tool definitions and to its remote endpoint, newest first.
No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.
Install
Pinned to version 1.1.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http agendapro https://agendapro.usefulapi.io/mcpclaude mcp add --transport http agendapro https://agendapro.usefulapi.io/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__agendapro__agendapro_list_locations",
"mcp__agendapro__agendapro_get_location",
"mcp__agendapro__agendapro_list_services",
"mcp__agendapro__agendapro_get_service",
"mcp__agendapro__agendapro_list_service_categories",
"mcp__agendapro__agendapro_list_providers",
"mcp__agendapro__agendapro_get_provider",
"mcp__agendapro__agendapro_list_bookings",
"mcp__agendapro__agendapro_get_booking",
"mcp__agendapro__agendapro_list_available_slots",
"mcp__agendapro__agendapro_list_clients",
"mcp__agendapro__agendapro_search_clients",
"mcp__agendapro__agendapro_get_client",
"mcp__agendapro__agendapro_list_client_custom_attributes",
"mcp__agendapro__agendapro_list_custom_attributes",
"mcp__agendapro__agendapro_list_sales",
"mcp__agendapro__agendapro_get_sale",
"mcp__agendapro__agendapro_list_products",
"mcp__agendapro__agendapro_get_product"
],
"ask": [],
"deny": [
"mcp__agendapro__agendapro_create_booking",
"mcp__agendapro__agendapro_update_booking",
"mcp__agendapro__agendapro_cancel_booking",
"mcp__agendapro__agendapro_create_client",
"mcp__agendapro__agendapro_update_client"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as agendapro. Review it before you use it.
Capability tags behind 24 rules
- mcp__agendapro__agendapro_list_locations private-data, untrusted-input
- mcp__agendapro__agendapro_get_location untrusted-input
- mcp__agendapro__agendapro_list_services untrusted-input
- mcp__agendapro__agendapro_get_service untrusted-input
- mcp__agendapro__agendapro_list_service_categories untrusted-input
- mcp__agendapro__agendapro_list_providers untrusted-input
- mcp__agendapro__agendapro_get_provider untrusted-input
- mcp__agendapro__agendapro_list_bookings untrusted-input
- mcp__agendapro__agendapro_get_booking private-data, untrusted-input
- mcp__agendapro__agendapro_list_available_slots untrusted-input
- mcp__agendapro__agendapro_create_booking untrusted-input
- mcp__agendapro__agendapro_update_booking untrusted-input
- mcp__agendapro__agendapro_cancel_booking untrusted-input
- mcp__agendapro__agendapro_list_clients private-data, untrusted-input
- mcp__agendapro__agendapro_search_clients private-data, untrusted-input
- mcp__agendapro__agendapro_get_client private-data, untrusted-input
- mcp__agendapro__agendapro_list_client_custom_attributes untrusted-input
- mcp__agendapro__agendapro_list_custom_attributes untrusted-input
- mcp__agendapro__agendapro_create_client untrusted-input
- mcp__agendapro__agendapro_update_client untrusted-input
- mcp__agendapro__agendapro_list_sales untrusted-input
- mcp__agendapro__agendapro_get_sale untrusted-input
- mcp__agendapro__agendapro_list_products untrusted-input
- mcp__agendapro__agendapro_get_product untrusted-input
Pin
Keep the decision: fail CI when the tools change, follow every change, or show a badge.
Pin in CI
Fail a build when the tools you reviewed are not the tools the server serves today.
curl -s "https://anlyon.dev/api/v1/servers/io.usefulapi/agendapro/verify?hash=11f2c56ec0f13e6d80afaea496966de9f42dc0f2616f3efc3a3952e5c35da0b8" | jq -e '.changed == false'Pinned hash 11f2c56ec0f1, from Oct 24, 2026, 12:18 UTC.
Watch
Get told when its tools change: a new tool, a new description, a new class.
https://anlyon.dev/servers/io.usefulapi/agendapro/changes.xmlAn Atom feed. Works in any feed reader or Slack's RSS app.
Badge
[](https://anlyon.dev/servers/io.usefulapi/agendapro)Source: MCP Registry · repository. Synced Oct 24, 2026, 13:17 UTC.