MCP
Connect an agent.
Search VA facilities.
One JSON-RPC endpoint for discovery and tool calls. This demo exposes facility search so AI clients can find VA locations by state, ZIP, or coordinates.
Endpoint
One path.
GET and POST.
Discovery uses GET. Initialize, list tools, and call tools use POST with JSON-RPC 2.0.
https://www.veterancarefinder.com/api/mcp
Protocol
Three steps.
Then you are done.
Most clients only need discovery plus one tools/call. List tools if your client cannot use the GET payload.
- 01
GET the endpoint for app metadata and the tool list.
GET /api/mcp - 02
POST JSON-RPC initialize, then optionally tools/list.
method: initialize - 03
POST tools/call with search_va_facilities and a location.
method: tools/call
Tool
search_va_facilities.
Provide at least one of: coordinates, ZIP, or state. Coordinates win when present. Returns up to 10 facilities.
- 01
state
stringTwo-letter state code. Uppercased automatically.
- 02
zip
stringFive-digit ZIP code.
- 03
lat + lng
numberCoordinates for nearby search. Take precedence over ZIP or state.
- 04
radius
numberMiles. Defaults to 50 when coordinates are provided.
- 05
facilityType
stringOne of health, cemetery, benefits, vet_center. Defaults to health.
The discovery schema also lists query, location, and serviceType. The current handler does not use them. Pass state, ZIP, or coordinates.
Examples
Try it.
Copy a command and run it against the live endpoint.
01 Discover
curl -s "https://www.veterancarefinder.com/api/mcp" \ -H "Accept: application/json"
02 Initialize
curl -s -X POST "https://www.veterancarefinder.com/api/mcp" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": "init-1",
"method": "initialize",
"params": { "capabilities": {} }
}'03 Call near Seattle
curl -s -X POST "https://www.veterancarefinder.com/api/mcp" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": "call-1",
"method": "tools/call",
"params": {
"name": "search_va_facilities",
"arguments": {
"lat": 47.6062,
"lng": -122.3321,
"radius": 35,
"facilityType": "health"
}
}
}'View sample response shape
{
"jsonrpc": "2.0",
"id": "call-1",
"result": {
"structuredContent": {
"facilities": [
{
"id": "vha_663",
"name": "…",
"classification": "…",
"facilityType": "health",
"address": "…",
"phone": "…",
"hours": null
}
],
"total": 12
},
"content": [
{ "type": "text", "text": "Found 12 VA facilities." }
]
}
}Limits
What to expect.
- No auth today. Treat this as a public demo surface, not a production credential boundary.
- Top 10 results. The handler caps responses; use radius or a tighter location for relevance.
- Not official VA services. For care decisions, send veterans to va.gov.
Ready when you are.
Open discovery in the browser, or paste a curl example into your terminal.