Use Candid MCP with
Sokko.
Connect Candid MCP and tell Sokko what to do. It runs the actions you ask for and reacts to what happens. No workflows, no code.
Works with 1,000+ tools · No code required
Actions
Everything Sokko can do in Candid MCP
Every Candid MCP action Sokko can run. Ask for one in a sentence and it's done.
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
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.
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
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]
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
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.
Get connected
Live in your Slack in two minutes.
No workflows to wire up. Turn on the tools you already use, and your agent gets to work.
Add to Slack
1
Add Sokko to Slack
One click from the Slack marketplace. Your whole team gets Sokko at once.
2
Connect your tools
Sokko works with 1,000+ apps and any MCP server.
Martin
9:53 AM
@Sokko
What can you do with Candid MCP?
3
Put Sokko to work
@mention Sokko in any channel and it gets going. Minutes, not a weekend.
Questions, answered.
Sokko is an AI assistant that lives in your Slack. Connect your apps, ask for what you need in plain language, and Sokko takes the work off your plate.
Sign up to Sokko, ask Sokko to connect to Candid MCP, and approve the connection when prompted. From then on you can ask Sokko to do things in Candid MCP whenever you need.
No. There's nothing to build or configure. You ask Sokko in Slack the same way you'd ask a colleague, and Sokko handles the rest.
Yes. Ask once and tell Sokko when to repeat it, like every Monday at 9am, and it becomes a routine that runs without you.
Read and act on data in Candid MCP, and trigger workflows when something changes there. Tell Sokko the outcome you want and it handles the rest.
Yes. Sokko connects to 1,000+ apps and any MCP server, so you can ask for tasks that span Candid MCP and the rest of your stack in a single request.