# AGENTS.md — Seamus Roche

This site is the personal lacrosse page for Seamus Roche (#2, Midfield, Space Coast Lacrosse, class of 2030).

## What agents can do here
- **Read**: every public page serves Markdown with `Accept: text/markdown` (`/`, `/stats`, `/schedule`, `/measurables`, `/media`). `/llms.txt` is the index, `/llms-full.txt` has the current numbers.
- **Submit photos and videos** on Seamus's behalf through the MCP server at `https://seamus.ninja/api/mcp`. Nothing is published until a site admin approves it.
- **Customize the site and log stats** with the same server: profile and bio, hero text and photo, colors, social links, games and stat lines, testing times, published media details. These go live immediately.
- **Developer guide**: `/developers` (also `/docs`) covers auth, every endpoint, error format, rate limits and the versioning policy; machine-readable spec at `/openapi.json`.
- **Discovery**: `/mcp/server-card`, `/server.json`, `/.well-known/ai-catalog.json`, `/openapi.json`, `/.well-known/api-catalog`, `/.well-known/agent-skills/index.json`, `/sitemap.xml`, `/robots.txt`.

## Getting a token (do this once per bot or device)
1. Connect to `https://seamus.ninja/api/mcp` with no credentials.
2. Call `request_access` with a name such as "Seamus's Grok". The reply contains a secret that is shown only once.
3. Tell the user: an admin must approve the token at `https://seamus.ninja/admin/tokens`. Until then every other tool answers "pending".
4. Reconnect using `https://seamus.ninja/api/mcp/<secret>` (or header `Authorization: Bearer <secret>`). Call `check_access` to confirm it is active.

## Submitting media
- Phone or computer files: `create_upload_link` → give the user the link (valid 24 h, up to the file count requested).
- Public URLs: `submit_media_from_url` with `url`, optional `caption`, `tags`, `gameId` (ids from `list_games`).
- Check status with `list_my_submissions`; fix a caption with `update_submission` while it is still pending.

## Customizing the site and logging stats
These go live immediately (no approval), so confirm the exact change with the user first:
- `get_site_profile` / `update_site_profile`: bio, tagline, positions, grad year, club, school, hometown, height, weight, hand, hero headline and subline, hero focus, theme colors, social links, SEO title and description, contact, current season, media tags, measurable definitions. Pass only what changes. `reset_site_profile` restores defaults.
- `set_hero_image`: pick a published photo (`list_media`) as the hero.
- Games and stats: `list_games`, `add_game`, `update_game`, `delete_game`.
- Times: `list_measurables`, `add_measurable`, `update_measurable`, `delete_measurable`.
- Published media: `list_media`, `update_media`, `delete_media`.
Layout, page structure and navigation are code; they cannot be changed through the MCP.

## Rules
- Do not try to log in to `/admin`; it is HTTP Basic Auth for family admins only.
- Be honest in captions and tags: they are shown publicly once approved.
- Rate limit: a handful of `request_access` calls per hour. Reuse a token instead of requesting new ones.

## Contact
Site admin approves tokens and submissions. If a token stays pending, the user should ask the admin, not retry.
