Lgl MCP Server

lgl-mcp-server npm v1.0.0

Published by willheadlee — no publish provenance, so origin is unverified, but the source is public: the repository link below is self-declared yet readable, so you can inspect the code before adopting it.

MCP server for the Little Green Light nonprofit CRM — manage constituents, gifts, groups, activities, and contact records directly without third-party middleware.

Trust grade
A
93/100
Last scanned get badge →
Trust
A · 93/100
Adoption risk for you: the threat score, then adjusted down for blast radius, publisher verification and how much the scan could see. Deterministic; every point is auditable.
Capability
High
Blast radius if it went rogue — what the server’s tools could reach. Independent of trust.
Coverage
Source
How much the scan could actually inspect. Shallow coverage is stated, never hidden.
Share this Trust Score
𝕏 Share LinkedIn Reddit
A Why this grade threat 100 − adoption risk = 93/100

The grade answers one question — how safe is this server for you to adopt — so it is computed in two auditable stages. Nothing below is an opinion or an LLM's guess; every line is a real term the deterministic engine applied, and the same input always yields the same number.

1. Threat score — 100 − 0 = 100. What the published surface and source actually contain:

The deterministic scan raised no scored threat in the surface it inspected — the threat score stayed at 100. Capability observations and advisory notes are recorded but never lower it.

2. Client adoption risk — 100 − 7 = 93. Three small, subtract-only factors that reflect your risk in adopting it — a clean scan proves less on a powerful, unverified or barely-inspectable package, so the grade says so plainly:

PointsAdoption-risk factor
−6 capability blast radius (high) — client exposure if the model is manipulated
−1 publisher verification (public source) — no provenance, but the source is public and inspectable

Capability observations and info notes are shown under Findings but never scored. Open any row's finding below for the file, line and evidence behind a deduction.

Findings 1

high Shell/command execution in server code (test_server.js)MTC-SRC-002

In the server's implementation (`test_server.js:1`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: import { spawn } from "child_process"; console.log("Starting LGL MCP server integration test..."); const serverProces

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server test_server.js

Tools 137

Each tool and what it can reach — statically extracted from the published source.

  • list_appeal_requestsingests untrusted input
  • list_contact_reportsingests untrusted input
  • list_notesingests untrusted input
  • list_volunteer_timesingests untrusted input
  • add_constituent_to_groupno sensitive capability
  • add_keyword_to_constituentno sensitive capability
  • call_lgl_apino sensitive capability
  • constituents_missing_infono sensitive capability
  • create_addressno sensitive capability
  • create_appealno sensitive capability
Show 127 more tools ↓
  • create_appeal_requestno sensitive capability
  • create_campaignno sensitive capability
  • create_categoryno sensitive capability
  • create_class_affiliationno sensitive capability
  • create_constituentno sensitive capability
  • create_constituent_invitationno sensitive capability
  • create_contact_reportno sensitive capability
  • create_email_addressno sensitive capability
  • create_eventno sensitive capability
  • create_event_invitationno sensitive capability
  • create_fundno sensitive capability
  • create_groupno sensitive capability
  • create_keywordno sensitive capability
  • create_membershipno sensitive capability
  • create_membership_levelno sensitive capability
  • create_noteno sensitive capability
  • create_phone_numberno sensitive capability
  • create_relationshipno sensitive capability
  • create_volunteer_timeno sensitive capability
  • create_web_addressno sensitive capability
  • delete_addressno sensitive capability
  • delete_appealno sensitive capability
  • delete_appeal_requestno sensitive capability
  • delete_campaignno sensitive capability
  • delete_categoryno sensitive capability
  • delete_class_affiliationno sensitive capability
  • delete_constituentno sensitive capability
  • delete_contact_reportno sensitive capability
  • delete_email_addressno sensitive capability
  • delete_eventno sensitive capability
  • delete_fundno sensitive capability
  • delete_giftno sensitive capability
  • delete_groupno sensitive capability
  • delete_invitationno sensitive capability
  • delete_keywordno sensitive capability
  • delete_membershipno sensitive capability
  • delete_membership_levelno sensitive capability
  • delete_noteno sensitive capability
  • delete_phone_numberno sensitive capability
  • delete_relationshipno sensitive capability
  • delete_volunteer_timeno sensitive capability
  • delete_web_addressno sensitive capability
  • get_appealno sensitive capability
  • get_appeal_requestno sensitive capability
  • get_campaignno sensitive capability
  • get_categoryno sensitive capability
  • get_class_affiliationno sensitive capability
  • get_constituentno sensitive capability
  • get_contact_reportno sensitive capability
  • get_eventno sensitive capability
  • get_fundno sensitive capability
  • get_giftno sensitive capability
  • get_groupno sensitive capability
  • get_group_membershipno sensitive capability
  • get_invitationno sensitive capability
  • get_keywordno sensitive capability
  • get_membershipno sensitive capability
  • get_membership_levelno sensitive capability
  • get_metadatano sensitive capability
  • get_noteno sensitive capability
  • get_relationshipno sensitive capability
  • get_volunteer_timeno sensitive capability
  • lapsed_donorsno sensitive capability
  • list_account_typesno sensitive capability
  • list_addressesno sensitive capability
  • list_appealsno sensitive capability
  • list_campaignsno sensitive capability
  • list_categoriesno sensitive capability
  • list_class_affiliation_typesno sensitive capability
  • list_class_affiliationsno sensitive capability
  • list_constituent_categoriesno sensitive capability
  • list_constituent_invitationsno sensitive capability
  • list_constituentsno sensitive capability
  • list_custom_attributesno sensitive capability
  • list_email_addressesno sensitive capability
  • list_event_invitationsno sensitive capability
  • list_eventsno sensitive capability
  • list_fundsno sensitive capability
  • list_gift_categoriesno sensitive capability
  • list_gift_typesno sensitive capability
  • list_giftsno sensitive capability
  • list_group_membershipsno sensitive capability
  • list_groupsno sensitive capability
  • list_keywordsno sensitive capability
  • list_listsno sensitive capability
  • list_mailing_templatesno sensitive capability
  • list_membership_levelsno sensitive capability
  • list_membershipsno sensitive capability
  • list_payment_typesno sensitive capability
  • list_phone_numbersno sensitive capability
  • list_relationship_typesno sensitive capability
  • list_relationshipsno sensitive capability
  • list_team_membersno sensitive capability
  • list_type_valuesno sensitive capability
  • list_web_addressesno sensitive capability
  • recent_donorsno sensitive capability
  • record_giftno sensitive capability
  • remove_constituent_from_groupno sensitive capability
  • remove_keyword_from_constituentno sensitive capability
  • search_constituentsno sensitive capability
  • search_contact_reportsno sensitive capability
  • search_listsno sensitive capability
  • search_volunteer_timesno sensitive capability
  • top_donorsno sensitive capability
  • update_addressno sensitive capability
  • update_appealno sensitive capability
  • update_appeal_requestno sensitive capability
  • update_campaignno sensitive capability
  • update_categoryno sensitive capability
  • update_class_affiliationno sensitive capability
  • update_constituentno sensitive capability
  • update_contact_reportno sensitive capability
  • update_email_addressno sensitive capability
  • update_eventno sensitive capability
  • update_fundno sensitive capability
  • update_giftno sensitive capability
  • update_groupno sensitive capability
  • update_group_membershipno sensitive capability
  • update_invitationno sensitive capability
  • update_keywordno sensitive capability
  • update_membershipno sensitive capability
  • update_membership_levelno sensitive capability
  • update_noteno sensitive capability
  • update_phone_numberno sensitive capability
  • update_relationshipno sensitive capability
  • update_volunteer_timeno sensitive capability
  • update_web_addressno sensitive capability

What this scan could not see

Versions 1

Scan history per published version. The engine is deterministic — the same version always yields the same score, so a changed score means the package itself changed.

VersionScoreFindingsEngineScanned
v1.0.0 latest A 93/100 1 1.13.0 2026-09-07

Embed this score

Show this server's live Trust Score in your README, docs or website. The badge is served straight from the registry and updates automatically after every rescan — no API key needed. It links back to this page, so anyone who sees the grade can also read the findings behind it instead of taking a number on faith.

MCP Trust Score: A · 93/100
Markdown (GitHub README)
[![MCP Trust Score](https://mcptrustchecker.com/registry/lgl-mcp-server/badge.svg)](https://mcptrustchecker.com/registry/lgl-mcp-server)
HTML
<a href="https://mcptrustchecker.com/registry/lgl-mcp-server"><img src="https://mcptrustchecker.com/registry/lgl-mcp-server/badge.svg" alt="MCP Trust Score" height="20"></a>
Prefer shields.io styling? Point it at https://mcptrustchecker.com/registry/lgl-mcp-server/badge.json via https://img.shields.io/endpoint?url=…

Verify this score yourself

The score above is reproducible: the same package version always yields the same result. Run it locally or over the free API — no account, no LLM, fully deterministic.

npx mcptrustchecker scan lgl-mcp-server --online

Use the free API → How scoring works

More in Business & CRM