@with-thesis/mcp 0.1.5 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -0
- package/dist/index.js +139 -7
- package/dist/stdio.js +139 -7
- package/package.json +1 -1
package/README.md
CHANGED
package/dist/index.js
CHANGED
|
@@ -23140,7 +23140,7 @@ var SportSchema = _enum(["nba"]).default("nba");
|
|
|
23140
23140
|
function registerBookmakerTools(server, api2) {
|
|
23141
23141
|
server.registerTool("get_bookmakers", {
|
|
23142
23142
|
title: "Get Bookmakers",
|
|
23143
|
-
description: "List
|
|
23143
|
+
description: "List bookmakers with sharp, opener, and active filters.",
|
|
23144
23144
|
inputSchema: {
|
|
23145
23145
|
sport: SportSchema.describe("Sport code. Only nba is currently supported."),
|
|
23146
23146
|
sharp: boolean2().optional().describe("Filter to sharp bookmakers only."),
|
|
@@ -23170,7 +23170,7 @@ var SportSchema2 = _enum(["nba"]).default("nba");
|
|
|
23170
23170
|
function registerBoxscoreTools(server, api2) {
|
|
23171
23171
|
server.registerTool("get_boxscore", {
|
|
23172
23172
|
title: "Get Box Score",
|
|
23173
|
-
description: "Get the full team-level box score for a single
|
|
23173
|
+
description: "Get the full team-level box score for a single game.",
|
|
23174
23174
|
inputSchema: {
|
|
23175
23175
|
sport: SportSchema2.describe("Sport code. Only nba is currently supported."),
|
|
23176
23176
|
game_id: string2().describe("Game ID such as 20260308_1310_NBA_BOS_CLE.")
|
|
@@ -23197,7 +23197,7 @@ var PaginationOffsetSchema = number2().int().min(0).optional();
|
|
|
23197
23197
|
function registerGameTools(server, api2) {
|
|
23198
23198
|
server.registerTool("get_games", {
|
|
23199
23199
|
title: "Get Games",
|
|
23200
|
-
description: "
|
|
23200
|
+
description: "List games by date, date range, team, status, or season.",
|
|
23201
23201
|
inputSchema: {
|
|
23202
23202
|
sport: SportSchema3.describe("Sport code. Only nba is currently supported."),
|
|
23203
23203
|
date: string2().optional().describe("Game date in YYYY-MM-DD format."),
|
|
@@ -23232,7 +23232,7 @@ function registerGameTools(server, api2) {
|
|
|
23232
23232
|
});
|
|
23233
23233
|
server.registerTool("get_game", {
|
|
23234
23234
|
title: "Get Game",
|
|
23235
|
-
description: "Get a single
|
|
23235
|
+
description: "Get a single game with scores, officials, and partial box score details.",
|
|
23236
23236
|
inputSchema: {
|
|
23237
23237
|
sport: SportSchema3.describe("Sport code. Only nba is currently supported."),
|
|
23238
23238
|
game_id: string2().describe("Game ID such as 20260308_1310_NBA_BOS_CLE.")
|
|
@@ -23259,10 +23259,10 @@ var PaginationOffsetSchema2 = number2().int().min(0).optional();
|
|
|
23259
23259
|
function registerOddsTools(server, api2) {
|
|
23260
23260
|
server.registerTool("get_odds", {
|
|
23261
23261
|
title: "Get Odds",
|
|
23262
|
-
description: "Get current
|
|
23262
|
+
description: "Get current odds snapshots by game, date, bookmaker, sharp books, opener books, or line type.",
|
|
23263
23263
|
inputSchema: {
|
|
23264
23264
|
sport: SportSchema4.describe("Sport code. Only nba is currently supported."),
|
|
23265
|
-
game_id: string2().optional().describe("Filter to a specific
|
|
23265
|
+
game_id: string2().optional().describe("Filter to a specific game ID."),
|
|
23266
23266
|
date: string2().optional().describe("Game date in YYYY-MM-DD format."),
|
|
23267
23267
|
bookmaker: string2().optional().describe("Comma-separated bookmaker codes such as circa,dk."),
|
|
23268
23268
|
sharp: boolean2().optional().describe("Filter to sharp bookmakers only."),
|
|
@@ -23294,7 +23294,7 @@ function registerOddsTools(server, api2) {
|
|
|
23294
23294
|
});
|
|
23295
23295
|
server.registerTool("get_line_movement", {
|
|
23296
23296
|
title: "Get Line Movement",
|
|
23297
|
-
description: "Get
|
|
23297
|
+
description: "Get odds history and line movement for a single game.",
|
|
23298
23298
|
inputSchema: {
|
|
23299
23299
|
sport: SportSchema4.describe("Sport code. Only nba is currently supported."),
|
|
23300
23300
|
game_id: string2().describe("Game ID such as 20260308_1310_NBA_BOS_CLE."),
|
|
@@ -23318,6 +23318,136 @@ function registerOddsTools(server, api2) {
|
|
|
23318
23318
|
});
|
|
23319
23319
|
}
|
|
23320
23320
|
|
|
23321
|
+
// src/tools/sports.ts
|
|
23322
|
+
function registerSportTools(server, api2) {
|
|
23323
|
+
server.registerTool("get_sports", {
|
|
23324
|
+
title: "Get Sports",
|
|
23325
|
+
description: "List supported sports, API-key access, and canonical endpoint templates.",
|
|
23326
|
+
inputSchema: {},
|
|
23327
|
+
annotations: {
|
|
23328
|
+
readOnlyHint: true,
|
|
23329
|
+
openWorldHint: true
|
|
23330
|
+
}
|
|
23331
|
+
}, async () => {
|
|
23332
|
+
try {
|
|
23333
|
+
const payload = await api2.get("/v1/sports");
|
|
23334
|
+
return successToolResult(payload);
|
|
23335
|
+
} catch (error2) {
|
|
23336
|
+
return errorToolResult(error2);
|
|
23337
|
+
}
|
|
23338
|
+
});
|
|
23339
|
+
}
|
|
23340
|
+
|
|
23341
|
+
// src/tools/teams.ts
|
|
23342
|
+
var SportSchema5 = _enum(["nba"]).default("nba");
|
|
23343
|
+
var GameStatusSchema2 = _enum(["scheduled", "live", "final"]);
|
|
23344
|
+
var PaginationLimitSchema3 = number2().int().min(1).max(100).optional();
|
|
23345
|
+
var PaginationOffsetSchema3 = number2().int().min(0).optional();
|
|
23346
|
+
function registerTeamTools(server, api2) {
|
|
23347
|
+
server.registerTool("get_teams", {
|
|
23348
|
+
title: "Get Teams",
|
|
23349
|
+
description: "List teams for a sport with optional active, conference, and search filters.",
|
|
23350
|
+
inputSchema: {
|
|
23351
|
+
sport: SportSchema5.describe("Sport code. Only nba is currently supported."),
|
|
23352
|
+
active: boolean2().optional().describe("Filter to active teams only when true, inactive only when false."),
|
|
23353
|
+
conference: string2().optional().describe("Optional conference filter such as Eastern or Western."),
|
|
23354
|
+
search: string2().optional().describe("Case-insensitive search across team code, city, and name."),
|
|
23355
|
+
include_assets: boolean2().optional().describe("Include team asset metadata such as logos when true."),
|
|
23356
|
+
limit: PaginationLimitSchema3.describe("Number of teams to return. Max 100."),
|
|
23357
|
+
offset: PaginationOffsetSchema3.describe("Pagination offset.")
|
|
23358
|
+
},
|
|
23359
|
+
annotations: {
|
|
23360
|
+
readOnlyHint: true,
|
|
23361
|
+
openWorldHint: true
|
|
23362
|
+
}
|
|
23363
|
+
}, async ({ sport, active, conference, search, include_assets, limit, offset }) => {
|
|
23364
|
+
try {
|
|
23365
|
+
const payload = await api2.get(`/v1/${sport}/teams`, {
|
|
23366
|
+
active,
|
|
23367
|
+
conference,
|
|
23368
|
+
search,
|
|
23369
|
+
include: include_assets ? "assets" : undefined,
|
|
23370
|
+
limit,
|
|
23371
|
+
offset
|
|
23372
|
+
});
|
|
23373
|
+
return successToolResult(payload);
|
|
23374
|
+
} catch (error2) {
|
|
23375
|
+
return errorToolResult(error2);
|
|
23376
|
+
}
|
|
23377
|
+
});
|
|
23378
|
+
server.registerTool("get_team", {
|
|
23379
|
+
title: "Get Team",
|
|
23380
|
+
description: "Get a single team by its canonical team code such as BOS or LAL.",
|
|
23381
|
+
inputSchema: {
|
|
23382
|
+
sport: SportSchema5.describe("Sport code. Only nba is currently supported."),
|
|
23383
|
+
team_code: string2().describe("Canonical team code such as BOS, LAL, or CLE."),
|
|
23384
|
+
include_assets: boolean2().optional().describe("Include team asset metadata such as logos when true.")
|
|
23385
|
+
},
|
|
23386
|
+
annotations: {
|
|
23387
|
+
readOnlyHint: true,
|
|
23388
|
+
openWorldHint: true
|
|
23389
|
+
}
|
|
23390
|
+
}, async ({ sport, team_code, include_assets }) => {
|
|
23391
|
+
try {
|
|
23392
|
+
const normalizedCode = team_code.trim().toUpperCase();
|
|
23393
|
+
const payload = await api2.get(`/v1/${sport}/teams/${normalizedCode}`, {
|
|
23394
|
+
include: include_assets ? "assets" : undefined
|
|
23395
|
+
});
|
|
23396
|
+
return successToolResult(payload);
|
|
23397
|
+
} catch (error2) {
|
|
23398
|
+
return errorToolResult(error2);
|
|
23399
|
+
}
|
|
23400
|
+
});
|
|
23401
|
+
server.registerTool("get_team_games", {
|
|
23402
|
+
title: "Get Team Games",
|
|
23403
|
+
description: "Get a normalized team-centric game log with requested-team scores, opponents, results, and optional box score data.",
|
|
23404
|
+
inputSchema: {
|
|
23405
|
+
sport: SportSchema5.describe("Sport code. Only nba is currently supported."),
|
|
23406
|
+
team_code: string2().describe("Canonical team code such as BOS, LAL, or CLE."),
|
|
23407
|
+
date: string2().optional().describe("Exact game date in YYYY-MM-DD format."),
|
|
23408
|
+
date_from: string2().optional().describe("Start date in YYYY-MM-DD format."),
|
|
23409
|
+
date_to: string2().optional().describe("End date in YYYY-MM-DD format."),
|
|
23410
|
+
status: GameStatusSchema2.optional().describe("scheduled, live, or final"),
|
|
23411
|
+
season: string2().optional().describe("Season string such as 2025-26."),
|
|
23412
|
+
include_boxscore: boolean2().optional().describe("Include the requested team box score row for each game when true."),
|
|
23413
|
+
limit: PaginationLimitSchema3.describe("Number of games to return. Max 100."),
|
|
23414
|
+
offset: PaginationOffsetSchema3.describe("Pagination offset.")
|
|
23415
|
+
},
|
|
23416
|
+
annotations: {
|
|
23417
|
+
readOnlyHint: true,
|
|
23418
|
+
openWorldHint: true
|
|
23419
|
+
}
|
|
23420
|
+
}, async ({
|
|
23421
|
+
sport,
|
|
23422
|
+
team_code,
|
|
23423
|
+
date: date5,
|
|
23424
|
+
date_from,
|
|
23425
|
+
date_to,
|
|
23426
|
+
status,
|
|
23427
|
+
season,
|
|
23428
|
+
include_boxscore,
|
|
23429
|
+
limit,
|
|
23430
|
+
offset
|
|
23431
|
+
}) => {
|
|
23432
|
+
try {
|
|
23433
|
+
const normalizedCode = team_code.trim().toUpperCase();
|
|
23434
|
+
const payload = await api2.get(`/v1/${sport}/teams/${normalizedCode}/games`, {
|
|
23435
|
+
date: date5,
|
|
23436
|
+
date_from,
|
|
23437
|
+
date_to,
|
|
23438
|
+
status,
|
|
23439
|
+
season,
|
|
23440
|
+
include: include_boxscore ? "boxscore" : undefined,
|
|
23441
|
+
limit,
|
|
23442
|
+
offset
|
|
23443
|
+
});
|
|
23444
|
+
return successToolResult(payload);
|
|
23445
|
+
} catch (error2) {
|
|
23446
|
+
return errorToolResult(error2);
|
|
23447
|
+
}
|
|
23448
|
+
});
|
|
23449
|
+
}
|
|
23450
|
+
|
|
23321
23451
|
// src/server.ts
|
|
23322
23452
|
function createThesisMcpServer(options) {
|
|
23323
23453
|
const server = new McpServer({
|
|
@@ -23335,6 +23465,8 @@ function createThesisMcpServer(options) {
|
|
|
23335
23465
|
registerBoxscoreTools(server, api2);
|
|
23336
23466
|
registerOddsTools(server, api2);
|
|
23337
23467
|
registerBookmakerTools(server, api2);
|
|
23468
|
+
registerSportTools(server, api2);
|
|
23469
|
+
registerTeamTools(server, api2);
|
|
23338
23470
|
return server;
|
|
23339
23471
|
}
|
|
23340
23472
|
|
package/dist/stdio.js
CHANGED
|
@@ -20058,7 +20058,7 @@ var SportSchema = _enum(["nba"]).default("nba");
|
|
|
20058
20058
|
function registerBookmakerTools(server, api2) {
|
|
20059
20059
|
server.registerTool("get_bookmakers", {
|
|
20060
20060
|
title: "Get Bookmakers",
|
|
20061
|
-
description: "List
|
|
20061
|
+
description: "List bookmakers with sharp, opener, and active filters.",
|
|
20062
20062
|
inputSchema: {
|
|
20063
20063
|
sport: SportSchema.describe("Sport code. Only nba is currently supported."),
|
|
20064
20064
|
sharp: boolean2().optional().describe("Filter to sharp bookmakers only."),
|
|
@@ -20088,7 +20088,7 @@ var SportSchema2 = _enum(["nba"]).default("nba");
|
|
|
20088
20088
|
function registerBoxscoreTools(server, api2) {
|
|
20089
20089
|
server.registerTool("get_boxscore", {
|
|
20090
20090
|
title: "Get Box Score",
|
|
20091
|
-
description: "Get the full team-level box score for a single
|
|
20091
|
+
description: "Get the full team-level box score for a single game.",
|
|
20092
20092
|
inputSchema: {
|
|
20093
20093
|
sport: SportSchema2.describe("Sport code. Only nba is currently supported."),
|
|
20094
20094
|
game_id: string2().describe("Game ID such as 20260308_1310_NBA_BOS_CLE.")
|
|
@@ -20115,7 +20115,7 @@ var PaginationOffsetSchema = number2().int().min(0).optional();
|
|
|
20115
20115
|
function registerGameTools(server, api2) {
|
|
20116
20116
|
server.registerTool("get_games", {
|
|
20117
20117
|
title: "Get Games",
|
|
20118
|
-
description: "
|
|
20118
|
+
description: "List games by date, date range, team, status, or season.",
|
|
20119
20119
|
inputSchema: {
|
|
20120
20120
|
sport: SportSchema3.describe("Sport code. Only nba is currently supported."),
|
|
20121
20121
|
date: string2().optional().describe("Game date in YYYY-MM-DD format."),
|
|
@@ -20150,7 +20150,7 @@ function registerGameTools(server, api2) {
|
|
|
20150
20150
|
});
|
|
20151
20151
|
server.registerTool("get_game", {
|
|
20152
20152
|
title: "Get Game",
|
|
20153
|
-
description: "Get a single
|
|
20153
|
+
description: "Get a single game with scores, officials, and partial box score details.",
|
|
20154
20154
|
inputSchema: {
|
|
20155
20155
|
sport: SportSchema3.describe("Sport code. Only nba is currently supported."),
|
|
20156
20156
|
game_id: string2().describe("Game ID such as 20260308_1310_NBA_BOS_CLE.")
|
|
@@ -20177,10 +20177,10 @@ var PaginationOffsetSchema2 = number2().int().min(0).optional();
|
|
|
20177
20177
|
function registerOddsTools(server, api2) {
|
|
20178
20178
|
server.registerTool("get_odds", {
|
|
20179
20179
|
title: "Get Odds",
|
|
20180
|
-
description: "Get current
|
|
20180
|
+
description: "Get current odds snapshots by game, date, bookmaker, sharp books, opener books, or line type.",
|
|
20181
20181
|
inputSchema: {
|
|
20182
20182
|
sport: SportSchema4.describe("Sport code. Only nba is currently supported."),
|
|
20183
|
-
game_id: string2().optional().describe("Filter to a specific
|
|
20183
|
+
game_id: string2().optional().describe("Filter to a specific game ID."),
|
|
20184
20184
|
date: string2().optional().describe("Game date in YYYY-MM-DD format."),
|
|
20185
20185
|
bookmaker: string2().optional().describe("Comma-separated bookmaker codes such as circa,dk."),
|
|
20186
20186
|
sharp: boolean2().optional().describe("Filter to sharp bookmakers only."),
|
|
@@ -20212,7 +20212,7 @@ function registerOddsTools(server, api2) {
|
|
|
20212
20212
|
});
|
|
20213
20213
|
server.registerTool("get_line_movement", {
|
|
20214
20214
|
title: "Get Line Movement",
|
|
20215
|
-
description: "Get
|
|
20215
|
+
description: "Get odds history and line movement for a single game.",
|
|
20216
20216
|
inputSchema: {
|
|
20217
20217
|
sport: SportSchema4.describe("Sport code. Only nba is currently supported."),
|
|
20218
20218
|
game_id: string2().describe("Game ID such as 20260308_1310_NBA_BOS_CLE."),
|
|
@@ -20236,6 +20236,136 @@ function registerOddsTools(server, api2) {
|
|
|
20236
20236
|
});
|
|
20237
20237
|
}
|
|
20238
20238
|
|
|
20239
|
+
// src/tools/sports.ts
|
|
20240
|
+
function registerSportTools(server, api2) {
|
|
20241
|
+
server.registerTool("get_sports", {
|
|
20242
|
+
title: "Get Sports",
|
|
20243
|
+
description: "List supported sports, API-key access, and canonical endpoint templates.",
|
|
20244
|
+
inputSchema: {},
|
|
20245
|
+
annotations: {
|
|
20246
|
+
readOnlyHint: true,
|
|
20247
|
+
openWorldHint: true
|
|
20248
|
+
}
|
|
20249
|
+
}, async () => {
|
|
20250
|
+
try {
|
|
20251
|
+
const payload = await api2.get("/v1/sports");
|
|
20252
|
+
return successToolResult(payload);
|
|
20253
|
+
} catch (error2) {
|
|
20254
|
+
return errorToolResult(error2);
|
|
20255
|
+
}
|
|
20256
|
+
});
|
|
20257
|
+
}
|
|
20258
|
+
|
|
20259
|
+
// src/tools/teams.ts
|
|
20260
|
+
var SportSchema5 = _enum(["nba"]).default("nba");
|
|
20261
|
+
var GameStatusSchema2 = _enum(["scheduled", "live", "final"]);
|
|
20262
|
+
var PaginationLimitSchema3 = number2().int().min(1).max(100).optional();
|
|
20263
|
+
var PaginationOffsetSchema3 = number2().int().min(0).optional();
|
|
20264
|
+
function registerTeamTools(server, api2) {
|
|
20265
|
+
server.registerTool("get_teams", {
|
|
20266
|
+
title: "Get Teams",
|
|
20267
|
+
description: "List teams for a sport with optional active, conference, and search filters.",
|
|
20268
|
+
inputSchema: {
|
|
20269
|
+
sport: SportSchema5.describe("Sport code. Only nba is currently supported."),
|
|
20270
|
+
active: boolean2().optional().describe("Filter to active teams only when true, inactive only when false."),
|
|
20271
|
+
conference: string2().optional().describe("Optional conference filter such as Eastern or Western."),
|
|
20272
|
+
search: string2().optional().describe("Case-insensitive search across team code, city, and name."),
|
|
20273
|
+
include_assets: boolean2().optional().describe("Include team asset metadata such as logos when true."),
|
|
20274
|
+
limit: PaginationLimitSchema3.describe("Number of teams to return. Max 100."),
|
|
20275
|
+
offset: PaginationOffsetSchema3.describe("Pagination offset.")
|
|
20276
|
+
},
|
|
20277
|
+
annotations: {
|
|
20278
|
+
readOnlyHint: true,
|
|
20279
|
+
openWorldHint: true
|
|
20280
|
+
}
|
|
20281
|
+
}, async ({ sport, active, conference, search, include_assets, limit, offset }) => {
|
|
20282
|
+
try {
|
|
20283
|
+
const payload = await api2.get(`/v1/${sport}/teams`, {
|
|
20284
|
+
active,
|
|
20285
|
+
conference,
|
|
20286
|
+
search,
|
|
20287
|
+
include: include_assets ? "assets" : undefined,
|
|
20288
|
+
limit,
|
|
20289
|
+
offset
|
|
20290
|
+
});
|
|
20291
|
+
return successToolResult(payload);
|
|
20292
|
+
} catch (error2) {
|
|
20293
|
+
return errorToolResult(error2);
|
|
20294
|
+
}
|
|
20295
|
+
});
|
|
20296
|
+
server.registerTool("get_team", {
|
|
20297
|
+
title: "Get Team",
|
|
20298
|
+
description: "Get a single team by its canonical team code such as BOS or LAL.",
|
|
20299
|
+
inputSchema: {
|
|
20300
|
+
sport: SportSchema5.describe("Sport code. Only nba is currently supported."),
|
|
20301
|
+
team_code: string2().describe("Canonical team code such as BOS, LAL, or CLE."),
|
|
20302
|
+
include_assets: boolean2().optional().describe("Include team asset metadata such as logos when true.")
|
|
20303
|
+
},
|
|
20304
|
+
annotations: {
|
|
20305
|
+
readOnlyHint: true,
|
|
20306
|
+
openWorldHint: true
|
|
20307
|
+
}
|
|
20308
|
+
}, async ({ sport, team_code, include_assets }) => {
|
|
20309
|
+
try {
|
|
20310
|
+
const normalizedCode = team_code.trim().toUpperCase();
|
|
20311
|
+
const payload = await api2.get(`/v1/${sport}/teams/${normalizedCode}`, {
|
|
20312
|
+
include: include_assets ? "assets" : undefined
|
|
20313
|
+
});
|
|
20314
|
+
return successToolResult(payload);
|
|
20315
|
+
} catch (error2) {
|
|
20316
|
+
return errorToolResult(error2);
|
|
20317
|
+
}
|
|
20318
|
+
});
|
|
20319
|
+
server.registerTool("get_team_games", {
|
|
20320
|
+
title: "Get Team Games",
|
|
20321
|
+
description: "Get a normalized team-centric game log with requested-team scores, opponents, results, and optional box score data.",
|
|
20322
|
+
inputSchema: {
|
|
20323
|
+
sport: SportSchema5.describe("Sport code. Only nba is currently supported."),
|
|
20324
|
+
team_code: string2().describe("Canonical team code such as BOS, LAL, or CLE."),
|
|
20325
|
+
date: string2().optional().describe("Exact game date in YYYY-MM-DD format."),
|
|
20326
|
+
date_from: string2().optional().describe("Start date in YYYY-MM-DD format."),
|
|
20327
|
+
date_to: string2().optional().describe("End date in YYYY-MM-DD format."),
|
|
20328
|
+
status: GameStatusSchema2.optional().describe("scheduled, live, or final"),
|
|
20329
|
+
season: string2().optional().describe("Season string such as 2025-26."),
|
|
20330
|
+
include_boxscore: boolean2().optional().describe("Include the requested team box score row for each game when true."),
|
|
20331
|
+
limit: PaginationLimitSchema3.describe("Number of games to return. Max 100."),
|
|
20332
|
+
offset: PaginationOffsetSchema3.describe("Pagination offset.")
|
|
20333
|
+
},
|
|
20334
|
+
annotations: {
|
|
20335
|
+
readOnlyHint: true,
|
|
20336
|
+
openWorldHint: true
|
|
20337
|
+
}
|
|
20338
|
+
}, async ({
|
|
20339
|
+
sport,
|
|
20340
|
+
team_code,
|
|
20341
|
+
date: date4,
|
|
20342
|
+
date_from,
|
|
20343
|
+
date_to,
|
|
20344
|
+
status,
|
|
20345
|
+
season,
|
|
20346
|
+
include_boxscore,
|
|
20347
|
+
limit,
|
|
20348
|
+
offset
|
|
20349
|
+
}) => {
|
|
20350
|
+
try {
|
|
20351
|
+
const normalizedCode = team_code.trim().toUpperCase();
|
|
20352
|
+
const payload = await api2.get(`/v1/${sport}/teams/${normalizedCode}/games`, {
|
|
20353
|
+
date: date4,
|
|
20354
|
+
date_from,
|
|
20355
|
+
date_to,
|
|
20356
|
+
status,
|
|
20357
|
+
season,
|
|
20358
|
+
include: include_boxscore ? "boxscore" : undefined,
|
|
20359
|
+
limit,
|
|
20360
|
+
offset
|
|
20361
|
+
});
|
|
20362
|
+
return successToolResult(payload);
|
|
20363
|
+
} catch (error2) {
|
|
20364
|
+
return errorToolResult(error2);
|
|
20365
|
+
}
|
|
20366
|
+
});
|
|
20367
|
+
}
|
|
20368
|
+
|
|
20239
20369
|
// src/server.ts
|
|
20240
20370
|
function createThesisMcpServer(options) {
|
|
20241
20371
|
const server = new McpServer({
|
|
@@ -20253,6 +20383,8 @@ function createThesisMcpServer(options) {
|
|
|
20253
20383
|
registerBoxscoreTools(server, api2);
|
|
20254
20384
|
registerOddsTools(server, api2);
|
|
20255
20385
|
registerBookmakerTools(server, api2);
|
|
20386
|
+
registerSportTools(server, api2);
|
|
20387
|
+
registerTeamTools(server, api2);
|
|
20256
20388
|
return server;
|
|
20257
20389
|
}
|
|
20258
20390
|
|