little-green-light-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@little-green-light-mcpshow me our top donors this year"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
little-green-light-mcp
A read-only MCP server for the Little Green Light donor CRM. Any stdio MCP client can use it to look up constituents, list gifts in a date range, or fetch one person's giving history.
The server name is lgl-mcp. How you register it depends on the host — see Setup.
Read-only by construction
This server has no create, update, or delete tools — not disabled, absent. lgl.js exposes
only a GET request function; there is no code path anywhere in this project that can mutate a
donor record. Run npm run audit:readonly after any change to confirm mechanically.
Any future write path (e.g. syncing donations) belongs in LGL's own reviewed Integration Queue, not here.
Related MCP server: SQL Server MCP
Setup
Get an API key from LGL: Settings → Integration Settings → LGL API.
Put it in
~/.config/lgl-mcp/env(already created, chmod 600):LGL_API_KEY=your-key-hereAlternatively, add a macOS Keychain item named
lgl-api-key, or set theLGL_API_KEYenvironment variable for a one-off run. The key is never logged, committed, or echoed in error messages.Install dependencies (already done on first checkout):
npm installPoint a stdio MCP host at this server. The command is
node; the argument is the absolute path toindex.js:{ "command": "node", "args": ["/absolute/path/to/little-green-light-mcp/index.js"] }Wrap that in whatever config shape your host uses (
mcpServers, a top-level server map, and so on). No extra env vars are required if the key is in~/.config/lgl-mcp/envor Keychain. SetLGL_API_KEYin the host's env block only for a one-off override.
Tools
Tool | What it does |
| Search by name or exact email address. Compact rows are identity only — no giving totals. |
| Full profile for one constituent by id, including giving totals computed from the full gift history (0 if none). |
| Giving history for one constituent. |
| Search gifts by date range, across all constituents. |
| All configured funds (cached). |
| All configured appeals (cached). |
| All configured gift categories (cached). |
| All configured gift types (cached). |
Every tool accepts verbose: true to get the full LGL object instead of the trimmed summary.
Compact constituents include name, email, phone, and city/state. Giving dates and lifetime
total are only on get_constituent. Compact gifts include date, amount, fund_id, note, and
donor name (when expanded). List responses that are capped include a note field saying how
many results were omitted — nothing is silently truncated.
Confirmed query syntax
LGL's /constituents/search and /gifts/search take q[]=field=value pairs, not free text —
this was undocumented for several fields and confirmed by probing a live account:
Constituents:
name=<text>(LGL's own documented example) oreaddr=<email>for an exact email match (undocumented; guesses likeemail=/email_address=were rejected).Gifts:
date_from=YYYY-MM-DD/date_to=YYYY-MM-DD(confirmed real filters — an out-of-range date zeroestotal_items). Multipleq[]entries AND together.Gifts have no fund or amount filter on this endpoint —
fund_id,fund,fund_ids,campaign_id,amount_from,amount_towere all tried and rejected as unknown parameters.search_giftsdoesn't expose these; filter results client-side onfund_id/noteif needed.A gift's donor name only appears when the request includes
expand=first_name,last_name,org_name— LGL doesn't nest a constituent object in the gift response otherwise.get_constituent's giving totals (first/last gift date, lifetime amount) aren't returned by LGL on the constituent object at all — they're computed here from that constituent's own gift history, paged to completion. A constituent with no gifts returnslifetime_amount: 0. A safety cap still applies (10,000 gifts); the response says so if it is hit.
Development
npm run inspect # MCP Inspector — exercise tools interactively
npm run audit:readonly # mechanical check: no POST/PATCH/PUT/DELETE anywhereRate limits
LGL allows 300 API calls per 5-minute window. lgl.js throttles internally (sliding window)
and retries with backoff on 429/5xx, so a broad question that fans out into many calls degrades
gracefully instead of erroring.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityFmaintenanceAn MCP server for Microsoft SQL Server integration that enables users to query, monitor, and analyze databases directly through Claude. It supports schema exploration, performance analysis, and optional write operations via natural language commands.101MIT
- AlicenseAqualityDmaintenanceA read-only MCP server for SQL Server database introspection that enables Claude to explore and query databases via tools like listing objects and executing SELECT queries.201MIT
- AlicenseCqualityCmaintenanceRead-only MCP server for Meta (Facebook) Graph API, enabling access to Marketing API, Pages, Instagram, and WhatsApp Business data through Claude Code and any MCP-compatible client.30101MIT
- Alicense-qualityBmaintenanceA read-only MCP server that connects Claude to the Northwind sample PostgreSQL database, allowing natural language queries to generate SQL and charts.2MIT
Related MCP Connectors
Read-only MCP server for ClassQuill, a tutoring-business-management platform.
MCP server for nonprofit financials via ProPublica — IRS Form 990 data for 1.8M+ nonprofits.
MCP server giving Claude AI access to 22+ NYC public-record databases for real estate due diligence
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/piersonr/little-green-light-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server