Skip to content

Little Green Light MCP by usefulapi

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

Search Little Green Light donors, gifts, notes and memberships, and add gifts and contact reports.

Deletes · 5

20 tools: 5 can delete or cancel things and 15 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 little-green-light https://little-green-light.usefulapi.io/mcp

Tools

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

20 tools

Deletes or cancels 5Claude Code: deny
  • lgl_create_constituentWRITE: add a new constituent (person or organization) to the account, optionally with email addresses, phone numbers, street addresses and group memberships.No findings

    Why it is in this group

    • The name "lgl_create_constituent" says "create": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    WRITE: add a new constituent (person or organization) to the account, optionally with email addresses, phone numbers, street addresses and group memberships. LGL's schema marks first_name, last_name and email_addresses as required. Search first (lgl_search_constituents) to avoid creating a duplicate. LGL: POST /api/v1/constituents.

    Annotations the server declares

    • title: Create a constituent
    • destructiveHint: true
  • lgl_create_contact_reportWRITE: log a contact report (a call, email or meeting with a constituent).No findings

    Why it is in this group

    • The name "lgl_create_contact_report" says "create": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    WRITE: log a contact report (a call, email or meeting with a constituent). text is required; the type may be given by id or name (e.g. 'Call'; see lgl_list_type_values type=contact_report_types). LGL: POST /api/v1/constituents/{constituent_id}/contact_reports.

    Annotations the server declares

    • title: Log a contact report
    • destructiveHint: true
  • lgl_create_giftWRITE: record a gift (donation, pledge payment, in-kind, etc.) on a constituent's record.No findings

    Why it is in this group

    • The name "lgl_create_gift" says "create": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    WRITE: record a gift (donation, pledge payment, in-kind, etc.) on a constituent's record. This writes a CRM record of a gift that already happened — it does NOT charge a card or move money. Give gift_type_id or gift_type_name (required; see lgl_list_type_values type=gift_types). Fund, campaign, appeal, event, gift category and payment type may each be given by id or by exact name. Set ack_template_name to 'do_not_ack' to skip acknowledgment. LGL: POST /api/v1/constituents/{constituent_id}/gifts.

    Annotations the server declares

    • title: Record a gift
    • destructiveHint: true
  • lgl_create_noteWRITE: add a note to a constituent's record.No findings

    Why it is in this group

    • The name "lgl_create_note" says "create": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    WRITE: add a note to a constituent's record. text and original_date are required; the note type may be given by id or name (e.g. 'General'; see lgl_list_type_values type=note_types). LGL: POST /api/v1/constituents/{constituent_id}/notes.

    Annotations the server declares

    • title: Add a note
    • destructiveHint: true
  • lgl_update_constituentWRITE: change scalar fields on an existing constituent (name, salutation, job title, org name, deceased flag, etc.).No findings

    Why it is in this group

    • The name "lgl_update_constituent" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    WRITE: change scalar fields on an existing constituent (name, salutation, job title, org name, deceased flag, etc.). Only the fields you pass are sent. LGL's update schema marks first_name and last_name as required, so pass the current values (from lgl_get_constituent) if you are not changing them. Addresses, emails and phones are not edited here. LGL: PATCH /api/v1/constituents/{id}.

    Annotations the server declares

    • title: Update a constituent
    • destructiveHint: true
Only reads 15Claude Code: allow
  • lgl_get_constituentFull details for one constituent by LGL id: names, salutations, addresses, phone numbers, email addresses, groups, memberships and custom attributes.No findings

    Why it is in this group

    • The name "lgl_get_constituent" says "get": a word for reading.
    Description, as the server wrote it
    Full details for one constituent by LGL id: names, salutations, addresses, phone numbers, email addresses, groups, memberships and custom attributes. LGL: GET /api/v1/constituents/{id}.

    Annotations the server declares

    • title: Get a constituent
    • readOnlyHint: true
  • lgl_get_giftFull details for one gift by id: amount, deductible amount, dates, fund/campaign/appeal/event, payment type, acknowledgment template, tribute and custom fields.No findings

    Why it is in this group

    • The name "lgl_get_gift" says "get": a word for reading.
    Description, as the server wrote it
    Full details for one gift by id: amount, deductible amount, dates, fund/campaign/appeal/event, payment type, acknowledgment template, tribute and custom fields. LGL: GET /api/v1/gifts/{id}.

    Annotations the server declares

    • title: Get a gift
    • readOnlyHint: true
  • lgl_list_appealsFundraising appeals (mailings, emails, asks) with campaign, date, financial goal, cost and active flag.No findings

    Why it is in this group

    • The name "lgl_list_appeals" says "list": a word for reading.
    Description, as the server wrote it
    Fundraising appeals (mailings, emails, asks) with campaign, date, financial goal, cost and active flag. Use the ids and names when recording gifts or filtering searches. LGL: GET /api/v1/appeals.

    Annotations the server declares

    • title: List appeals
    • readOnlyHint: true
  • lgl_list_campaignsCampaigns with start/end dates, financial goal, code and active flag.No findings

    Why it is in this group

    • The name "lgl_list_campaigns" says "list": a word for reading.
    Description, as the server wrote it
    Campaigns with start/end dates, financial goal, code and active flag. Use the ids and names when recording gifts or filtering searches. LGL: GET /api/v1/campaigns.

    Annotations the server declares

    • title: List campaigns
    • readOnlyHint: true
  • lgl_list_constituent_contact_reportsContact reports (calls, emails, meetings) logged for a constituent, with type, date, text and team member.No findings

    Why it is in this group

    • The name "lgl_list_constituent_contact_reports" says "list": a word for reading.
    Description, as the server wrote it
    Contact reports (calls, emails, meetings) logged for a constituent, with type, date, text and team member. LGL: GET /api/v1/constituents/{constituent_id}/contact_reports.

    Annotations the server declares

    • title: List a constituent's contact reports
    • readOnlyHint: true
  • lgl_list_constituent_giftsA constituent's giving history: every gift with amount, date, gift type, fund, campaign, appeal, event and payment type.No findings

    Why it is in this group

    • The name "lgl_list_constituent_gifts" says "list": a word for reading.
    Description, as the server wrote it
    A constituent's giving history: every gift with amount, date, gift type, fund, campaign, appeal, event and payment type. LGL: GET /api/v1/constituents/{constituent_id}/gifts.

    Annotations the server declares

    • title: List a constituent's gifts
    • readOnlyHint: true
  • lgl_list_constituent_membershipsA constituent's memberships: level, start date and finish date — use it to see whether someone is current or lapsed.No findings

    Why it is in this group

    • The name "lgl_list_constituent_memberships" says "list": a word for reading.
    Description, as the server wrote it
    A constituent's memberships: level, start date and finish date — use it to see whether someone is current or lapsed. LGL: GET /api/v1/constituents/{constituent_id}/memberships.

    Annotations the server declares

    • title: List a constituent's memberships
    • readOnlyHint: true
  • lgl_list_constituent_notesNotes recorded on a constituent (type, text, original date).No findings

    Why it is in this group

    • The name "lgl_list_constituent_notes" says "list": a word for reading.
    Description, as the server wrote it
    Notes recorded on a constituent (type, text, original date). LGL: GET /api/v1/constituents/{constituent_id}/notes.

    Annotations the server declares

    • title: List a constituent's notes
    • readOnlyHint: true
  • lgl_list_eventsEvents (galas, lunches, board weekends) with dates, campaign, event type, goal and active flag.No findings

    Why it is in this group

    • The name "lgl_list_events" says "list": a word for reading.
    Description, as the server wrote it
    Events (galas, lunches, board weekends) with dates, campaign, event type, goal and active flag. Use the ids and names when recording gifts or filtering searches. LGL: GET /api/v1/events.

    Annotations the server declares

    • title: List events
    • readOnlyHint: true
  • lgl_list_fundsFunds (where gifts are designated) with campaign, code, financial goal and active flag.No findings

    Why it is in this group

    • The name "lgl_list_funds" says "list": a word for reading.
    Description, as the server wrote it
    Funds (where gifts are designated) with campaign, code, financial goal and active flag. Use the ids and names when recording gifts or filtering searches. LGL: GET /api/v1/funds.

    Annotations the server declares

    • title: List funds
    • readOnlyHint: true
  • lgl_list_groupsConstituent groups (e.g.No findings

    Why it is in this group

    • The name "lgl_list_groups" says "list": a word for reading.
    Description, as the server wrote it
    Constituent groups (e.g. Board Member, Staff, Volunteer) with their ids and keys. Use the ids and names when recording gifts or filtering searches. LGL: GET /api/v1/groups.

    Annotations the server declares

    • title: List groups
    • readOnlyHint: true
  • lgl_list_team_membersLGL user accounts on the team (name, email, admin flag) — the values a gift or contact report's team_member refers to.No findings

    Why it is in this group

    • The name "lgl_list_team_members" says "list": a word for reading.
    Description, as the server wrote it
    LGL user accounts on the team (name, email, admin flag) — the values a gift or contact report's team_member refers to. Use the ids and names when recording gifts or filtering searches. LGL: GET /api/v1/team_members.

    Annotations the server declares

    • title: List team members
    • readOnlyHint: true
  • lgl_list_type_valuesThe account's configured lookup values for one type — the ids and names other tools accept.No findings

    Why it is in this group

    • The name "lgl_list_type_values" says "list": a word for reading.
    Description, as the server wrote it
    The account's configured lookup values for one type — the ids and names other tools accept. gift_types, payment_types and gift_categories come from their own endpoints (GET /api/v1/gift_types, /payment_types, /gift_categories — the last optionally filtered by gift_type_id); every other type from GET /api/v1/types/{type} (contact_report_types, note_types, appeal_types, event_types, email/phone/street/web address types, mailing_types, volunteering_categories, list_types).

    Annotations the server declares

    • title: List lookup values
    • readOnlyHint: true
  • lgl_search_constituentsSearch active constituents (donors, members, volunteers, organizations).No findings

    Why it is in this group

    • The name "lgl_search_constituents" says "search": a word for reading.
    Description, as the server wrote it
    Search active constituents (donors, members, volunteers, organizations). Give `name` and/or `email` for the common case, or raw `terms`. Available term fields: name, eaddr (email contains), phone_number, street, city, state (2-letter), postal_code, country, keyword (keyword id), updated_from / updated_to (YYYY-MM-DDTHH:MM:SSZ), membership_status (0 lapsed, 1 active), membership_level (comma-separated ids), membership_end_date_from / _to (YYYY-MM-DD), external_id, constituent_type (0 individual, 1 organization), groups (comma-separated group ids), lists (comma-separated list ids), custom_attr (key|op|value). At least one term is required. LGL: GET /api/v1/constituents/search.

    Annotations the server declares

    • title: Search constituents
    • readOnlyHint: true
  • lgl_search_giftsSearch active gifts across the account — e.g.No findings

    Why it is in this group

    • The name "lgl_search_gifts" says "search": a word for reading.
    Description, as the server wrote it
    Search active gifts across the account — e.g. everything received in a date range, or gifts to one fund or campaign. Give date/updated bounds and/or raw `terms`. Available term fields: date_from / date_to (YYYY-MM-DD), gift_types (in|ni + comma ids, e.g. in|1,7), gift_amount (gte|lte|btw|gt|lt|eq|ne + number[s], e.g. btw|100|1000), payment_types, campaigns, funds, appeals, events, categories (in|ni|bl + comma ids), appeal_types, event_types, constituent_type (0/1), gift_ids, external_gift_ids, created_from / created_to and updated_from / updated_to (YYYY-MM-DDTHH:MM:SSZ). At least one term is required. LGL: GET /api/v1/gifts/search.

    Annotations the server declares

    • title: Search gifts
    • 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 little-green-light https://little-green-light.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__little-green-light__lgl_search_constituents",
      "mcp__little-green-light__lgl_get_constituent",
      "mcp__little-green-light__lgl_list_constituent_gifts",
      "mcp__little-green-light__lgl_search_gifts",
      "mcp__little-green-light__lgl_get_gift",
      "mcp__little-green-light__lgl_list_constituent_notes",
      "mcp__little-green-light__lgl_list_constituent_contact_reports",
      "mcp__little-green-light__lgl_list_constituent_memberships",
      "mcp__little-green-light__lgl_list_appeals",
      "mcp__little-green-light__lgl_list_campaigns",
      "mcp__little-green-light__lgl_list_funds",
      "mcp__little-green-light__lgl_list_events",
      "mcp__little-green-light__lgl_list_groups",
      "mcp__little-green-light__lgl_list_team_members",
      "mcp__little-green-light__lgl_list_type_values"
    ],
    "ask": [],
    "deny": [
      "mcp__little-green-light__lgl_create_constituent",
      "mcp__little-green-light__lgl_update_constituent",
      "mcp__little-green-light__lgl_create_gift",
      "mcp__little-green-light__lgl_create_note",
      "mcp__little-green-light__lgl_create_contact_report"
    ]
  }
}

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 little-green-light. Review it before you use it.