SavvyCal MCP by usefulapi
by usefulapi.io · remote · no sign-in to list tools · v1.16.4 · published by io.usefulapi
Read and create SavvyCal scheduling links and booked events.
8 tools: 3 can delete or cancel things and 5 only read.
Scanned Oct 22, 2026
- Deletes or cancels3Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things0Claude Code: ask
- Only reads5Claude Code: allow: see these tools
No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http savvycal https://savvycal.usefulapi.io/mcpTools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
8 tools
Deletes or cancels 3Claude Code: deny
savvycal_cancel_eventCancel a booked event/meeting.No findings
Why it is in this group
- The name "savvycal_cancel_event" says "cancel": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Cancel a booked event/meeting. This notifies attendees and frees the slot. SavvyCal REST: DELETE /events/{id}.
Annotations the server declares
- title: Cancel event
- destructiveHint: true
savvycal_duplicate_linkCreate a copy of an existing scheduling link.No findings
Why it is in this group
- The name "savvycal_duplicate_link" says "link": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Create a copy of an existing scheduling link. SavvyCal REST: POST /links/{id}/duplicate.
Annotations the server declares
- title: Duplicate link
- destructiveHint: true
savvycal_toggle_linkToggle a scheduling link between active and disabled (changes whether the public booking page accepts bookings).No findings
Why it is in this group
- The name "savvycal_toggle_link" says "toggle": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Toggle a scheduling link between active and disabled (changes whether the public booking page accepts bookings). SavvyCal REST: POST /links/{id}/toggle.
Annotations the server declares
- title: Toggle link
- destructiveHint: true
Only reads 5Claude Code: allow
savvycal_get_eventGet a single booked event/meeting by id.Reads private dataNo findings
Why it is in this group
- The name "savvycal_get_event" says "get": a word for reading.
What it can reach
- private-dataThe description's first sentence says "get" and "meeting": it reads calendars.
Description, as the server wrote it Get a single booked event/meeting by id. SavvyCal REST: GET /events/{id}.
Annotations the server declares
- title: Get event
- readOnlyHint: true
savvycal_get_linkGet a single scheduling link by id.No findings
Why it is in this group
- The name "savvycal_get_link" says "get": a word for reading.
Description, as the server wrote it Get a single scheduling link by id. SavvyCal REST: GET /links/{id}.
Annotations the server declares
- title: Get link
- readOnlyHint: true
savvycal_get_link_slotsGet available booking time slots for a scheduling link.No findings
Why it is in this group
- The name "savvycal_get_link_slots" says "get": a word for reading.
Description, as the server wrote it Get available booking time slots for a scheduling link. Returns slots with start_at/end_at/duration/rank. SavvyCal REST: GET /links/{id}/slots.
Annotations the server declares
- title: Get link slots
- readOnlyHint: true
savvycal_list_eventsList booked events/meetings (paginated).Reads private dataNo findings
Why it is in this group
- The name "savvycal_list_events" says "list": a word for reading.
What it can reach
- private-dataThe description's first sentence says "list" and "meeting": it reads calendars.
Description, as the server wrote it List booked events/meetings (paginated). SavvyCal REST: GET /events.
Annotations the server declares
- title: List events
- readOnlyHint: true
savvycal_list_linksList the authenticated user's scheduling links (paginated).No findings
Why it is in this group
- The name "savvycal_list_links" says "list": a word for reading.
Description, as the server wrote it List the authenticated user's scheduling links (paginated). SavvyCal REST: GET /links.
Annotations the server declares
- title: List links
- readOnlyHint: 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 untrusted-input or outbound.
- Reads private data2
- Reads files, mail, messages, databases, secrets, calendars or repositories.
- Reads text others write0
- 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.
Install
Pinned to version 1.16.4. Values in angle brackets are yours to fill in.
claude mcp add --transport http savvycal https://savvycal.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__savvycal__savvycal_list_links",
"mcp__savvycal__savvycal_get_link",
"mcp__savvycal__savvycal_get_link_slots",
"mcp__savvycal__savvycal_list_events",
"mcp__savvycal__savvycal_get_event"
],
"ask": [],
"deny": [
"mcp__savvycal__savvycal_toggle_link",
"mcp__savvycal__savvycal_duplicate_link",
"mcp__savvycal__savvycal_cancel_event"
]
}
}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 savvycal. Review it before you use it.
Capability tags behind 2 rules
- mcp__savvycal__savvycal_list_events private-data
- mcp__savvycal__savvycal_get_event private-data