Karma for AI agents
Connect Karma's Model Context Protocol server to your AI app to read projects, grants, and impact data — or take action on your behalf, when you say so.
Three concrete examples — the kind of work a Karma-connected agent can do in minutes.
Have an agent score, summarize, and surface red flags across an entire applicant pool before your review committee meets.
"Pull all open applications for Optimism Retro Funding Round 5, score them against our public-goods rubric, and surface the ten that need a human reviewer first."
Ask an agent to flag stalled milestones, summarize completed work, and draft check-in messages to grantees who have gone quiet.
"List every grant under the Filecoin program with no milestone update in 60+ days and draft a friendly check-in email for each."
Let an agent crawl Karma's Funding Map for matching programs, then draft application copy tuned to each one's evaluation criteria.
"Find every active open-source funding program with a budget over $50k. Sort by application deadline and draft an opening paragraph that matches each program's criteria."
Connect Karma to your AI app in under two minutes. No code required for individual builders — copy the URL, paste it into your client, sign in.
Every public MCP tool a Karma-connected agent can call without authentication, grouped by category. The machine-readable list lives at /.well-known/mcp-tools.json.
get_program_financialskarma_program_get_financialsAUTHORITATIVE single-call source for "how much has program X funded / paid out / has remaining?". Returns the same numbers the Karma UI displays: `totalAllocated` (sum of administrator-configured grant amounts), `totalDisbursed` (sum of on-chain payouts with status=DISBURSED), and `totalRemaining` (allocated minus disbursed). Use this whenever the user asks about program funding totals or disbursement progress. Do NOT compute these numbers by summing `approvedAmount` from list_program_applications — that is intake-time approval, not actual funding, and produces wrong totals. Programs with grants in multiple currencies expose a `currencyBreakdown` array; the top-level totals only reflect the primary (most-used) currency in that case. Grants that are not yet part of the disbursement system (no administrator allocation configured) are intentionally excluded — matching the Karma UI.
query_philanthropy_agentkarma_philanthropy_agent_queryRun a natural-language Karma philanthropy search for nonprofits, foundations, funders, recipients, grants, and IRS 990 data. USE WHEN: • The user asks in plain English to find nonprofits, foundations, funders, grantmakers, recipients, or grantees; for example, 'find nonprofits in the Bay Area which do education'. • The user wants Karma to interpret a philanthropy/funding research question end-to-end instead of manually choosing lower-level API endpoints. • The query needs entity search plus possible grant/990 follow-up, such as matching organizations by topic, geography, mission, assets, or giving behavior. DO NOT USE WHEN: • The user needs a specific non-philanthropy Karma product record such as a project, program, application, milestone, payout, or community; use the relevant Karma tool/API flow. • You already know the exact low-level philanthropy tool call needed and only need one deterministic lookup. Parameters: • `query`: the user request verbatim or lightly cleaned. Include geography, topic, entity type, date scope, asset bounds, and output intent when present. • `limit`: maximum number of result entities/grants the agent should try to return. • `includeEvidence`: include structured evidence rows in the JSON result. Leave false for concise answers; set true when the user asks for sources or exportable backing data. • `includeNarrative`: defaults true. Set false to omit the prose answer and return only the structured fields (entities, citations, evidence) — useful when your own agent will write the final response and just needs the data. • `dateBasis` / `year`: optional default time scope. Use only when the user stated one. Examples: • Natural-language nonprofit discovery. One call lets Karma interpret topic + geography and return matching organizations.: {"query":"find nonprofits in the Bay Area which do education","limit":10} • Foundation prospect research with structured constraints.: {"query":"small private foundations in California funding youth literacy","limit":15,"includeEvidence":true} Empty / failed: Broaden the natural-language query by removing the tightest filter first (neighborhood/city, then topic, then entity type). Do not retry the same query unchanged. Notes: • This is the MCP equivalent of POST /v2/philanthropy/agent-query/stream, returned as one JSON tool result instead of SSE.
search_karma_api_docskarma_api_search_docsSearch the Karma OpenAPI documentation for product API endpoints. Use this before calling call_karma_api when you need to find the right existing API.
get_karma_api_operationkarma_api_get_operationGet details for one Karma OpenAPI operation by operationId or by method + path.
call_karma_apikarma_api_callCall an existing Karma read API using the current user auth. Use only after checking the API docs. Existing API auth/RBAC remains the security boundary.
karma_check_nonprofit_ai_readinessSubmit a nonprofit website AI-readiness scan. Scores how well a charity site can be discovered, read, and acted on by AI agents and donors: agent accessibility, machine readability (structured data, crawlability, llms.txt), trust and identity (EIN, charity registration), and donation readiness (how easily an agent or donor can complete the donate flow). Completion is two-phase: config_complete at roughly 20 seconds for the headline grade, and complete at roughly 3 minutes for the full walkthrough. Read the results back via the Karma REST API (GET /v2/nonprofits/ai-readiness/scans/{id} for a report, and GET /v2/nonprofits/ai-readiness/scans/mine to list your scans) — discover these with search_karma_api_docs and call them with call_karma_api. Do not use this tool to fetch an already-scanned URL; look it up through the REST API first.