Servidor MCP

neon-crm

io.usefulapi/neon-crm
Negocio y operaciones Público y accesible MCP 2026-07-28

Qué hace este MCP

Manages nonprofit constituent accounts, donations, memberships, fundraising campaigns, events and constituent activities in Neon CRM.

neon_create_account
Create an account
Create a constituent account: an INDIVIDUAL (a person) or a COMPANY (with company_name, plus an optional primary contact). Neon's Account Match may merge it into an existing account with the same name and email, so check neon_list_accounts by email first. Returns the new id. Neon: POST /accounts.
Destructivo
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['type'], 'properties': {'city': {'type': 'string', 'description': 'City.'}, 'type': {'enum': ['INDIVIDUAL', 'COMPANY'], 'type': 'string', 'description': 'Individual person or company account.'}, 'email': {'type': 'string', 'description': 'Primary email (primaryContact.email1).'}, 'phone': {'type': 'string', 'description': 'Phone number (stored on the primary address as phone1).'}, 'email2': {'type': 'string', 'description': 'Secondary email (primaryContact.email2).'}, 'zip_code': {'type': 'string', 'description': 'ZIP / postal code.'}, 'job_title': {'type': 'string', 'description': 'Job title (primaryContact.title).'}, 'last_name': {'type': 'string', 'description': 'Last name.'}, 'source_id': {'type': 'string', 'description': 'Source id (see neon_list_properties name=sources).'}, 'country_id': {'type': 'string', 'description': 'Country id (see neon_list_properties name=countries).'}, 'first_name': {'type': 'string', 'description': 'First name (primaryContact.firstName).'}, 'phone_type': {'enum': ['Home', 'Work', 'Mobile', 'Other'], 'type': 'string', 'description': 'Phone type.'}, 'middle_name': {'type': 'string', 'description': 'Middle name.'}, 'company_name': {'type': 'string', 'description': 'Company name — required when type is COMPANY.'}, 'address_line1': {'type': 'string', 'description': 'Primary address, line 1.'}, 'address_line2': {'type': 'string', 'description': 'Primary address, line 2.'}, 'preferred_name': {'type': 'string', 'description': 'Preferred name.'}, 'no_solicitation': {'type': 'boolean', 'description': 'Mark the account as do-not-solicit.'}, 'state_province_code': {'type': 'string', 'description': 'State/province code, e.g. CA.'}}}
neon_create_activity
Log an activity
Create an activity — log an interaction with a constituent (call, meeting, note) or schedule a task. Needs a subject, a start date, a time zone id (neon_list_properties name=systemTimezones), a status id (name=activityStatuses) and a priority; link it to accounts and assign it to system users. Returns the new id. Neon: POST /activities.
Destructivo
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['subject', 'start_date', 'time_zone_id', 'status_id', 'priority'], 'properties': {'note': {'type': 'string', 'description': 'The body / notes.'}, 'subject': {'type': 'string', 'minLength': 1, 'description': 'Short subject line.'}, 'end_date': {'type': 'string', 'description': 'End date, YYYY-MM-DD.'}, 'end_time': {'type': 'string', 'description': 'End time.'}, 'priority': {'enum': ['High', 'Normal', 'Low'], 'type': 'string', 'description': 'Priority.'}, 'status_id': {'type': 'string', 'description': 'Activity status id (neon_list_properties name=activityStatuses).'}, 'start_date': {'type': 'string', 'description': 'Start date, YYYY-MM-DD.'}, 'start_time': {'type': 'string', 'description': 'Start time, e.g. 09:30.'}, 'account_ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Accounts this activity is about.'}, 'time_zone_id': {'type': 'string', 'description': 'Time zone id (neon_list_properties name=systemTimezones).'}, 'system_user_ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'System users it is assigned to.'}}}
neon_get_account
Get one account
Fetch one account in full — returned as individualAccount or companyAccount with its primary contact, addresses, consent, custom fields, current membership status and timestamps. Neon: GET /accounts/{id}.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['account_id'], 'properties': {'account_id': {'type': 'string', 'minLength': 1, 'description': 'The account id.'}}}
neon_get_activity
Get one activity
Fetch one activity (a logged interaction or task) — subject, note, dates, linked accounts, assigned users, status and priority. Neon: GET /activities/{id}.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['activity_id'], 'properties': {'activity_id': {'type': 'string', 'minLength': 1, 'description': 'The activity id.'}}}
neon_get_campaign
Get one campaign
Fetch one campaign — dates, goal, fund, purpose, parent campaign, status, page URLs and fundraising statistics. Neon: GET /campaigns/{id}.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['campaign_id'], 'properties': {'campaign_id': {'type': 'string', 'minLength': 1, 'description': 'The campaign id.'}}}
neon_get_donation
Get one donation
Fetch one donation — amount, date, fund, campaign, purpose, source, tribute, soft-credit solicitor, payments and status. Neon: GET /donations/{id}.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['donation_id'], 'properties': {'donation_id': {'type': 'string', 'minLength': 1, 'description': 'The donation id.'}}}
neon_get_event
Get one event
Fetch one event — name, summary, dates, location, capacity, category, campaign, registration and financial settings. Neon: GET /events/{id}.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['event_id'], 'properties': {'event_id': {'type': 'string', 'minLength': 1, 'description': 'The event id.'}}}
neon_get_membership
Get one membership
Fetch one membership — level, term, dates, fee, status, auto-renewal, sub-members and payments. Neon: GET /memberships/{membershipId}.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['membership_id'], 'properties': {'membership_id': {'type': 'string', 'minLength': 1, 'description': 'The membership id.'}}}
neon_get_organization_profile
Get the organization profile
Fetch the Neon CRM organization these credentials belong to — its name, org ID and app URL. A cheap way to confirm the org ID and API key work. Neon: GET /properties/organizationProfile.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
neon_list_account_donations
List an account's donations
List one account's donations (amount, date, fund, campaign, purpose, status, payments), newest first by default. Neon: GET /accounts/{id}/donations.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['account_id'], 'properties': {'account_id': {'type': 'string', 'minLength': 1, 'description': 'The account id.'}, 'sort_column': {'enum': ['date', 'amount'], 'type': 'string', 'description': 'Sort by date or amount.'}, 'current_page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': '0-based page number (Neon pages start at 0). Default 0.'}, 'sort_direction': {'enum': ['ASC', 'DESC'], 'type': 'string', 'description': 'Sort direction.'}}}
neon_list_account_event_registrations
List an account's event registrations
List the event registrations one account has made, optionally for a single event. Neon: GET /accounts/{id}/eventRegistrations.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['account_id'], 'properties': {'event_id': {'type': 'string', 'description': 'Only registrations for this event.'}, 'account_id': {'type': 'string', 'minLength': 1, 'description': 'The account id.'}, 'current_page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': '0-based page number (Neon pages start at 0). Default 0.'}, 'sort_direction': {'enum': ['ASC', 'DESC'], 'type': 'string', 'description': 'Sort direction.'}}}
neon_list_account_memberships
List an account's memberships
List one account's membership history — level, term, start and end dates, fee, status (e.g. SUCCEEDED/FAILED) and auto-renewal. Filter to active or the primary active membership. Neon: GET /accounts/{id}/memberships.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['account_id'], 'properties': {'is_active': {'type': 'boolean', 'description': "Only memberships matching the account's Active member flag."}, 'page_size': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Results per page.'}, 'account_id': {'type': 'string', 'minLength': 1, 'description': 'The account id.'}, 'sort_column': {'enum': ['date', 'amount'], 'type': 'string', 'description': 'Sort by date or amount.'}, 'current_page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': '0-based page number (Neon pages start at 0). Default 0.'}, 'sort_direction': {'enum': ['ASC', 'DESC'], 'type': 'string', 'description': 'Sort direction.'}, 'primary_active_membership': {'type': 'boolean', 'description': 'Only the highest-value active membership.'}}}
neon_list_accounts
List accounts
List constituent accounts (individuals and companies), optionally filtered by email, first or last name, or type. Returns accountId, names, email and userType. For richer queries use neon_search. Neon: GET /accounts.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'email': {'type': 'string', 'description': 'Exact email address.'}, 'last_name': {'type': 'string', 'description': 'Last name.'}, 'page_size': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Results per page.'}, 'user_type': {'enum': ['INDIVIDUAL', 'COMPANY'], 'type': 'string', 'description': 'Account type.'}, 'first_name': {'type': 'string', 'description': 'First name.'}, 'current_page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': '0-based page number (Neon pages start at 0). Default 0.'}}}
neon_list_campaigns
List campaigns
List fundraising campaigns (id, code, name, status). Neon: GET /campaigns.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
neon_list_event_registrations
List an event's registrations
List the registrations for one event — registrant account, tickets and attendees, amount, payments. Optionally only one registrant. Neon: GET /events/{id}/eventRegistrations.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['event_id'], 'properties': {'page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': '0-based page number (Neon pages start at 0). Default 0.'}, 'event_id': {'type': 'string', 'minLength': 1, 'description': 'The event id.'}, 'page_size': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Results per page.'}, 'sort_direction': {'enum': ['ASC', 'DESC'], 'type': 'string', 'description': 'Sort direction.'}, 'registrant_account_id': {'type': 'string', 'description': "Only this registrant's registrations."}}}
neon_list_events
List events
List events, filterable by name, category, date window, published or archived state. Dates are YYYY-MM-DD. Only Neon's legacy events are exposed by the API. Neon: GET /events.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'archived': {'type': 'boolean', 'description': 'Only archived (true) or active (false) events.'}, 'page_size': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Results per page.'}, 'event_name': {'type': 'string', 'description': 'Event name.'}, 'current_page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': '0-based page number (Neon pages start at 0). Default 0.'}, 'end_date_after': {'type': 'string', 'description': 'Events ending after this date (YYYY-MM-DD).'}, 'event_category': {'type': 'string', 'description': 'Event category (a delimited list is allowed).'}, 'end_date_before': {'type': 'string', 'description': 'Events ending before this date (YYYY-MM-DD).'}, 'published_event': {'type': 'boolean', 'description': 'Only published (true) or unpublished (false) events.'}, 'start_date_after': {'type': 'string', 'description': 'Events starting after this date (YYYY-MM-DD).'}, 'start_date_before': {'type': 'string', 'description': 'Events starting before this date (YYYY-MM-DD).'}}}
neon_list_membership_levels
List membership levels
List the organization's membership levels (id, code, description, rank, type, status). Neon: GET /memberships/levels.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'status': {'enum': ['ACTIVE', 'INACTIVE'], 'type': 'string', 'description': 'Only levels with this status.'}, 'page_size': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Results per page.'}, 'current_page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': '0-based page number (Neon pages start at 0). Default 0.'}}}
neon_list_properties
List lookup values
List one of the organization's lookup lists — the ids other tools need: funds, purposes, sources, solicitation methods, activity statuses and system time zones (for neon_create_activity), system users, individual and company types, event categories, countries, states/provinces, genders, prefixes. Neon: GET /properties/{name}.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['name'], 'properties': {'name': {'enum': ['funds', 'purposes', 'sources', 'solicitationMethods', 'activityStatuses', 'systemTimezones', 'systemUsers', 'individualTypes', 'companyTypes', 'eventCategories', 'countries', 'stateProvinces', 'genders', 'prefixes'], 'type': 'string', 'description': 'Which lookup list.'}}}
neon_list_search_fields
List search or output fields
Discover the field names neon_search accepts for a resource: kind=searchFields gives filterable fields with their allowed operators; kind=outputFields gives the columns you can return (standard field names plus custom fields with numeric ids). Call this before neon_search. Neon: GET /{resource}/search/searchFields or /outputFields.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['resource', 'kind'], 'properties': {'kind': {'enum': ['searchFields', 'outputFields'], 'type': 'string', 'description': 'Filter fields or output columns.'}, 'resource': {'enum': ['accounts', 'donations', 'activities', 'events'], 'type': 'string', 'description': 'Which record type.'}}}
neon_search
Search records
Report-style search over accounts, donations (includes pledges and pledge payments), activities or events. Give filter criteria (field + operator + value), the output columns to return (standard field NAMES as strings, or custom-field IDS as integers — both from neon_list_search_fields), and 0-based pagination. Results come back as searchResults rows keyed by output field name, plus pagination totals. Neon allows only ONE concurrent search per endpoint. Neon: POST /{resource}/search.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['resource', 'search_fields', 'output_fields'], 'properties': {'resource': {'enum': ['accounts', 'donations', 'activities', 'events'], 'type': 'string', 'description': 'Which record type to search.'}, 'page_size': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Results per page.'}, 'sort_column': {'type': 'string', 'description': 'Output field name to sort by — it must also appear in output_fields.'}, 'current_page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': '0-based page number (Neon pages start at 0). Default 0.'}, 'output_fields': {'type': 'array', 'items': {'anyOf': [{'type': 'string'}, {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}]}, 'maxItems': 300, 'minItems': 1, 'description': 'Columns to return: standard field names (strings) and/or custom-field ids (integers). Max 300.'}, 'search_fields': {'type': 'array', 'items': {'type': 'object', 'required': ['field', 'operator'], 'properties': {'field': {'type': 'string', 'description': "A search field name, e.g. 'Email' or 'Donation Date'."}, 'value': {'type': 'string', 'description': 'The value to compare against.'}, 'operator': {'enum': ['EQUAL', 'NOT_EQUAL', 'BLANK', 'NOT_BLANK', 'LESS_THAN', 'GREATER_THAN', 'LESS_AND_EQUAL', 'GREATER_AND_EQUAL', 'IN_RANGE', 'NOT_IN_RANGE', 'CONTAIN', 'NOT_CONTAIN'], 'type': 'string', 'description': 'Comparison operator. BLANK/NOT_BLANK take no value.'}, 'value_list': {'type': 'array', 'items': {'type': 'string'}, 'description': 'A list of values, for IN_RANGE / NOT_IN_RANGE.'}}}, 'minItems': 1, 'description': 'Filter criteria, ANDed together. Neon requires at least one.'}, 'sort_direction': {'enum': ['ASC', 'DESC'], 'type': 'string', 'description': 'Sort direction.'}}}
neon_update_account
Update an account
Change an account's name, email, job title, company name or do-not-solicit / email opt-out flags. Only the fields you pass are changed (PATCH). The type must match the account (see neon_get_account). Addresses are not edited here. Neon: PATCH /accounts/{id}.
Destructivo
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['account_id', 'type'], 'properties': {'type': {'enum': ['INDIVIDUAL', 'COMPANY'], 'type': 'string', 'description': "The account's type (individualAccount vs companyAccount)."}, 'email': {'type': 'string', 'description': 'Primary email (primaryContact.email1).'}, 'email2': {'type': 'string', 'description': 'Secondary email (primaryContact.email2).'}, 'job_title': {'type': 'string', 'description': 'Job title (primaryContact.title).'}, 'last_name': {'type': 'string', 'description': 'Last name.'}, 'account_id': {'type': 'string', 'minLength': 1, 'description': 'The account id.'}, 'first_name': {'type': 'string', 'description': 'First name (primaryContact.firstName).'}, 'middle_name': {'type': 'string', 'description': 'Middle name.'}, 'company_name': {'type': 'string', 'description': 'New company name (COMPANY accounts only).'}, 'email_opt_out': {'type': 'boolean', 'description': 'Opt the primary email out of email (email1OptOut).'}, 'preferred_name': {'type': 'string', 'description': 'Preferred name.'}, 'no_solicitation': {'type': 'boolean', 'description': 'Do-not-solicit flag.'}}}
neon_update_activity
Update an activity
Change an activity's subject, note, status (e.g. mark it completed) or priority. Only the fields you pass are changed (PATCH). Neon: PATCH /activities/{id}.
Destructivo
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['activity_id'], 'properties': {'note': {'type': 'string', 'description': 'New note (replaces the old one).'}, 'subject': {'type': 'string', 'description': 'New subject.'}, 'priority': {'enum': ['High', 'Normal', 'Low'], 'type': 'string', 'description': 'New priority.'}, 'status_id': {'type': 'string', 'description': 'New status id (neon_list_properties name=activityStatuses).'}, 'activity_id': {'type': 'string', 'minLength': 1, 'description': 'The activity id.'}}}
Modificado
neon_update_activity
2 de October de 2026 a las 02:40
Modificado
neon_create_activity
2 de October de 2026 a las 02:40
Modificado
neon_update_account
2 de October de 2026 a las 02:40
Modificado
neon_create_account
2 de October de 2026 a las 02:40
Modificado
neon_list_properties
2 de October de 2026 a las 02:40
Modificado
neon_get_activity
2 de October de 2026 a las 02:40
Modificado
neon_get_campaign
2 de October de 2026 a las 02:40
Modificado
neon_list_campaigns
2 de October de 2026 a las 02:40
Modificado
neon_list_event_registrations
2 de October de 2026 a las 02:40
Modificado
neon_get_event
2 de October de 2026 a las 02:40
Modificado
neon_list_events
2 de October de 2026 a las 02:40
Modificado
neon_list_membership_levels
2 de October de 2026 a las 02:40
Modificado
neon_get_membership
2 de October de 2026 a las 02:40
Modificado
neon_get_donation
2 de October de 2026 a las 02:40
Modificado
neon_list_account_event_registrations
2 de October de 2026 a las 02:40
Modificado
neon_list_account_memberships
2 de October de 2026 a las 02:40
Modificado
neon_list_account_donations
2 de October de 2026 a las 02:40
Modificado
neon_search
2 de October de 2026 a las 02:40
Modificado
neon_list_search_fields
2 de October de 2026 a las 02:40
Modificado
neon_get_account
2 de October de 2026 a las 02:40
Modificado
neon_list_accounts
2 de October de 2026 a las 02:40
Modificado
neon_get_organization_profile
2 de October de 2026 a las 02:40
Añadido
neon_update_activity
30 de September de 2026 a las 02:40
Añadido
neon_create_activity
30 de September de 2026 a las 02:40
Añadido
neon_update_account
30 de September de 2026 a las 02:40
Añadido
neon_create_account
30 de September de 2026 a las 02:40
Añadido
neon_list_properties
30 de September de 2026 a las 02:40
Añadido
neon_get_activity
30 de September de 2026 a las 02:40
Añadido
neon_get_campaign
30 de September de 2026 a las 02:40
Añadido
neon_list_campaigns
30 de September de 2026 a las 02:40