Skip to main content
Glama

BoxTier Basketball Receipt

Server Details

Create a BoxTier-style PNG receipt from user-provided basketball game results.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
boyakh-jpg/platunumball
GitHub Stars
0

TDQS

A4.2/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a clearly distinct job: searching, fetching one match detail, checking account state, listing personal match records, and generating the receipt. Even though search and fetch are related, their boundary—list vs. detail-by-id—is explicit and unlikely to cause selection errors.

Naming Consistency3/5

Three tools follow the verb_noun pattern (create_basketball_receipt, get_my_boxtier_account, list_my_match_records), but 'search' and especially the generic 'fetch' deviate by having no object or domain qualifier. The set is still readable, but it is not a consistent naming convention.

Tool Count5/5

Five tools form a well-rim scope for the server's dual purpose of discovering/matching rooms and generating receipts from user or match data. There are no redundant or decorative tools, and each tool occupies a necessary step in the intended workflows.

Completeness4/5

The main flows are covered: login/limit check → list personal matches or search rooms → receipt creation. The only notable gap is the lack of a way to retrieve or manage previously generated receipts, but users can still be re-run receipt generation from existing match records, so workaround exists.

Available Tools

5 tools
create_basketball_receiptBoxTier 농구 영수증 PNG 만들기AInspect

박스티어(BoxTier) 스타일의 농구 경기 영수증 PNG를 만든다. 이 출력에는 BoxTier API만 사용한다. 성공 시 완성된 최종 PNG 한 장은 tool result의 content[0]에 type=image, mimeType=image/png, raw Base64 data로 직접 첨부되고, structuredContent.downloadUrl에는 동일 PNG 원본을 내려받는 단기 만료 링크가 제공된다. API가 반환한 PNG 원본만 사용자에게 그대로 전달하고 재합성·재렌더·임의 편집하지 않는다. 별도 위젯을 열지 않고 처리 중·완료 문구를 별도로 반복하지 않는다. 반환된 image content 또는 downloadUrl을 영수증 결과로 사용자에게 직접 제시하고 metadata만으로 완료 처리하지 않는다. structuredContent는 첨부 여부·바이트 길이·실제 크기·SHA-256 검증값을 제공한다. 네이티브 대화 이미지 첨부 여부와 기본 도구 실행 UI는 MCP 클라이언트가 결정한다. 사용자가 ‘박스티어로 영수증 만들어줘’, 농구 감열지 영수증, basketball game receipt, score receipt를 요청했고 팀명·최종 점수·경기 날짜·장소·경기 형식을 모두 실제 값으로 제공했을 때만 사용한다. 사용자가 엠블럼 이미지를 첨부하면 홈·원정에 맞춰 homeEmblemFile·awayEmblemFile로 전달한다. 원형 파일은 강제하지 않는다. 가능하면 투명 배경 정사각형 캔버스에 실제 도안만 담고 원형 테두리·회색 원판은 미리 넣지 않는다. 서버가 알파 전경의 실제 경계와 중심을 계산해 원형 안전영역 안에 비율 유지·자동 중앙 정렬하고 스타일 변환하며 저장하지 않는다. 경기사진은 지원하지 않으므로 boxtier.kr 영수증 페이지 이용을 안내한다. 누락값을 추측하지 말고 먼저 사용자에게 물어본다. 농구 외 경기, 허위 경기 기록, 상거래 영수증에는 사용하지 않는다.

ParametersJSON Schema
NameRequiredDescriptionDefault
styleNo영수증 스타일. 감열지 영수증은 thermal, 스코어 포스터는 score.thermal
venueYes경기 장소.
formatYes경기 형식.
localeNo영수증 언어.ko
presetNoPNG 출력 형식. thermal story는 종이 경계만 내보내며 찢긴 상·하단 바깥은 완전 투명하다. feed는 1080x1350 배경을 포함한다. score story는 1080x1920이다.story
commentNo짧은 영수증 문구.
awayTeamYes원정팀 이름.
homeTeamYes홈팀 이름.
playedOnYes경기 날짜, YYYY-MM-DD.
awayScoreYes원정팀 최종 점수.
homeScoreYes홈팀 최종 점수.
awayEmblemNo선택 원정 엠블럼. 투명 배경 정사각형 캔버스에 실제 도안만 넣어 전달하는 것을 권장하며 원형 테두리·회색 원판을 미리 합성하지 않는다. 서버가 알파 전경의 실제 경계와 중심을 계산해 원형 안전영역 안에 비율 유지·자동 중앙 정렬하고, thermal은 전경만 4단계 회색조로 변환한다. 생략하면 중립 엠블럼을 사용한다.
homeEmblemNo선택 홈 엠블럼. 투명 배경 정사각형 캔버스에 실제 도안만 넣어 전달하는 것을 권장하며 원형 테두리·회색 원판을 미리 합성하지 않는다. 서버가 알파 전경의 실제 경계와 중심을 계산해 원형 안전영역 안에 비율 유지·자동 중앙 정렬하고, thermal은 전경만 4단계 회색조로 변환한다. 생략하면 중립 엠블럼을 사용한다.
playedTimeNo경기 시각, HH:mm.20:30
debugBase64No개발 확인용. true이면 생성된 PNG의 base64 문자열을 structuredContent에도 포함한다.
matchNatureNo경기 성격.competitive
periodScoresNo쿼터·하프·연장별 점수. 합계는 최종 점수와 같아야 함.
awayEmblemFileNoChatGPT에 첨부한 원정팀 엠블럼. 투명 배경 정사각형 캔버스를 권장하고 원형 테두리·회색 원판은 미리 넣지 않는다. 서버가 실제 알파 전경을 원형 안전영역에 자동 중앙 정렬한다. awayEmblem과 동시에 전달하지 않는다.
homeEmblemFileNoChatGPT에 첨부한 홈팀 엠블럼. 투명 배경 정사각형 캔버스를 권장하고 원형 테두리·회색 원판은 미리 넣지 않는다. 서버가 실제 알파 전경을 원형 안전영역에 자동 중앙 정렬한다. homeEmblem과 동시에 전달하지 않는다.
tournamentNameNo대회명.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only provide generic false hints, so the description carries the full burden and does so exceptionally. It discloses the exact output routing (content[0] type=image, mimeType=image/png, raw Base64), the short-lived downloadUrl in structuredContent, the SHA-256 verification value, the requirement to pass the original PNG through without editing/compositing, and the behavior of not opening widgets or repeating status messages. This goes far beyond what annotations provide.

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 long but every section earns its place with non-obvious behavioral details. It is front-loaded with the core purpose and output format, then moves to constraints and exclusions. The main downside is the lack of paragraph breaks, making it a wall of text that slightly reduces scanability. Still, no repetitive filler.

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

Completeness5/5

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

For a tool with 20 parameters, nested objects, and an output schema, the description is remarkably complete. It covers trigger conditions, input completeness, output delivery, structuredContent contents, emblem handling rules, forbidden use cases, and fallback guidance for unsupported game photos. The output schema exists, so return values do not need explanation, and nothing important appears missing.

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%, so the schema documents all parameters well. The description still adds value by clarifying when to use homeEmblemFile vs awayEmblemFile (when user attaches emblems), how to handle transparent backgrounds and round files, and the distinction between thermal and score presets. It does not defer all param meaning to the schema, though it leaves some param-specific details to the schema's already-rich descriptions.

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

Purpose5/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: it creates a BoxTier-style basketball game receipt PNG. It distinguishes itself from siblings like fetch, search, and list_my_match_records by explicitly saying this is the BoxTier receipt generator and even restricts usage to basketball receipts only. The scope is unambiguous.

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

Usage Guidelines5/5

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

The description provides explicit when-to-use conditions: only when the user requests a BoxTier receipt and provides all required real values (team names, final score, date, venue, format). It also gives explicit when-not-to-use guidance: no non-basketball games, fake records, or commercial receipts; for game photos it instructs to direct the user to the boxtier.kr page. It also says to ask the user for missing values rather than guessing, which directly helps an agent choose correct behavior.

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

fetchBoxTier 공개 농구 매칭방 상세 조회A
Read-onlyIdempotent
Inspect

search가 반환한 BoxTier 공개 농구 매칭방 ID 하나의 현재 상세 조건을 조회한다. 검색 결과를 추천하거나 참가 링크를 안내하기 전에 사용한다. 임의의 비공개 방이나 종료된 방 조회에는 사용하지 않는다.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYessearch 결과의 공개 매칭방 ID.

TDQS

A4.3/5.0
Behavior3/5

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

The annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety and idempotence profile is covered. The description adds useful scoping about current conditions and the exclusion of private/ended rooms, but does not add deeper behavioral detail such as response shape or behavior on invalid IDs; with strong annotations, a 3 is appropriate.

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 three short, purposeful sentences: what the tool does, when to use it, and when not to use it. There is no filler, and the core behavior is front-loaded.

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

Completeness5/5

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

For a one-parameter, read-only, idempotent operation with rich annotations and no output schema, the description is complete enough: it identifies where the ID comes from, when to call the tool, and what kind of data is returned (current detailed conditions). The exclusions prevent misuse, and no critical invocation detail is missing.

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 single required parameter already has a clear description ('search 결과의 공개 매칭방 ID'). The tool description reinforces that the ID must come from search, but it does not add meaning beyond what the schema already provides, so the baseline of 3 applies.

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

Purpose5/5

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

The description uses a specific verb and resource: it retrieves the current detailed conditions of a single public basketball matching room ID returned by search. It is clearly distinguished from siblings by anchoring to search results and explicitly excluding arbitrary, private, or ended rooms.

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

Usage Guidelines5/5

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

The description explicitly states when to use the tool (before recommending search results or guiding participation links) and gives concrete negative guidance (do not use for arbitrary private or ended rooms). This gives an agent actionable selection criteria without needing to infer context.

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

get_my_boxtier_accountBoxTier 로그인 연결 확인A
Read-onlyIdempotent
Inspect

BoxTier 로그인을 시작하거나 현재 연결된 내 계정과 영수증 생성 한도 정책을 확인한다. 사용자가 로그인, 계정 연결, 내 기록 이용 가능 여부 또는 영수증 한도를 물으면 사용한다.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety is disclosed. The description adds useful behavioral context about checking receipt limits and record availability, but it doesn't go beyond that. No contradiction with annotations, but the extra context is modest.

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 two sentences: the first states the action, the second states when to use it. It's efficient and front-loaded, with no filler or repetition. It could arguably be one sentence, but the current structure is clear and concise.

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

Completeness4/5

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

For a zero-parameter tool with robust annotations, the description is complete. It explains the purpose and usage conditions. No output schema exists, so return format is not expected. The mention of checking record availability and receipt limits covers all stated functionality.

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 schema fully covers parameter semantics. The description doesn't need to add parameter details. Per the rubric, a baseline of 4 applies for zero-parameter tools.

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

Purpose5/5

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

The description clearly states the tool's function: 'start BoxTier login or check current connected account and receipt generation limit policy.' It also specifies when to use it, which effectively distinguishes it from siblings like create_basketball_receipt and list_my_match_records. The verb-resource pairing is specific and unambiguous.

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

Usage Guidelines4/5

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

It explicitly says to use when 'the user asks about login, account connection, my records availability, or receipt limit.' This gives clear when-to-use guidance. However, it doesn't mention alternatives or when not to use, but given the tool's narrow scope, this is acceptable.

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

list_my_match_records내 BoxTier 경기 기록 조회A
Read-onlyIdempotent
Inspect

로그인한 BoxTier 사용자의 최근 농구 경기 기록을 조회한다. 사용자가 내 경기, 내 기록, 이전 경기 또는 기록으로 영수증 만들기를 요청할 때 사용한다.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds that the records are recent and scoped to the logged-in user, which is useful context. However, it doesn't elaborate on pagination behavior or return structure, but the annotation coverage lowers the required burden.

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 sentences, succinct and front-loaded with the main action, followed by clear usage triggers. Every sentence serves a purpose with no redundancy or filler.

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

Completeness4/5

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

For a simple read-only list tool with two optional params and annotations covering safety, the description provides the core purpose, scope (logged-in user, recent), and when to use it. It doesn't detail return format or error handling, but given the simplicity and annotation coverage, it is adequately complete.

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

Parameters2/5

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

With schema description coverage at 0%, the description should compensate by explaining limit and offset. It does not mention them at all. The schema itself provides defaults and boundaries, which are self-explanatory for pagination, but the description adds zero value for parameter comprehension.

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

Purpose5/5

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

The description states a specific verb (조회한다/retrieves) and a specific resource (최근 농구 경기 기록/recent basketball match records) for a logged-in BoxTier user. It also lists concrete usage triggers, making it easy to distinguish from siblings like create_basketball_receipt and search/fetch.

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

Usage Guidelines4/5

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

The description explicitly enumerates when to use this tool: '내 경기, 내 기록, 이전 경기 또는 기록으로 영수증 만들기' (my matches, my records, previous matches, or creating a receipt from records). It clearly indicates the intended context, though it doesn't explicitly exclude alternatives like search.

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. 1 tool update
    • Changedcreate_basketball_receipt1 field changed
      • changedOutput schema / oneOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "base64": {
        -        "type": "string"
        -      },
        -      "byteLength": {
        -        "exclusiveMinimum": 0,
        -        "maximum": 9007199254740991,
        -        "type": "integer"
        -      },
        -      "height": {
        -        "exclusiveMinimum": 0,
        -        "maximum": 9007199254740991,
        -        "type": "integer"
        -      },
        -      "imageAttached": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "mimeType": {
        -        "const": "image/png",
        -        "type": "string"
        -      },
        -      "preset": {
        -        "enum": [
        -          "story",
        -          "feed"
        -        ],
        -        "type": "string"
        -      },
        -      "publicCode": {
        -        "minLength": 1,
        -        "type": "string"
        -      },
        -      "receiptPath": {
        -        "minLength": 1,
        -        "type": "string"
        -      },
        -      "sha256": {
        -        "pattern": "^[0-9a-f]{64}$",
        -        "type": "string"
        -      },
        -      "status": {
        -        "const": "rendered",
        -        "type": "string"
        -      },
        -      "style": {
        -        "enum": [
        -          "thermal",
        -          "score"
        -        ],
        -        "type": "string"
        -      },
        -      "width": {
        -        "exclusiveMinimum": 0,
        -        "maximum": 9007199254740991,
        -        "type": "integer"
        -      }
        -    },
        -    "required": [
        -      "status",
        -      "mimeType",
        -      "preset",
        -      "style",
        -      "byteLength",
        -      "width",
        -      "height",
        -      "sha256",
        -      "imageAttached",
        -      "publicCode",
        -      "receiptPath"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "issues": {
        -        "items": {
        -          "additionalProperties": {},
        -          "properties": {
        -            "code": {
        -              "type": "string"
        -            },
        -            "field": {
        -              "type": "string"
        -            },
        -            "message": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "field",
        -            "code"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "status": {
        -        "const": "error",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "status",
        -      "issues"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "base64": {
        +        "type": "string"
        +      },
        +      "byteLength": {
        +        "exclusiveMinimum": 0,
        +        "maximum": 9007199254740991,
        +        "type": "integer"
        +      },
        +      "downloadExpiresAt": {
        +        "format": "date-time",
        +        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
        +        "type": "string"
        +      },
        +      "downloadUrl": {
        +        "format": "uri",
        +        "type": "string"
        +      },
        +      "height": {
        +        "exclusiveMinimum": 0,
        +        "maximum": 9007199254740991,
        +        "type": "integer"
        +      },
        +      "imageAttached": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "mimeType": {
        +        "const": "image/png",
        +        "type": "string"
        +      },
        +      "preset": {
        +        "enum": [
        +          "story",
        +          "feed"
        +        ],
        +        "type": "string"
        +      },
        +      "publicCode": {
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "receiptPath": {
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "sha256": {
        +        "pattern": "^[0-9a-f]{64}$",
        +        "type": "string"
        +      },
        +      "status": {
        +        "const": "rendered",
        +        "type": "string"
        +      },
        +      "style": {
        +        "enum": [
        +          "thermal",
        +          "score"
        +        ],
        +        "type": "string"
        +      },
        +      "width": {
        +        "exclusiveMinimum": 0,
        +        "maximum": 9007199254740991,
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "status",
        +      "mimeType",
        +      "preset",
        +      "style",
        +      "byteLength",
        +      "width",
        +      "height",
        +      "sha256",
        +      "imageAttached",
        +      "publicCode",
        +      "receiptPath",
        +      "downloadUrl",
        +      "downloadExpiresAt"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "issues": {
        +        "items": {
        +          "additionalProperties": {},
        +          "properties": {
        +            "code": {
        +              "type": "string"
        +            },
        +            "field": {
        +              "type": "string"
        +            },
        +            "message": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "field",
        +            "code"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "status": {
        +        "const": "error",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "status",
        +      "issues"
        +    ],
        +    "type": "object"
        +  }
        +]
  2. 3 tool updates
    • Changedcreate_basketball_receipt5 fields changed
      • changedInput schema / properties / awayEmblem / description
        Previous value: -"선택 원정 엠블럼 첨부. 서버가 원본 비율과 글자를 보존해 중앙 정렬하며, thermal은 엠블럼 내부만 4단계 회색조로 변환한다. 생략하면 중립 엠블럼을 사용한다."New value: +"선택 원정 엠블럼. 투명 배경 정사각형 캔버스에 실제 도안만 넣어 전달하는 것을 권장하며 원형 테두리·회색 원판을 미리 합성하지 않는다. 서버가 알파 전경의 실제 경계와 중심을 계산해 원형 안전영역 안에 비율 유지·자동 중앙 정렬하고, thermal은 전경만 4단계 회색조로 변환한다. 생략하면 중립 엠블럼을 사용한다."
      • changedInput schema / properties / awayEmblemFile / description
        Previous value: -"ChatGPT에 첨부한 원정팀 엠블럼. awayEmblem과 동시에 전달하지 않는다."New value: +"ChatGPT에 첨부한 원정팀 엠블럼. 투명 배경 정사각형 캔버스를 권장하고 원형 테두리·회색 원판은 미리 넣지 않는다. 서버가 실제 알파 전경을 원형 안전영역에 자동 중앙 정렬한다. awayEmblem과 동시에 전달하지 않는다."
      • changedInput schema / properties / homeEmblem / description
        Previous value: -"선택 홈 엠블럼 첨부. 서버가 원본 비율과 글자를 보존해 중앙 정렬하며, thermal은 엠블럼 내부만 4단계 회색조로 변환한다. 생략하면 중립 엠블럼을 사용한다."New value: +"선택 홈 엠블럼. 투명 배경 정사각형 캔버스에 실제 도안만 넣어 전달하는 것을 권장하며 원형 테두리·회색 원판을 미리 합성하지 않는다. 서버가 알파 전경의 실제 경계와 중심을 계산해 원형 안전영역 안에 비율 유지·자동 중앙 정렬하고, thermal은 전경만 4단계 회색조로 변환한다. 생략하면 중립 엠블럼을 사용한다."
      • changedInput schema / properties / homeEmblemFile / description
        Previous value: -"ChatGPT에 첨부한 홈팀 엠블럼. homeEmblem과 동시에 전달하지 않는다."New value: +"ChatGPT에 첨부한 홈팀 엠블럼. 투명 배경 정사각형 캔버스를 권장하고 원형 테두리·회색 원판은 미리 넣지 않는다. 서버가 실제 알파 전경을 원형 안전영역에 자동 중앙 정렬한다. homeEmblem과 동시에 전달하지 않는다."
      • changedInput schema / properties / preset / description
        Previous value: -"PNG 비율. story는 1080x1920, feed는 1080x1350."New value: +"PNG 출력 형식. thermal story는 종이 경계만 내보내며 찢긴 상·하단 바깥은 완전 투명하다. feed는 1080x1350 배경을 포함한다. score story는 1080x1920이다."
    • Addedget_my_boxtier_account
    • Addedlist_my_match_records
  3. 1 tool update
    • Changedcreate_basketball_receipt1 field changed
      • changedOutput schema / oneOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "base64": {
        -        "type": "string"
        -      },
        -      "byteLength": {
        -        "exclusiveMinimum": 0,
        -        "maximum": 9007199254740991,
        -        "type": "integer"
        -      },
        -      "height": {
        -        "exclusiveMinimum": 0,
        -        "maximum": 9007199254740991,
        -        "type": "integer"
        -      },
        -      "imageAttached": {
        -        "const": true,
        -        "type": "boolean"
        -      },
        -      "mimeType": {
        -        "const": "image/png",
        -        "type": "string"
        -      },
        -      "preset": {
        -        "enum": [
        -          "story",
        -          "feed"
        -        ],
        -        "type": "string"
        -      },
        -      "sha256": {
        -        "pattern": "^[0-9a-f]{64}$",
        -        "type": "string"
        -      },
        -      "status": {
        -        "const": "rendered",
        -        "type": "string"
        -      },
        -      "style": {
        -        "enum": [
        -          "thermal",
        -          "score"
        -        ],
        -        "type": "string"
        -      },
        -      "width": {
        -        "exclusiveMinimum": 0,
        -        "maximum": 9007199254740991,
        -        "type": "integer"
        -      }
        -    },
        -    "required": [
        -      "status",
        -      "mimeType",
        -      "preset",
        -      "style",
        -      "byteLength",
        -      "width",
        -      "height",
        -      "sha256",
        -      "imageAttached"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "issues": {
        -        "items": {
        -          "additionalProperties": {},
        -          "properties": {
        -            "code": {
        -              "type": "string"
        -            },
        -            "field": {
        -              "type": "string"
        -            },
        -            "message": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "field",
        -            "code"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "status": {
        -        "const": "error",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "status",
        -      "issues"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "base64": {
        +        "type": "string"
        +      },
        +      "byteLength": {
        +        "exclusiveMinimum": 0,
        +        "maximum": 9007199254740991,
        +        "type": "integer"
        +      },
        +      "height": {
        +        "exclusiveMinimum": 0,
        +        "maximum": 9007199254740991,
        +        "type": "integer"
        +      },
        +      "imageAttached": {
        +        "const": true,
        +        "type": "boolean"
        +      },
        +      "mimeType": {
        +        "const": "image/png",
        +        "type": "string"
        +      },
        +      "preset": {
        +        "enum": [
        +          "story",
        +          "feed"
        +        ],
        +        "type": "string"
        +      },
        +      "publicCode": {
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "receiptPath": {
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "sha256": {
        +        "pattern": "^[0-9a-f]{64}$",
        +        "type": "string"
        +      },
        +      "status": {
        +        "const": "rendered",
        +        "type": "string"
        +      },
        +      "style": {
        +        "enum": [
        +          "thermal",
        +          "score"
        +        ],
        +        "type": "string"
        +      },
        +      "width": {
        +        "exclusiveMinimum": 0,
        +        "maximum": 9007199254740991,
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "status",
        +      "mimeType",
        +      "preset",
        +      "style",
        +      "byteLength",
        +      "width",
        +      "height",
        +      "sha256",
        +      "imageAttached",
        +      "publicCode",
        +      "receiptPath"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "issues": {
        +        "items": {
        +          "additionalProperties": {},
        +          "properties": {
        +            "code": {
        +              "type": "string"
        +            },
        +            "field": {
        +              "type": "string"
        +            },
        +            "message": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "field",
        +            "code"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "status": {
        +        "const": "error",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "status",
        +      "issues"
        +    ],
        +    "type": "object"
        +  }
        +]
  4. 1 tool update
    • Changedcreate_basketball_receipt1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "oneOf": [
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "base64": {
        +          "type": "string"
        +        },
        +        "byteLength": {
        +          "exclusiveMinimum": 0,
        +          "maximum": 9007199254740991,
        +          "type": "integer"
        +        },
        +        "height": {
        +          "exclusiveMinimum": 0,
        +          "maximum": 9007199254740991,
        +          "type": "integer"
        +        },
        +        "imageAttached": {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        "mimeType": {
        +          "const": "image/png",
        +          "type": "string"
        +        },
        +        "preset": {
        +          "enum": [
        +            "story",
        +            "feed"
        +          ],
        +          "type": "string"
        +        },
        +        "sha256": {
        +          "pattern": "^[0-9a-f]{64}$",
        +          "type": "string"
        +        },
        +        "status": {
        +          "const": "rendered",
        +          "type": "string"
        +        },
        +        "style": {
        +          "enum": [
        +            "thermal",
        +            "score"
        +          ],
        +          "type": "string"
        +        },
        +        "width": {
        +          "exclusiveMinimum": 0,
        +          "maximum": 9007199254740991,
        +          "type": "integer"
        +        }
        +      },
        +      "required": [
        +        "status",
        +        "mimeType",
        +        "preset",
        +        "style",
        +        "byteLength",
        +        "width",
        +        "height",
        +        "sha256",
        +        "imageAttached"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "issues": {
        +          "items": {
        +            "additionalProperties": {},
        +            "properties": {
        +              "code": {
        +                "type": "string"
        +              },
        +              "field": {
        +                "type": "string"
        +              },
        +              "message": {
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "field",
        +              "code"
        +            ],
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "status": {
        +          "const": "error",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "status",
        +        "issues"
        +      ],
        +      "type": "object"
        +    }
        +  ],
        +  "type": "object"
        +}
  5. 1 tool update
    • Changedcreate_basketball_receipt10 fields changed
      • changedInput schema / properties / awayEmblem / description
        Previous value: -"선택 원정 엠블럼. 원본 비율과 글자를 보존해 전처리한 WebP를 중앙 정렬하며, thermal은 엠블럼 내부만 4단계 회색조로 변환한다. 생략하면 중립 엠블럼을 사용한다."New value: +"선택 원정 엠블럼 첨부. 서버가 원본 비율과 글자를 보존해 중앙 정렬하며, thermal은 엠블럼 내부만 4단계 회색조로 변환한다. 생략하면 중립 엠블럼을 사용한다."
      • changedInput schema / properties / awayEmblem / properties / imageBase64 / description
        Previous value: -"AI가 투명 정사각형 WebP로 전처리한 엠블럼의 raw Base64. data: 접두사 없이 최대 320x320px, 96KB."New value: +"사용자가 첨부한 JPG, PNG 또는 WebP 엠블럼의 raw Base64. data: 접두사 없이 전달한다."
      • changedInput schema / properties / awayEmblem / properties / imageBase64 / maxLength
        Previous value: -132000New value: +4194304
      • addedInput schema / properties / awayEmblem / properties / mimeType
        Added value: +{
        +  "description": "첨부 이미지의 MIME 형식. 서버는 실제 이미지 바이트도 검증한다.",
        +  "enum": [
        +    "image/jpeg",
        +    "image/png",
        +    "image/webp"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / awayEmblemFile
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "ChatGPT에 첨부한 원정팀 엠블럼. awayEmblem과 동시에 전달하지 않는다.",
        +  "properties": {
        +    "download_url": {
        +      "description": "ChatGPT가 제공하는 임시 파일 다운로드 URL.",
        +      "format": "uri",
        +      "type": "string"
        +    },
        +    "file_id": {
        +      "description": "ChatGPT 첨부파일 ID.",
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "file_name": {
        +      "description": "첨부파일 이름.",
        +      "type": "string"
        +    },
        +    "mime_type": {
        +      "description": "첨부파일 MIME 형식.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "download_url",
        +    "file_id"
        +  ],
        +  "type": "object"
        +}
      • changedInput schema / properties / homeEmblem / description
        Previous value: -"선택 홈 엠블럼. 원본 비율과 글자를 보존해 전처리한 WebP를 중앙 정렬하며, thermal은 엠블럼 내부만 4단계 회색조로 변환한다. 생략하면 중립 엠블럼을 사용한다."New value: +"선택 홈 엠블럼 첨부. 서버가 원본 비율과 글자를 보존해 중앙 정렬하며, thermal은 엠블럼 내부만 4단계 회색조로 변환한다. 생략하면 중립 엠블럼을 사용한다."
      • changedInput schema / properties / homeEmblem / properties / imageBase64 / description
        Previous value: -"AI가 투명 정사각형 WebP로 전처리한 엠블럼의 raw Base64. data: 접두사 없이 최대 320x320px, 96KB."New value: +"사용자가 첨부한 JPG, PNG 또는 WebP 엠블럼의 raw Base64. data: 접두사 없이 전달한다."
      • changedInput schema / properties / homeEmblem / properties / imageBase64 / maxLength
        Previous value: -132000New value: +4194304
      • addedInput schema / properties / homeEmblem / properties / mimeType
        Added value: +{
        +  "description": "첨부 이미지의 MIME 형식. 서버는 실제 이미지 바이트도 검증한다.",
        +  "enum": [
        +    "image/jpeg",
        +    "image/png",
        +    "image/webp"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / homeEmblemFile
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "ChatGPT에 첨부한 홈팀 엠블럼. homeEmblem과 동시에 전달하지 않는다.",
        +  "properties": {
        +    "download_url": {
        +      "description": "ChatGPT가 제공하는 임시 파일 다운로드 URL.",
        +      "format": "uri",
        +      "type": "string"
        +    },
        +    "file_id": {
        +      "description": "ChatGPT 첨부파일 ID.",
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "file_name": {
        +      "description": "첨부파일 이름.",
        +      "type": "string"
        +    },
        +    "mime_type": {
        +      "description": "첨부파일 MIME 형식.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "download_url",
        +    "file_id"
        +  ],
        +  "type": "object"
        +}
  6. 3 tool updates
    • Addedfetch
    • Removedlist_my_match_records
    • Addedsearch
  7. 1 tool update
    • Addedlist_my_match_records
  8. 1 tool update
    • Changedcreate_basketball_receipt2 fields changed
      • changedInput schema / properties / awayEmblem / description
        Previous value: -"선택 원정 엠블럼. 원본 비율과 글자를 보존해 전처리한 WebP를 중앙 정렬하며, thermal은 최종 4단계 회색조로 변환한다."New value: +"선택 원정 엠블럼. 원본 비율과 글자를 보존해 전처리한 WebP를 중앙 정렬하며, thermal은 엠블럼 내부만 4단계 회색조로 변환한다. 생략하면 중립 엠블럼을 사용한다."
      • changedInput schema / properties / homeEmblem / description
        Previous value: -"선택 홈 엠블럼. 원본 비율과 글자를 보존해 전처리한 WebP를 중앙 정렬하며, thermal은 최종 4단계 회색조로 변환한다."New value: +"선택 홈 엠블럼. 원본 비율과 글자를 보존해 전처리한 WebP를 중앙 정렬하며, thermal은 엠블럼 내부만 4단계 회색조로 변환한다. 생략하면 중립 엠블럼을 사용한다."
  9. 1 tool update
    • First observedcreate_basketball_receipt

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Generate annotated post-trade candlestick review-chart PNGs from broker or exchange fills. Includes capability checks, no-charge preflight validation, and chart rendering; no signals or order execution.
    3
    20
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    A pay-per-pick World Cup edge API on Injective EVM where the x402 USDC receipt IS the pre-kickoff timestamp, plus a free public ledger that CLV-scores every settled pick — losses included.
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    MCP server that wraps SportsGameOdds and BALLDONTLIE APIs to provide sports scheduling, odds, injuries, and team statistics tools for building TKB Picks threads.
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Lets MCP clients create professional receipt PDFs, return structured receipt data, and check prepaid API credit through a remote endpoint.
    1
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.