---
name: open-medici
description: "Find and compare verified public fellowships, grants, scholarships, prizes, and funded residencies using Open Medici's read-only REST API or MCP server."
---

# Open Medici opportunity matching

Use this skill when a user wants to discover or compare fellowships, grants, scholarships, prizes, or funded residencies. Open Medici exposes published records only. Treat missing eligibility or funding data as unknown, never as evidence that the user qualifies.

## Public interfaces

- REST OpenAPI: https://openmedici.com/api/v1/openapi.json
- Remote MCP (Streamable HTTP): https://openmedici.com/mcp
- Developer overview: https://openmedici.com/developers
- REST documentation: https://openmedici.com/developers/api
- MCP documentation: https://openmedici.com/developers/mcp
- Agent documentation: https://openmedici.com/developers/agents
- Authentication policy: https://openmedici.com/auth.md

Public reads require no API key, bearer token, account, OAuth flow, or payment. Do not attempt to use administrative, review, webhook, candidate-decision, or other protected internal routes.

## Recommended matching workflow

1. Ask only for information that materially affects eligibility: opportunity type, topic or field, career stage, citizenship or residence, destination preference, age or education constraints when relevant, timing, and funding need. Do not request a name, email address, CV, or other personal identifier.
2. Discover current database vocabulary before filtering. With MCP, call `list_filter_options`. With REST, call `GET /api/v1/facets/{facet}`. Do not invent taxonomy values.
3. Search broadly, then narrow. With MCP, call `search_opportunities`. With REST, call `GET /api/v1/search`; repeat query parameters for multi-value filters and use `facets=false` when facet data is not needed.
4. Inspect each shortlisted record. With MCP, call `get_opportunity`. With REST, call `GET /api/v1/programs/{slug}`.
5. Rank by confirmed eligibility, fit, funding, deadline feasibility, and source freshness. Separate confirmed matches from plausible matches with unknown rules.
6. Return a short comparison with the opportunity name, why it fits, important eligibility constraints, funding, next deadline or rolling status, official application URL, Open Medici record URL, and the date the source was last checked when present.

## REST example

```http
GET https://openmedici.com/api/v1/search?topic=climate&open=true&funded=true&limit=5&facets=false
Accept: application/json
```

Read `meta.invalid` in search responses. Unsupported filter values are ignored there so an agent can correct its query without discarding valid filters. Use `page` for pagination and keep `limit` at or below 100 for REST requests.

## MCP tools and prompt

- `list_filter_options`: retrieve current values for a supported search facet.
- `search_opportunities`: search published opportunities with structured eligibility, funding, deadline, duration, and location filters.
- `get_opportunity`: retrieve one opportunity with current cycles, approved facts, and source records.
- `find_best_opportunities`: prompt template for an interview-led, privacy-conscious matching workflow.

All MCP tools are read-only and idempotent. They do not submit applications, update records, or make eligibility guarantees.

## Evidence rules

- Cite the official URL for claims about eligibility, funding, deadlines, or applications.
- Prefer records with a recent `sourceCheckedAt`, but say when that field is absent or stale.
- Preserve uncertainty. If a rule is not published, advise the user to confirm it with the provider.
- Never present Open Medici as the grant maker or imply that ranking guarantees acceptance.
