Bloomerang MCP by usefulapi
by usefulapi.io · remote · no sign-in to list tools · v1.16.3 · published by io.usefulapi
Search Bloomerang constituents and donations; log interactions, notes and tasks.
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
No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http bloomerang https://bloomerang.usefulapi.io/mcpTools
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
bloomerang_create_constituentWRITE: create a new individual or organization constituent.No findings
Why it is in this group
- The name "bloomerang_create_constituent" says "create": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it WRITE: create a new individual or organization constituent. For an individual give first_name/last_name; for an organization give full_name. Search first (bloomerang_search_constituents) to avoid creating a duplicate donor. Bloomerang: POST /constituent.
Annotations the server declares
- title: Create a constituent
- destructiveHint: true
bloomerang_create_interactionWRITE: log an interaction with a constituent — a call, email, meeting, letter, etc.No findings
Why it is in this group
- The name "bloomerang_create_interaction" says "create": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it WRITE: log an interaction with a constituent — a call, email, meeting, letter, etc. — on their timeline. Bloomerang: POST /interaction.
Annotations the server declares
- title: Log an interaction
- destructiveHint: true
bloomerang_create_noteWRITE: add a note to a constituent's record.No findings
Why it is in this group
- The name "bloomerang_create_note" says "create": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it WRITE: add a note to a constituent's record. Bloomerang: POST /note.
Annotations the server declares
- title: Add a note
- destructiveHint: true
bloomerang_create_taskWRITE: create a follow-up task, optionally tied to a constituent and assigned to a user (find user Ids via bloomerang_get_current_user or existing tasks).No findings
Why it is in this group
- The name "bloomerang_create_task" says "create": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it WRITE: create a follow-up task, optionally tied to a constituent and assigned to a user (find user Ids via bloomerang_get_current_user or existing tasks). Bloomerang: POST /task.
Annotations the server declares
- title: Create a task
- destructiveHint: true
bloomerang_update_constituentWRITE: update fields on an existing constituent's profile (names, job, status, primary address/email/phone).No findings
Why it is in this group
- The name "bloomerang_update_constituent" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it WRITE: update fields on an existing constituent's profile (names, job, status, primary address/email/phone). Only the fields you supply are sent. Bloomerang: PUT /constituent/{id}.
Annotations the server declares
- title: Update a constituent
- destructiveHint: true
Only reads 15Claude Code: allow
bloomerang_get_constituentFetch one constituent's full profile — names, primary and secondary contact details, household, communication preferences, engagement score and custom values.No findings
Why it is in this group
- The name "bloomerang_get_constituent" says "get": a word for reading.
Description, as the server wrote it Fetch one constituent's full profile — names, primary and secondary contact details, household, communication preferences, engagement score and custom values. Bloomerang: GET /constituent/{id}.
Annotations the server declares
- title: Get one constituent
- readOnlyHint: true
bloomerang_get_constituent_timelineThe activity timeline for a constituent — gifts, interactions, notes, tasks and more, newest first.No findings
Why it is in this group
- The name "bloomerang_get_constituent_timeline" says "get": a word for reading.
Description, as the server wrote it The activity timeline for a constituent — gifts, interactions, notes, tasks and more, newest first. Pass a household Id to get the timeline of every member. Bloomerang: GET /constituent/{id}/timeline.
Annotations the server declares
- title: Get a constituent's timeline
- readOnlyHint: true
bloomerang_get_current_userFetch the Bloomerang user the API key belongs to — name, email and permission level.No findings
Why it is in this group
- The name "bloomerang_get_current_user" says "get": a word for reading.
Description, as the server wrote it Fetch the Bloomerang user the API key belongs to — name, email and permission level. A cheap way to confirm the key works and see what it may do. Bloomerang: GET /user/current.
Annotations the server declares
- title: Get the current user
- readOnlyHint: true
bloomerang_get_householdFetch a household — its names, head of household (HeadId) and member constituent Ids.No findings
Why it is in this group
- The name "bloomerang_get_household" says "get": a word for reading.
Description, as the server wrote it Fetch a household — its names, head of household (HeadId) and member constituent Ids. A constituent's HouseholdId points here. Bloomerang: GET /household/{id}.
Annotations the server declares
- title: Get one household
- readOnlyHint: true
bloomerang_get_transactionFetch one transaction with its payment method, amounts, refund status and every designation (fund, campaign, appeal, tribute, acknowledgement status).No findings
Why it is in this group
- The name "bloomerang_get_transaction" says "get": a word for reading.
Description, as the server wrote it Fetch one transaction with its payment method, amounts, refund status and every designation (fund, campaign, appeal, tribute, acknowledgement status). Bloomerang: GET /transaction/{id}.
Annotations the server declares
- title: Get one transaction
- readOnlyHint: true
bloomerang_list_appealsList appeals — the specific asks (a year-end letter, a gala invitation) that gifts are attributed to.No findings
Why it is in this group
- The name "bloomerang_list_appeals" says "list": a word for reading.
Description, as the server wrote it List appeals — the specific asks (a year-end letter, a gala invitation) that gifts are attributed to. Bloomerang: GET /appeals.
Annotations the server declares
- title: List appeals
- readOnlyHint: true
bloomerang_list_campaignsList fundraising campaigns with their goals and dates.No findings
Why it is in this group
- The name "bloomerang_list_campaigns" says "list": a word for reading.
Description, as the server wrote it List fundraising campaigns with their goals and dates. Bloomerang: GET /campaigns.
Annotations the server declares
- title: List campaigns
- readOnlyHint: true
bloomerang_list_constituent_relationshipsRelationships between this constituent and others (spouse, employer, board member ...), with the role on each side.No findings
Why it is in this group
- The name "bloomerang_list_constituent_relationships" says "list": a word for reading.
Description, as the server wrote it Relationships between this constituent and others (spouse, employer, board member ...), with the role on each side. Bloomerang: GET /constituent/{id}/relationships.
Annotations the server declares
- title: List a constituent's relationships
- readOnlyHint: true
bloomerang_list_constituentsList constituents with filters — by Id, type, favorites, last-modified date, or a custom field value — and sorting.No findings
Why it is in this group
- The name "bloomerang_list_constituents" says "list": a word for reading.
Description, as the server wrote it List constituents with filters — by Id, type, favorites, last-modified date, or a custom field value — and sorting. Good for syncing recent changes. Bloomerang: GET /constituents.
Annotations the server declares
- title: List constituents
- readOnlyHint: true
bloomerang_list_fundsList the funds gifts can be designated to (e.g.No findings
Why it is in this group
- The name "bloomerang_list_funds" says "list": a word for reading.
Description, as the server wrote it List the funds gifts can be designated to (e.g. General Operating, Scholarship). Bloomerang: GET /funds.
Annotations the server declares
- title: List funds
- readOnlyHint: true
bloomerang_list_interactionsList logged interactions (calls, emails, meetings, letters ...) — filter by constituent, channel or purpose.No findings
Why it is in this group
- The name "bloomerang_list_interactions" says "list": a word for reading.
Description, as the server wrote it List logged interactions (calls, emails, meetings, letters ...) — filter by constituent, channel or purpose. Bloomerang: GET /interactions.
Annotations the server declares
- title: List interactions
- readOnlyHint: true
bloomerang_list_notesList notes, optionally for specific constituents.No findings
Why it is in this group
- The name "bloomerang_list_notes" says "list": a word for reading.
Description, as the server wrote it List notes, optionally for specific constituents. Bloomerang: GET /notes.
Annotations the server declares
- title: List notes
- readOnlyHint: true
bloomerang_list_tasksList tasks (follow-ups) — filter by status, due-date range, assignee user, constituent, channel or purpose.No findings
Why it is in this group
- The name "bloomerang_list_tasks" says "list": a word for reading.
Description, as the server wrote it List tasks (follow-ups) — filter by status, due-date range, assignee user, constituent, channel or purpose. Bloomerang: GET /tasks.
Annotations the server declares
- title: List tasks
- readOnlyHint: true
bloomerang_list_transactionsList transactions — donations, pledges, pledge payments, recurring donations and their payments — with their designations (fund, campaign, appeal).No findings
Why it is in this group
- The name "bloomerang_list_transactions" says "list": a word for reading.
Description, as the server wrote it List transactions — donations, pledges, pledge payments, recurring donations and their payments — with their designations (fund, campaign, appeal). Filter by constituent, amount range, type or last-modified date. Read only. Bloomerang: GET /transactions.
Annotations the server declares
- title: List transactions (gifts)
- readOnlyHint: true
bloomerang_search_constituentsFull-text search across constituents (individuals and organizations) and households by name, email, etc.No findings
Why it is in this group
- The name "bloomerang_search_constituents" says "search": a word for reading.
Description, as the server wrote it Full-text search across constituents (individuals and organizations) and households by name, email, etc. Start here to find a donor's Id. Bloomerang: GET /constituents/search.
Annotations the server declares
- title: Search constituents
- 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 bloomerang https://bloomerang.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__bloomerang__bloomerang_get_current_user",
"mcp__bloomerang__bloomerang_search_constituents",
"mcp__bloomerang__bloomerang_list_constituents",
"mcp__bloomerang__bloomerang_get_constituent",
"mcp__bloomerang__bloomerang_get_constituent_timeline",
"mcp__bloomerang__bloomerang_list_constituent_relationships",
"mcp__bloomerang__bloomerang_get_household",
"mcp__bloomerang__bloomerang_list_transactions",
"mcp__bloomerang__bloomerang_get_transaction",
"mcp__bloomerang__bloomerang_list_funds",
"mcp__bloomerang__bloomerang_list_campaigns",
"mcp__bloomerang__bloomerang_list_appeals",
"mcp__bloomerang__bloomerang_list_interactions",
"mcp__bloomerang__bloomerang_list_notes",
"mcp__bloomerang__bloomerang_list_tasks"
],
"ask": [],
"deny": [
"mcp__bloomerang__bloomerang_create_constituent",
"mcp__bloomerang__bloomerang_update_constituent",
"mcp__bloomerang__bloomerang_create_interaction",
"mcp__bloomerang__bloomerang_create_note",
"mcp__bloomerang__bloomerang_create_task"
]
}
}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 bloomerang. Review it before you use it.