add_game
Add a new game to the Lutris Linux gaming library by specifying name, runner, and optional details like platform, directory, and executable path.
Instructions
Add a new game to the Lutris library
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Game name | |
| runner | Yes | Runner (e.g. linux, wine, steam) | |
| platform | No | Platform | |
| directory | No | Install directory | |
| executable | No | Executable path | |
| year | No | Release year | |
| service | No | Service (e.g. steam) | |
| service_id | No | Service ID | |
| slug | No | Custom slug (auto-generated if omitted) | |
| installed | No | Mark as installed |
Implementation Reference
- src/tools/games.ts:108-152 (handler)The 'add_game' tool implementation, including schema definition and handler logic.
server.tool( "add_game", "Add a new game to the Lutris library", { name: z.string().describe("Game name"), runner: z.string().describe("Runner (e.g. linux, wine, steam)"), platform: z.string().optional().describe("Platform"), directory: z.string().optional().describe("Install directory"), executable: z.string().optional().describe("Executable path"), year: z.coerce.number().optional().describe("Release year"), service: z.string().optional().describe("Service (e.g. steam)"), service_id: z.string().optional().describe("Service ID"), slug: z.string().optional().describe("Custom slug (auto-generated if omitted)"), installed: z.boolean().default(false).describe("Mark as installed"), }, async (params) => { try { const gameData: Record<string, unknown> = { name: params.name, runner: params.runner, slug: params.slug || generateSlug(params.name), installed: params.installed ? 1 : 0, }; if (params.platform) gameData.platform = params.platform; if (params.directory) gameData.directory = params.directory; if (params.executable) gameData.executable = params.executable; if (params.year) gameData.year = params.year; if (params.service) gameData.service = params.service; if (params.service_id) gameData.service_id = params.service_id; const game = insertGame(gameData); return { content: [ { type: "text", text: JSON.stringify({ message: "Game added successfully", game }, null, 2), }, ], }; } catch (error) { return handleError(error); } } );