Funraise MCP by usefulapi
Read Funraise supporters, donations, recurring gifts and forms; add notes, tasks and supporters.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (5)
- LOWen funraise_list_form_custom_questions
- LOWen funraise_list_household_addresses
- LOWen funraise_list_supporter_addresses
- LOWen funraise_list_supporter_interactions
- LOWen funraise_list_user_interactions
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"funraise": {
"url": "https://funraise.usefulapi.io/mcp"
}
}
}Puntos de conexión remotos
https://funraise.usefulapi.io/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (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.
Esquema de entrada
{
"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}.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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}.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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}.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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}.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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}.
Esquema de entrada
{
"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}.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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}.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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}.
Esquema de entrada
{
"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}.
Esquema de entrada
{
"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}.
Esquema de entrada
{
"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}.
Esquema de entrada
{
"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}.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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"
}Comunidad
Evidencia