TeamUp MCP by usefulapi
by usefulapi.io · remote · no sign-in to list tools · v1.16.3 · published by io.usefulapi
Check classes, attendance, customers, memberships and invoices in TeamUp and register customers.
20 tools: 5 can delete or cancel things and 15 only read.
Scanned Oct 21, 2026
- Deletes or cancels5Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things0Claude Code: ask
- Only reads15Claude Code: allow: see these tools
1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http goteamup https://goteamup.usefulapi.io/mcpFindings
Matches of fixed checks, with the text they matched.
The server marks "goteamup_log_crm_interaction" destructive (destructiveHint: true), and its name says "log", a word for reading.
What this check looks forMatched text
annotations: {"destructiveHint":true}; The name "goteamup_log_crm_interaction" says "log": a word for reading.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
20 tools
Deletes or cancels 5Claude Code: deny
goteamup_confirm_attendanceConfirm that a customer attended an event (check them in).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Confirm that a customer attended an event (check them in). Returns the updated attendance. TeamUp: POST /events/{id}/confirm_attendance.
Annotations the server declares
- title: Check a customer in
- destructiveHint: true
goteamup_create_customerAdd a new customer to the business as staff.No findings
Why it is in this group
- The name "goteamup_create_customer" says "create": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Add a new customer to the business as staff. By default TeamUp emails them an invitation to claim the profile; set send_invitation_email=false to add them silently. TeamUp: POST /customers.
Annotations the server declares
- title: Create (invite) a customer
- destructiveHint: true
goteamup_log_crm_interactionRecord a call, email, meeting or contact with a customer or lead, with an optional note and call outcome.1 finding
Why it is in this group
- The name "goteamup_log_crm_interaction" says "log": a word for reading.
- The server marks it destructive (destructiveHint: true).
Findings
- Warn
The server marks "goteamup_log_crm_interaction" destructive (destructiveHint: true), and its name says "log", a word for reading.
What this check looks forMatched text
annotations: {"destructiveHint":true}; The name "goteamup_log_crm_interaction" says "log": a word for reading.
Description, as the server wrote it Record a call, email, meeting or contact with a customer or lead, with an optional note and call outcome. Requires a super_admin-level token. TeamUp: POST /crm/interactions.
Annotations the server declares
- title: Log a CRM interaction
- destructiveHint: true
goteamup_register_customer_for_eventRegister a customer for a class or appointment, optionally using a specific customer membership, or comped (free).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Register a customer for a class or appointment, optionally using a specific customer membership, or comped (free). Returns the attendance id. Undo with goteamup_unregister_customer_from_event. TeamUp: POST /events/{id}/register.
Annotations the server declares
- title: Book a customer into an event
- destructiveHint: true
goteamup_unregister_customer_from_eventCancel a customer's booking for a class or appointment.No findings
Why it is in this group
- The description's first verb is "cancel": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Cancel a customer's booking for a class or appointment. is_late_cancel=true records it as a LATE cancel, which can trigger the business's penalty rules — leave it unset unless asked. The response says whether it counted as late. TeamUp: POST /events/{id}/unregister.
Annotations the server declares
- title: Remove a customer from an event
- destructiveHint: true
Only reads 15Claude Code: allow
goteamup_get_authenticated_applicationShow the API application this token belongs to and the businesses (providers) it can reach, with their numeric ids — a cheap way to confirm the token works and to find the value fo…No findings
Why it is in this group
- The name "goteamup_get_authenticated_application" says "get": a word for reading.
Description, as the server wrote it Show the API application this token belongs to and the businesses (providers) it can reach, with their numeric ids — a cheap way to confirm the token works and to find the value for GOTEAMUP_PROVIDER_ID. TeamUp: GET /auth/application.
Annotations the server declares
- title: Get the authenticated application
- readOnlyHint: true
goteamup_get_customerFetch one customer by id: name, email, family role, lead flag, CRM status, created date.No findings
Why it is in this group
- The name "goteamup_get_customer" says "get": a word for reading.
Description, as the server wrote it Fetch one customer by id: name, email, family role, lead flag, CRM status, created date. Use expand for deferred fields, e.g. field_values,credit_balance,staff_assignments. TeamUp: GET /customers/{id}.
Annotations the server declares
- title: Get one customer
- readOnlyHint: true
goteamup_get_customer_membershipFetch one customer membership by id.No findings
Why it is in this group
- The name "goteamup_get_customer_membership" says "get": a word for reading.
Description, as the server wrote it Fetch one customer membership by id. Use expand=usage_summary,next_billing_date,shared_with for usage, next bill and sharing. TeamUp: GET /customer_memberships/{id}.
Annotations the server declares
- title: Get one customer membership
- readOnlyHint: true
goteamup_get_eventFetch one class or appointment by id, including capacity, attending/waiting counts, registration open/close and late-cancel deadlines.No findings
Why it is in this group
- The name "goteamup_get_event" says "get": a word for reading.
Description, as the server wrote it Fetch one class or appointment by id, including capacity, attending/waiting counts, registration open/close and late-cancel deadlines. TeamUp: GET /events/{id}.
Annotations the server declares
- title: Get one event
- readOnlyHint: true
goteamup_get_invoiceFetch one invoice by id.No findings
Why it is in this group
- The name "goteamup_get_invoice" says "get": a word for reading.
Description, as the server wrote it Fetch one invoice by id. Use expand=line_items,charges,discounts,taxes,applied_credits for the breakdown. TeamUp: GET /invoices/{id}.
Annotations the server declares
- title: Get one invoice
- readOnlyHint: true
goteamup_list_attendancesList bookings: who is registered for, attended, no-showed or late-cancelled which event, and with which customer membership.No findings
Why it is in this group
- The name "goteamup_list_attendances" says "list": a word for reading.
Description, as the server wrote it List bookings: who is registered for, attended, no-showed or late-cancelled which event, and with which customer membership. Filter by customer, event, venue, offering type, status or event start window. Use expand=customer,event for names. TeamUp: GET /attendances.
Annotations the server declares
- title: List attendances (bookings)
- readOnlyHint: true
goteamup_list_crm_interactionsList logged CRM interactions (calls, emails, meetings, contacted) with notes and who logged them, optionally for one customer.No findings
Why it is in this group
- The name "goteamup_list_crm_interactions" says "list": a word for reading.
Description, as the server wrote it List logged CRM interactions (calls, emails, meetings, contacted) with notes and who logged them, optionally for one customer. Requires a super_admin-level token. TeamUp: GET /crm/interactions.
Annotations the server declares
- title: List CRM interactions
- readOnlyHint: true
goteamup_list_customer_membershipsList memberships held by customers — status (active, hold, complete, cancelled), start/expiration/renewal dates, billed price, active hold.No findings
Why it is in this group
- The name "goteamup_list_customer_memberships" says "list": a word for reading.
Description, as the server wrote it List memberships held by customers — status (active, hold, complete, cancelled), start/expiration/renewal dates, billed price, active hold. Filter by customer, membership plan, type, status, dates or holds. TeamUp: GET /customer_memberships.
Annotations the server declares
- title: List customer memberships
- readOnlyHint: true
goteamup_list_customersSearch and list the business's customers (members and leads).No findings
Why it is in this group
- The name "goteamup_list_customers" says "list": a word for reading.
Description, as the server wrote it Search and list the business's customers (members and leads). Filter by free text (email and name), CRM status, active memberships, age or family. Deferred fields such as field_values, credit_balance or sms_account can be added with expand. TeamUp: GET /customers.
Annotations the server declares
- title: List customers
- readOnlyHint: true
goteamup_list_eventsList scheduled sessions — classes and appointments — with start/end time, status, capacity, attending and waitlist counts, instructors, venue and offering type.No findings
Why it is in this group
- The name "goteamup_list_events" says "list": a word for reading.
Description, as the server wrote it List scheduled sessions — classes and appointments — with start/end time, status, capacity, attending and waitlist counts, instructors, venue and offering type. Filter by time window, instructor, venue, offering type, status or occupancy. TeamUp: GET /events.
Annotations the server declares
- title: List events (classes and appointments)
- readOnlyHint: true
goteamup_list_instructorsList the business's instructors (coaches, trainers) with name, bio and linked staff id.No findings
Why it is in this group
- The name "goteamup_list_instructors" says "list": a word for reading.
Description, as the server wrote it List the business's instructors (coaches, trainers) with name, bio and linked staff id. TeamUp: GET /instructors.
Annotations the server declares
- title: List instructors
- readOnlyHint: true
goteamup_list_invoicesList invoices with status (open, paid, failed, voided, upcoming, …), due date, amount due, payer and receipt URL.No findings
Why it is in this group
- The name "goteamup_list_invoices" says "list": a word for reading.
Description, as the server wrote it List invoices with status (open, paid, failed, voided, upcoming, …), due date, amount due, payer and receipt URL. Filter by status or a customer membership. TeamUp: GET /invoices.
Annotations the server declares
- title: List invoices
- readOnlyHint: true
goteamup_list_membershipsList the membership products the business sells — packs, recurring and prepaid plans — with price, duration, allotment, active member count and visibility.No findings
Why it is in this group
- The name "goteamup_list_memberships" says "list": a word for reading.
Description, as the server wrote it List the membership products the business sells — packs, recurring and prepaid plans — with price, duration, allotment, active member count and visibility. TeamUp: GET /memberships.
Annotations the server declares
- title: List memberships (plans)
- readOnlyHint: true
goteamup_list_offering_typesList offering types — the kinds of classes, appointments and courses the business runs — with schedule type, drop-in price, age limits, visibility and status.No findings
Why it is in this group
- The name "goteamup_list_offering_types" says "list": a word for reading.
Description, as the server wrote it List offering types — the kinds of classes, appointments and courses the business runs — with schedule type, drop-in price, age limits, visibility and status. TeamUp: GET /offering_types.
Annotations the server declares
- title: List offering types (class types)
- readOnlyHint: true
goteamup_list_venuesList the business's venues (physical locations and online venues) with address, timezone and rooms.No findings
Why it is in this group
- The name "goteamup_list_venues" says "list": a word for reading.
Description, as the server wrote it List the business's venues (physical locations and online venues) with address, timezone and rooms. TeamUp: GET /venues.
Annotations the server declares
- title: List venues
- 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.
Install
Pinned to version 1.16.3. Values in angle brackets are yours to fill in.
claude mcp add --transport http goteamup https://goteamup.usefulapi.io/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__goteamup__goteamup_get_authenticated_application",
"mcp__goteamup__goteamup_list_customers",
"mcp__goteamup__goteamup_get_customer",
"mcp__goteamup__goteamup_list_events",
"mcp__goteamup__goteamup_get_event",
"mcp__goteamup__goteamup_list_attendances",
"mcp__goteamup__goteamup_list_customer_memberships",
"mcp__goteamup__goteamup_get_customer_membership",
"mcp__goteamup__goteamup_list_memberships",
"mcp__goteamup__goteamup_list_offering_types",
"mcp__goteamup__goteamup_list_instructors",
"mcp__goteamup__goteamup_list_venues",
"mcp__goteamup__goteamup_list_invoices",
"mcp__goteamup__goteamup_get_invoice",
"mcp__goteamup__goteamup_list_crm_interactions"
],
"ask": [],
"deny": [
"mcp__goteamup__goteamup_create_customer",
"mcp__goteamup__goteamup_register_customer_for_event",
"mcp__goteamup__goteamup_unregister_customer_from_event",
"mcp__goteamup__goteamup_confirm_attendance",
"mcp__goteamup__goteamup_log_crm_interaction"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as goteamup. Review it before you use it.