MCP server
The BloomText MCP server lets any Model Context Protocol client read and send BloomText messages. It’s a remote server, so there’s nothing to install: point your client at the URL and authenticate with an API key. The agent gets exactly the scopes and conversations that key has.
https://mcp.bloomtext.com/mcpConnect your client
Replace YOUR_BLOOMTEXT_API_KEY with a key from an app user created for the agent. Don’t have one? Request API access.
Claude Code
Run this once in your terminal:
claude mcp add --transport http bloomtext https://mcp.bloomtext.com/mcp \
--header "Authorization: Bearer YOUR_BLOOMTEXT_API_KEY"Check it’s connected with claude mcp list, or type /mcp inside Claude Code.
Let your agent set it up
Paste this into your coding agent and it will wire up the server for you:
Add the BloomText MCP server to this project. It's a remote Streamable HTTP server at https://mcp.bloomtext.com/mcp that authenticates with the header 'Authorization: Bearer <key>'. Read the key from the BLOOMTEXT_API_KEY environment variable and never hard-code it. Setup docs: https://www.bloomtext.com/developers/api/mcp.md
Tools
Each tool maps to one API endpoint and requires the same scope. The agent only sees tools its key’s scopes allow.
| Tool | Does | Scope |
|---|---|---|
get_organization | Returns the organization the key belongs to. | organization:read |
list_users | Lists organization members. | users:read |
list_conversations | Lists conversations the app user is in. | conversations:read |
get_conversation | Returns one conversation. | conversations:read |
list_messages | Reads messages in a conversation, newest page first. | messages:read |
list_replies | Reads a message’s thread. | messages:read |
send_message | Sends a message or threaded reply. | messages:write |
add_reaction | Reacts to a message. | reactions:write |
remove_reaction | Removes the app user’s reaction. | reactions:write |
list_participants | Lists who is in a conversation. | participants:read |
list_broadcasts | Lists broadcasts and their status. | broadcasts:read |
create_export | Starts a conversation export. | exports:write |
get_export | Checks an export and returns its download URL. | exports:read |
send_message and create_export generate idempotency keys for you, so an agent retrying a tool call never sends twice.
Use cases
Each prompt works as-is once the server is connected. Swap in your own conversation names.
Morning catch-up
Summarize overnight messages so the front desk starts the day knowing what needs a reply.
Read the messages sent since 6pm yesterday in every conversation you can see. Group them into: needs a staff reply, already handled, and FYI. Keep patient details out of the summary; use conversation names only.
Schedule change notice
Post a change to a staff group and acknowledge the request that prompted it.
Reply in the Scheduling group thread: 'Dr. Lee's 2pm is moved to 3pm today.' Then react 👍 to the original request so staff know it's handled.
Handoff triage
Find patient messages that need a person and route them to the right staff group.
Find messages from the last 2 hours that ask a clinical question or mention a problem. For each, post 'Needs a staff reply' with the conversation name in the Front Desk group. Don't reply to the patient yourself.
Unanswered messages
Catch conversations where the last word is still the patient’s.
List conversations where the most recent message is from someone outside our staff and is older than 1 hour. Show the conversation name and how long it's been waiting.
Records export
Package a conversation’s history for the chart or a records request.
Export last month's messages from the Intake conversation and give me the download link when it's ready.
Care team check
Make sure the right people are in a conversation.
List the participants in the Johnson family care team conversation and tell me if anyone from the Nursing group is missing.
Agent skill
The BloomText API skill teaches an agent the API’s rules: authentication, idempotency, pagination, error codes, and what never to send. Agents that support Agent Skills load it automatically when a task involves BloomText.
Claude Code
mkdir -p .claude/skills/bloomtext-api
curl -o .claude/skills/bloomtext-api/SKILL.md https://www.bloomtext.com/developers/api/skills/bloomtext-api/SKILL.mdSafety
An agent with messages:write can post as your app user in every conversation it’s in. Start with read-only scopes, add the app user only to the conversations the agent needs, and review what it sends before widening access.
- Messages the agent sends appear under its app user’s name, so staff always know what came from it.
- An organization admin can revoke the key or remove the app user at any time.
- Keep patient data inside tools covered by a BAA. See Security and BAA.
For building your own agent loop on the REST API instead, see Build an AI agent.