Skip to main content
Glama
wyverns76-J

sports-pulse-mcp

by wyverns76-J

โšฝ๐Ÿ€ SportsPulse MCP

Claude Desktop์—์„œ ์‹ค์‹œ๊ฐ„ ์Šคํฌ์ธ  ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” MCP ์„œ๋ฒ„

๐Ÿ†“ ์‚ฌ์šฉํ•˜๋Š” ๋ฌด๋ฃŒ API

API

๋น„์šฉ

๋ฐ์ดํ„ฐ

TheSportsDB

์™„์ „ ๋ฌด๋ฃŒ (key: 3)

ํŒ€ ์ผ์ •, ๊ฒฐ๊ณผ, ๋งž๋Œ€๊ฒฐ, ์ˆœ์œ„

balldontlie.io

์™„์ „ ๋ฌด๋ฃŒ (ํ‚ค ๋ถˆํ•„์š”)

NBA ๊ฒฝ๊ธฐ, ์„ ์ˆ˜ ์Šคํƒฏ

API-Football

๋ฌด๋ฃŒ 100req/day

๐Ÿ”ด ๋ผ์ด๋ธŒ ์Šค์ฝ”์–ด, ์‹ค์‹œ๊ฐ„ ์ˆœ์œ„

โšก TheSportsDB + balldontlie ๋งŒ์œผ๋กœ๋„ ๋ฐ”๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ!
API-Football์€ ์„ ํƒ์‚ฌํ•ญ (๋ผ์ด๋ธŒ ์Šค์ฝ”์–ด ์›ํ•  ๋•Œ๋งŒ ๋ฐœ๊ธ‰)


Related MCP server: beast-baseball

๐Ÿš€ ์„ค์น˜ ๋ฐฉ๋ฒ•

1. ์˜์กด์„ฑ ์„ค์น˜ & ๋นŒ๋“œ

git clone <this-repo>
cd sports-mcp
npm install
npm run build

2. ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •

cp .env.example .env
# .env ํŒŒ์ผ์—์„œ RAPIDAPI_KEY ๊ฐ’๋งŒ ๊ต์ฒด (์„ ํƒ์‚ฌํ•ญ)

3. Claude Desktop ์„ค์ •

Claude Desktop ์„ค์ • ํŒŒ์ผ์„ ์—ด๊ณ :

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json

์•„๋ž˜ ๋‚ด์šฉ์„ ์ถ”๊ฐ€ (๊ฒฝ๋กœ๋Š” ๋ณธ์ธ ํ™˜๊ฒฝ์— ๋งž๊ฒŒ ์ˆ˜์ •):

{
  "mcpServers": {
    "sports-pulse": {
      "command": "node",
      "args": ["/Users/yourname/sports-mcp/dist/index.js"],
      "env": {
        "SPORTSDB_API_KEY": "3",
        "RAPIDAPI_KEY": "your_rapidapi_key_here"
      }
    }
  }
}

4. Claude Desktop ์žฌ์‹œ์ž‘

์„ค์ • ์ €์žฅ ํ›„ Claude Desktop์„ ์™„์ „ํžˆ ์ข…๋ฃŒ ํ›„ ์žฌ์‹œ์ž‘ํ•˜๋ฉด tools ์•„์ด์ฝ˜(๐Ÿ”ง)์— ์Šคํฌ์ธ  ๋„๊ตฌ๋“ค์ด ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค!


๐Ÿ’ฌ ์‚ฌ์šฉ ์˜ˆ์‹œ

Claude Desktop์—์„œ ์ด๋ ‡๊ฒŒ ๋ฌผ์–ด๋ณด์„ธ์š”:

"์˜ค๋Š˜ EPL ๊ฒฝ๊ธฐ ์žˆ์–ด?"
"์†ํฅ๋ฏผ ๋‹ค์Œ ๊ฒฝ๊ธฐ ์–ธ์ œ์•ผ?"
"๋งจ์‹œํ‹ฐ ์ตœ๊ทผ 5๊ฒฝ๊ธฐ ๊ฒฐ๊ณผ ์•Œ๋ ค์ค˜"
"EPL ์ˆœ์œ„ ๋ณด์—ฌ์ค˜"
"๋งจ์œ  vs ๋ฆฌ๋ฒ„ํ’€ ์—ญ๋Œ€ ์ „์ ์ด ์–ด๋•Œ?"
"๋ ˆ์ด์ปค์Šค ์˜ค๋Š˜ ๊ฒฝ๊ธฐ ํ–ˆ์–ด?"
"LeBron James ์ด๋ฒˆ ์‹œ์ฆŒ ์Šคํƒฏ ์–ด๋•Œ?"
"๋‚ด ๊ด€์‹ฌํŒ€ ํ† ํŠธ๋„˜์ด๋ž‘ ๋ ˆ์ด์ปค์Šค ์ด๋ฒˆ ์ฃผ ๊ฒฝ๊ธฐ ๋ธŒ๋ฆฌํ•‘ํ•ด์ค˜"

๐Ÿ› ๏ธ ์ง€์› ๋„๊ตฌ (Tools)

Tool

์„ค๋ช…

ํ•„์š” API

get_live_scores

๐Ÿ”ด ๋ผ์ด๋ธŒ ์Šค์ฝ”์–ด

API-Football

get_today_fixtures

์˜ค๋Š˜ ๊ฒฝ๊ธฐ ์ผ์ •/๊ฒฐ๊ณผ

API-Football

get_upcoming_fixtures

ํŒ€ ๋‹ค์Œ ๊ฒฝ๊ธฐ ์ผ์ •

TheSportsDB

get_recent_results

ํŒ€ ์ตœ๊ทผ ๊ฒฝ๊ธฐ ๊ฒฐ๊ณผ

TheSportsDB

get_standings

๋ฆฌ๊ทธ ์ˆœ์œ„ํ‘œ

๋‘˜ ๋‹ค ์‹œ๋„

get_head_to_head

๋งž๋Œ€๊ฒฐ ๊ธฐ๋ก

TheSportsDB

get_nba_today

NBA ์˜ค๋Š˜ ๊ฒฝ๊ธฐ

balldontlie

get_nba_team_games

NBA ํŒ€ ์ตœ๊ทผ ๊ฒฝ๊ธฐ

balldontlie

get_nba_player_stats

NBA ์„ ์ˆ˜ ์Šคํƒฏ

balldontlie

get_weekly_briefing

๊ด€์‹ฌํŒ€ ์ฃผ๊ฐ„ ๋ธŒ๋ฆฌํ•‘

TheSportsDB + balldontlie


๐Ÿ”ง ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…

Q: Claude์—์„œ tool์ด ์•ˆ ๋ณด์—ฌ์š”

  • dist/index.js ํŒŒ์ผ์ด ์žˆ๋Š”์ง€ ํ™•์ธ (npm run build ์žฌ์‹คํ–‰)

  • config.json์˜ args ๊ฒฝ๋กœ๊ฐ€ ์ ˆ๋Œ€๊ฒฝ๋กœ์ธ์ง€ ํ™•์ธ

  • Claude Desktop ์™„์ „ ์žฌ์‹œ์ž‘ (๋ฉ”๋‰ด๋ฐ”์—์„œ ์™„์ „ ์ข…๋ฃŒ)

Q: "ํŒ€์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค" ์˜ค๋ฅ˜

  • ์˜์–ด ํŒ€ ์ด๋ฆ„์œผ๋กœ ์‹œ๋„ (์˜ˆ: "Tottenham" ๋Œ€์‹  "Tottenham Hotspur")

  • TheSportsDB์—์„œ ํŒ€๋ช… ๊ฒ€์ƒ‰ ํ™•์ธ: https://www.thesportsdb.com/api/v1/json/3/searchteams.php?t=Tottenham

Q: ๋ผ์ด๋ธŒ ์Šค์ฝ”์–ด๊ฐ€ ์•ˆ ๋ผ์š”

  • .env์˜ RAPIDAPI_KEY ํ™•์ธ

  • ๋ฌด๋ฃŒ 100req/day ์ดˆ๊ณผ ์—ฌ๋ถ€ ํ™•์ธ


๐Ÿ“ฆ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

sports-mcp/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ index.ts          # MCP ์„œ๋ฒ„ ๋ฉ”์ธ + ๋ชจ๋“  tool ํ•ธ๋“ค๋Ÿฌ
โ”‚   โ”œโ”€โ”€ types.ts           # ๊ณตํ†ต ํƒ€์ž… ์ •์˜
โ”‚   โ”œโ”€โ”€ utils.ts           # ์‹œ๊ฐ„๋Œ€ ๋ณ€ํ™˜, ํŒ€ ์ด๋ฆ„ ์ •๊ทœํ™”
โ”‚   โ””โ”€โ”€ adapters/
โ”‚       โ”œโ”€โ”€ sportsdb.ts    # TheSportsDB API
โ”‚       โ”œโ”€โ”€ nba.ts         # balldontlie.io NBA API
โ”‚       โ””โ”€โ”€ apifootball.ts # API-Football (RapidAPI)
โ”œโ”€โ”€ dist/                  # ์ปดํŒŒ์ผ ๊ฒฐ๊ณผ (npm run build ํ›„ ์ƒ์„ฑ)
โ”œโ”€โ”€ .env.example
โ”œโ”€โ”€ package.json
โ””โ”€โ”€ tsconfig.json

Available Tools

10 tools
get_head_to_headB

๋‘ ํŒ€์˜ ์—ญ๋Œ€ ๋งž๋Œ€๊ฒฐ ๊ธฐ๋ก์„ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค. ์ƒ๋Œ€์ „์  ๋ถ„์„์— ํ™œ์šฉ.

ParametersJSON Schema
NameRequiredDescriptionDefault
team_aYes์ฒซ ๋ฒˆ์งธ ํŒ€ (ํ•œ๊ตญ์–ด/์˜์–ด ๊ฐ€๋Šฅ)
team_bYes๋‘ ๋ฒˆ์งธ ํŒ€ (ํ•œ๊ตญ์–ด/์˜์–ด ๊ฐ€๋Šฅ)

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

์–ด๋…ธํ…Œ์ด์…˜์ด ์ „ํ˜€ ์—†์–ด ์„ค๋ช…์ด ํ–‰๋™ ํŠน์„ฑ์„ ๋ชจ๋‘ ๊ฐ๋‹นํ•ด์•ผ ํ•˜๋Š”๋ฐ, ์ฝ๊ธฐ ์ „์šฉ ์—ฌ๋ถ€, ์กฐํšŒ ๋ฒ”์œ„(๋ฆฌ๊ทธ/๊ธฐ๊ฐ„), ๋ฐ˜ํ™˜ ํ˜•ํƒœ(์ŠนํŒจ ์š”์•ฝ์ธ์ง€ ๊ฒฝ๊ธฐ ๋ชฉ๋ก์ธ์ง€) ๋“ฑ ์–ด๋–ค ๋™์ž‘ ์ •๋ณด๋„ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š”๋‹ค.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

๋‘ ๋ฌธ์žฅ์œผ๋กœ ๊ฐ„๊ฒฐํ•˜๊ณ  ๋ชฉ์ ์ด ์•ž์— ๋ฐฐ์น˜๋˜์–ด ์žˆ๋‹ค. ๋‚ญ๋น„๋Š” ์—†์œผ๋‚˜ ์ •๋ณด๋Ÿ‰์ด ์ ์–ด ์ตœ์ƒ์œ„๋Š” ์•„๋‹ˆ๋‹ค.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

๋‹จ์ˆœ ์กฐํšŒ ๋„๊ตฌ์ด๊ณ  ํŒŒ๋ผ๋ฏธํ„ฐ๋„ 2๊ฐœ๋ฟ์ด๋ผ ์ตœ์†Œํ•œ์˜ ์„ค๋ช…์œผ๋กœ ํ˜ธ์ถœ์€ ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ถœ๋ ฅ ์Šคํ‚ค๋งˆ๊ฐ€ ์—†์Œ์—๋„ ๋ฐ˜ํ™˜ ๋‚ด์šฉ(์ŠนํŒจ ์ „์ , ๊ฒฝ๊ธฐ ๋ชฉ๋ก ๋“ฑ)์— ๋Œ€ํ•œ ์–ธ๊ธ‰์ด ์—†์–ด ์™„์ „ํ•˜๋‹ค๊ณ  ๋ณด๊ธฐ๋Š” ์–ด๋ ต๋‹ค.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

์Šคํ‚ค๋งˆ ์„ค๋ช… ์ปค๋ฒ„๋ฆฌ์ง€๊ฐ€ 100%๋กœ ๋‘ ํŒŒ๋ผ๋ฏธํ„ฐ(team_a, team_b)์˜ ์˜๋ฏธ์™€ ํ•œ๊ตญ์–ด/์˜์–ด ์ž…๋ ฅ ๊ฐ€๋Šฅ ์—ฌ๋ถ€๊ฐ€ ์ด๋ฏธ ์Šคํ‚ค๋งˆ์— ๋ฌธ์„œํ™”๋˜์–ด ์žˆ๋‹ค. ์„ค๋ช…์€ ์ด์— ์ถ”๊ฐ€์ ์ธ ์˜๋ฏธ๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๊ธฐ์ค€์„  3์ด ์ ์ ˆํ•˜๋‹ค.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

๋ช…ํ™•ํ•œ ๋™์‚ฌ(์กฐํšŒ)์™€ ๋Œ€์ƒ(๋‘ ํŒ€์˜ ์—ญ๋Œ€ ๋งž๋Œ€๊ฒฐ ๊ธฐ๋ก)์„ ์ œ์‹œํ•˜์—ฌ ๋ฌด์—‡์„ ํ•˜๋Š”์ง€ ๋ถ„๋ช…ํ•˜๋‹ค. ๋‹ค๋งŒ ํ˜•์ œ ๋„๊ตฌ(์˜ˆ: get_recent_results, get_standings)์™€์˜ ๊ตฌ๋ถ„์„ ๋ช…์‹œ์ ์œผ๋กœ ์–ธ๊ธ‰ํ•˜์ง€๋Š” ์•Š์•„ 5์ ์€ ์•„๋‹ˆ๋‹ค.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'์ƒ๋Œ€์ „์  ๋ถ„์„์— ํ™œ์šฉ'์ด๋ผ๋Š” ํ•œ ์ค„๋กœ ์‚ฌ์šฉ ๋งฅ๋ฝ์„ ์•”์‹œํ•˜์ง€๋งŒ, ์–ธ์ œ ์ด ๋„๊ตฌ๋ฅผ ์“ฐ๊ณ  ์–ธ์ œ ๋‹ค๋ฅธ ๋„๊ตฌ(์˜ˆ: get_recent_results)๋ฅผ ์จ์•ผ ํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ๋ช…์‹œ์  ์•ˆ๋‚ด๋‚˜ ์ œ์™ธ ์กฐ๊ฑด์ด ์—†๋‹ค.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_live_scoresB

ํ˜„์žฌ ์ง„ํ–‰ ์ค‘์ธ ์ถ•๊ตฌ ๊ฒฝ๊ธฐ์˜ ์‹ค์‹œ๊ฐ„ ์Šค์ฝ”์–ด๋ฅผ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค. ๊ณจ, ๊ฒฝ๊ธฐ ์‹œ๊ฐ„ ๋“ฑ ํฌํ•จ. (API-Football ํ‚ค ํ•„์š”)

ParametersJSON Schema
NameRequiredDescriptionDefault
leagueNoํŠน์ • ๋ฆฌ๊ทธ๋งŒ ๋ณด๋ ค๋ฉด ์ž…๋ ฅ (์˜ˆ: EPL, LaLiga, Bundesliga, ์ฑ”ํ”ผ์–ธ์Šค๋ฆฌ๊ทธ). ์—†์œผ๋ฉด ์ „์ฒด.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It discloses that this is a read-style live score lookup, that goals and match time are included, and that an API-Football key is required. However, it omits rate limits, quota behavior, data freshness, empty-live-match handling, and other operational details an agent might need.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded: the core purpose comes first, followed by included data and an auth requirement. Every sentence is brief and relevant, though the parenthetical API key note and fragment-like phrasing keep it slightly short of ideal polish.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool with high schema coverage and no output schema, the description gives an adequate high-level view: live soccer scores, included data, and API key requirement. It does not describe return structure, empty-result behavior, or filtering nuances, but those gaps are moderate given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single optional 'league' parameter, so the schema already carries parameter meaning. The description adds no additional parameter semantics, which matches the baseline of 3 when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource in Korean: retrieving real-time scores for currently in-progress soccer matches. It also names the included data, goals and match time, which makes the purpose clear. It does not explicitly distinguish itself from sibling tools like get_today_fixtures or get_recent_results, but the 'ํ˜„์žฌ ์ง„ํ–‰ ์ค‘์ธ' scope implies live matches rather than scheduled or completed ones.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by saying 'currently in-progress soccer matches,' but it never states when to use this tool instead of get_today_fixtures, get_recent_results, or other siblings. There are no explicit exclusions, prerequisites, or alternative selection guidance beyond the implied live-match context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_nba_player_statsC

NBA ์„ ์ˆ˜์˜ ์ด๋ฒˆ ์‹œ์ฆŒ ํ‰๊ท  ์Šคํƒฏ์„ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค.

ParametersJSON Schema
NameRequiredDescriptionDefault
player_nameYes์„ ์ˆ˜ ์ด๋ฆ„ (์˜์–ด). ์˜ˆ: LeBron James, Stephen Curry

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full behavioral burden. It implies a read operation but doesn't disclose whether it requires network calls, rate limits, data freshness, or response format. For a stats retrieval tool, this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no wasted words. It is front-loaded with the core purpose, though it lacks any additional structure or clauses for usage context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no annotations and no output schema, the description is too sparse. It doesn't clarify whether stats are averages per game, totals, or advanced metrics; it also omits error handling (e.g., unknown players) and data recency.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the parameter's meaning and format are fully documented in the schema. The description adds no additional parameter semantics beyond what the schema provides, making the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb and resource: retrieving a player's average season stats. It distinguishes somewhat from siblings like get_live_scores or get_standings by focusing on individual player stats, though it doesn't explicitly name an alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus siblings such as get_live_scores or get_standings. There's no indication of prerequisites, context, or exclusions, leaving usage to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_nba_team_gamesB

ํŠน์ • NBA ํŒ€์˜ ์ตœ๊ทผ ๊ฒฝ๊ธฐ ๊ฒฐ๊ณผ๋ฅผ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค.

ParametersJSON Schema
NameRequiredDescriptionDefault
team_nameYesNBA ํŒ€ ์ด๋ฆ„. ์˜ˆ: Lakers, Celtics, ๋ ˆ์ด์ปค์Šค, Warriors

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It does not disclose what '์ตœ๊ทผ' (recent) means in terms of number of games, date window, or ordering, nor what happens for an unrecognized team name. The single mention of recency is too vague to be actionable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; the resource and scope come first and nothing is wasted. Appropriately sized for a one-parameter lookup tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a trivial single-param lookup with no output schema, the definition is roughly adequate, but the undefined recency window ('์ตœ๊ทผ') is a genuine ambiguity that neither the schema nor the description resolves, and there is no guidance on missing teams or result volume.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already documents team_name with concrete examples including both English and Korean forms. The description adds no syntax, aliasing, or validation detail beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('ํŠน์ • NBA ํŒ€์˜ ์ตœ๊ทผ ๊ฒฝ๊ธฐ ๊ฒฐ๊ณผ๋ฅผ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค' โ€“ retrieves a specific NBA team's recent game results), which is clear enough for an agent to understand the operation. However, it does not differentiate itself from the sibling 'get_recent_results', which appears to cover overlapping ground, leaving the agent to guess which to pick.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance, no mention of when not to use it, and no reference to alternatives such as get_recent_results or get_nba_today. The team-scoped nature is only implied by the parameter, not stated as a selection criterion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_nba_todayB

์˜ค๋Š˜์˜ NBA ๊ฒฝ๊ธฐ ๊ฒฐ๊ณผ ๋ฐ ์ง„ํ–‰ ์ค‘์ธ ๊ฒฝ๊ธฐ๋ฅผ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It implies a read-only lookup via '์กฐํšŒํ•ฉ๋‹ˆ๋‹ค' but does not clarify timezone scope, update frequency for in-progress games, permissions, or any other operational behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no wasted words. It is appropriately sized for the operation, though its brevity contributes to gaps elsewhere rather than being a conciseness problem.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with zero parameters and no output schema, but the crowded sibling set makes disambiguation essential. The description does not explain how 'today's NBA game results and in-progress games' differs from get_live_scores or get_today_fixtures, leaving a significant contextual gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the baseline is 4. The description adds no parameter meaning because there are no parameters to describe, which is appropriate for this dimension.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: retrieving today's NBA game results and in-progress games. It is clear what the tool does, but it does not distinguish itself from overlapping siblings such as get_live_scores, get_today_fixtures, or get_recent_results.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus the many sibling tools covering live scores, today's fixtures, and recent results. The description only states what it returns, leaving the agent to infer usage from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_recent_resultsB

ํŠน์ • ํŒ€์˜ ์ตœ๊ทผ ๊ฒฝ๊ธฐ ๊ฒฐ๊ณผ๋ฅผ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค.

ParametersJSON Schema
NameRequiredDescriptionDefault
countNo๊ฐ€์ ธ์˜ฌ ๊ฒฝ๊ธฐ ์ˆ˜ (๊ธฐ๋ณธ๊ฐ’: 5)
team_nameYesํŒ€ ์ด๋ฆ„ (ํ•œ๊ตญ์–ด/์˜์–ด ๋ชจ๋‘ ๊ฐ€๋Šฅ)

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. The verb ์กฐํšŒ implies a read-only operation, but the description does not disclose freshness of results, rate limits, permissions, response format, or what 'recent' means exactly.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler or redundancy. It states the purpose immediately and every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is adequate for a simple 2-parameter read tool with full schema coverage, but it omits any sport/league context that would help distinguish it from the NBA-specific siblings, and gives no indication of result freshness or return shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both team_name and count are already documented in the schema. The description adds only a vague team scope and 'recent' qualifier, not meaningful syntax or format details beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (์กฐํšŒ/retrieve), resource (๊ฒฝ๊ธฐ ๊ฒฐ๊ณผ/match results), and scope (ํŠน์ • ํŒ€/specific team), so the core action is clear. However, it does not differentiate from siblings like get_nba_team_games or get_live_scores, which could also return team-related game data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to choose this tool over alternatives such as get_live_scores, get_upcoming_fixtures, or get_nba_team_games. The purpose implies a use case, but there are no explicit conditions, prerequisites, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_standingsB

ํŠน์ • ๋ฆฌ๊ทธ์˜ ํ˜„์žฌ ์ˆœ์œ„ํ‘œ๋ฅผ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค.

ParametersJSON Schema
NameRequiredDescriptionDefault
leagueYes๋ฆฌ๊ทธ ์ด๋ฆ„. ์ง€์›: EPL, LaLiga, Bundesliga, Serie A, Ligue 1, Champions League, K๋ฆฌ๊ทธ1
seasonNo์‹œ์ฆŒ ์—ฐ๋„ (๊ธฐ๋ณธ๊ฐ’: 2024)
sourceNo๋ฐ์ดํ„ฐ ์†Œ์Šค ์„ ํƒ (๊ธฐ๋ณธ๊ฐ’: auto)

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden, yet it adds none: no note on pagination, rate limits, caching, or what a standings entry contains. '์กฐํšŒ' implies a read, but nothing about the data source selection behavior ('auto' fallback) or freshness is disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single efficient sentence with the resource front-loaded and zero filler. It is arguably too terse for what it omits, but nothing in it is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations and no output schema, the description is the only behavioral context available and it only restates the purpose. For a simple read tool with fully covered parameters this is minimally adequate, but the shape of the returned standings table is left entirely unexplained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the league list, season default, and source enum are already fully documented in the schema. The description adds no extra meaning about parameter interaction or valid combinations, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('ํ˜„์žฌ ์ˆœ์œ„ํ‘œ๋ฅผ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค' โ€“ retrieve the current standings table) scoped to a league. It is clearly distinct in intent from the fixture/score siblings, but it never names or contrasts with them, so sibling differentiation is left to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: 'ํ˜„์žฌ' hints at current-season standings versus historical results, but there is no explicit when-to-use, when-not-to-use, or pointer to an alternative sibling. An agent can guess the context but gets no routing help.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_today_fixturesB

์˜ค๋Š˜ ์˜ˆ์ •๋œ ์ถ•๊ตฌ ๊ฒฝ๊ธฐ ์ผ์ •์„ KST ๊ธฐ์ค€์œผ๋กœ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ๊ฐ€ ์žˆ์œผ๋ฉด ๊ฒฐ๊ณผ๋„ ํฌํ•จ.

ParametersJSON Schema
NameRequiredDescriptionDefault
leagueNoํŠน์ • ๋ฆฌ๊ทธ๋งŒ ํ•„ํ„ฐ๋ง (์„ ํƒ). ์˜ˆ: EPL, LaLiga

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It does not disclose return format, pagination, error behavior, or freshness guarantees, and only briefly mentions that results may be included. This is insufficient for a read-only tool with no annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short, front-loaded sentences with zero waste. It immediately states the purpose and then adds a relevant behavioral note about results.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-annotation, single-optional-parameter tool with no output schema, the description provides the core purpose and timezone but lacks sufficient behavioral detail (e.g., result inclusion criteria, update frequency). It is minimally adequate but has clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already fully documents the single optional 'league' parameter with examples. The description adds no parameter details beyond what the schema provides, but baseline is 4 because schema coverage is high and the description implies filtering without contradicting it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (์กฐํšŒํ•ฉ๋‹ˆ๋‹ค) and resource (์˜ค๋Š˜ ์˜ˆ์ •๋œ ์ถ•๊ตฌ ๊ฒฝ๊ธฐ ์ผ์ •), and notes the timezone basis (KST). It distinguishes itself from siblings like get_upcoming_fixtures and get_live_scores by scoping to 'today' and including results, though it doesn't explicitly contrast with those siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this tool versus alternatives such as get_upcoming_fixtures or get_live_scores. Usage is only implied by the name and description; no exclusions or prerequisites are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_upcoming_fixturesA

ํŠน์ • ํŒ€์˜ ๋‹ค์Œ ๊ฒฝ๊ธฐ ์ผ์ •์„ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค. ํ•œ๊ตญ์–ด ํŒ€ ์ด๋ฆ„๋„ ์ง€์› (์†ํฅ๋ฏผ โ†’ ํ† ํŠธ๋„˜ ์ž๋™ ๋ณ€ํ™˜).

ParametersJSON Schema
NameRequiredDescriptionDefault
countNo๊ฐ€์ ธ์˜ฌ ๊ฒฝ๊ธฐ ์ˆ˜ (๊ธฐ๋ณธ๊ฐ’: 5)
team_nameYesํŒ€ ์ด๋ฆ„ (ํ•œ๊ตญ์–ด/์˜์–ด ๋ชจ๋‘ ๊ฐ€๋Šฅ). ์˜ˆ: ์†ํฅ๋ฏผ, ํ† ํŠธ๋„˜, Tottenham, ๋งจ์‹œํ‹ฐ

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It usefully discloses a non-obvious behavior (Korean team names auto-converted, e.g. ์†ํฅ๋ฏผ โ†’ ํ† ํŠธ๋„˜), but says nothing about return format, data freshness, or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with the core action front-loaded and the notable Korean-name behavior appended without waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations and no output schema, the description should do more: it never explains what a returned fixture contains or how count interacts with results. Adequate for selection, thin for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents both parameters. The description's Korean-name note and the example largely duplicate the schema's own description, adding only marginal value; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: retrieves a specific team's upcoming fixture schedule. The word '๋‹ค์Œ ๊ฒฝ๊ธฐ' (upcoming) implicitly separates it from get_recent_results and get_today_fixtures, but no sibling is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied (want the future schedule of one team) but there is no explicit when-to-use/when-not guidance or reference to alternatives like get_today_fixtures or get_live_scores, so the agent must infer boundaries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_weekly_briefingC

๊ด€์‹ฌ ํŒ€๋“ค์˜ ์ด๋ฒˆ ์ฃผ ๊ฒฝ๊ธฐ ์ผ์ •๊ณผ ์ตœ๊ทผ ๊ฒฐ๊ณผ๋ฅผ ํ•œ๋ฒˆ์— ๋ชจ์•„์„œ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

ParametersJSON Schema
NameRequiredDescriptionDefault
teamsYes๊ด€์‹ฌ ํŒ€ ๋ชฉ๋ก. ์˜ˆ: ['ํ† ํŠธ๋„˜', '๋ ˆ์ด์ปค์Šค', '๋งจ์‹œํ‹ฐ']
include_nbaNoNBA ์˜ค๋Š˜ ๊ฒฝ๊ธฐ ํฌํ•จ ์—ฌ๋ถ€ (๊ธฐ๋ณธ๊ฐ’: true)

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It only says what is shown, not how: no indication of read-only nature, no date boundary definition of 'this week', no mention of whether missing teams/leagues degrade gracefully, and no output shape even though no output schema exists. The lone behavioral hint is empty-result or unknown-team handling, which is absent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler. It is compact and states the core value (aggregate fixtures + recent results at once), though the brevity is partly the cause of the missing scope and behavioral detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no annotations, no output schema, and heavy sibling overlap, the description is too thin. It omits the week definition, NBA/league handling, behavior for unknown teams, and any return structure, so an agent cannot confidently decide when this beats the more specific tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: the schema already documents teams (with an example) and include_nba (with its default). The description adds nothing beyond 'teams of interest' and implies a results/fixtures concept, so it sits at the baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a combined resource: this week's fixture schedule and recent results, aggregated per team. That is more specific than the name alone, but it is vague about scope versus siblings โ€” get_today_fixtures, get_upcoming_fixtures, get_recent_results and get_nba_today all overlap with parts of this, and the description never carves out what this tool does differently (a weekly aggregated multi-team view).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use guidance. With nine sibling tools covering today, upcoming, live, recent, NBA-specific and per-team views, the agent is left to guess whether this is a convenience aggregation or a distinct data source. It does implicitly suggest 'weekly summary across several teams' but never contrasts with alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

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

  1. 10 tool updatesv1.0.0
    • First observedget_head_to_head
    • First observedget_live_scores
    • First observedget_nba_player_stats
    • First observedget_nba_team_games
    • First observedget_nba_today
    • First observedget_recent_results
    • First observedget_standings
    • First observedget_today_fixtures
    • First observedget_upcoming_fixtures
    • First observedget_weekly_briefing

TDQS

B3.4/5.0

Scored across 10 tools

Disambiguation4/5

Each tool targets a distinct data type: live scores, today's fixtures, upcoming fixtures for a team, recent results, standings, head-to-head, NBA equivalents, and a weekly briefing. Minor potential confusion exists between get_today_fixtures and get_upcoming_fixtures (both about future fixtures), but time scope and 'specific team' focus differentiate them sufficiently. The weekly briefing is clearly an aggregate tool.

Naming Consistency5/5

All tool names follow a consistent get_<subject> pattern in snake_case, with clear English nouns/verbs (live_scores, today_fixtures, upcoming_fixtures, recent_results, etc.). The NBA tools use get_nba_ prefix uniformly, maintaining a predictable convention.

Tool Count5/5

Ten tools is a well-scoped set for a multi-sport score/fixture service. Each tool covers a distinct need, and the mix of specific and aggregate tools (weekly briefing) feels balanced without bloat or sparsity.

Completeness4/5

The surface covers core read-only queries for football and NBA: live scores, fixtures, results, standings, head-to-head, and player stats, plus an aggregate weekly briefing. Missing operations like league filters for some sports, player search by name, or historical season stats are minor gaps that agents can work around; the domain is fundamentally a read-only data provider, so no create/update/delete is expected.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    An MCP server providing access to college football statistics sourced from the College Football Data API within Claude Desktop.
    9
    27
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    MCP server for natural language analysis of baseball league data, enabling team statistics, standings, lineup suggestions, and scouting reports via Claude Desktop.
    -
  • A
    license
    A
    quality
    D
    maintenance
    An MCP server that provides access to ESPN Fantasy Basketball APIs, enabling Claude and other MCP clients to fetch league teams, rosters, free agents, matchups, NBA schedules, and live draft assistant tools.
    14
    1
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    An MCP server that connects Claude Desktop to Hudl, enabling live access to team stats, player stats, and game results through natural language queries.
    7
    -