AI Assistant Tools Reference (MCP)
This page lists what a connected AI assistant can do through the Solidarity Tech MCP server. For how to connect an assistant and how organization admins control access, see AI Assistants (MCP).
Two things decide which tools your assistant sees:
- Your role. A tool only appears when your role has the matching dashboard permission. If you cannot see phonebank reports in the dashboard, your assistant cannot either.
- What you approved when connecting. Read access is always included. Each write permission is a separate checkbox on the approval page. To add one later, disconnect the assistant on Settings → AI Assistants and connect it again.
Every tool call runs as you. It sees exactly the people, events, campaigns, and automations your dashboard login sees, in the scope you approved (your whole organization or one chapter).
Read tools
These are available on every connection. Some appear only when your role has the listed permission. List tools return 25 results per page by default and 100 at most, and a single response cannot exceed 2 MB.
| Tool | What it does | Needs |
|---|---|---|
search_people | Finds people by name, email, or phone, or by a structured filter (the same filter engine as the People page). Can return a count only. | |
describe_people_filters | Lists the filter rules available in your organization, with their labels, value types, and operators. | |
search_filter_values | Resolves names to filter values: event names to ids, tag names, chapter names, custom property options. | |
get_person | One person's record: contact fields, custom properties, tags, chapter, assigned organizer, dashboard link. Restricted fields are redacted per your permissions. | |
get_person_timeline | A person's activity feed: texts, calls with notes and transcription summaries, notes, and platform activity. | |
list_relationships | Recorded relationships for a person. People outside your visibility are omitted. | |
list_scheduled_calls | Scheduled one on one calls, yours by default. | |
list_follow_up_tasks | Your follow up tasks, open by default. | |
list_saved_lists | Saved people lists in your scope. | |
get_org_schema | Chapters in your scope, member tags, custom property definitions, and your own identity and permissions on this connection. | |
search, fetch | A simple name, email, or phone search that returns person ids, and a full record lookup by that id. Some assistants use this pair instead of search_people. | |
list_events, get_event_turnout | Events with sessions; RSVP, attendance, and show rate per session. | Manage Events |
list_text_blasts, get_text_blast_report | Sent text blasts; delivery, clicks, conversions, opt outs. | Draft Text Blasts |
list_email_blasts, get_email_blast_report | Sent email blasts; delivery, opens, clicks, A/B results, unsubscribes. | Draft Email Blasts |
get_phonebank_report | Phonebank and textbank task results. | Any phonebank or textbank permission |
get_canvass_report | Door knocking results by turf and disposition. | Manage canvasses, and canvassing enabled for the organization |
get_team_activity | Organizer activity over a date window: calls, texts, notes, tasks, RSVPs, assignments. | View Team Activity |
list_automations, get_automation, get_automation_options, validate_automation | Read existing automations, list the available triggers, steps, and ids, and dry run a definition. | View automations or Manage automations |
Write tools
Write tools appear only when all three are true: the organization setting is Enabled, your role has AI Assistant Write Access, and you checked that permission when connecting. Each write also needs the dashboard permission you would need to do the same thing by hand.
| Approval checkbox | Tools | What they do | Needs |
|---|---|---|---|
| Add notes to people | create_note | Adds a note to a person, attributed to you. | Update Basic Person Details |
| Edit tags and custom properties | update_tags, update_custom_property | Adds or removes tags; sets one custom property value. Read only and restricted properties follow the dashboard rules. | Update Basic Person Details; Add New Tags for tag names that do not exist yet |
| Save people lists | create_saved_list | Saves a filter as a named list in your scope. | Add List |
| Schedule follow-up tasks for you | schedule_follow_up | Creates a follow up task with a person, assigned to you. | Can Be Assigned Agent |
| Create and edit automations | create_automation, update_automation, replace_automation_steps, update_automation_step, activate_automation, deactivate_automation | Builds and edits automations. See the next section. | Manage automations in the automation's scope |
Every write shows up in the dashboard exactly as if you had done it there: notes and tags on the person's timeline, lists on the People page, tasks in your task list, automations on the Automations page.
How automation building works
Automations send real messages to real people, so the tools follow a fixed order:
- Look up the building blocks.
get_automation_optionsreturns the trigger types, step types, the settings each step accepts, and the ids your assistant may reference: email senders, email wrappers, chapters, event tags, custom properties, funnels and stages, assessment keys, team member groups, assignable agents, roles, and the scope's languages. Events come fromlist_events. - Validate.
validate_automationchecks the whole definition and returns every problem at once, with nothing saved. Checks include triggers, steps, message text in every supported language, Liquid merge tags such as{{ user.first-name }}, decision filters, and every referenced id. - Create, inactive.
create_automationsaves the automation switched off. Nothing runs and nobody is messaged. The response includes a dashboard link so you can review it. - Activate on your say so.
activate_automationturns it on. The assistant is instructed to call it only when you explicitly ask to activate that automation. Activation is refused, with the list of problems, when the automation is not complete.
Editing follows the same rules:
update_automationchanges the name, triggers, languages, quiet hours, or goals. It never changes the on/off state.update_automation_stepchanges one step in place (message text, a delay length, tag names). This is safe while people are enrolled. Someone already waiting on a delay keeps their original timer; the new value applies to people who reach the step later.replace_automation_stepsswaps the whole step tree. It is refused while anyone is actively enrolled, because removing steps would strand people mid flow. Deactivate first and wait for enrollments to finish, or edit single steps.deactivate_automationstops new enrollments. People already enrolled finish their remaining steps, the same as the dashboard toggle.
What the tools refuse:
- Any sender, wrapper, page, event, saved list, chapter, or agent that belongs to another organization.
- Unknown settings keys, unknown trigger or step types, unsupported language codes, and message text without the default language.
- A duplicate name in the same scope (unless you ask to allow it).
- Changes to an automation that belongs to a parent organization when your connection is approved for a chapter or a child organization. Your assistant can read those automations but not change them.
Example prompts
| Ask | What the assistant uses |
|---|---|
| "How many members in the Oakland chapter have not been contacted in 90 days?" | describe_people_filters, search_filter_values, search_people with count only |
| "Prep me for my calls this week." | list_scheduled_calls, then get_person_timeline for each person |
| "How did Tuesday's text blast do?" | list_text_blasts, get_text_blast_report |
| "What was the show rate for the rally?" | list_events, get_event_turnout |
| "Add a note that Maria agreed to volunteer at the picket." | create_note (needs the notes permission) |
"Tag everyone who attended the training as trained-steward." | search_people, then update_tags per person (needs the tags permission) |
| "Save that as a list called Q3 stewards." | create_saved_list (needs the lists permission) |
| "Remind me to call Jamal Friday at 3pm." | schedule_follow_up (needs the tasks permission) |
| "Build a welcome series: text on signup, wait two days, then tag them welcomed." | get_automation_options, validate_automation, create_automation (needs the automations permission). The automation is created off. |
| "Looks good, turn it on." | activate_automation |
Safety notes
- Data your assistant reads (messages, notes, transcripts, names, property values) is treated as data, never as instructions. The assistant is told to ignore any directions embedded in it.
- The assistant is instructed to make a change only when you asked for that change in the current conversation.
- Every tool call is recorded with the tool name, the connection, and whether it succeeded. Message contents and person data are not stored in that log. A write also records the id of the record it touched, and nothing else.
- Disconnecting on Settings → AI Assistants revokes access immediately. Setting the organization to Read only blocks every write tool for every connection, regardless of what individuals approved.
Updated about 3 hours ago
