Skip to main content
Glama

pinballdex

Pinball knowledge is scattered across decades of machines, editions, designers and barcades. pinballdex is a small local bridge to the hosted Kineticist MCP service: you can search the machine database, pull pricing and production status for a game, meet its design team, hunt down a manual, find a venue near you that has a particular machine on the floor, and keep up with pinball news and the Hype Index.

Nothing is stored or computed on your own machine. This package answers tools/list locally from the captured tool definitions and forwards every tools/call to the hosted service over a streamable-HTTP JSON-RPC session, returning whatever the service sends back unchanged.

The tools

Every tool in this surface reads the vendor's public pinball database. None of them writes anything, buys anything, starts a subscription, checks out, or creates an API key.

  • search_pinball_games — Finds machines by name, manufacturer, year range or production status, with sorting by name, first manufacture year, fun score or rating count. A text query, a manufacturer, a year window and the in_production flag can be combined; results carry each game's name, slug, fun score and page link.

  • get_game_details — Full detail for one game, addressed by slug or OPDB id: its editions (Pro, Premium, LE and the rest) with list prices, production status, images, tags and rules links. Setting include_credits adds the design team to the answer.

  • get_random_game — A surprise machine with full details, different on every call. Handy for a game of the day or for breaking a decision deadlock.

  • get_pinball_stats — The shape of the database itself: totals for games, games in production, manufacturers and designers, the average fun score, the most rated game and the newest game.

  • get_game_credits — The credited team behind one machine: designer, artist, programmer, mechanical engineer, sound, animation and more, each with a role slug, a display role name and a link to the person's page.

  • list_game_files — A game's downloadable files — manuals, ROMs, schematics, parts lists and bulletins — grouped by the machine each file belongs to, optionally narrowed to one machine. It lists metadata; the files themselves sit behind the game page's Documentation link.

  • where_to_play — Venues near a postal code or city, nearest first, with distance, machine counts and venue kind. Passing a game narrows the answer to places that actually have that machine.

  • search — One search box across everything on Kineticist: games, articles, locations, manufacturers, people, mods, Hype Index entries and promoters, optionally restricted to a single kind of result.

  • get — Reads a Kineticist page by its link and returns it as markdown: a game, a venue, a person, a manufacturer, a mod or a Hype Index entry. News articles come back as headline, date, summary and link.

  • whats_new — The recent week in pinball: the latest news articles, new videos, podcasts and posts from followed creators, and the Hype Index top 10 with its biggest climbers. The days argument sets how far back the news reaches, from 1 to 30 days.

Related MCP server: codex-search-mcp

Install and run

As an MCP server via npm:

npx -y @reneturcios/pinballdex mcp

MCP client configuration:

{
  "mcpServers": {
    "pinballdex": {
      "command": "npx",
      "args": ["-y", "@reneturcios/pinballdex", "mcp"]
    }
  }
}

As a container:

docker run -i ghcr.io/cloudcorprecords/pinballdex
docker run --rm ghcr.io/cloudcorprecords/pinballdex get_game_details '{"id":"godzilla-2021"}'

CLI

One binary serves both the command line and the MCP server. Each tool is a subcommand taking a single JSON string with that tool's arguments:

pinballdex search_pinball_games '{"manufacturer":"stern","in_production":true}'
pinballdex get_game_details '{"id":"godzilla-2021","include_credits":true}'
pinballdex where_to_play '{"place":"Chicago","game":"Godzilla"}'
pinballdex search '{"query":"Steve Ritchie"}'
pinballdex whats_new '{"days":7}'
pinballdex --version

Exit codes: 0 when the forwarded call succeeds, 1 when the upstream result is an error, and 2 for usage problems such as an unknown subcommand or a malformed JSON argument.

Configuration

  • KINETICIST_MCP_URL — Overrides the upstream endpoint. The default is the pinned hosted endpoint, https://www.kineticist.com/api/mcp. (The override variable is a reconstruction added by this rebuild.)

  • KINETICIST_API_KEY — When set, its value is sent to the upstream on every request as an Authorization: Bearer <value> header. When it is not set, no key header is sent at all, matching the keyless behaviour the tool surface was captured with. (The hosted service's registry record declares no auth header on its remote; the variable name and the Bearer form are reconstructions added by this rebuild.)

Upstream failures — a JSON-RPC error from the service, a non-2xx response, an unreadable body, or a request that fails outright — are reported to the caller as an error result whose text starts with pinballdex error:.

How forwarding works

The first forwarded call opens a session: an initialize request (protocol version 2025-03-26), followed by a notifications/initialized notification, then the tools/call itself. If the service answers the initialize request with an Mcp-Session-Id header, that value is carried on every later request, and the open session is reused for the rest of the process. Replies are accepted either as plain JSON or as server-sent events. Successful results pass through verbatim, including any isError flag and any extra fields the service includes.

Development

npm install
npm run build   # tsc -> dist/ (dist/cli.js is the bin)
npm test        # tsx --test test/*.test.ts — stubbed upstream, no network
npm run dev     # run the CLI from source

The test suite checks the served tool list against the captured surface tool by tool, exercises the session handshake and its reuse, covers both key-header branches, and verifies that arguments go upstream untouched and results come back untouched.

License

MIT — see LICENSE. Copyright (c) 2026 Rene Turcios.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      F
      maintenance
      MCP server for searching Giant Bomb's video game database. It provides a single search tool to query games, characters, and other resources.
      19 npm
      MIT
    • A
      license
      B
      quality
      B
      maintenance
      Enables MCP clients to run live web searches, fetch and navigate readable web pages, search images, capture PDF screenshots, and retrieve finance, weather, sports, and world-time data through a zero-configuration authenticated backend.
      11
      8 npm
      MIT
    • F
      license
      Not graded
      quality
      A
      maintenance
      Enables MCP clients to run searches across Google, Bing, Yahoo, DuckDuckGo, YouTube, eBay, and other engines, returning organic results, news, images, shopping, weather, and stock data as JSON or Markdown. It also exposes per-engine parameter schemas as resources and offers optional interactive table and dashboard views.
      -
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables MCP clients to search a product catalog, browse categories, view top launches, compare products, and find active maker deals, with an interactive widget in supporting hosts. It is read-only and requires no API key or account.
      1
      MIT