Karma for AI agents

Karma works with Claude, Cursor, and Codex.

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.

What agents can do

Three concrete examples — the kind of work a Karma-connected agent can do in minutes.

  • Triage 200 applications in an afternoon

    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."
  • Audit milestone delivery across a portfolio

    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."
  • Discover funding programs for your project

    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."

The full tool catalog

Every public MCP tool a Karma-connected agent can call, grouped by category. The catalog is discoverable without credentials; invoking a tool requires a signed-in session (OAuth 2.1 or API key). The machine-readable list lives at /.well-known/mcp-tools.json.

Programs

1 tool
  • get_program_financialskarma_program_get_financials

    AUTHORITATIVE 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 intake-time `approvedAmount` values from application data — 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.

Philanthropy data

1 tool
  • query_philanthropy_agentkarma_philanthropy_agent_query

    Run 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.

Discovery & workflow

4 tools
  • search_karma_api_docskarma_api_search_docs

    Search 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_operation

    Get details for one Karma OpenAPI operation by operationId or by method + path.

  • call_karma_apikarma_api_call

    Call 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_readiness

    Submit 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.

Frequently asked questions

Which AI apps does Karma's MCP server work with?
Karma provides a public MCP (Model Context Protocol) server over Streamable HTTP at gapapi.karmahq.xyz/mcp. It works with Claude (claude.ai and the desktop app, via custom connectors), Cursor, Codex, and any MCP client supporting protocol version 2025-11-25 or later.
How do I connect Karma to Claude?
In Claude, open Settings, choose Connectors, click Add custom connector, paste gapapi.karmahq.xyz/mcp as the remote MCP server URL, and sign in to Karma when prompted. Other MCP clients such as Cursor and Codex take the same URL as a remote server. The step-by-step guide with troubleshooting lives at karmahq.xyz/mcp/connect.
Which MCP operations require authentication?
Tool discovery is public — /mcp, /mcp/info, /mcp/tools, and /.well-known/mcp-tools.json need no credentials. Every tool call requires a signed-in session: OAuth 2.1 (your AI app walks you through Karma sign-in) or a Karma API key sent as the x-api-key header. The agent then inherits exactly your account's permissions.
What can a Karma-connected AI agent do?
Read projects, grants, milestones, programs, and impact data; search Karma's funding-program registry; run natural-language research across nonprofits, foundations, funders, and IRS 990 filings; and pull program financials — the same data that powers the Karma dashboard. A grants team can run day-to-day program work from a chat: list the applications submitted to a program, summarize a project's grant and milestone history, and research prospective grantees. With OAuth and your permission, agents can also submit applications, draft updates, comment on reviews, and propose milestone evidence on your behalf.
Can an AI agent draft and submit a grant application on our behalf?
Yes, with your permission. An agent can read a funding program's details and draft application copy against them, and with OAuth authorization it can submit the application on your behalf. You approve which capabilities the agent gets when you connect, every action is logged against your account, and you can revoke access at any time from your Karma settings.
Can the agent take actions in my account?
Only the ones you authorize. Karma uses OAuth 2.0 with scoped access tokens; you approve which capabilities the agent gets when you connect, and you can revoke access at any time from your Karma settings.
How do I limit what an agent can do?
Every tool call runs under your session — OAuth token or API key — so the agent inherits exactly the permissions of your Karma account, nothing more. Reads of public data work for any signed-in account; mutating actions additionally require the roles your account holds. Generate scoped API keys in settings for headless agents that should be even more limited.
Where do I see what the agent has done?
Every action the agent takes is logged against your account in the same activity history you already use. Applications, comments, and updates are clearly attributed to your account.
How does Karma compare to conventional grant platforms for AI agents?
Conventional grants-management platforms are typically operated through their own web dashboards. Karma additionally exposes its funding-program registry, project and grant data, and nonprofit research through a documented, publicly discoverable MCP server, so foundations and nonprofits can work with the same data directly from Claude, Cursor, Codex, or any other MCP-compatible AI app.

Ready to give your agent access?

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.