io.usefulapi/little-green-light
REMOTE · LITTLE-GREEN-LIGHT.USEFULAPI.IO · SCANNED OCT 4
Search Little Green Light donors, gifts, notes and memberships, and add gifts and contact reports.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security89
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token. View diagnostics → Pass
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
- The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents. View diagnostics → Partial
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability67
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 3761 tokens (~188/item across 20 items; 20 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management13
- Stability observed for 4 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage92
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 76% of tool parameters carry a description.Partial
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 20 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 20 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities60
- Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28. See how to fix → Fail
How do I install the io.usefulapi/little-green-light MCP server?
io.usefulapi/little-green-light is a hosted endpoint at https://little-green-light.usefulapi.io/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · little-green-light.usefulapi.io
claude mcp add --transport http io-usefulapi-little-green-light 'https://little-green-light.usefulapi.io/mcp'
{
"mcpServers": {
"io-usefulapi-little-green-light": {
"url": "https://little-green-light.usefulapi.io/mcp"
}
}
} {
"servers": {
"io-usefulapi-little-green-light": {
"type": "http",
"url": "https://little-green-light.usefulapi.io/mcp"
}
}
} [mcp_servers.io-usefulapi-little-green-light] url = "https://little-green-light.usefulapi.io/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"io-usefulapi-little-green-light": {
"type": "remote",
"url": "https://little-green-light.usefulapi.io/mcp",
"enabled": true
}
}
} openclaw mcp add io-usefulapi-little-green-light --url 'https://little-green-light.usefulapi.io/mcp' --transport streamable-http
mcp_servers:
io-usefulapi-little-green-light:
url: "https://little-green-light.usefulapi.io/mcp" {
"McpServers": {
"io-usefulapi-little-green-light": {
"Transport": "http",
"Url": "https://little-green-light.usefulapi.io/mcp"
}
}
} assistant mcp add io-usefulapi-little-green-light -t streamable-http -u 'https://little-green-light.usefulapi.io/mcp'
{
"mcpServers": {
"io-usefulapi-little-green-light": {
"type": "http",
"url": "https://little-green-light.usefulapi.io/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 3 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.
- 2 Oct 26 0
- Server version: 1.3.0 → 1.5.1 functional
- 1 Oct 26 +5
- HTTPS: unverified → pass ▲ security
- Stability: unverified → 0.03 ▲ functional
- Server version: 1.0.0 → 1.3.0 functional
- 30 Sept 26 +51
- Authorization: unverified → pass ▲ security
- Injection markers: unverified → pass ▲ security
- Transport: fail → pass ▲ security
- First check of Judged manipulation: pass security
- First check of Authorization: partial security
- MCP protocol: unverified → fail ▼ functional
- Tool coverage: unverified → 100 ▲ functional
- First check of Schema quality: fail functional
- First check of Schema quality: excellent functional
- First check of Destructive annotations: pass functional
- First check of Schema quality: fail functional
- First check of Tool coverage: 76 functional
- 29 Sept 26 18
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 4 Oct 2026 · Probed https://little-green-light.usefulapi.io/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=usefulapi.io | CN=WE1,O=Google Trust Services,C=US | 13 Sept 2026 | 12 Dec 2026 | ECDSA 256 | ECDSA-SHA256 | d9be3287b0fde9630e825ba1f79bff3f |
| SANs: usefulapi.io, *.usefulapi.io | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of little-green-light.usefulapi.io. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| io. | present | 57355 | 8 | Verified |
| usefulapi.io. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication Enforced and verified
The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.
| Result | Enforced and verified |
|---|---|
| Enforced | On tool calls |
| HTTP status | 200 |
WWW-Authenticate challenge Bearer realm="OAuth", resource_metadata="https://little-green-light.usefulapi.io/.well-known/oauth-protected-resource/mcp"
Bearer realm="OAuth", resource_metadata="https://little-green-light.usefulapi.io/.well-known/oauth-protected-resource/mcp" Protected resource metadata
| Document | https://little-green-light.usefulapi.io/.well-known/oauth-protected-resource/mcp |
|---|---|
| Retrieved | Yes |
| Resource | https://little-green-light.usefulapi.io/mcp |
| Authorisation server | https://little-green-light.usefulapi.io |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://little-green-light.usefulapi.io/mcp | Verified | 200 | |
| http (plaintext) | http://little-green-light.usefulapi.io/mcp | HTTPS enforced | 301 | https://little-green-light.usefulapi.io/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
lgl_create_constituent Create a constituent ~370
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.
| Name | Type | Req | Description |
|---|---|---|---|
| addressee | string | – | Addressee/label name. |
| annual_report_name | string | – | – |
| birthday | string | – | Birthday (YYYY-MM-DD). |
| constituent_contact_type_name | string | – | Constituent contact type name, e.g. 'Primary'. |
| deceased_date | string | – | Deceased date. |
| email_addresses | array | – | Email addresses to add. |
| external_constituent_id | string | – | External constituent ID (your own system's id). |
| first_name | string | yes | First name. |
| gender | string | – | – |
| groups | array | – | Group memberships to add. |
| is_anon | boolean | – | Gives anonymously? |
| is_deceased | boolean | – | – |
| is_org | boolean | – | True if this constituent is an organization or company. |
| job_title | string | – | – |
| last_name | string | yes | Last name. |
| maiden_name | string | – | – |
| middle_name | string | – | – |
| nick_name | string | – | – |
| org_name | string | – | Organization name. |
| phone_numbers | array | – | Phone numbers to add. |
| prefix | string | – | Prefix, e.g. 'Dr.'. |
| salutation | string | – | – |
| spouse_name | string | – | Spouse/partner name. |
| street_addresses | array | – | Street addresses to add. |
| suffix | string | – | – |
No output schema declared.
No examples provided.
lgl_create_contact_report Log a contact report ~189
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.
| Name | Type | Req | Description |
|---|---|---|---|
| constituent_id | integer | yes | Constituent id (integer). |
| contact_report_type_id | integer | – | – |
| contact_report_type_name | string | – | Type name, e.g. 'Call', 'Email', 'Meeting'. |
| name | string | – | Short title for the report. |
| original_date | string | – | Date of the contact (YYYY-MM-DD). |
| team_member | string | – | Team member who made contact: id, email, or 'first_name last_name'. |
| text | string | yes | What happened. |
No output schema declared.
No examples provided.
lgl_create_gift Record a gift ~461
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.
| Name | Type | Req | Description |
|---|---|---|---|
| ack_template_name | string | – | Acknowledgment mailing template name, or 'do_not_ack'. |
| appeal_id | integer | – | – |
| appeal_name | string | – | – |
| campaign_id | integer | – | – |
| campaign_name | string | – | – |
| check_number | string | – | Check/reference number. |
| constituent_id | integer | yes | Constituent id (integer). |
| deductible_amount | number | – | Tax-deductible amount. |
| deposit_date | string | – | Deposit date (YYYY-MM-DD). |
| deposited_amount | number | – | – |
| event_id | integer | – | – |
| event_name | string | – | – |
| external_id | string | – | External gift id (your own system's id). |
| fund_id | integer | – | – |
| fund_name | string | – | – |
| gift_category_id | integer | – | – |
| gift_category_name | string | – | Gift category name, e.g. 'Donation'. |
| gift_type_id | integer | – | Gift type id. |
| gift_type_name | string | – | Gift type name, e.g. 'Gift'. |
| is_anon | boolean | – | Gift is anonymous. |
| note | string | – | Gift note. |
| payment_type_id | integer | – | – |
| payment_type_name | string | – | Payment type name, e.g. 'Check', 'Credit Card'. |
| received_amount | number | – | Gift amount. |
| received_date | string | – | Gift date (YYYY-MM-DD). |
| team_member | string | – | Team member credited: id, email, or 'first_name last_name' (see lgl_list_team_members). |
No output schema declared.
No examples provided.
lgl_create_note Add a note ~150
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.
| Name | Type | Req | Description |
|---|---|---|---|
| constituent_id | integer | yes | Constituent id (integer). |
| external_id | string | – | – |
| note_type_id | integer | – | – |
| note_type_name | string | – | Note type name, e.g. 'General'. |
| original_date | string | yes | Date the note refers to (YYYY-MM-DD). |
| text | string | yes | Note text. |
No output schema declared.
No examples provided.
lgl_get_constituent Get a constituent ~69
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}.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | Constituent id (integer). |
No output schema declared.
No examples provided.
lgl_get_gift Get a gift ~69
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}.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | Gift id (integer). |
No output schema declared.
No examples provided.
lgl_list_appeals List appeals ~111
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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Number of entries to return, 1-100. LGL's default is 25. |
| offset | integer | – | Start at this entry (0-based). Use the previous page's next_item. Default 0. |
No output schema declared.
No examples provided.
lgl_list_campaigns List campaigns ~101
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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Number of entries to return, 1-100. LGL's default is 25. |
| offset | integer | – | Start at this entry (0-based). Use the previous page's next_item. Default 0. |
No output schema declared.
No examples provided.
lgl_list_constituent_contact_reports List a constituent's contact reports ~123
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.
| Name | Type | Req | Description |
|---|---|---|---|
| constituent_id | integer | yes | Constituent id (integer). |
| limit | integer | – | Number of entries to return, 1-100. LGL's default is 25. |
| offset | integer | – | Start at this entry (0-based). Use the previous page's next_item. Default 0. |
No output schema declared.
No examples provided.
lgl_list_constituent_gifts List a constituent's gifts ~126
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.
| Name | Type | Req | Description |
|---|---|---|---|
| constituent_id | integer | yes | Constituent id (integer). |
| limit | integer | – | Number of entries to return, 1-100. LGL's default is 25. |
| offset | integer | – | Start at this entry (0-based). Use the previous page's next_item. Default 0. |
No output schema declared.
No examples provided.
lgl_list_constituent_memberships List a constituent's memberships ~124
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.
| Name | Type | Req | Description |
|---|---|---|---|
| constituent_id | integer | yes | Constituent id (integer). |
| limit | integer | – | Number of entries to return, 1-100. LGL's default is 25. |
| offset | integer | – | Start at this entry (0-based). Use the previous page's next_item. Default 0. |
No output schema declared.
No examples provided.
lgl_list_constituent_notes List a constituent's notes ~110
Notes recorded on a constituent (type, text, original date). LGL: GET /api/v1/constituents/{constituent_id}/notes.
| Name | Type | Req | Description |
|---|---|---|---|
| constituent_id | integer | yes | Constituent id (integer). |
| limit | integer | – | Number of entries to return, 1-100. LGL's default is 25. |
| offset | integer | – | Start at this entry (0-based). Use the previous page's next_item. Default 0. |
No output schema declared.
No examples provided.
lgl_list_events List events ~106
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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Number of entries to return, 1-100. LGL's default is 25. |
| offset | integer | – | Start at this entry (0-based). Use the previous page's next_item. Default 0. |
No output schema declared.
No examples provided.
lgl_list_funds List funds ~103
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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Number of entries to return, 1-100. LGL's default is 25. |
| offset | integer | – | Start at this entry (0-based). Use the previous page's next_item. Default 0. |
No output schema declared.
No examples provided.
lgl_list_groups List groups ~103
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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Number of entries to return, 1-100. LGL's default is 25. |
| offset | integer | – | Start at this entry (0-based). Use the previous page's next_item. Default 0. |
No output schema declared.
No examples provided.
lgl_list_team_members List team members ~114
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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Number of entries to return, 1-100. LGL's default is 25. |
| offset | integer | – | Start at this entry (0-based). Use the previous page's next_item. Default 0. |
No output schema declared.
No examples provided.
lgl_list_type_values List lookup values ~197
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).
| Name | Type | Req | Description |
|---|---|---|---|
| gift_type_id | integer | – | Only for type=gift_categories: restrict to one gift type. |
| limit | integer | – | Number of entries to return, 1-100. LGL's default is 25. |
| offset | integer | – | Start at this entry (0-based). Use the previous page's next_item. Default 0. |
| type | string | yes | Which lookup to list. |
No output schema declared.
No examples provided.
lgl_search_constituents Search constituents ~347
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.
| Name | Type | Req | Description |
|---|---|---|---|
| string | – | Email address contains this. | |
| expand | array | – | Related records to include inline on each constituent. |
| limit | integer | – | Number of entries to return, 1-100. LGL's default is 25. |
| name | string | – | Any name field contains this. |
| offset | integer | – | Start at this entry (0-based). Use the previous page's next_item. Default 0. |
| sort | string | – | Sort by name, external_id, lgl_id, date_created, date_updated, membership_level or membership_end_date_from. Append '!' to reverse (e.g. date_updated!). |
| terms | array | – | Extra raw LGL search terms, each 'field=value' (combined with AND). See the tool description for the available fields. |
No output schema declared.
No examples provided.
lgl_search_gifts Search gifts ~417
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.
| Name | Type | Req | Description |
|---|---|---|---|
| date_from | string | – | Gift date from (YYYY-MM-DD). |
| date_to | string | – | Gift date to (YYYY-MM-DD). |
| expand | array | – | Donor fields to include inline on each gift. |
| limit | integer | – | Number of entries to return, 1-100. LGL's default is 25. |
| offset | integer | – | Start at this entry (0-based). Use the previous page's next_item. Default 0. |
| sort | string | – | Sort by name, gift_amount, date, date_created, date_updated, fund, appeal, campaign or gift_type. Append '!' to reverse (e.g. date!). |
| terms | array | – | Extra raw LGL search terms, each 'field=value' (combined with AND). See the tool description for the available fields. |
| updated_from | string | – | Updated from (YYYY-MM-DD or YYYY-MM-DDTHH:MM:SSZ). |
| updated_to | string | – | Updated to (YYYY-MM-DD or YYYY-MM-DDTHH:MM:SSZ). |
No output schema declared.
No examples provided.
lgl_update_constituent Update a constituent ~371
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}.
| Name | Type | Req | Description |
|---|---|---|---|
| addressee | string | – | Addressee/label name. |
| annual_report_name | string | – | – |
| birthday | string | – | Birthday (YYYY-MM-DD). |
| constituent_contact_type_name | string | – | Constituent contact type name, e.g. 'Primary'. |
| deceased_date | string | – | Deceased date. |
| external_constituent_id | string | – | External constituent ID (your own system's id). |
| first_name | string | yes | First name (required by LGL even when unchanged). |
| gender | string | – | – |
| id | integer | yes | Constituent id (integer). |
| is_anon | boolean | – | Gives anonymously? |
| is_deceased | boolean | – | – |
| is_org | boolean | – | True if this constituent is an organization or company. |
| job_title | string | – | – |
| last_name | string | yes | Last name (required by LGL even when unchanged). |
| maiden_name | string | – | – |
| middle_name | string | – | – |
| nick_name | string | – | – |
| org_name | string | – | Organization name. |
| prefix | string | – | Prefix, e.g. 'Dr.'. |
| salutation | string | – | – |
| spouse_name | string | – | Spouse/partner name. |
| suffix | string | – | – |
No output schema declared.
No examples provided.
What is the io.usefulapi/little-green-light MCP server?
io.usefulapi/little-green-light is an MCP server listed in the public MCP registry as io.usefulapi/little-green-light. Search Little Green Light donors, gifts, notes and memberships, and add gifts and contact reports. This page covers its hosted endpoint (https://little-green-light.usefulapi.io/mcp).
Is the io.usefulapi/little-green-light MCP server safe to use?
io.usefulapi/little-green-light scores 75 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the io.usefulapi/little-green-light MCP server expose?
io.usefulapi/little-green-light exposes 20 tools: lgl_search_constituents, lgl_get_constituent, lgl_list_constituent_gifts, lgl_search_gifts, lgl_get_gift, and 15 more. Their descriptions and schemas cost roughly 3,761 tokens of context every time the server is loaded.
Does the io.usefulapi/little-green-light MCP server require authentication?
Yes. io.usefulapi/little-green-light asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.
Is the io.usefulapi/little-green-light MCP server still maintained?
io.usefulapi/little-green-light is still listed as active in the MCP registry. We last reached this channel on 4 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.