Public fellowship and grant search with sourced details and live filter vocabularies.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Get one published public opportunity, its current cycles, source records, and any approved eligibility or funding facts before ranking or citing it. Missing facts remain unknown. Open Medici ranking is a catalog signal, not personalized fit, eligibility, or acceptance likelihood.
Get one published public opportunity, its current cycles, source records, and any approved eligibility or funding facts before ranking or citing it. Missing facts remain unknown. Open Medici ranking is a catalog signal, not personalized fit, eligibility, or acceptance likelihood.
| Argument | Type | Description |
|---|---|---|
| slug* | string | |
| locale | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
"maxLength": 200,
"minLength": 1
},
"locale": {
"enum": [
"en",
"es"
],
"type": "string",
"default": "en"
}
},
"additionalProperties": false
}List current database-backed values for one public search facet. Use this before search_opportunities instead of guessing taxonomy terms. An empty facet or absent user value means public coverage is missing; it is not evidence that the user is ineligible, so do not turn it into a hard exclusion. Map filters to facets as follows: type→types, topic→topics, applicant→applicants, career→careers, audience→audiences, education→education, enrollment→enrollments, citizenship→citizenships, residence→residences, country→countries, destination→destinations, benefit→benefits, fundingShape→fundingShapes, durationUnit→durationUnits, openState→openStates, lifecycle→lifecycles.
| Argument | Type | Description |
|---|---|---|
| q | string | |
| facet* | string | Plural facet catalog name corresponding to a search filter; see this tool's description for the exact mapping. |
| limit | integer | |
| offset | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"facet"
],
"properties": {
"q": {
"type": "string",
"maxLength": 100
},
"facet": {
"enum": [
"types",
"lifecycles",
"fields",
"countries",
"destinations",
"careers",
"topics",
"applicants",
"audiences",
"benefits",
"citizenships",
"residences",
"education",
"enrollments",
"fundingShapes",
"durationUnits",
"openStates"
],
"type": "string",
"description": "Plural facet catalog name corresponding to a search filter; see this tool's description for the exact mapping."
},
"limit": {
"type": "integer",
"default": 50,
"maximum": 100,
"minimum": 1
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 10000,
"minimum": 0
}
},
"additionalProperties": false
}Search published public fellowships, grants, scholarships, prizes, and funded residencies. For matching, start with separate broad calls for the exact topic, synonyms, broader fields, and type-only grants and fellowships. Do not stack sparse topic, career, and location filters during initial discovery. Array values are OR alternatives within one filter; separate filter fields are combined with AND. Search results are candidates only: call get_opportunity before ranking or citing each one.
| Argument | Type | Description |
|---|---|---|
| page | integer | |
| sort | string | |
| type | array | Use exact values returned by list_filter_options with facet="types". Multiple values are OR alternatives within this filter; different filter fields are combined with AND. |
| limit | integer | |
| query | string | Short topic, program, or funder query. Use separate calls for useful synonyms and broader fields. |
| topic | array | Use exact values returned by list_filter_options with facet="topics". Multiple values are OR alternatives within this filter; different filter fields are combined with AND. |
| ageMax | number | |
| ageMin |
| number |
| career | array | Use exact values returned by list_filter_options with facet="careers". Multiple values are OR alternatives within this filter; different filter fields are combined with AND. |
| locale | string |
| benefit | array | Use exact values returned by list_filter_options with facet="benefits". Multiple values are OR alternatives within this filter; different filter fields are combined with AND. |
| country | array | Use exact values returned by list_filter_options with facet="countries". Multiple values are OR alternatives within this filter; different filter fields are combined with AND. |
| audience | array | Use exact values returned by list_filter_options with facet="audiences". Multiple values are OR alternatives within this filter; different filter fields are combined with AND. |
| openOnly | boolean |
| applicant | array | Use exact values returned by list_filter_options with facet="applicants". Multiple values are OR alternatives within this filter; different filter fields are combined with AND. |
| education | array | Use exact values returned by list_filter_options with facet="education". Multiple values are OR alternatives within this filter; different filter fields are combined with AND. |
| lifecycle | array | Use exact values returned by list_filter_options with facet="lifecycles". Multiple values are OR alternatives; different filter fields are combined with AND. |
| openState | array | Use exact values returned by list_filter_options with facet="openStates". Multiple values are OR alternatives within this filter; different filter fields are combined with AND. |
| residence | array | Use exact values returned by list_filter_options with facet="residences". Multiple values are OR alternatives within this filter; different filter fields are combined with AND. |
| deadlineTo | any |
| enrollment | array | Use exact values returned by list_filter_options with facet="enrollments". Multiple values are OR alternatives within this filter; different filter fields are combined with AND. |
| fundedOnly | boolean |
| fundingMax | number |
| fundingMin | number |
| citizenship | array | Use exact values returned by list_filter_options with facet="citizenships". Multiple values are OR alternatives within this filter; different filter fields are combined with AND. |
| destination | array | Use exact values returned by list_filter_options with facet="destinations". Multiple values are OR alternatives within this filter; different filter fields are combined with AND. |
| durationMax | number | Maximum opportunity duration in days. |
| durationMin | number | Minimum opportunity duration in days. |
| rollingOnly | boolean |
| deadlineFrom | string |
| durationUnit | array | Filter by the unit stored on duration facts; this does not change the day-based durationMin and durationMax fields. |
| fundingShape | array | Use exact values returned by list_filter_options with facet="fundingShapes". Multiple values are OR alternatives within this filter; different filter fields are combined with AND. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"page": {
"type": "integer",
"default": 1,
"maximum": 10000,
"minimum": 1
},
"sort": {
"enum": [
"rank",
"deadline",
"name",
"recent"
],
"type": "string",
"default": "rank"
},
"type": {
"type": "array",
"items": {
"type": "string",
"maxLength": 160,
"minLength": 1
},
"maxItems": 20,
"description": "Use exact values returned by list_filter_options with facet=\"types\". Multiple values are OR alternatives within this filter; different filter fields are combined with AND."
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 20,
"minimum": 1
},
"query": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Short topic, program, or funder query. Use separate calls for useful synonyms and broader fields."
},
"topic": {
"type": "array",
"items": {
"$ref": "#/properties/type/items"
},
"maxItems": 20,
"description": "Use exact values returned by list_filter_options with facet=\"topics\". Multiple values are OR alternatives within this filter; different filter fields are combined with AND."
},
"ageMax": {
"type": "number",
"maximum": 150,
"minimum": 0
},
"ageMin": {
"type": "number",
"maximum": 150,
"minimum": 0
},
"career": {
"type": "array",
"items": {
"$ref": "#/properties/type/items"
},
"maxItems": 20,
"description": "Use exact values returned by list_filter_options with facet=\"careers\". Multiple values are OR alternatives within this filter; different filter fields are combined with AND."
},
"locale": {
"enum": [
"en",
"es"
],
"type": "string",
"default": "en"
},
"benefit": {
"type": "array",
"items": {
"$ref": "#/properties/type/items"
},
"maxItems": 20,
"description": "Use exact values returned by list_filter_options with facet=\"benefits\". Multiple values are OR alternatives within this filter; different filter fields are combined with AND."
},
"country": {
"type": "array",
"items": {
"$ref": "#/properties/type/items"
},
"maxItems": 20,
"description": "Use exact values returned by list_filter_options with facet=\"countries\". Multiple values are OR alternatives within this filter; different filter fields are combined with AND."
},
"audience": {
"type": "array",
"items": {
"$ref": "#/properties/type/items"
},
"maxItems": 20,
"description": "Use exact values returned by list_filter_options with facet=\"audiences\". Multiple values are OR alternatives within this filter; different filter fields are combined with AND."
},
"openOnly": {
"type": "boolean"
},
"applicant": {
"type": "array",
"items": {
"$ref": "#/properties/type/items"
},
"maxItems": 20,
"description": "Use exact values returned by list_filter_options with facet=\"applicants\". Multiple values are OR alternatives within this filter; different filter fields are combined with AND."
},
"education": {
"type": "array",
"items": {
"$ref": "#/properties/type/items"
},
"maxItems": 20,
"description": "Use exact values returned by list_filter_options with facet=\"education\". Multiple values are OR alternatives within this filter; different filter fields are combined with AND."
},
"lifecycle": {
"type": "array",
"items": {
"enum": [
"active_accepting",
"active_between_cycles",
"active_no_applications",
"paused",
"ended",
"renamed_or_moved",
"inaccessible",
"unclear"
],
"type": "string"
},
"maxItems": 8,
"description": "Use exact values returned by list_filter_options with facet=\"lifecycles\". Multiple values are OR alternatives; different filter fields are combined with AND."
},
"openState": {
"type": "array",
"items": {
"$ref": "#/properties/type/items"
},
"maxItems": 20,
"description": "Use exact values returned by list_filter_options with facet=\"openStates\". Multiple values are OR alternatives within this filter; different filter fields are combined with AND."
},
"residence": {
"type": "array",
"items": {
"$ref": "#/properties/type/items"
},
"maxItems": 20,
"description": "Use exact values returned by list_filter_options with facet=\"residences\". Multiple values are OR alternatives within this filter; different filter fields are combined with AND."
},
"deadlineTo": {
"$ref": "#/properties/deadlineFrom"
},
"enrollment": {
"type": "array",
"items": {
"$ref": "#/properties/type/items"
},
"maxItems": 20,
"description": "Use exact values returned by list_filter_options with facet=\"enrollments\". Multiple values are OR alternatives within this filter; different filter fields are combined with AND."
},
"fundedOnly": {
"type": "boolean"
},
"fundingMax": {
"type": "number",
"maximum": 1000000000,
"minimum": 0
},
"fundingMin": {
"type": "number",
"maximum": 1000000000,
"minimum": 0
},
"citizenship": {
"type": "array",
"items": {
"$ref": "#/properties/type/items"
},
"maxItems": 20,
"description": "Use exact values returned by list_filter_options with facet=\"citizenships\". Multiple values are OR alternatives within this filter; different filter fields are combined with AND."
},
"destination": {
"type": "array",
"items": {
"$ref": "#/properties/type/items"
},
"maxItems": 20,
"description": "Use exact values returned by list_filter_options with facet=\"destinations\". Multiple values are OR alternatives within this filter; different filter fields are combined with AND."
},
"durationMax": {
"type": "number",
"maximum": 100000,
"minimum": 0,
"description": "Maximum opportunity duration in days."
},
"durationMin": {
"type": "number",
"maximum": 100000,
"minimum": 0,
"description": "Minimum opportunity duration in days."
},
"rollingOnly": {
"type": "boolean"
},
"deadlineFrom": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"durationUnit": {
"type": "array",
"items": {
"$ref": "#/properties/type/items"
},
"maxItems": 20,
"description": "Filter by the unit stored on duration facts; this does not change the day-based durationMin and durationMax fields."
},
"fundingShape": {
"type": "array",
"items": {
"$ref": "#/properties/type/items"
},
"maxItems": 20,
"description": "Use exact values returned by list_filter_options with facet=\"fundingShapes\". Multiple values are OR alternatives within this filter; different filter fields are combined with AND."
}
},
"additionalProperties": false
}