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.

Endpoint
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.

  1. 01

    GET the endpoint for app metadata and the tool list.

    GET /api/mcp
  2. 02

    POST JSON-RPC initialize, then optionally tools/list.

    method: initialize
  3. 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

    string

    Two-letter state code. Uppercased automatically.

  • 02

    zip

    string

    Five-digit ZIP code.

  • 03

    lat + lng

    number

    Coordinates for nearby search. Take precedence over ZIP or state.

  • 04

    radius

    number

    Miles. Defaults to 50 when coordinates are provided.

  • 05

    facilityType

    string

    One 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.