AGENT ACCESS
Detect available tools, then choose a fallback.
Browser agents can use WebMCP when the host exposes it. Every agent can fall back to the documented REST API or remote MCP server.
What this is for
Use this guide when an agent needs current opportunity data. It can inspect the published discovery documents instead of guessing paths or credentials. Those documents do not grant access to private routes.
WebMCP capability and fallback
Open Medici registers WebMCP only when document.modelContext or navigator.modelContext exposes registerTool. If neither exists, WebMCP is unavailable; use REST or remote MCP.
WebMCP uses same-origin public API requests with credentials: omit. It registers the same three read-only tool names used by remote MCP:
list_filter_optionssearch_opportunitiesget_opportunity
const contexts = [document.modelContext, navigator.modelContext]
.filter((context) => typeof context?.registerTool === 'function');
if (contexts.length === 0) {
// WebMCP is unavailable: use REST or remote MCP.
}Fallback to the REST guide when your host can fetch JSON, or the remote MCP guide when it can connect a Streamable HTTP server.
Machine discovery map
| Document | Path | Purpose |
|---|---|---|
| API catalog | /.well-known/api-catalog | RFC 9727 linkset for the public REST API and MCP server. |
| OpenAPI | /api/v1/openapi.json | Public REST paths, parameters, and schemas. |
| MCP server card | /.well-known/mcp/server-card.json | Transport URL, protocol version, and capabilities. |
| LLMs index | /llms.txt | Compact public-interface map, first REST request, and matching rules. |
| Agent Skills index | /.well-known/agent-skills/index.json | Discover the published Open Medici skill and digest. |
| Agent Skill | /.well-known/agent-skills/open-medici/SKILL.md | Source-aware opportunity-matching workflow. |
| Authentication policy | /auth.md | Which routes are public and which are private. |
These discovery documents support anonymous GET/HEAD/OPTIONS access and credential-free CORS. Their service-document links point to the specific API, MCP, and Agents guides.
Markdown content negotiation
Request the home route with Accept: text/markdown for a compact, origin-correct map of public interfaces.
curl --silent --show-error 'https://openmedici.com/' \
--header 'Accept: text/markdown'Authentication
Endpoints listed in the public OpenAPI document require no authentication. The examples send no API key, Authorization header, or cookies.
The public remote MCP and discovery documents also require no credentials. Only the endpoints in the public OpenAPI document are public. The /api/v1/admin/* and /api/v1/agent/* routes are private.
Matching notes
- Call
list_filter_optionsbefore search andget_opportunitybefore ranking, recommending, or citing a candidate. - Missing eligibility or funding is unknown, not evidence that a person qualifies.
- Existing recipient API and detail routes remain available, but
/recipientsis omitted from site navigation.