WildApricot · Capability

WildApricot Membership Management

Unified capability for managing membership organizations using WildApricot. Covers contact/member lifecycle, event registration, membership levels, invoicing, and payment processing. Intended for association administrators, membership coordinators, and nonprofit operations staff automating member engagement and financial workflows.

Run with Naftiko WildApricotMembership ManagementAssociationsNonprofitEventsPayments

What You Can Do

GET
List contacts — List all contacts/members
/v1/contacts
POST
Create contact — Create a new contact/member
/v1/contacts
GET
Get contact — Get a contact by ID
/v1/contacts/{contactId}
GET
List events — List all events
/v1/events
POST
Create event — Create a new event
/v1/events
GET
List registrations — List event registrations
/v1/event-registrations
GET
List membership levels — List all membership levels
/v1/membership-levels
GET
List invoices — List invoices
/v1/invoices
GET
List payments — List payments
/v1/payments
GET
List donations — List donations
/v1/donations

MCP Tools

list-members

Retrieve all contacts/members for a WildApricot organization account.

read-only idempotent
get-member

Retrieve full details for a specific WildApricot member including membership status, level, and contact fields.

read-only idempotent
add-member

Create a new contact/member record in a WildApricot organization.

list-events

List all events for a WildApricot organization, including upcoming and past events.

read-only idempotent
list-event-registrations

List event registrations for a WildApricot organization to see who registered for which events.

read-only idempotent
list-membership-levels

Retrieve all membership levels with their pricing, renewal terms, and access privileges.

read-only idempotent
list-invoices

List outstanding and paid invoices for a WildApricot organization.

read-only idempotent
list-payments

List payment records for a WildApricot organization.

read-only idempotent
list-donations

List donation records for a WildApricot organization.

read-only idempotent

APIs Used

wildapricot-admin

Capability Spec

Raw ↑
naftiko: "1.0.0-alpha1"

info:
  label: "WildApricot Membership Management"
  description: >-
    Unified capability for managing membership organizations using WildApricot.
    Covers contact/member lifecycle, event registration, membership levels,
    invoicing, and payment processing. Intended for association administrators,
    membership coordinators, and nonprofit operations staff automating
    member engagement and financial workflows.
  tags:
    - WildApricot
    - Membership Management
    - Associations
    - Nonprofit
    - Events
    - Payments
  created: "2026-05-03"
  modified: "2026-05-03"

binds:
  - namespace: env
    keys:
      WILDAPRICOT_API_KEY: WILDAPRICOT_API_KEY

capability:
  consumes:
    - import: wildapricot-admin
      location: ./shared/wildapricot-admin-api.yaml

  exposes:
    - type: rest
      port: 8080
      namespace: wildapricot-membership-api
      description: "Unified REST API for WildApricot membership management workflows."
      resources:
        - path: /v1/contacts
          name: contacts
          description: "Member and contact management"
          operations:
            - method: GET
              name: list-contacts
              description: "List all contacts/members"
              call: "wildapricot-admin.list-contacts"
              with:
                accountId: "rest.accountId"
              outputParameters:
                - type: object
                  mapping: "$."

            - method: POST
              name: create-contact
              description: "Create a new contact/member"
              call: "wildapricot-admin.create-contact"
              with:
                accountId: "rest.accountId"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/contacts/{contactId}
          name: contact
          description: "Individual contact/member"
          operations:
            - method: GET
              name: get-contact
              description: "Get a contact by ID"
              call: "wildapricot-admin.get-contact"
              with:
                accountId: "rest.accountId"
                contactId: "rest.contactId"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/events
          name: events
          description: "Event management"
          operations:
            - method: GET
              name: list-events
              description: "List all events"
              call: "wildapricot-admin.list-events"
              with:
                accountId: "rest.accountId"
              outputParameters:
                - type: object
                  mapping: "$."

            - method: POST
              name: create-event
              description: "Create a new event"
              call: "wildapricot-admin.create-event"
              with:
                accountId: "rest.accountId"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/event-registrations
          name: event-registrations
          description: "Event registration management"
          operations:
            - method: GET
              name: list-registrations
              description: "List event registrations"
              call: "wildapricot-admin.list-registrations"
              with:
                accountId: "rest.accountId"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/membership-levels
          name: membership-levels
          description: "Membership tiers and pricing"
          operations:
            - method: GET
              name: list-membership-levels
              description: "List all membership levels"
              call: "wildapricot-admin.list-membership-levels"
              with:
                accountId: "rest.accountId"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/invoices
          name: invoices
          description: "Invoice management"
          operations:
            - method: GET
              name: list-invoices
              description: "List invoices"
              call: "wildapricot-admin.list-invoices"
              with:
                accountId: "rest.accountId"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/payments
          name: payments
          description: "Payment records"
          operations:
            - method: GET
              name: list-payments
              description: "List payments"
              call: "wildapricot-admin.list-payments"
              with:
                accountId: "rest.accountId"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/donations
          name: donations
          description: "Donation records"
          operations:
            - method: GET
              name: list-donations
              description: "List donations"
              call: "wildapricot-admin.list-donations"
              with:
                accountId: "rest.accountId"
              outputParameters:
                - type: object
                  mapping: "$."

    - type: mcp
      port: 9090
      namespace: wildapricot-membership-mcp
      transport: http
      description: "MCP server for AI-assisted WildApricot membership management."
      tools:
        - name: list-members
          description: "Retrieve all contacts/members for a WildApricot organization account."
          hints:
            readOnly: true
            idempotent: true
            openWorld: true
          call: "wildapricot-admin.list-contacts"
          with:
            accountId: "tools.accountId"
          outputParameters:
            - type: object
              mapping: "$."

        - name: get-member
          description: "Retrieve full details for a specific WildApricot member including membership status, level, and contact fields."
          hints:
            readOnly: true
            idempotent: true
          call: "wildapricot-admin.get-contact"
          with:
            accountId: "tools.accountId"
            contactId: "tools.contactId"
          outputParameters:
            - type: object
              mapping: "$."

        - name: add-member
          description: "Create a new contact/member record in a WildApricot organization."
          hints:
            readOnly: false
            destructive: false
          call: "wildapricot-admin.create-contact"
          with:
            accountId: "tools.accountId"
          outputParameters:
            - type: object
              mapping: "$."

        - name: list-events
          description: "List all events for a WildApricot organization, including upcoming and past events."
          hints:
            readOnly: true
            idempotent: true
          call: "wildapricot-admin.list-events"
          with:
            accountId: "tools.accountId"
          outputParameters:
            - type: object
              mapping: "$."

        - name: list-event-registrations
          description: "List event registrations for a WildApricot organization to see who registered for which events."
          hints:
            readOnly: true
            idempotent: true
          call: "wildapricot-admin.list-registrations"
          with:
            accountId: "tools.accountId"
          outputParameters:
            - type: object
              mapping: "$."

        - name: list-membership-levels
          description: "Retrieve all membership levels with their pricing, renewal terms, and access privileges."
          hints:
            readOnly: true
            idempotent: true
          call: "wildapricot-admin.list-membership-levels"
          with:
            accountId: "tools.accountId"
          outputParameters:
            - type: object
              mapping: "$."

        - name: list-invoices
          description: "List outstanding and paid invoices for a WildApricot organization."
          hints:
            readOnly: true
            idempotent: true
          call: "wildapricot-admin.list-invoices"
          with:
            accountId: "tools.accountId"
          outputParameters:
            - type: object
              mapping: "$."

        - name: list-payments
          description: "List payment records for a WildApricot organization."
          hints:
            readOnly: true
            idempotent: true
          call: "wildapricot-admin.list-payments"
          with:
            accountId: "tools.accountId"
          outputParameters:
            - type: object
              mapping: "$."

        - name: list-donations
          description: "List donation records for a WildApricot organization."
          hints:
            readOnly: true
            idempotent: true
          call: "wildapricot-admin.list-donations"
          with:
            accountId: "tools.accountId"
          outputParameters:
            - type: object
              mapping: "$."