• v3.4.0 4545bf2cd8

    v3.4.0
    All checks were successful
    CI / build-and-test (push) Successful in 2m21s
    CI / docker-build (push) Successful in 26s
    Stable

    joeyr released this 2026-09-29 19:30:24 -05:00 | 29 commits to main since this release

    The fantasy team's manager can change it from Discord. With mcp-gateway
    0.64.0 and ESPN_WRITES on, /aufhocker espnff mcp can set the lineup, put
    in waiver claims and reorder them, for the people in ESPNFF_OWNER_IDS and
    nobody else. Deploy mcp-gateway 0.64.0 or later first: this version
    gives non-owners only tools the fantasy server labels read-only, and an
    older server labels none.

    Added

    • ESPNFF_OWNER_IDS (.env): the Discord ids offered the fantasy
      server's owner-only tools, which change the team and read its private
      pending claims. Empty means nobody. Everyone else keeps the read-only
      tools and is never shown the others.
    • Confirm buttons. A change not listed in ESPNFF_UNCONFIRMED_TOOLS
      does not run when Claude asks for it. The bot previews it with the server
      and posts a private message under the answer, with one Confirm button
      per change and the change described in ESPN's names for the players.
      Nothing is sent until the asker presses it. A button works once, only for
      the asker while they are still an owner, and only for 15 minutes. Its
      result replaces it: done and read back, accepted but not showing yet, dry
      run, or refused.
    • ESPNFF_UNCONFIRMED_TOOLS (.env.config): owner changes that run
      straight away. It ships as update_lineup, because a lineup move is
      undone by making it again and a waiver drop is not. Empty, the default in
      code, confirms everything.
    • /aufhocker espnff help tells an owner which changes happen straight
      away and which wait for Confirm, and tells nobody else anything about
      changes.
    • The fantasy system prompt, for an owner, names which change tools run at
      once and which wait, and says a dry_run result means nothing reached
      ESPN. Everyone else's prompt is unchanged, byte for byte.

    Changed

    • Borrowed tools carry what their server says about them.
      McpToolSource reads each tool's readOnlyHint and _meta.owner_only. A
      tool that says nothing counts as owner-only, so an unlabelled change tool
      is hidden rather than shared. The claude/mcp connect line names the
      owner-only tools.
    • Claude can only run a tool the request offered. The tool executor
      holds every tool the bot knows, change tools included, and it used to run
      whatever name it was given. A call for an unoffered tool is now refused.
    • When a non-owner is offered no fantasy tools because all of them are
      owner-only, the answer says the server offers nothing they can use. It no
      longer says the server is not connected.
    • A plugin can own more than one button prefix. The query plugin owns
      make_public_ and espnff_confirm_.
    Downloads