Matching provider IDs without the traps: reep 0.1 and nutmeg 0.5.1

reep is a new Python package for the Reep Register: exact provider ID lookups from Python, the command line, your own database or your AI agent. nutmeg 0.5.1 can use it.

nutmegfootball-docs

Every football data provider has its own IDs. Joining Transfermarkt to Wyscout to Opta means a crosswalk, and the Reep Register is a free one (CC0): one stable Reep ID per player, team, match and more, with each provider’s IDs attached.

Using it correctly is harder than it looks. Reep IDs merge when two turn out to be the same person, and when they do, some provider IDs stay attached to the old ID. Providers retire IDs without telling you. Some IDs are withdrawn.

What reep is

reep is a Python package for the register (documentation). It is a command-line tool, a Python SDK and a read-only MCP server for AI agents.

What you can do with it

  1. Add other providers’ IDs to a table you already have. A squad list with Transfermarkt IDs gets Opta and Wyscout IDs alongside, in one pass, with the rows it can’t match listed for review.
  2. Keep stored IDs current. Check the Reep IDs in your database against each new release, and update the merged ones to their survivor.
  3. Let your agent do the lookups. With the MCP server, an agent translates IDs during an analysis instead of guessing them or writing a join by hand.
  4. Look things up without a network. Once the register is downloaded, every lookup runs locally.

nutmeg 0.5.1

nutmeg 0.5.1 can use reep. When a task needs many ID lookups, or Reep IDs in your database, nutmeg offers the reep MCP server, and it never adds it without asking. Without it, nutmeg uses football-docs’ resolve_entity, as before.

The two routes give the same answers. football-docs 0.17.4 also follows merged IDs to the survivor, keeps the provider IDs still attached to the merged ID, marks retired and removed IDs, and reports withdrawn IDs as withdrawn. If you already have the register file for football-docs, reep can read the same file.

Why not just

What it doesn’t do

Try it

pip install reep              # or: uv tool install reep
reep catalog sync             # the register, about 210 MB, free
reep resolve transfermarkt spieler 568177

For your agent (needs uv):

claude mcp add --scope user reep -- uvx --from 'reep[mcp]>=0.1,<0.2' reep mcp

Already using nutmeg? Run /plugin update nutmeg.

Which provider pairs do you join most? Tell me, and I’ll check how well the register covers them.