Skip to content

Elvanto MCP by usefulapi

by usefulapi.io · remote · no sign-in to list tools · v1.16.3 · published by io.usefulapi

Look up people, groups, service rosters, songs, follow-up flows and giving in Elvanto.

Deletes · 5

23 tools: 5 can delete or cancel things and 18 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 elvanto https://elvanto.usefulapi.io/mcp

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

23 tools

Deletes or cancels 5Claude Code: deny
  • elvanto_add_person_to_flow_stepPut a person into a people-flow step (e.g.No findings

    Why it is in this group

    • The name "elvanto_add_person_to_flow_step" says "add": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Put a person into a people-flow step (e.g. start a new guest's follow-up), optionally assigning a step admin. Elvanto: peopleFlows/steps/addPerson.

    Annotations the server declares

    • title: Add a person to a people-flow step
    • destructiveHint: true
  • elvanto_add_person_to_groupAdd a person to a group, optionally as Leader or Assistant Leader.No findings

    Why it is in this group

    • The name "elvanto_add_person_to_group" says "add": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Add a person to a group, optionally as Leader or Assistant Leader. Undoable by removing them from the group in Elvanto. Elvanto: groups/addPerson.

    Annotations the server declares

    • title: Add a person to a group
    • destructiveHint: true
  • elvanto_create_calendar_eventCreate an event on a calendar, optionally repeating.No findings

    Why it is in this group

    • The name "elvanto_create_calendar_event" says "create": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Create an event on a calendar, optionally repeating. Times are 24-hour GMT. Use status "draft" to stage it unpublished. Elvanto: calendar/events/create.

    Annotations the server declares

    • title: Create a calendar event
    • destructiveHint: true
  • elvanto_create_personAdd a new person to the church database (e.g.No findings

    Why it is in this group

    • The name "elvanto_create_person" says "create": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Add a new person to the church database (e.g. a first-time guest). Returns the new person id and family id. Does not create a login. Elvanto: people/create.

    Annotations the server declares

    • title: Create a person
    • destructiveHint: true
  • elvanto_update_personEdit an existing person's details — name, contact info, category, flags, family, or extra fields.No findings

    Why it is in this group

    • The name "elvanto_update_person" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Edit an existing person's details — name, contact info, category, flags, family, or extra fields. Only the fields you pass change. Cannot touch username, password or login status. Elvanto: people/edit.

    Annotations the server declares

    • title: Update a person
    • destructiveHint: true
Only reads 18Claude Code: allow
  • elvanto_get_groupFetch one group by id, optionally with its members (fields=["people"]).No findings

    Why it is in this group

    • The name "elvanto_get_group" says "get": a word for reading.
    Description, as the server wrote it
    Fetch one group by id, optionally with its members (fields=["people"]). Elvanto: groups/getInfo.

    Annotations the server declares

    • title: Get one group
    • readOnlyHint: true
  • elvanto_get_personFetch one person by id, optionally with extra fields (birthday, addresses, departments, locations, family, custom fields...).No findings

    Why it is in this group

    • The name "elvanto_get_person" says "get": a word for reading.
    Description, as the server wrote it
    Fetch one person by id, optionally with extra fields (birthday, addresses, departments, locations, family, custom fields...). Elvanto: people/getInfo.

    Annotations the server declares

    • title: Get one person
    • readOnlyHint: true
  • elvanto_get_serviceFetch one service by id with optional detail: service/rehearsal times, plan (order of service), volunteers roster, songs, files, notes.No findings

    Why it is in this group

    • The name "elvanto_get_service" says "get": a word for reading.
    Description, as the server wrote it
    Fetch one service by id with optional detail: service/rehearsal times, plan (order of service), volunteers roster, songs, files, notes. Elvanto: services/getInfo.

    Annotations the server declares

    • title: Get one service
    • readOnlyHint: true
  • elvanto_list_calendar_eventsList calendar events between two dates, optionally for specific calendars (use "services" as a calendar to include services).No findings

    Why it is in this group

    • The name "elvanto_list_calendar_events" says "list": a word for reading.
    Description, as the server wrote it
    List calendar events between two dates, optionally for specific calendars (use "services" as a calendar to include services). Elvanto: calendar/events/getAll.

    Annotations the server declares

    • title: List calendar events
    • readOnlyHint: true
  • elvanto_list_calendarsList the church's calendars with their ids.No findings

    Why it is in this group

    • The name "elvanto_list_calendars" says "list": a word for reading.
    Description, as the server wrote it
    List the church's calendars with their ids. Elvanto: calendar/getAll.

    Annotations the server declares

    • title: List calendars
    • readOnlyHint: true
  • elvanto_list_custom_fieldsList the church's custom person fields (id, name, type and allowed values).No findings

    Why it is in this group

    • The name "elvanto_list_custom_fields" says "list": a word for reading.
    Description, as the server wrote it
    List the church's custom person fields (id, name, type and allowed values). Use the id as custom_<id> in fields / search. Elvanto: people/customFields/getAll.

    Annotations the server declares

    • title: List custom person fields
    • readOnlyHint: true
  • elvanto_list_financial_categoriesList giving / chart-of-accounts categories (funds) with ids; status 1 = active, 0 = archived.No findings

    Why it is in this group

    • The name "elvanto_list_financial_categories" says "list": a word for reading.
    Description, as the server wrote it
    List giving / chart-of-accounts categories (funds) with ids; status 1 = active, 0 = archived. Elvanto: financial/categories/getAll.

    Annotations the server declares

    • title: List financial categories
    • readOnlyHint: true
  • elvanto_list_groupsList small groups / ministries with meeting day, time, place and frequency; add fields=["people"] to include members and leaders.No findings

    Why it is in this group

    • The name "elvanto_list_groups" says "list": a word for reading.
    Description, as the server wrote it
    List small groups / ministries with meeting day, time, place and frequency; add fields=["people"] to include members and leaders. Elvanto: groups/getAll.

    Annotations the server declares

    • title: List groups
    • readOnlyHint: true
  • elvanto_list_peopleList people in the church database, optionally filtered by category and by suspended / contact / archived status.No findings

    Why it is in this group

    • The name "elvanto_list_people" says "list": a word for reading.
    Description, as the server wrote it
    List people in the church database, optionally filtered by category and by suspended / contact / archived status. Paginated (the response carries page, per_page, total). Elvanto: people/getAll.

    Annotations the server declares

    • title: List people
    • readOnlyHint: true
  • elvanto_list_people_categoriesList the people categories (e.g.No findings

    Why it is in this group

    • The name "elvanto_list_people_categories" says "list": a word for reading.
    Description, as the server wrote it
    List the people categories (e.g. New People, Church Members, Inactive) with their ids. Elvanto: people/categories/getAll.

    Annotations the server declares

    • title: List people categories
    • readOnlyHint: true
  • elvanto_list_people_flow_step_peopleList the people currently in one people-flow step, with status, due date and assigned admin — e.g.No findings

    Why it is in this group

    • The name "elvanto_list_people_flow_step_people" says "list": a word for reading.
    Description, as the server wrote it
    List the people currently in one people-flow step, with status, due date and assigned admin — e.g. who still needs a follow-up call. Not paginated. Elvanto: peopleFlows/steps/people.

    Annotations the server declares

    • title: List people in a flow step
    • readOnlyHint: true
  • elvanto_list_people_flow_stepsList the steps of one people flow with descriptions, instructions, due rules and admins.No findings

    Why it is in this group

    • The name "elvanto_list_people_flow_steps" says "list": a word for reading.
    Description, as the server wrote it
    List the steps of one people flow with descriptions, instructions, due rules and admins. Elvanto: peopleFlows/steps/getAll.

    Annotations the server declares

    • title: List a people flow's steps
    • readOnlyHint: true
  • elvanto_list_people_flowsList people flows — the church's follow-up pipelines (e.g.No findings

    Why it is in this group

    • The name "elvanto_list_people_flows" says "list": a word for reading.
    Description, as the server wrote it
    List people flows — the church's follow-up pipelines (e.g. First Time Guest Follow Up) — with their steps and admins. Elvanto: peopleFlows/getAll.

    Annotations the server declares

    • title: List people flows
    • readOnlyHint: true
  • elvanto_list_servicesList services (upcoming by default).No findings

    Why it is in this group

    • The name "elvanto_list_services" says "list": a word for reading.
    Description, as the server wrote it
    List services (upcoming by default). Add fields such as volunteers (the roster), plans (order of service) and songs to answer 'who is serving Sunday?' or 'what are we singing?'. Elvanto: services/getAll.

    Annotations the server declares

    • title: List services
    • readOnlyHint: true
  • elvanto_list_song_arrangementsList the arrangements of one song — sequence, BPM, keys, lyrics and chord chart (optionally transposed).No findings

    Why it is in this group

    • The name "elvanto_list_song_arrangements" says "list": a word for reading.
    Description, as the server wrote it
    List the arrangements of one song — sequence, BPM, keys, lyrics and chord chart (optionally transposed). Elvanto: songs/arrangements/getAll.

    Annotations the server declares

    • title: List a song's arrangements
    • readOnlyHint: true
  • elvanto_list_songsList or search the song library by title, artist or lyrics (with CCLI number, categories and locations).No findings

    Why it is in this group

    • The name "elvanto_list_songs" says "list": a word for reading.
    Description, as the server wrote it
    List or search the song library by title, artist or lyrics (with CCLI number, categories and locations). Elvanto: songs/getAll.

    Annotations the server declares

    • title: List songs
    • readOnlyHint: true
  • elvanto_list_transactionsList giving transactions between two dates, optionally for one fund — donor, date, method, batch and per-fund amounts.No findings

    Why it is in this group

    • The name "elvanto_list_transactions" says "list": a word for reading.
    Description, as the server wrote it
    List giving transactions between two dates, optionally for one fund — donor, date, method, batch and per-fund amounts. Read-only: this server never writes financial records. Elvanto: financial/transactions/getAll.

    Annotations the server declares

    • title: List giving transactions
    • readOnlyHint: true
  • elvanto_search_peopleFind people matching field values, e.g.No findings

    Why it is in this group

    • The name "elvanto_search_people" says "search": a word for reading.
    Description, as the server wrote it
    Find people matching field values, e.g. {"email":"john@example.com"} or {"lastname":"Smith","volunteer":"yes"}. Searchable keys: firstname, preferred_name, lastname, email, phone, mobile, category_id, archived, contact, deceased, volunteer, gender, birthday, anniversary, marital_status, school_grade, security_code, receipt_name, giving_number, groups, date_added / date_modified / last_login (UTC, yyyy-mm-dd or yyyy-mm-dd hh:mm:ss; matched as on-or-after), and custom_<field id>. Use only one of archived / contact / deceased at a time. Elvanto: people/search.

    Annotations the server declares

    • title: Search people
    • 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 elvanto https://elvanto.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__elvanto__elvanto_list_people",
      "mcp__elvanto__elvanto_search_people",
      "mcp__elvanto__elvanto_get_person",
      "mcp__elvanto__elvanto_list_people_categories",
      "mcp__elvanto__elvanto_list_custom_fields",
      "mcp__elvanto__elvanto_list_groups",
      "mcp__elvanto__elvanto_get_group",
      "mcp__elvanto__elvanto_list_services",
      "mcp__elvanto__elvanto_get_service",
      "mcp__elvanto__elvanto_list_songs",
      "mcp__elvanto__elvanto_list_song_arrangements",
      "mcp__elvanto__elvanto_list_calendars",
      "mcp__elvanto__elvanto_list_calendar_events",
      "mcp__elvanto__elvanto_list_people_flows",
      "mcp__elvanto__elvanto_list_people_flow_steps",
      "mcp__elvanto__elvanto_list_people_flow_step_people",
      "mcp__elvanto__elvanto_list_financial_categories",
      "mcp__elvanto__elvanto_list_transactions"
    ],
    "ask": [],
    "deny": [
      "mcp__elvanto__elvanto_create_person",
      "mcp__elvanto__elvanto_update_person",
      "mcp__elvanto__elvanto_add_person_to_group",
      "mcp__elvanto__elvanto_add_person_to_flow_step",
      "mcp__elvanto__elvanto_create_calendar_event"
    ]
  }
}

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 elvanto. Review it before you use it.