Funraise MCP by usefulapi

Read Funraise supporters, donations, recurring gifts and forms; add notes, tasks and supporters.

我該用這個嗎

品質與安全性

A
說明品質
100%
結構描述完整度
87%
命名品質
76%
汙染風險
100%
權限相符程度
100%
協定合規性
100%

發現項目(5)

  • LOWTool 'funraise_list_form_custom_questions' name length outside 3-30 range在 funraise_list_form_custom_questions 中
  • LOWTool 'funraise_list_household_addresses' name length outside 3-30 range在 funraise_list_household_addresses 中
  • LOWTool 'funraise_list_supporter_addresses' name length outside 3-30 range在 funraise_list_supporter_addresses 中
  • LOWTool 'funraise_list_supporter_interactions' name length outside 3-30 range在 funraise_list_supporter_interactions 中
  • LOWTool 'funraise_list_user_interactions' name length outside 3-30 range在 funraise_list_user_interactions 中

根據工具定義與協定合規性的自動化分析。

上下文成本

~5,475Token(工具定義)
~1.3 KB典型回應大小
顯著的注意力影響(128k 上下文的 4.28%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `claude_desktop_config.json` 檔案:

{
  "mcpServers": {
    "funraise": {
      "url": "https://funraise.usefulapi.io/mcp"
    }
  }
}

遠端端點

https://funraise.usefulapi.io/mcpstreamable-http

它能做什麼

工具清單

工具(28)

🟢 唯讀🟡 寫入🔴 刪除⚪ 未知
🟢funraise_list_supporters(email, last_hours, page, page_size)

List supporters (donors) in the Funraise CRM, newest first as Funraise returns them. Filter by exact email or by records changed in the last N hours. GET /api/v1/crm/supporter.

輸入結構描述

{
  "type": "object",
  "properties": {
    "email": {
      "description": "Exact email address to look up.",
      "type": "string",
      "minLength": 3,
      "maxLength": 320
    },
    "last_hours": {
      "description": "Only supporters created or changed in the last N hours.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "page": {
      "description": "Page number. Funraise does not document whether paging starts at 0 or 1: omit it for the first page; if page 1 repeats the first page, numbering starts at 1.",
      "type": "integer",
      "minimum": 0,
      "maximum": 100000
    },
    "page_size": {
      "description": "Records per page, 1-100.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢funraise_get_supporter(supporter_id)

One supporter: name, email, phone, tags, opt-ins, household, primary address, institution. GET /api/v1/crm/supporter/{id}.

輸入結構描述

{
  "type": "object",
  "properties": {
    "supporter_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "supporter_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢funraise_list_donations(transaction_id, last_hours, last_updated, last_id, page, ...)

List donations (transactions) with amount, date, supporter, form, campaign page, allocation, fees and tags. Filter by an exact transactionId, by last N hours, or by a lastUpdated timestamp; use last_id to continue from the last donation id of the previous page. GET /api/v1/crm/donation.

輸入結構描述

{
  "type": "object",
  "properties": {
    "transaction_id": {
      "description": "Exact payment transaction id.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "last_hours": {
      "description": "Only donations created or changed in the last N hours.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "last_updated": {
      "description": "Only donations updated since this ISO 8601 timestamp, e.g. 2026-10-01T00:00:00Z.",
      "type": "string",
      "minLength": 4,
      "maxLength": 40
    },
    "last_id": {
      "description": "Continue after this donation id (the last id of the previous page).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "page": {
      "description": "Page number. Funraise does not document whether paging starts at 0 or 1: omit it for the first page; if page 1 repeats the first page, numbering starts at 1.",
      "type": "integer",
      "minimum": 0,
      "maximum": 100000
    },
    "page_size": {
      "description": "Records per page, 1-100.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢funraise_get_donation(donation_id)

One donation by its Funraise id: amount, date, supporter, household, form, allocation, dedication, fees, UTM, subscription. GET /api/v1/crm/donation/{id}.

輸入結構描述

{
  "type": "object",
  "properties": {
    "donation_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "donation_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢funraise_list_subscriptions(q, page, page_size)

List recurring gifts (subscriptions) with status, frequency, amount, next payment date and supporter. The q filter is a Funraise expression (Funraise requires it; default: id > 0 order by id asc), for example: id > 10 and status = "Cancelled" order by id asc. GET /api/v1/crm/subscription.

輸入結構描述

{
  "type": "object",
  "properties": {
    "q": {
      "description": "Filter expression, e.g. id > 10 and status = \"Cancelled\" order by id asc. Default: id > 0 order by id asc (all subscriptions).",
      "type": "string",
      "minLength": 1,
      "maxLength": 500
    },
    "page": {
      "description": "Page number. Funraise does not document whether paging starts at 0 or 1: omit it for the first page; if page 1 repeats the first page, numbering starts at 1.",
      "type": "integer",
      "minimum": 0,
      "maximum": 100000
    },
    "page_size": {
      "description": "Records per page, 1-100.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢funraise_get_subscription(subscription_id)

One recurring gift by id: status, frequency, amount, last and next payment date, cancel date, supporter. GET /api/v1/crm/subscription/{id}.

輸入結構描述

{
  "type": "object",
  "properties": {
    "subscription_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "subscription_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢funraise_list_forms(type, status, version, page, page_size)

List donation and event forms, filtered by type, status and version. Needs the CREATOR role on the key. GET /api/v1/form.

輸入結構描述

{
  "type": "object",
  "properties": {
    "type": {
      "description": "Form type filter, as shown in Funraise (for example donation or event).",
      "type": "string",
      "minLength": 1,
      "maxLength": 60
    },
    "status": {
      "description": "Form status filter, for example active or archived.",
      "type": "string",
      "minLength": 1,
      "maxLength": 60
    },
    "version": {
      "description": "Form version filter.",
      "type": "string",
      "minLength": 1,
      "maxLength": 20
    },
    "page": {
      "description": "Page number. Funraise does not document whether paging starts at 0 or 1: omit it for the first page; if page 1 repeats the first page, numbering starts at 1.",
      "type": "integer",
      "minimum": 0,
      "maximum": 100000
    },
    "page_size": {
      "description": "Records per page, 1-100.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢funraise_list_campaign_sites(archived, allow_fundraisers, page, page_size)

List campaign sites (fundraising pages), active by default or archived. Returns campaignSites with totalPageCount and totalRowCount. GET /api/v1/campaignSite/active or /archived.

輸入結構描述

{
  "type": "object",
  "properties": {
    "archived": {
      "description": "true = archived sites, otherwise active sites.",
      "type": "boolean"
    },
    "allow_fundraisers": {
      "description": "Active sites only: filter by whether peer-to-peer fundraisers are allowed.",
      "type": "boolean"
    },
    "page": {
      "description": "Page number. Funraise does not document whether paging starts at 0 or 1: omit it for the first page; if page 1 repeats the first page, numbering starts at 1.",
      "type": "integer",
      "minimum": 0,
      "maximum": 100000
    },
    "page_size": {
      "description": "Records per page, 1-100.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢funraise_get_campaign_site(campaign_site_uuid)

One campaign site by UUID: configuration preview (payment options, goals, form, homepage, fundraiser settings). GET /api/v1/campaignSite/{uuid}.

輸入結構描述

{
  "type": "object",
  "properties": {
    "campaign_site_uuid": {
      "type": "string",
      "minLength": 8,
      "maxLength": 64,
      "description": "The campaign site UUID."
    }
  },
  "required": [
    "campaign_site_uuid"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢funraise_list_form_custom_questions(form_id)

The custom questions attached to a form. GET /api/v2/form/{formId}/custom-question.

輸入結構描述

{
  "type": "object",
  "properties": {
    "form_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "form_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢funraise_get_household(household_id)

One household: name, salutation, member count, primary contact, preferred address, total giving. GET /api/v1/household/{householdId}.

輸入結構描述

{
  "type": "object",
  "properties": {
    "household_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "household_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢funraise_get_household_member(supporter_id)

The household membership of a supporter (household and supporter details). GET /api/v1/household/member/{supporterId}.

輸入結構描述

{
  "type": "object",
  "properties": {
    "supporter_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "supporter_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢funraise_list_household_addresses(household_id, sort, order, page, page_size)

Addresses of a household (paginated: list, page, pageSize, totalPageCount, totalRowCount). GET /api/v1/household/{householdId}/address.

輸入結構描述

{
  "type": "object",
  "properties": {
    "household_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "sort": {
      "description": "Field to sort by.",
      "type": "string",
      "minLength": 1,
      "maxLength": 40
    },
    "order": {
      "description": "Sort direction.",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "page": {
      "description": "Page number. Funraise does not document whether paging starts at 0 or 1: omit it for the first page; if page 1 repeats the first page, numbering starts at 1.",
      "type": "integer",
      "minimum": 0,
      "maximum": 100000
    },
    "page_size": {
      "description": "Records per page, 1-100.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "required": [
    "household_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢funraise_list_supporter_addresses(supporter_id, sort, order, page, page_size)

Addresses of a supporter (paginated). GET /api/v1/supporter/{supporterId}/address.

輸入結構描述

{
  "type": "object",
  "properties": {
    "supporter_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "sort": {
      "description": "Field to sort by.",
      "type": "string",
      "minLength": 1,
      "maxLength": 40
    },
    "order": {
      "description": "Sort direction.",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "page": {
      "description": "Page number. Funraise does not document whether paging starts at 0 or 1: omit it for the first page; if page 1 repeats the first page, numbering starts at 1.",
      "type": "integer",
      "minimum": 0,
      "maximum": 100000
    },
    "page_size": {
      "description": "Records per page, 1-100.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "required": [
    "supporter_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢funraise_get_address(address_id)

One address by id (street, city, state, postal code, country, primary flag, household and supporter). GET /api/v1/address/{addressId}.

輸入結構描述

{
  "type": "object",
  "properties": {
    "address_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "address_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢funraise_list_supporter_notes(supporter_id, sort, order, page, page_size)

Notes on a supporter's record (paginated). GET /api/v2/supporter/{id}/note.

輸入結構描述

{
  "type": "object",
  "properties": {
    "supporter_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "sort": {
      "description": "Field to sort by.",
      "type": "string",
      "minLength": 1,
      "maxLength": 40
    },
    "order": {
      "description": "Sort direction.",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "page": {
      "description": "Page number. Funraise does not document whether paging starts at 0 or 1: omit it for the first page; if page 1 repeats the first page, numbering starts at 1.",
      "type": "integer",
      "minimum": 0,
      "maximum": 100000
    },
    "page_size": {
      "description": "Records per page, 1-100.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "required": [
    "supporter_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢funraise_list_household_notes(household_id, sort, order, page, page_size)

Notes on a household's record (paginated). GET /api/v2/household/{id}/note.

輸入結構描述

{
  "type": "object",
  "properties": {
    "household_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "sort": {
      "description": "Field to sort by.",
      "type": "string",
      "minLength": 1,
      "maxLength": 40
    },
    "order": {
      "description": "Sort direction.",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "page": {
      "description": "Page number. Funraise does not document whether paging starts at 0 or 1: omit it for the first page; if page 1 repeats the first page, numbering starts at 1.",
      "type": "integer",
      "minimum": 0,
      "maximum": 100000
    },
    "page_size": {
      "description": "Records per page, 1-100.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "required": [
    "household_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢funraise_get_note(note_id)

One note by id, with title, body, importance and author. GET /api/v2/note/{id}.

輸入結構描述

{
  "type": "object",
  "properties": {
    "note_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "note_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢funraise_list_supporter_interactions(supporter_id)

The interaction log of a supporter (calls, emails, meetings): subject, description, action, assigned user, dates. GET /api/v1/interaction/donor/{donorId}.

輸入結構描述

{
  "type": "object",
  "properties": {
    "supporter_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "supporter_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢funraise_list_user_interactions(user_id)

Interactions assigned to a Funraise user (staff member). GET /api/v1/interaction/user/{userId}.

輸入結構描述

{
  "type": "object",
  "properties": {
    "user_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "user_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢funraise_get_interaction(interaction_id)

One interaction by id. GET /api/v1/interaction/{id}.

輸入結構描述

{
  "type": "object",
  "properties": {
    "interaction_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "interaction_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢funraise_get_task(task_id)

One task by id: title, description, due date, status, assigned user, supporter, linked donation. GET /api/v2/task/{id}.

輸入結構描述

{
  "type": "object",
  "properties": {
    "task_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "task_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡funraise_create_supporter_note(supporter_id, title, body, important)

WRITE: add a note to a supporter's record in Funraise. Creates a new note each call. POST /api/v2/supporter/{id}/note.

輸入結構描述

{
  "type": "object",
  "properties": {
    "supporter_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 1000,
      "description": "Note title."
    },
    "body": {
      "type": "string",
      "minLength": 1,
      "maxLength": 32000,
      "description": "Note text."
    },
    "important": {
      "description": "Mark the note important (default false).",
      "type": "boolean"
    }
  },
  "required": [
    "supporter_id",
    "title",
    "body"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡funraise_create_household_note(household_id, title, body, important)

WRITE: add a note to a household's record in Funraise. Creates a new note each call. POST /api/v2/household/{id}/note.

輸入結構描述

{
  "type": "object",
  "properties": {
    "household_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 1000,
      "description": "Note title."
    },
    "body": {
      "type": "string",
      "minLength": 1,
      "maxLength": 32000,
      "description": "Note text."
    },
    "important": {
      "description": "Mark the note important (default false).",
      "type": "boolean"
    }
  },
  "required": [
    "household_id",
    "title",
    "body"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡funraise_create_interaction(supporter_id, subject, description, action_required, completed_date)

WRITE: log an interaction (call, email, meeting) on a supporter's record. Creates a new interaction each call. POST /api/v1/interaction.

輸入結構描述

{
  "type": "object",
  "properties": {
    "supporter_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "subject": {
      "type": "string",
      "minLength": 1,
      "maxLength": 500,
      "description": "Short subject line."
    },
    "description": {
      "description": "Details of the interaction.",
      "type": "string",
      "maxLength": 10000
    },
    "action_required": {
      "description": "Type of action.",
      "type": "string",
      "enum": [
        "Phone",
        "Email",
        "In person meeting",
        "Attend event",
        "Thank",
        "Follow up",
        "Share impact report",
        "Other"
      ]
    },
    "completed_date": {
      "description": "When it was completed, ISO 8601, e.g. 2026-10-20T15:00:00Z.",
      "type": "string",
      "minLength": 8,
      "maxLength": 40
    }
  },
  "required": [
    "supporter_id",
    "subject"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡funraise_create_task(title, supporter_id, transaction_id, description, action_required, ...)

WRITE: create a task in Funraise, linked to a supporter or to a donation (give at least one). Title is 40 characters at most. Creates a new task each call. POST /api/v2/task.

輸入結構描述

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 40,
      "description": "Task title, 40 characters at most."
    },
    "supporter_id": {
      "description": "Supporter the task is about.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "transaction_id": {
      "description": "Donation (transaction) the task is about.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "description": {
      "description": "Task details.",
      "type": "string",
      "maxLength": 10000
    },
    "action_required": {
      "description": "Type of action.",
      "type": "string",
      "enum": [
        "Phone",
        "Email",
        "In person meeting",
        "Attend event",
        "Thank",
        "Follow up",
        "Share impact report",
        "Other"
      ]
    },
    "due_date": {
      "description": "Due date, ISO 8601, e.g. 2026-11-01T00:00:00Z.",
      "type": "string",
      "minLength": 8,
      "maxLength": 40
    },
    "assigned_to_user_id": {
      "description": "Funraise user id the task is assigned to.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "color": {
      "description": "Task colour in Funraise, hex like #2979ff.",
      "type": "string",
      "pattern": "^#[0-9a-fA-F]{6}$"
    }
  },
  "required": [
    "title"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴funraise_complete_task(task_id)

WRITE: mark a task complete (sets the completed date to now; Funraise may also log an interaction if the task automation says so). PUT /api/v1/task/{id}/complete.

輸入結構描述

{
  "type": "object",
  "properties": {
    "task_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "task_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡funraise_create_supporter(first_name, last_name, email, phone, tags, ...)

WRITE: create a supporter (donor) record in Funraise. Creates a new record each call, so search with funraise_list_supporters (email) first to avoid duplicates. POST /api/v1/crm/supporter.

輸入結構描述

{
  "type": "object",
  "properties": {
    "first_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "last_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "email": {
      "type": "string",
      "minLength": 3,
      "maxLength": 320
    },
    "phone": {
      "type": "string",
      "maxLength": 60
    },
    "tags": {
      "description": "Tags as one string, as Funraise stores them.",
      "type": "string",
      "maxLength": 1000
    },
    "email_opt_in": {
      "type": "boolean"
    },
    "sms_opt_in": {
      "type": "boolean"
    },
    "address1": {
      "type": "string",
      "maxLength": 300
    },
    "address2": {
      "type": "string",
      "maxLength": 300
    },
    "city": {
      "type": "string",
      "maxLength": 200
    },
    "state": {
      "type": "string",
      "maxLength": 100
    },
    "postal_code": {
      "type": "string",
      "maxLength": 40
    },
    "country": {
      "type": "string",
      "maxLength": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本28 個工具