# AGENTS.md

Integration guide for coding agents and AI assistants working with GetMed (https://getmed.pl).
GetMed (getmed.pl) is a Polish private healthcare platform: private medical packages (monthly subscriptions) for individuals, couples, families, parents with children, seniors and companies, plus online booking of consultations, laboratory and imaging tests at partner medical providers across Poland. Site content is in Polish.

## Install

There is nothing to install. GetMed exposes a public, read-only MCP server over Streamable HTTP
at `https://getmed.pl/api/mcp` (alias: `https://getmed.pl/mcp`). Server card: https://getmed.pl/.well-known/mcp/server-card.json
(alias: https://getmed.pl/.well-known/mcp.json).

Claude Code:

```bash
claude mcp add --transport http getmed https://getmed.pl/api/mcp
```

Claude Desktop and other MCP clients: add a custom connector with the URL `https://getmed.pl/api/mcp`
and no authentication.

Plain JSON-RPC:

```bash
curl -s -X POST https://getmed.pl/api/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
```

## Configuration

- No API keys, tokens or accounts. Do not send an Authorization header; it is ignored.
- The server is stateless: no session id, every POST is independent. GET and DELETE return 405.
- Responses are JSON (not SSE). Tool results are JSON encoded in the text content block.
- Backend data is cached for one hour; prices are in PLN.
- Server name: `getmed`, version `1.0.0`.

## Usage

Tools:

- `get_site_overview`: Returns a markdown overview of GetMed: what the platform offers, key public pages and how booking works. Call this first when you know nothing about the site.
- `list_medical_packages`: Lists private medical packages grouped by category (individual, couple, family, parent with child, senior) with monthly prices in PLN, age range and page URLs. Optional filters: category slug and patient age.
- `get_medical_package`: Returns details of one medical package: description, included specialists, counts of tests and procedures, pricing variants and the page URL. Identify the package by category slug plus variant slug (as in the site URL) or by its full slug.
- `search_knowledge_base`: Searches GetMed health articles (Polish) by keywords and returns matching titles, summaries and URLs.
- `list_specialists`: Lists the medical specialties available on GetMed (e.g. internist, pediatrician, dermatologist) with page URLs.
- `list_test_preparations`: Lists guides on how to prepare for medical tests (e.g. ultrasound, blood tests) with URLs. Optional keyword filter.
- `search_faq`: Returns frequently asked questions about GetMed with answers. Optional keyword filter.

Example call:

```bash
curl -s -X POST https://getmed.pl/api/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"list_medical_packages","arguments":{"category":"dla-rodziny"}}}'
```

Package identifiers are the category slug (`indywidualne`, `dla-dwojga`, `dla-rodziny`,
`rodzic-z-dzieckiem`, `senior`) and the variant slug from the page URL, e.g.
`/prywatne-pakiety-medyczne/dla-rodziny/komfortowy` is category `dla-rodziny`, variant `komfortowy`.

Markdown instead of HTML for any page:

```bash
curl -s -H "Accept: text/markdown" https://getmed.pl/prywatne-pakiety-medyczne
```

In the browser, the same tools plus page navigation are exposed through WebMCP
(`navigator.modelContext`) on every page.

## Discovery files

- https://getmed.pl/llms.txt: curated index of key pages
- https://getmed.pl/sitemap.md: every public page in Markdown
- https://getmed.pl/.well-known/agent-skills/getmed-site/SKILL.md: site guide for agents (index: https://getmed.pl/.well-known/agent-skills/index.json)
- https://getmed.pl/.well-known/agents.json: capability manifest
- https://getmed.pl/.well-known/api-catalog: API catalog (RFC 9727)
- https://getmed.pl/.well-known/ai-catalog.json: ARD manifest
- https://getmed.pl/robots.txt: crawl policy with `Content-Signal: search=yes, ai-input=yes, ai-train=yes`

## Rules

Read https://getmed.pl/auth.md. In short: public data is free to use; booking visits, buying
packages and anything in the patient dashboard require a signed-in human. Agents must not
create accounts, log in or submit forms on a user's behalf; hand the user the page URL instead.
