# Qomon MCP connector

The Qomon connector brings your contacts, donations, memberships and transactions into Claude, ChatGPT, Cursor and the Elaichi Agent, so each person can look up and update supporter records in plain language within their own Qomon access.

Source: https://elaichi.ai/connectors/qomon/

## Facts

| | |
| --- | --- |
| Application | Qomon |
| Category | CRM |
| AI tools | 53 |
| Authentication | Connects with an API key |
| Bring your own OAuth app | No |
| MCP endpoint | https://api.elaichi.ai/mcp |
| Works with | Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent |
| Tools advertised by name | No. Connected tools are never listed one by one, however few there are. The endpoint advertises `search_tools` and `execute_tool` instead |

## What you can ask once Qomon is connected

- Show this month's donations in Qomon and compare them to last month.
- Which Qomon memberships are up for renewal this quarter?
- Update Marie Dupont's Qomon contact with her new phone number.

## Connect Qomon in Elaichi

This happens once for the organization, before any client is involved.

1. Open Connections, choose Add connection, and pick Qomon.
2. Optionally set Share with, then press Connect.
3. Paste a Qomon API key. One person generates a token in Qomon and pastes it once. Everyone else works through Share with, and never sees it.

Credentials are vaulted and nobody, including the AI, reads them back. The connection becomes a toolbox immediately, so you can curate which Qomon tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Qomon MCP connector for Claude

Endpoint: https://api.elaichi.ai/mcp

1. Open Customize, then Connectors.
2. Press Add.
3. Name it, paste the MCP server URL, then Continue.
4. Sign in and approve.

On Team and Enterprise, an Owner adds it once. Everyone else turns it on for themselves.

## Qomon MCP connector for ChatGPT

Endpoint: https://api.elaichi.ai/mcp

1. Open Plugins, then press the + button.
2. Name it and paste the endpoint into Server URL.
3. Leave Authentication on OAuth, then tick the risk acknowledgement.
4. Press Create, then sign in and approve.

Works on the web today. The plugin directory lives at chatgpt.com/plugins.

## Qomon MCP connector for Cursor

Endpoint: https://api.elaichi.ai/mcp

1. Open `~/.cursor/mcp.json`.
2. Add the endpoint under `mcpServers`.
3. Reload Cursor, then sign in and approve.

Set up per machine, so repeat it on each computer you work from.

## Connect Qomon to any MCP client

Endpoint: https://api.elaichi.ai/mcp

1. Add the endpoint as a remote MCP server.
2. Sign in and approve.

The Elaichi Agent already has these tools, with nothing to set up.

## What the consent screen decides

Only Read is granted by default, which is not enough to call a Qomon tool. Over MCP there is no trusted place to confirm a write in the moment, so the consent screen is the standing approval rather than a formality. Grant Read and Run tools. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with Qomon through Elaichi

### Catch a supporter up after a canvass

Organizing. Back from the doors, tell the agent what changed and it updates the Qomon contact with the new phone number, address or support level. No typing into the app on your phone in the rain.

### Check this week's donations before the meeting

Fundraising. Ask how donations in Qomon are tracking against last week and get the totals, the count and the average gift in one answer. Follow up with which donation prices people actually chose.

### See which memberships are due to renew

Membership. Pull the list of Qomon memberships ending soon, grouped by price group, so the renewal drive starts with names rather than a spreadsheet export.

### Reconcile a transaction bundle without digging

Finance. Open a Qomon transaction bundle by asking for it, see every transaction inside it and its history, and fix the bundle if a payment landed in the wrong place.

### Load a sign-up sheet without duplicates

Data. Paste the names and emails from a rally sign-up sheet and the agent creates or updates each Qomon contact, matching people you already have instead of adding them twice.

### Find the right form and campaign code

Communications. Ask which Qomon forms and code campaigns are live before a mailing goes out, and confirm the exact form a link should point to.

## Frequently asked questions

### How do I connect Qomon to Claude?

Connect Qomon in Elaichi first: paste your Qomon API key when prompted, and the connection is ready. There is no OAuth application to register and no client ID or secret to generate. Then in Claude open Customize, then Connectors, then Add, and paste https://api.elaichi.ai/mcp. Sign in as yourself and Claude can work with your Qomon contacts, donations and memberships.

### Does Qomon work with ChatGPT and Cursor as well as Claude?

Yes. Once Qomon is connected in Elaichi, the same endpoint, https://api.elaichi.ai/mcp, works in Claude, ChatGPT, Cursor, any other MCP client and the Elaichi Agent. You connect Qomon once and every client you use picks it up.

### What can an AI agent actually do with my Qomon data?

With Qomon connected, an agent can look up a supporter, create or update a contact, load a list of new sign-ups without duplicates, and answer questions about donations, memberships and transactions. It can open a transaction bundle and its history, list your forms and code campaigns, and show donation and membership prices. Short, concrete asks such as "show donations this month" work better than long paragraphs.

### Does connecting Qomon give the AI everything in my organization?

No. Every call to Qomon runs inside the access of the person who signed in, so an agent sees the contacts, donations and memberships that person could already see in Qomon. Elaichi can narrow that further, for example to reading only, but it can never widen it beyond what Qomon itself allows.

### Can my team share one Qomon connection?

Yes. One person connects Qomon with the API key and shares the connection with a team in Elaichi, and nobody else ever handles the key. Each teammate still signs in to Elaichi as themselves, so the audit log names the actual person who updated a contact or looked at a donation.

### Can I stop an agent from deleting or changing things in Qomon?

Yes. Restrictions in Elaichi work per action, so you can allow reading Qomon contacts and donations while blocking deletion of contacts or transaction bundles. A restricted action is never shown to the AI client at all, so no prompt, however worded, can reach it.

### What happens to a Qomon connection when someone leaves?

Offboarding a person in Elaichi ends their access to Qomon through every client at once. If they set up a shared Qomon connection, it keeps working for everyone else on the team. When you want Qomon gone entirely, disconnecting it once in Elaichi removes it from Claude, ChatGPT, Cursor and every other client together.

### Does the Qomon MCP connector work with Gemini, Codex, Claude Code or other MCP clients?

Yes. Qomon is reached over the same MCP endpoint every client uses, so anything that speaks MCP can call it — Gemini, Codex, Claude Code, Windsurf, Cline, Zed and OpenCode among them — alongside Claude, ChatGPT, Cursor, and the Elaichi Agent. The tools on offer and the access behind them are identical whichever client asks. Only the setup screen differs.

## All 53 Qomon tools

Every tool below is callable through https://api.elaichi.ai/mcp once Qomon is connected, subject to the toolbox it is in and the restrictions on the caller.

- **Create a Qomon contact** (Create). Create a contact in qomon's database. Returns the created contact record including id, firstname, surname, mail, address, and notes. Required: data wrapping the contact fields (data.contact).
- **Get single Qomon contact by ID** (Get). Get a single contact by id in qomon. Returns the full contact payload (contact) including contact.id, firstname, surname, mail, address, birthdate, membership fields, notes, and tags. Required: id (integer contact ID).
- **Update a Qomon contact by ID** (Update). Update a contact by id in qomon. The endpoint fully replaces the existing contact (behaves like PUT), so send the complete data.contact payload. Returns the updated contact record including id, firstname, surname, mail, and address. Required: id (numeric contact ID) and data wrapping contact (data.contact).
- **Delete a Qomon contact by ID** (Delete). Delete a contact by id in qomon. Returns an empty 204 response on success. Required: id (integer contact ID).
- **Create a Qomon contacts upsert** (Create). Upsert a contact in Qomon asynchronously: match an existing contact by id, nationbuilderid, external_id, email, or name/address and create a new one if no match is found. Returns an empty 202 response with no body; processing happens asynchronously. Requires a data object containing the contact fields (e.g. id, firstname, surname, mail, address).
- **Get single Qomon form by ID** (Get). Get a qomon form by its numeric id. Returns the form record under form (id, label, type, refvalues, group_id, CreatedAt, UpdatedAt) and the matching list under forms. Required: id. Passing a form type string as id is deprecated — use the list-forms-by-type endpoint instead.
- **List all Qomon forms types** (List). List forms of a given type in qomon (one of consent, survey, level_of_support, custom_fields, presence_status, tasks). Returns forms — form records with id, label, type, refvalues, group_id, and CreatedAt/UpdatedAt timestamps. Required: type. Max 1000 per page.
- **List all Qomon transaction bundles** (List). List transaction bundles for the authenticated group, ordered by creation date (newest first). Returns bundle records with id, group_id, summary, transactions, memberships, and donations. Filter by creation date with created_from and created_to (RFC 3339). Maximum limit is 1000; updating a bundle does not move it to the top of the list.
- **Create a Qomon transaction bundle** (Create). Create a transaction bundle in qomon grouping one or more transactions with optional memberships and donations; the bundle is recorded in the space associated with the API key. Returns the created bundle with id, group_id, transactions, memberships, donations, and summary. Requires a data payload with at least one transaction (data.transactions).
- **Get single Qomon transaction bundle by ID** (Get). Get a single transaction bundle by id in qomon, including all associated transactions, memberships, and donations. Returns the bundle with id, group_id, summary, CreatedAt, transactions, memberships, and donations. Required: id.
- **Update a Qomon transaction bundle by ID** (Update). Update a qomon transaction bundle by id. Updates are additive — items not included in the request remain unchanged; include an item's id to update it or omit id to add a new one. Returns the updated bundle with id, group_id, summary, transactions, memberships, donations, CreatedAt, and UpdatedAt. Required: id and data (transactions is the only required array).
- **Delete a Qomon transaction bundle by ID** (Delete). Delete a qomon transaction bundle by id, permanently removing all its associated transactions, memberships, and donations. Returns: status. Required: id.
- **Get single Qomon transaction bundle history by ID** (Get). Get the complete change history for a transaction bundle in qomon. Each entry records a creation, modification, or deletion of a transaction, membership, donation, or status change. Returns: id, created_at, kind, target_id, transaction_bundle_id, user, new, old, source, amount, contact_id, date, CreatedAt, UpdatedAt, code_campaign, comment, comment_date, currency, delivered_at, delivery_token,…
- **List all Qomon contact transactions** (List). List a qomon contact's full transaction history (newest first). Returns transaction_bundles (each bundling transactions, donations, and memberships) plus total_don lifetime donated totals per currency. Required: contact_id.
- **List all Qomon transactions** (List). List transactions for the authenticated group in Qomon, ordered newest-first by default, with optional server-side filters on transaction date, creation date, amount, status, payment method, and campaign code. Returns: id, amount, contact_id, date, CreatedAt, UpdatedAt, code_campaign, comment, comment_date, currency, delivered_at, delivery_token, external_transaction_id, group_id, payment_method,…
- **Get single Qomon transaction by ID** (Get). Get a single transaction in qomon by id, including its contact, status, and the bundle it belongs to. Returns: id, amount, contact_id, date, CreatedAt, UpdatedAt, code_campaign, comment, comment_date, currency, delivered_at, delivery_token, external_transaction_id, group_id, payment_method, payment_method_kind, reimbursed_amount, status_id, transaction_bundle_id, unpaid_amount. Required: id.
- **List all Qomon donations** (List). List donations in qomon with server-side filters for donation date, creation date, amount, contact, and donation price. Returns: id, amount, amount_initial, currency, date, comment, affectation, contact_id, donation_price_id, contact, CreatedAt, UpdatedAt. Sorted by donation date (newest first) by default; maximum limit 1000.
- **List all Qomon donations kpis** (List). Get aggregate donation KPIs for the authenticated qomon group(s). Returns: donation_count, new_donors, unique_donors, totals_by_currency. All date, amount, contact_id, and donation_price_id filters are optional; aggregates are computed in a single request with no pagination.
- **List all Qomon memberships** (List). List qomon memberships for the authenticated group, filterable by start/end/created dates, amount range, contact, and membership price. Returns: id, amount, amount_initial, currency, start_date, end_date, rolling_year, comment, contact_id, membership_price_id, contact, CreatedAt, UpdatedAt. Ordered by start date (newest first) by default; max 1000 per page.
- **List all Qomon memberships kpis** (List). Retrieve aggregate membership KPIs for the authenticated qomon group(s) in a single request. Returns: membership_count, unique_members, new_members, totals_by_currency.
- **List all Qomon code campaigns** (List). List the campaign codes configured for your qomon group. Returns: code, created_at, updated_at. Use the returned codes as code_campaign on transactions. Max 1000 per page.
- **List all Qomon donation prices** (List). List donation prices configured for the qomon group. Returns: id, name, amount, currency, allow_custom_amount, hidden, kind, created_at, updated_at. Use the returned IDs as donation_price_id when creating donations. Max limit 1000.
- **List all Qomon membership price groups** (List). List all membership price groups configured for your group in qomon, each with its associated membership prices. Returns: id, name, hidden, created_at, updated_at, membership_prices. Max 1000 per page.
- **List all Qomon membership prices** (List). List all membership prices configured for the group in qomon. Returns: id, name, amount, currency, duration, kind, rolling_period, allow_custom_amount, hidden, membership_price_group_id, created_at, updated_at. Max 1000 per page. Use the returned ids as membership_price_id when creating memberships.
- **List all Qomon transaction settings** (List). Get the transaction settings for the authenticated qomon group, including enabled payment method kinds, the defaults used when creating transaction bundles, and batch/membership serial configuration. Returns: batch_prefix, batch_serial, batch_serial_updated_at, currency, default_donation_price_id, default_membership_price_id, default_status_id, max_batch_size, membership_prefix,…
- **List all Qomon transaction statuses** (List). List transaction statuses configured for the group in qomon. Returns: id, name, kind, color, archived, created_at, updated_at. Max 1000 per page.
- **List all Qomon users** (List). List users from the selected qomon space, optionally sorted alphabetically. Returns count and a users array; each user includes id, CreatedAt, UpdatedAt, firstname, surname, mail, phone, address, city, postal, location, avatar, birthdate, locale, status, group_id, contacts, role_data, and two-factor settings.
- **Get single Qomon user by ID** (Get). Get a single qomon user by id. Returns the user object including id, mail, firstname, surname, role_data, group_id, address, and two-factor settings. Required: id.
- **Update a Qomon user by ID** (Update). Partially update a qomon user by id. Send the fields to change (mail, address, avatar, birthdate, city, firstname, location, phone, postal, surname) under data. Returns a confirmation status on success. Required: id, data.
- **Delete a Qomon user by ID** (Delete). Delete a qomon user by id, removing them from the selected space. Returns: data, status.g. "OK"), status. Required: id.
- **Qomon users roles bulk update** (Update). Update a user's role in the selected qomon space. Returns a plain result message ("OK") on success. Required: data containing role_id and user_id; look up valid role_id values with the roles list endpoint.
- **List all Qomon teams** (List). List all qomon teams the caller has access to. Returns a teams array where each team includes id, name, address, leaders, users, and created_at/updated_at timestamps.
- **Create a Qomon team** (Create). Create a new team in qomon. Returns the created team (under team) including its id, name, address, leaders, users, and created_at/updated_at timestamps. Requires the data.team payload (name, users, address, description, hide_users, leaders, private).
- **Update a Qomon team by ID** (Update). Update an existing qomon team by id (full replace). Returns the updated team (under team) including id, name, address, leaders, users, and created_at/updated_at timestamps. Required: id and the full data.team payload.
- **Get single Qomon team by ID** (Get). Get a single qomon team by id. Returns the team record (team) including id, name, address, leaders, users, and created_at/updated_at timestamps. Required: id.
- **Delete a Qomon team by ID** (Delete). Delete a qomon team by id. Soft-deletes the team with the given ID. Returns: message, team_id. Required: id.
- **List all Qomon teams publics** (List). List public teams in qomon. Returns an array of team records including id, name, description, address, leaders, users, private flag, and created_at/updated_at timestamps. No required parameters.
- **List all Qomon roles** (List). List all roles available in the selected qomon space. Returns: count, roles.
- **List all Qomon users invitations** (List). List all user invitations in the qomon space. Returns each invitation with id, email, created_at, role_id, team_ids, and user_id. Max 1000 per page.
- **Create a Qomon users invitation** (Create). Invite users to a qomon space by email address. Returns each created invitation with id, email, created_at, role_id, team_ids, and user_id. Required: data.invitations, each with an email.
- **Delete a Qomon users invitation by ID** (Delete). Delete a user invitation in qomon by its id. Returns: data, status.message and status confirming the invitation was deleted. Required: id.
- **Create a Qomon global message** (Create). Send a global message to the specified teams in the sender-selected space in qomon; the data payload carries the message body, title, and team_ids of the recipient teams. Returns: accepted. Required: data.
- **List all Qomon contact interactions** (List). List a contact's interactions in qomon. Returns each interaction with id, title, type, sub_type, date_of_event, tags, and the user who logged it. Max 1000 per page. Required: contact_id.
- **Create a Qomon contact interaction** (Create). Log a new interaction (call, letter, meeting, sms, email, or donation) on a qomon contact. Returns the created interaction with id, title, type, date_of_event, and contact_id. Required: contact_id, date_of_event.
- **Update a Qomon contact interaction by ID** (Update). Fully replace an interaction on a qomon contact — behaves like a PUT, so any field omitted from the payload (including tags) is cleared. Returns the updated interaction with id, title, type, date_of_event, and contact_id. Required: id, contact_id, date_of_event.
- **Delete a Qomon contact interaction by ID** (Delete). Delete an interaction logged on a qomon contact. Returns an empty 204 response on success. Required: id, contact_id.
- **List all Qomon interactions tags** (List). List interaction tags defined in your qomon space. Returns each tag with its id, name, color, created_at, and the count of interactions using it. Max 1000 per page.
- **Create a Qomon interactions tag** (Create). Create an interaction tag in qomon. Returns the created tag with its id, name, color, and created_at.
- **Update a Qomon interactions tag by ID** (Update). Update an interaction tag in qomon by id. Returns the updated tag with its id, name, color, and created_at. Required: id.
- **Delete a Qomon interactions tag by ID** (Delete). Delete an interaction tag in qomon by id. Returns an empty 204 response on success. Required: id.
- ...and 3 more tools. Call `tools/list` via the MCP endpoint, or see the full catalog via the API, for the complete set.
