{
  "markdown": "# SCP Golf — Profile 001 of the Sports Context Protocol\n\n**The context, safety, and memory layer for sports agents. Golf first.**\n\n> Before a sports agent acts, it checks SCP. Then SCP learns from what happened.\n\n**SCP — Sports Context Protocol** — is an open context layer for AI agents\noperating in sports. Every sport venue has the same five things underneath:\n**inventory, rules, actions, consequences, and memory.** SCP is the standard\nway an agent reads those before it acts, and learns from the outcome after.\n\n**SCP Golf is Profile 001** — the first working profile. Golf is the cleanest\nwedge because an agent cannot safely book, price, move, or recommend anything\nat a course without understanding tee-sheet state, protected inventory,\npricing policy, pace risk, events, and operator memory. Golf makes the problem\nimpossible to ignore.\n\nThis repository is **SCP Golf Alpha**: a synthetic demo course, a local\n[MCP](https://modelcontextprotocol.io) server, booking and pricing safety\nchecks, soft holds, a decision ledger, and a self-learning memory. No real\ncourse data, no integrations, no database.\n\n- Protocol-level spec: [`docs/SCP_CORE_SPEC.md`](docs/SCP_CORE_SPEC.md)\n- The profile system: [`docs/SCP_PROFILES.md`](docs/SCP_PROFILES.md)\n- This profile: [`docs/SCP_GOLF_PROFILE.md`](docs/SCP_GOLF_PROFILE.md)\n\n## Why golf agents need this\n\nAI golf agents are coming — answering calls, booking tee times, quoting prices,\nmoving reservations. The problem: most agents only know the conversation. They\ndo not know the *course*: the tee-sheet state, the member protections, the\nleague blocks, the pricing floor, the pace risk, the operator's preferences,\nand what happened the last time a similar decision was made.\n\nSCP Golf gives them that, and then it learns.\n\n## What the alpha does\n\n- Models one synthetic course — **Harbor Ridge Golf Club** — for Saturday,\n  June 6, 2026: a 67-slot tee sheet with member, league, and outing blocks.\n- Exposes the course as **11 MCP resources** (read-only context).\n- Exposes **9 MCP tools** for safe booking, pricing, soft holds, decision\n  logging, outcome feedback, and learning insights.\n- Exposes **4 MCP prompts** (reusable workflows).\n- Logs every decision to a ledger and **learns from outcomes** — operator\n  overrides, pace issues, price rejections — so the next similar decision is\n  better.\n\n## Install\n\n```bash\nnpm install\nnpm run build\nnpm run typecheck\nnpm run test\n```\n\n## Run\n\n```bash\nnpm run dev      # runs the MCP server on stdio (tsx, no build needed)\nnpm start        # runs the compiled server from dist/\n```\n\nTest it interactively with the MCP Inspector:\n\n```bash\nnpx @modelcontextprotocol/inspector npm run dev\n```\n\n## The tools\n\n| Tool | What it does |\n|---|---|\n| `get_course_context` | Full operating context — read this before acting. |\n| `get_available_inventory` | Available tee times near a preferred time. |\n| `check_booking_action` | Is a booking allowed, blocked, risky? Writes a decision. |\n| `check_pricing_action` | Is a quoted/discounted price allowed? Writes a decision. |\n| `create_soft_hold` | Temporary hold on a tee time before confirmation. |\n| `write_decision_event` | Log a decision directly. |\n| `submit_outcome_feedback` | **The learning tool.** Feed an outcome back to SCP. |\n| `get_learning_insights` | What SCP has learned. |\n| `explain_action` | Explain a result for golfer / operator / developer. |\n\n## The resources\n\n`scp://course/demo` and its children: `context`, `tee-sheet`,\n`booking-policy`, `pricing-policy`, `events`, `weather`, `pace`,\n`decision-ledger`, `learning-memory`, `soft-holds`.\n\n## The self-learning loop\n\nThis is the heart of SCP. It is operational learning — no model training.\n\n1. An agent calls a tool. SCP builds a **decision fingerprint** (a bucketed,\n   deterministic description of the *kind* of decision).\n2. SCP checks rules and learned memory keyed on that fingerprint.\n3. SCP recommends a safe action and logs a decision event.\n4. Feedback arrives via `submit_outcome_feedback`.\n5. SCP scores the outcome and updates its learning memory.\n6. The next decision with a matching fingerprint is shaped by that memory.\n\nThe demo moment: ask for Saturday ~09:00, have an operator override the result\nonce, ask again — SCP now recommends the operator's preferred time. See\n[`docs/LEARNING_LOOP.md`](docs/LEARNING_LOOP.md).\n\n## Docs\n\n- [`docs/SCP_CORE_SPEC.md`](docs/SCP_CORE_SPEC.md) — the protocol, sport-agnostic.\n- [`docs/SCP_PROFILES.md`](docs/SCP_PROFILES.md) — the profile system and roadmap.\n- [`docs/SCP_GOLF_PROFILE.md`](docs/SCP_GOLF_PROFILE.md) — Profile 001 primitive mapping.\n- [`docs/SCP_GOLF_SPEC.md`](docs/SCP_GOLF_SPEC.md) — golf implementation detail.\n- [`docs/QUICKSTART.md`](docs/QUICKSTART.md) — run and test locally.\n- [`docs/DEMO_PROMPTS.md`](docs/DEMO_PROMPTS.md) — 10 demo prompts.\n- [`docs/LEARNING_LOOP.md`](docs/LEARNING_LOOP.md) — how the learning works.\n- [`docs/ROADMAP.md`](docs/ROADMAP.md) — phases beyond the alpha.\n\n## Status\n\nAlpha. Synthetic data. Booking safety first. Self-learning from decision\noutcomes. Not partnered with any course, not integrated with any provider, not\nlive with any operator.\n\n## License\n\nMIT\n",
  "bytes": 5183,
  "sha": "f45156fdb80c674ae4164c13fa6eb8f987ce338d4487420d554b7144e2d7a4b3",
  "repo_slug": "dswane/sports-context-protocol",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_dswane_sports_context_protocol_00852879/readme"
}