Skip to content

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.

Deletes · 5

20 tools: 5 can delete or cancel things and 15 only read.

Scanned Oct 21, 2026

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/mcp

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
  • 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/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.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.