npm sports-context-protocolstdioMITupdated 3mo ago
The context, safety, and memory layer for sports agents. Golf first.
What can you do with Sports Context Protocol?
SCP Golf — Profile 001 of the Sports Context Protocol
The context, safety, and memory layer for sports agents. Golf first.
Before a sports agent acts, it checks SCP. Then SCP learns from what happened.
SCP — Sports Context Protocol — is an open context layer for AI agents operating in sports. Every sport venue has the same five things underneath: inventory, rules, actions, consequences, and memory. SCP is the standard way an agent reads those before it acts, and learns from the outcome after.
SCP Golf is Profile 001 — the first working profile. Golf is the cleanest wedge because an agent cannot safely book, price, move, or recommend anything at a course without understanding tee-sheet state, protected inventory, pricing policy, pace risk, events, and operator memory. Golf makes the problem impossible to ignore.
This repository is SCP Golf Alpha: a synthetic demo course, a local MCP server, booking and pricing safety checks, soft holds, a decision ledger, and a self-learning memory. No real course data, no integrations, no database.
- Protocol-level spec:
docs/SCP_CORE_SPEC.md - The profile system:
docs/SCP_PROFILES.md - This profile:
docs/SCP_GOLF_PROFILE.md
Why golf agents need this
AI golf agents are coming — answering calls, booking tee times, quoting prices, moving reservations. The problem: most agents only know the conversation. They do not know the course: the tee-sheet state, the member protections, the league blocks, the pricing floor, the pace risk, the operator's preferences, and what happened the last time a similar decision was made.
SCP Golf gives them that, and then it learns.
What the alpha does
- Models one synthetic course — Harbor Ridge Golf Club — for Saturday, June 6, 2026: a 67-slot tee sheet with member, league, and outing blocks.
- Exposes the course as 11 MCP resources (read-only context).
- Exposes 9 MCP tools for safe booking, pricing, soft holds, decision logging, outcome feedback, and learning insights.
- Exposes 4 MCP prompts (reusable workflows).
- Logs every decision to a ledger and learns from outcomes — operator overrides, pace issues, price rejections — so the next similar decision is better.
Install
npm install
npm run build
npm run typecheck
npm run test
Run
npm run dev # runs the MCP server on stdio (tsx, no build needed)
npm start # runs the compiled server from dist/
Test it interactively with the MCP Inspector:
npx @modelcontextprotocol/inspector npm run dev
The tools
| Tool | What it does |
|---|---|
get_course_context |
Full operating context — read this before acting. |
get_available_inventory |
Available tee times near a preferred time. |
check_booking_action |
Is a booking allowed, blocked, risky? Writes a decision. |
check_pricing_action |
Is a quoted/discounted price allowed? Writes a decision. |
create_soft_hold |
Temporary hold on a tee time before confirmation. |
write_decision_event |
Log a decision directly. |
submit_outcome_feedback |
The learning tool. Feed an outcome back to SCP. |
get_learning_insights |
What SCP has learned. |
explain_action |
Explain a result for golfer / operator / developer. |
The resources
scp://course/demo and its children: context, tee-sheet,
booking-policy, pricing-policy, events, weather, pace,
decision-ledger, learning-memory, soft-holds.
The self-learning loop
This is the heart of SCP. It is operational learning — no model training.
- An agent calls a tool. SCP builds a decision fingerprint (a bucketed, deterministic description of the kind of decision).
- SCP checks rules and learned memory keyed on that fingerprint.
- SCP recommends a safe action and logs a decision event.
- Feedback arrives via
submit_outcome_feedback. - SCP scores the outcome and updates its learning memory.
- The next decision with a matching fingerprint is shaped by that memory.
The demo moment: ask for Saturday ~09:00, have an operator override the result
once, ask again — SCP now recommends the operator's preferred time. See
docs/LEARNING_LOOP.md.
Docs
docs/SCP_CORE_SPEC.md— the protocol, sport-agnostic.docs/SCP_PROFILES.md— the profile system and roadmap.docs/SCP_GOLF_PROFILE.md— Profile 001 primitive mapping.docs/SCP_GOLF_SPEC.md— golf implementation detail.docs/QUICKSTART.md— run and test locally.docs/DEMO_PROMPTS.md— 10 demo prompts.docs/LEARNING_LOOP.md— how the learning works.docs/ROADMAP.md— phases beyond the alpha.
Status
Alpha. Synthetic data. Booking safety first. Self-learning from decision outcomes. Not partnered with any course, not integrated with any provider, not live with any operator.
License
MIT
Install
Add Sports Context Protocol to your client. Pick the one you use.
claude mcp add sports-context-protocol -- npx -y sports-context-protocolcodex mcp add sports-context-protocol -- npx -y sports-context-protocolamp mcp add sports-context-protocol -- npx -y sports-context-protocol{
"mcpServers": {
"sports-context-protocol": {
"command": "npx",
"args": [
"-y",
"sports-context-protocol"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"sports-context-protocol": {
"command": "npx",
"args": [
"-y",
"sports-context-protocol"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
code --add-mcp '{"name":"sports-context-protocol","command":"npx","args":["-y","sports-context-protocol"]}'Or add the block manually to `.vscode/mcp.json` under `servers`.
{
"mcpServers": {
"sports-context-protocol": {
"command": "npx",
"args": [
"-y",
"sports-context-protocol"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"sports-context-protocol": {
"command": "npx",
"args": [
"-y",
"sports-context-protocol"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"sports-context-protocol": {
"command": "npx",
"args": [
"-y",
"sports-context-protocol"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"sports-context-protocol": {
"type": "local",
"command": "npx",
"args": [
"-y",
"sports-context-protocol"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"sports-context-protocol": {
"command": {
"path": "npx",
"args": [
"-y",
"sports-context-protocol"
]
}
}
}
}Add to your Zed `settings.json`.
npx -y sports-context-protocolRun `goose configure`, choose **Add Extension → Command-line Extension**, and paste this command.
Score
39 / 100
Incomplete
- Documentation16/25
- Maintenance13/25
- Trust13/20
- Capability0/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 101 days ago
- Has a release history
- Repository is not archived
- Licensed MIT
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 0 tool(s) documented
- Provides prompt templates
- Provides resources
- 12 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint — no local install
Version history
| Versions | Published |
|---|---|
| 0.1.2Latest | May 22, 2026 |