npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

sports-context-protocol

v0.1.2

Published

Sports Context Protocol — the self-learning operational context layer (MCP server) for AI sports agents. Profile 001 is golf. Before an agent books, prices, or recommends, it checks SCP. Then SCP learns from what happened.

Readme

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.

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.

  1. An agent calls a tool. SCP builds a decision fingerprint (a bucketed, deterministic description of the kind of decision).
  2. SCP checks rules and learned memory keyed on that fingerprint.
  3. SCP recommends a safe action and logs a decision event.
  4. Feedback arrives via submit_outcome_feedback.
  5. SCP scores the outcome and updates its learning memory.
  6. 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

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