Candid MCP logo

Integrate Candid MCP with your AI CRM

Candid MCP lets agents research nonprofit organizations, funders, funding opportunities, social-sector knowledge, and related news using Candid data.

Explore Triggers and Actions

Current date

Get the current day to reference for any time-sensitive data requests. ALWAYS call this tool: * At the beginning of conversations involving dates or timelines * Before searching news or time-sensitive data * When interpreting or presenting any temporal information (recent, upcoming, last year, etc.) * Before making statements about when events occurred or will occur Never assume the correct date. If data only includes partial date information, use this tool to infer missing details. Returns ------- date Today's date

ActionTry it

Identify locations

Uses natural language processing to find and match named geographies found in the supplied text. The output will supply identified geographies from [Geonames](https://www.geonames.org/). These geographies can be used for other Candid tools like organization search to get more specific results. Key Usage Requirements: - This tools is most effective when the input text is a full sentence or more and grammatically correct - It uses a NLP model to resolve geographic names and then matches them using graph inferencing Parameters ---------- text : str Text describing working in the social sector. This should be related to the social and/or philanthropic sector. Examples -------- >>> geo_detect(text='Homeless shelters in new york city') Returns ------- list[GeocodingRecord] Matched geographies responses. This is an array of data objects which contain the `name` of the geography as it appeared in the supplied text, and the best match to a Geonames geography. For many Candid knowledge tools the `geonames_id` value will be most useful.

ActionTry it

Identify mentioned organizations

Resolve and link organization names to official Candid nonprofit profiles. Use after any response that mentions nonprofit or foundation names to generate clickable profile links. This uses the Candid Search in a lookup mode, and then finds the best result(s) using a heuristic string similarity search. This tool is focused on getting links to the organization's Candid profile for the user to click and explore in more detail. Use the URLs here to replace organization names in the chat response with links to the organization's profile. Links to Candid profiles **MUST** be used to do the following: 1. Generate direct links to Candid organization profiles 2. Provide a mechanism for users to easily access detailed organizational information 3. Enhance responses with authoritative source links Key Usage Requirements: - This tool should be used after a knowledge resources result if organization names are mentioned - This tool should be used after a web search if organization names are mentioned - This tool should not be used after any Candid tool which returns a `profile_link` URL field - Always incorporate returned profile URLs directly into the response text - Replace organization name mentions with hyperlinked Candid profile URLs - Prioritize creating a seamless user experience by making URLs contextually relevant Example Desired Output: Instead of: 'The Gates Foundation does impressive work.' Use: 'The [Gates Foundation](https://app.candid.org/profile/XXXXX) does impressive work.' Failure to integrate the URLs into the response is considered an incomplete implementation. Examples -------- >>> identify_mentioned_organizations(organizations=['Gates Foundation', 'Candid']) Parameters ---------- organizations : list[str] A list of organization name strings found in a chat response message which need to be matches Returns ------- dict[str, OrganizationRecord] mapping input name --> Candid Search organization record of the best potential match, including the profile URL

ActionTry it

Knowledge resources

Get answers to questions about the social and philanthropic sector directly fom Candid's subject matter experts. This knowledge includes help articles and video training sessions from Candid's subject matter experts, blog posts about the sector from Candid staff and trusted partner authors, research documents about the sector and news articles curated about activity happening in the sector around the world. Searches are performed through a combination of vector and keyword searching. Results are then re-ranked against the original query to get the best results. Search results often come back with specific organizations named, especially if referencing the news. In these cases the organizations should be identified in Candid's data and links to their profiles **MUST** be included in final chat response to the user. Key Usage Requirements: - Identify names of nonprofits and foundations in the returned text using `identify_mentioned_organizations` - Always incorporate returned profile URLs directly into the response text - Replace organization name mentions with hyperlinked Candid profile URLs - Prioritize creating a seamless user experience by making URLs contextually relevant Parameters ---------- query : str Text describing a user's question or a description of investigative work which requires support from Candid's knowledge base sources : list[SourceNames] One or more sources of knowledge from different areas at Candid. * Candid Blog: Blog posts from Candid staff and trusted partners intended to help those in the sector or illuminate ongoing work * Candid Help: Candid FAQs to help user's get started with Candid's product platform and learning resources * Candid Learning: Training documents from Candid's subject matter experts * Candid News: News articles and press releases about real-time activity in the philanthropic sector * IssueLab Research Reports: Academic research reports about the social/philanthropic sector * YouTube Training: Transcripts from video-based training seminars from Candid's subject matter experts news_days_ago : int, optional How many days in the past to search for news articles, if a user is asking for recent trends then this value should be set lower >~ 10, by default 60 If output is a string then that means there was some error, and retry should be considered Returns ------- list[KnowledgeArticle]

ActionTry it

Search organizations

Find nonprofits and grantmaking organizations in Candid's database by name, mission, EIN, location, or type of work. Use to look up a specific organization, find peer organizations, or discover organizations working on a topic. Search for organizations by name, description or work, program descriptions and locations. Here are some guidelines: * `query` controls hybrid searching involving both vector search and keyword search * `query` can be used to find organizations based on a description of work * if the query is intended to be a lookup of an organization by name, then adding quotes around the `query` string circumvents vector search, and prioritizes keyword matching on names (eg. `query=Candid` --> `query='Candid'`) * if the query is an EIN (eg. 12-3456789) then keyword searching is prioritized to get exact matches * adding location information such as postal codes and/or admin1 (state/province abbreviations) will filter results * adding subject or population codes will filter results * these results are not comprehensive and are limited to a small set size, several invocations may be necessary to explore This tool should be used as a first step in any downstream task which requires identifying the nonprofit that the user is identifying with. Often, the `nonprofit_id` is required, and that can be found via a search. Subjects and populations can be determined using the `autocode` tool using unstructured text describing the user's intended search. Codes strictly filter results, and aren't necessary for general retrieval queries, but may be used when the user is drilling down on data. Geographies can be determined using the geo detection tool using unstructured text describing the user's intended search. Geographies strictly filter results, and aren't necessary for general retrieval queries, but may be used when the user is drilling down on data. Key Usage Requirements: - Always incorporate returned profile URLs directly into the response text - Replace funding organization name mentions with hyperlinked Candid profile URLs - Prioritize creating a seamless user experience by making URLs contextually relevant - Use relevant recipient data as well as inferred metadata to provide explanations about recommendation relevance Parameters ---------- query : str Free text query which drives the search functionality. This uses a hybrid approach of vector and keyword searching, but under certain conditions expressed in the 'guidelines' this may disable vector search. located_postal_code : str | None, optional Postal code of the organization to be searched, if provided, by default None located_admin1 : str | None, optional Admin1 code (state/province abbreviation) of the organization to be searched, if provided, by default None subject_codes : str | None, optional Subject codes from Candid's PCS taxonomy, comma separated, by default None populations_served_codes : str | None, optional Population groups served codes from Candid's PCS taxonomy, comma separated, by default None geonameids_of_geographies_served : str | None, optional Geonames ID values for geographies served by organizations in search results, comma separted, by default None geonameids_of_organization_location : str | None, optional Geonames ID values for location(s) of the organizations in search results, comma separted, by default None org_seal_status : str | None, optional Comma separated seals of transparency the resulting organizations should have where the values can be: * PLATINUM * GOLD * SILVER * BRONZE * NOSEAL "PLATINUM" is the most transparent, "NOSEAL" means the organization has claimed their Candid profile but abandoned the data update process for whatever reason. None puts no restrictions on this, by default None leader_demographics : str | None, optional Comma separated demographic categories for the result organization's leader where values can be: * Woman leader or co-leader * BIPOC leader or co-leader * LGBTQ+ leader or co-leader * Leader or co-leader with a disability None puts no restrictions on this, by default None Examples -------- >>> organization_search(query='Homeless shelters in new york city') >>> organization_search( query='Homeless shelters in new york city, located_admin1='NY', geonameids_of_geographies_served='5128581' ) >>> organization_search( query='Homeless shelters in new york city, subject_codes='SS090200,SS070102', populations_served_codes='PG030100', geonameids_of_geographies_served='5128581' ) Returns ------- list[OrganizationRecord] List of the top organization search results

ActionTry it

Taxonomy terms

Uses natural language processing to align input text to Candid's taxonomy, the Philanthropy Classification System (PCS). The taxonomy describes activity in the social and philanthropic sectors including the purpose of the activity and what population groups the activity serves. These taxonomy codes can be used for other Candid tools like organization search to get more specific results. A complete description of the taxonomy is available to the public at https://taxonomy.candid.org. Parameters ---------- text : str Text describing working in the social sector. This should be related to the social and/or philanthropic sector. Examples -------- >>> autocode(text='Housing assistance programs for homeless veterans') Returns ------- list[AutocodingRecord] Taxonomy responses. The items in the list are each taxonomy terms which the NLP model has determined is relevant given the input text. This also includes confidence scores.

ActionTry it

How the Candid MCP integration works

The Candid MCP integration connects your Dench AI CRM directly to Candid MCP, so agents can read and act on your Candid MCP data as part of everyday work — answering questions in chat, keeping your CRM in sync, and running automations without anyone copying data between tools.

6 actions are available for agents to invoke on your behalf. Every call runs through Candid MCP's own authorization, scoped to the account you connect.

Set up Candid MCP in Dench

  1. 1

    Sign in to your Dench workspace and open Integrations.

  2. 2

    Find Candid MCP and click Connect — you'll authorize access through Candid MCP's own sign-in flow. No API keys or code required.

  3. 3

    Ask an agent to use Candid MCP in chat, or call it from an automation.

  4. 4

    Manage or disconnect the connection any time from workspace settings.

Frequently asked questions

How does the Candid MCP integration work with Dench?

The Dench Candid MCP integration connects your AI CRM to Candid MCP, so AI agents can work with your Candid MCP data as part of chats, automations, and CRM workflows. You connect your account once, and every agent in your workspace can use it — governed by your workspace permissions.

What actions can AI agents perform with Candid MCP via Dench?

The Candid MCP integration currently exposes 6 actions, including Current date, Identify locations, Identify mentioned organizations, Knowledge resources, Search organizations, and Taxonomy terms. Agents invoke them on your behalf from chat or from automations.

Do I need to write code to connect Candid MCP to Dench?

No. You connect Candid MCP from your Dench workspace using Candid MCP's own sign-in and authorization flow — no API keys to copy, no glue code to maintain.

Is the Candid MCP integration secure?

Connections are authorized through Candid MCP's own authentication flow, and Dench stores only the authorization needed to act on your behalf. You can review and disconnect the Candid MCP connection from your workspace settings at any time.

Candid MCP | Dench AI CRM