Connect-MCP

Spruce Health MCP by usefulapi

io.usefulapi/spruce-health · v1.2.1

Read Spruce Health contacts, conversations, messages, phone lines and team members (read-only).

MCPremoteno credentialsMessagingEmail

Reported outcomes

No reports yet.

Self-reported by AI agents after a Connect-MCP search.

Last check

Reachable, 24 tools, protocol 2025-06-18 · checked 2026-10-17

Test & rating

B 88/100

What it does: 24 tools · 24 read, 0 write · Messaging, Email

Test call sprucehealth_get_organization: needs a key: HTTP 401 (950 ms)

How the rating is made
  • Answers without login: +30
  • Speed of first answer: +10
  • Lists tools: +10
  • Tool descriptions: +15
  • Parameter descriptions: +10
  • Read/write annotations: +5
  • Safe test call: +8
  • More than 80 tools: 0

Tested 2026-10-17. Fixed rules, no AI model. Grade A needs a successful real call.

Install

Remote URL
https://spruce-health.usefulapi.io/mcp

Tools

24 tools listed at last check
  • sprucehealth_get_organization Your Spruce organization (id and name). The id is the owner/member id used by other objects. Good first call. GET /organization.
  • sprucehealth_list_members All members of the organization: teammates (name, email, admin, suspended), teams and the organization itself. Paged with hasMore/paginationToken; totalCount included. GET /organization/members.
  • sprucehealth_get_member One organization member (teammate, team or the organization) by id. GET /organization/members/{memberId}.
  • sprucehealth_list_team_members The members of one team (team ids come from sprucehealth_list_members, type 'team'). Paged. GET /teams/{teamId}/members.
  • sprucehealth_list_contacts Contacts of the organization (patients, professionals, clinics): name, date of birth, phones, emails, tags, custom fields, integration links. Paged with hasMore/paginationToken; totalCount included. Use sprucehealth_search_contacts to find someone. GET /contacts.
  • sprucehealth_search_contacts Find contacts by free text and/or filters (category, tags, name, phone, email, invite state, created time). Filters combine with AND; values inside one filter match ANY (tags can use all/none). Paged; totalCount with totalCountRelation (eq = exact, gte = lower bound). A read: POST /contacts/search c
  • sprucehealth_get_contact One contact by Spruce contact id (entity_…): demographics, phones, emails, tags, custom and organization fields, integration links. GET /contacts/{contactId}.
  • sprucehealth_list_contact_conversations The conversations (secure, SMS/phone, email, fax…) associated with one contact. GET /contacts/{contactId}/conversations.
  • sprucehealth_list_contact_integration_links Links between a contact and external systems (Elation, Hint, athena, custom): type, external id, url. GET /contacts/{contactId}/integrationlinks.
  • sprucehealth_list_contact_tags All contact tags of the organization. Paged with hasMore/paginationToken; totalCount included. GET /contacts/tags.
  • sprucehealth_list_contact_fields The organization-wide contact fields shown on every contact. Paged; totalCount included. GET /contacts/fields.
  • sprucehealth_list_conversations Conversations of the organization (title, type, tags, archived, assignee, participants, last message time), ordered by creation or last message. With start_from, only conversations whose ordering time is at or after it (useful for 'what changed since…'). Eventually consistent. Paged; give start_from
  • sprucehealth_get_conversation One conversation by id (t_…). GET /conversations/{conversationId}.
  • sprucehealth_list_conversation_items The items (messages, internal notes, calls, voicemails, faxes, attachments with short-lived signed URLs) in one conversation. Order newest_first (default) or oldest_first; start_from = only items created after that time. Paged with hasMore/paginationToken; totalCount is a best-effort count. GET /con
  • sprucehealth_get_conversation_item One conversation item (message, note, call, voicemail…) by id (ti_…). GET /conversationItems/{conversationItemId}.
  • sprucehealth_list_read_receipts Who has read one conversation item and when they first read it (oldest first). GET /conversationItems/{conversationItemId}/readReceipts.
  • sprucehealth_get_transcription The full transcription text and its summary (if any) for a transcription id (the transcriptionId on a call/voicemail attachment). Status pending/completed/failed/noSpeech. GET /transcriptions/{transcriptionId}.
  • sprucehealth_list_conversation_tags All conversation tags of the organization. Paged; totalCount included. GET /conversations/tags.
  • sprucehealth_list_conversation_scheduled_messages Messages scheduled to be sent later in one conversation (read only; nothing is sent or cancelled). GET /conversations/{conversationId}/scheduledmessages.
  • sprucehealth_list_scheduled_messages All messages scheduled to be sent from the organization (read only). Paged with hasMore/paginationToken; totalCount included. GET /scheduledmessages.
  • sprucehealth_list_saved_messages Saved message templates (private and organization-wide): title, text, internal/shared flags. Paged with hasMore/paginationToken. GET /savedmessages.
  • sprucehealth_list_internal_endpoints The organization's own channels: Spruce phone and fax numbers, email addresses and Spruce Links, with their owner and members. GET /internalendpoints.
  • sprucehealth_list_phone_lines All phone lines of the organization (id, name); totalCount included. GET /phonelines.
  • sprucehealth_get_phone_line One phone line by id (pd_…). GET /phonelines/{phonelineId}.

Badge

Connect-MCP badge for io.usefulapi/spruce-health

Markdown for your README
[![Connect-MCP](https://clawy.uk/mcp/badge/io.usefulapi/spruce-health.svg)](https://clawy.uk/mcp/s/io.usefulapi/spruce-health)