Skip to main content
Glama
DHKim327

Cyphers MCP Server

by DHKim327

Cyphers MCP Server (Python)

Neople Cyphers Open API를 위한 MCP (Model Context Protocol) 서버입니다.

📋 소개

이 MCP 서버는 Neople의 Cyphers Open API를 Claude, Cursor, Cline 등의 AI 어시스턴트에서 쉽게 사용할 수 있도록 합니다. 플레이어 검색, 매칭 기록 조회, 랭킹 조회, 아이템 검색 등 다양한 기능을 제공합니다.

Related MCP server: MCP Riot Server

✨ 주요 기능

📚 Resources (게임 컨텍스트)

MCP Server가 LLM에게 사이퍼즈 게임에 대한 컨텍스트를 제공합니다:

Resource URI

설명

cyphers://game-context

게임 규칙, 시스템, 용어, 메타 분석 등

cyphers://characters

캐릭터 목록, 역할 분류, 평가 지표 등

LLM이 API 데이터를 받았을 때 올바르게 해석하고 분석할 수 있도록 도와줍니다.

🔧 Player Tools

  • cy_players_search - 닉네임으로 플레이어 검색

  • cy_players_get - 플레이어 상세 정보 조회

  • cy_players_matches - 플레이어 매칭 기록 조회

Match Tools

  • cy_matches_get - 매치 상세 정보 조회

Ranking Tools

  • cy_ranking_ratingpoint - 통합 랭킹 조회

  • cy_ranking_characters - 캐릭터별 랭킹 조회

  • cy_ranking_tsj - 투신전 랭킹 조회

Item Tools

  • cy_battleitems_search - 아이템 검색

  • cy_battleitems_get - 아이템 상세 조회

  • cy_battleitems_multi_get - 여러 아이템 한번에 조회 (최대 30개)

Character Tools

  • cy_characters_list - 모든 캐릭터 목록 조회

Image Tools

  • cy_images_character_url - 캐릭터 이미지 URL 생성

  • cy_images_item_url - 아이템 이미지 URL 생성

🚀 설치

필수 요구사항

  • Python 3.10 이상

  • pip 또는 uv

설치 방법

# 저장소 클론
git clone https://github.com/DHKim327/CyphersMCPServer.git
cd CyphersMCPServer

# venv 환경 생성 및 활성화
python3 -m venv .venv
source .venv/bin/activate  # Linux/macOS
# .venv\Scripts\activate   # Windows

# 의존성 설치
pip install -e .

개발 의존성 설치

pip install -e ".[dev]"

⚙️ 설정

1. API 키 발급

  1. Neople Developers에 가입

  2. 애플리케이션 등록

  3. Cyphers API 키 발급

2. 환경변수 설정

Linux/macOS:

export CYPHERS_API_KEY="your-api-key-here"

Windows:

set CYPHERS_API_KEY=your-api-key-here

3. 서버 실행

# 직접 실행
python -m cyphers_mcp.server

# 또는 설치 후 명령어로 실행
cyphers-mcp

🔧 MCP 클라이언트 설정

Cursor 설정

Cursor 설정 파일에 추가:

macOS/Linux: ~/.cursor/mcp.json Windows: %APPDATA%\Cursor\mcp.json

{
  "mcpServers": {
    "cyphers": {
      "command": "python",
      "args": ["-m", "cyphers_mcp.server"],
      "cwd": "/path/to/CyphersMCPServer",
      "env": {
        "CYPHERS_API_KEY": "your-api-key-here"
      }
    }
  }
}

Claude Desktop 설정

Claude Desktop 설정 파일에 추가:

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

{
  "mcpServers": {
    "cyphers": {
      "command": "python",
      "args": ["-m", "cyphers_mcp.server"],
      "cwd": "/home/kdhadsfasdf/CyphersMCPServer",
      "env": {
        "CYPHERS_API_KEY": "your-api-key-here"
      }
    }
  }
}

Cline (VS Code Extension) 설정

  1. VS Code에서 Cline 확장 설치

  2. Cline 설정 열기

  3. MCP 서버 추가:

    • 명령: python -m cyphers_mcp.server

    • 환경변수: CYPHERS_API_KEY=your-api-key-here

📖 사용 예시

플레이어 검색

닉네임 "플레이어이름"으로 사이퍼즈 플레이어를 검색해줘

최근 전적 조회

플레이어 ID "xxx"의 최근 10경기를 조회하고 승률을 분석해줘

랭킹 조회

현재 레이팅 상위 10명의 랭킹을 보여줘

🏗️ 프로젝트 구조

CyphersMCPServer/
├── cyphers_mcp/
│   ├── __init__.py       # 패키지 초기화
│   ├── server.py         # MCP 서버 메인
│   ├── api_client.py     # Cyphers API 클라이언트
│   ├── types.py          # 타입 정의
│   ├── cache.py          # 캐싱 관리
│   └── rate_limiter.py   # 레이트 리밋 관리
├── docs/                 # 게임 컨텍스트 문서 (MCP Resources)
│   ├── cyphers_game_context.md  # 게임 규칙, 용어, 메타
│   └── characters_reference.md  # 캐릭터 목록, 역할 분류
├── note/                 # 프로젝트 노트
├── pyproject.toml        # Python 패키지 설정
├── README.md             # 이 문서
└── smithery.json         # Smithery 배포 설정

🔧 고급 기능

캐싱

서버는 자동으로 응답을 캐싱하여 API 호출을 최적화합니다:

  • 캐릭터 목록: 24시간

  • 아이템 상세: 6시간

  • 플레이어 정보: 5분

  • 랭킹: 1분

  • 매치 기록: 30초

레이트 리밋

Neople API의 레이트 리밋을 준수하기 위해 자동으로 요청을 제한합니다:

  • 초당 최대 100건 (보수적 설정)

  • 분당 최대 5,000건

  • 시간당 최대 300,000건

🐛 문제 해결

API 키 오류

Error: CYPHERS_API_KEY environment variable is required

→ 환경변수 CYPHERS_API_KEY가 설정되었는지 확인하세요.

의존성 오류

# 의존성 재설치
pip install -e . --force-reinstall

MCP 연결 오류

  1. Python 버전 확인 (3.10 이상 필요)

  2. 패키지가 제대로 설치되었는지 확인

  3. 환경변수 경로가 올바른지 확인

📚 참고 자료

📄 라이선스

MIT License

👤 작성자

DHKim327

🔗 링크

Available Tools

13 tools
cy_battleitems_getC

아이템 ID로 아이템 상세 정보를 조회합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemIdYes아이템 ID

TDQS

C2.9/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 states this is a retrieval operation ('조회합니다'), implying it's likely read-only and non-destructive, but doesn't confirm this or address other aspects like authentication needs, rate limits, error handling, or response format. For a tool with no annotations, this leaves significant gaps in understanding its 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, clear sentence that efficiently conveys the tool's purpose without unnecessary words. It's front-loaded with the core action and resource, making it easy to understand at a glance. Every part of the sentence earns its place by specifying the key elements.

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?

Given the tool's complexity (simple retrieval with one parameter), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what 'detailed information' includes, how results are structured, or any behavioral traits like safety or performance. For a tool with no structured support, the description should provide more context to be fully helpful.

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?

The description adds minimal meaning beyond the input schema. It mentions '아이템 ID' (item ID), which aligns with the schema's parameter 'itemId' described as '아이템 ID.' With 100% schema description coverage, the schema already documents the parameter adequately. The description doesn't provide additional context like format examples or constraints, so it meets the baseline for high schema coverage.

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 tool's purpose: '아이템 ID로 아이템 상세 정보를 조회합니다' translates to 'Retrieve detailed item information by item ID.' This specifies the verb (retrieve/조회), resource (item/아이템), and scope (detailed information/상세 정보). However, it doesn't explicitly differentiate from sibling tools like 'cy_battleitems_multi_get' or 'cy_battleitems_search,' which likely retrieve multiple items or search items respectively.

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 provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools such as 'cy_battleitems_multi_get' for multiple items or 'cy_battleitems_search' for searching, nor does it specify prerequisites like needing a specific item ID. Usage is implied by the description but not explicitly stated.

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

cy_battleitems_multi_getC

여러 아이템의 상세 정보를 한 번에 조회합니다 (최대 30개).

ParametersJSON Schema
NameRequiredDescriptionDefault
itemIdsYes아이템 ID 배열 (최대 30개)

TDQS

C2.9/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. It mentions the batch size limit (30 items), which is useful behavioral context. However, it lacks details on permissions, rate limits, error handling, or the format of returned data. For a read operation with no annotation coverage, this leaves significant gaps in understanding how the tool behaves.

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, efficient sentence that front-loads the core purpose and includes a key constraint (30-item limit). There is no wasted wording, and it is appropriately sized for the tool's complexity.

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?

Given no annotations and no output schema, the description is incomplete. It covers the basic purpose and batch limit but omits critical details like return format, error conditions, or how results are structured. For a tool that retrieves multiple items, more context on output behavior is needed to be fully helpful.

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?

The input schema has 100% description coverage, with the parameter 'itemIds' fully documented in the schema. The description adds no additional semantic context about parameters beyond implying batch retrieval. Since the schema does the heavy lifting, the baseline score of 3 is appropriate, as the description does not compensate with extra insights.

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 tool's purpose: '여러 아이템의 상세 정보를 한 번에 조회합니다' (retrieves detailed information for multiple items at once). It specifies the verb '조회합니다' (retrieve/look up) and resource '아이템의 상세 정보' (detailed item information), but does not explicitly differentiate from sibling tools like cy_battleitems_get (which likely retrieves single items).

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 provides no guidance on when to use this tool versus alternatives. It mentions a limit of 30 items but does not specify scenarios where batch retrieval is preferred over single-item lookups (e.g., cy_battleitems_get) or search operations (e.g., cy_battleitems_search). No prerequisites or exclusions are stated.

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

cy_characters_listB

모든 캐릭터 목록을 조회합니다.

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?

With no annotations provided, the description carries full burden for behavioral disclosure. It only states what the tool does ('retrieves all character list') without describing any behavioral traits like pagination, rate limits, authentication requirements, data freshness, or what format the list returns. This leaves significant gaps for an agent to understand how to properly use this tool.

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, efficient sentence that directly states the tool's purpose without any unnecessary words. It's appropriately sized for a simple list-retrieval tool with no parameters.

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 list-retrieval tool with no annotations and no output schema, the description is insufficient. It doesn't explain what the return value looks like (array format, fields included), whether there are limitations (max results, pagination), or any behavioral constraints. The agent would need to guess about the output structure and usage patterns.

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 with 100% schema description coverage, so the schema already fully documents the parameter situation. The description appropriately doesn't waste space discussing non-existent parameters. Baseline for zero parameters is 4, and the description doesn't detract from this.

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 action ('조회합니다' - retrieves/views) and resource ('모든 캐릭터 목록' - all character list). It's specific about retrieving a complete list rather than filtered results. However, it doesn't explicitly differentiate from sibling tools like 'cy_ranking_characters' which might also involve character 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 about when to use this tool versus alternatives. The description doesn't mention any prerequisites, context for usage, or comparison with sibling tools like 'cy_ranking_characters' or 'cy_players_get' that might also provide character-related information.

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

cy_images_character_urlC

캐릭터 이미지 URL을 생성합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
characterIdYes캐릭터 ID
zoomNo줌 레벨 (1-3)

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 burden of behavioral disclosure. It states the tool generates a URL, implying a read-only operation that returns a resource, but does not disclose details like authentication needs, rate limits, error conditions, or what the generated URL represents (e.g., a direct image link, API endpoint). For a tool with no annotations, this leaves significant behavioral gaps.

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, efficient sentence that directly states the tool's purpose without unnecessary words. It is appropriately sized for a simple tool, though it could be more informative. There is no structural issue, but it lacks depth that might warrant additional sentences for clarity.

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?

Given the tool has no annotations, no output schema, and a simple input schema, the description is incomplete. It does not explain what the generated URL is used for, any dependencies, or output details (e.g., URL format, image type). For a tool that generates resources, more context is needed to ensure proper use without structured data to fill gaps.

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?

The description adds no parameter semantics beyond what the input schema provides. Schema description coverage is 100%, with clear documentation for 'characterId' and 'zoom' (including range for zoom). Since the schema fully describes parameters, the baseline score is 3, as the description does not compensate but also does not detract from the schema's completeness.

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 the tool's purpose ('캐릭터 이미지 URL을 생성합니다' translates to 'Generates character image URL'), which is clear but basic. It specifies the verb ('생성합니다' - generates) and resource ('캐릭터 이미지 URL' - character image URL), but does not differentiate from sibling tools like 'cy_images_item_url' (which likely generates item image URLs) or explain scope beyond the literal translation. The purpose is understandable but lacks specificity about what makes this tool unique.

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 provides no guidance on when to use this tool versus alternatives. It does not mention sibling tools (e.g., 'cy_images_item_url' for items vs. characters, or 'cy_characters_list' for listing characters), prerequisites, or exclusions. Usage is implied only by the tool name and description, with no explicit context for selection among related tools.

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

cy_images_item_urlC

아이템 이미지 URL을 생성합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemIdYes아이템 ID

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states what the tool does (generates URLs) but doesn't reveal any behavioral traits - no information about whether this requires authentication, rate limits, what format the URL returns, whether it's a read-only operation, or any side effects. For a tool with zero annotation coverage, this is insufficient.

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 extremely concise - a single Korean sentence that directly states the tool's function. There's zero wasted verbiage and it's front-loaded with the core purpose. It could potentially benefit from slightly more context, but as a standalone statement it's efficient.

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?

Given no annotations, no output schema, and a simple single-parameter tool, the description is incomplete. It doesn't explain what the generated URL looks like, whether it's a direct image link or requires additional processing, what authentication might be needed, or how this relates to the sibling character URL tool. For even a simple tool, more context would be helpful.

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% with the single parameter 'itemId' well-documented in the schema. The description doesn't add any parameter semantics beyond what the schema already provides - it doesn't explain what constitutes a valid itemId, format requirements, or where to obtain itemIds. Baseline 3 is appropriate when schema does the heavy lifting.

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 the purpose as 'generates item image URL' which is a clear verb+resource combination. However, it doesn't distinguish this tool from its sibling 'cy_images_character_url' which appears to serve a similar function for character images rather than item images. The purpose is understandable but lacks sibling differentiation.

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 provides no guidance on when to use this tool versus alternatives. There's no mention of prerequisites, when-not-to-use scenarios, or how this differs from other image-related tools like 'cy_images_character_url'. The agent must infer usage from the tool name alone.

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

cy_matches_getC

매치 ID로 매칭 상세 정보를 조회합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
matchIdYes매치 ID

TDQS

C2.9/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 only states the retrieval action without mentioning whether this is a read-only operation, if it requires authentication, rate limits, error conditions, or what the output format might be. For a tool with no annotation coverage, this is a significant gap in transparency.

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, efficient sentence that directly states the tool's purpose without any fluff or redundancy. It's appropriately sized and front-loaded, making it easy for an agent to parse quickly.

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?

Given the lack of annotations and output schema, the description is incomplete. It doesn't address behavioral aspects like safety, permissions, or response format, which are crucial for a retrieval tool. While the parameter is well-covered, the overall context for effective tool use is insufficient.

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?

The schema description coverage is 100%, with the single parameter 'matchId' documented in the schema. The description adds minimal value by implying the parameter is used for lookup ('매치 ID로'), but doesn't provide additional context like format examples or constraints beyond what the schema already states, meeting the baseline for high coverage.

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 tool's purpose with a specific verb ('조회합니다' - retrieve/look up) and resource ('매칭 상세 정보' - match details), and identifies the key input ('매치 ID로' - by match ID). However, it doesn't differentiate from sibling tools like 'cy_players_matches' which might also retrieve match-related data, preventing a perfect score.

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 provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, exclusions, or comparisons to sibling tools (e.g., 'cy_players_matches' for player-specific matches or 'cy_battleitems_get' for item details), leaving the agent with no usage context beyond the basic purpose.

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

cy_players_getC

플레이어 ID로 플레이어 상세 정보를 조회합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
playerIdYes플레이어 ID

TDQS

C2.9/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 states this is a retrieval operation ('조회'), implying it's likely read-only and non-destructive, but doesn't confirm this or address other behavioral aspects like authentication needs, rate limits, error handling, or response format. For a tool with zero annotation coverage, this is a significant gap in transparency.

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, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized for a simple lookup tool and front-loaded with the core functionality. Every part of the sentence earns its place by specifying the action, input, and output.

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?

Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what '상세 정보' (detailed information) includes, such as player stats, level, or other attributes, which the agent would need to understand the tool's utility. For a retrieval tool with no structured output documentation, more context on return values is needed to be complete.

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?

The schema description coverage is 100%, with the parameter 'playerId' fully documented in the schema as '플레이어 ID'. The description adds no additional semantic context beyond what's in the schema (e.g., format examples, validation rules, or relationship to other data). According to the rules, with high schema coverage, the baseline is 3 even without param info in the description.

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 tool's purpose: '플레이어 ID로 플레이어 상세 정보를 조회합니다' (Retrieves detailed player information using player ID). It specifies the verb (조회/retrieve), resource (플레이어 상세 정보/player detailed information), and key input (player ID). However, it doesn't explicitly differentiate from sibling tools like cy_players_search or cy_players_matches, which also involve player 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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like cy_players_search (which might search by name instead of ID) or cy_players_matches (which might retrieve match history), leaving the agent to infer usage from the name alone. There's no explicit when/when-not or alternative tool recommendations.

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

cy_players_matchesC

플레이어의 매칭 기록을 조회합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
playerIdYes플레이어 ID
gameTypeIdNo게임 타입 ID
startDateNo시작 날짜 (YYYYMMDD 형식, 최대 90일)
endDateNo종료 날짜 (YYYYMMDD 형식, 최대 90일)
nextNo페이지네이션을 위한 next 토큰
limitNo결과 개수 제한

TDQS

C2.9/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 only states it's a retrieval operation ('조회합니다'), but doesn't mention any behavioral traits like pagination (implied by the 'next' parameter), rate limits, authentication needs, or what the return format looks like. This is a significant gap for a tool with 6 parameters and no output schema.

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, efficient sentence in Korean that directly states the tool's purpose without any fluff or redundancy. It's appropriately sized and front-loaded, making it easy for an agent to parse quickly.

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?

Given the complexity (6 parameters, no output schema, no annotations), the description is incomplete. It doesn't explain the return values, pagination behavior, or any constraints beyond what's implied in the schema. For a retrieval tool with multiple filtering options, more context is needed to help the agent use it effectively.

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?

The input schema has 100% description coverage, so the schema already documents all parameters thoroughly. The description adds no additional meaning beyond what's in the schema, such as explaining relationships between parameters (e.g., date range constraints) or usage examples. Baseline 3 is appropriate 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 clearly states the tool's purpose as 'retrieves player match records' (플레이어의 매칭 기록을 조회합니다), which is a specific verb+resource combination. However, it doesn't distinguish this from sibling tools like 'cy_matches_get' or 'cy_players_get', which might have overlapping functionality, so it doesn't reach the highest score.

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 provides no guidance on when to use this tool versus alternatives. With sibling tools like 'cy_matches_get' and 'cy_players_get' available, there's no indication of context, prerequisites, or exclusions, leaving the agent to guess based on the tool name alone.

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

cy_ranking_charactersC

캐릭터별 랭킹을 조회합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
characterIdYes캐릭터 ID
rankingTypeYes랭킹 타입
offsetNo오프셋
limitNo결과 개수 제한

TDQS

C2.7/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 only states that it retrieves rankings, without mentioning aspects like whether it's read-only, if it requires authentication, rate limits, pagination behavior (implied by offset/limit but not explained), or error handling. For a tool with 4 parameters and no annotations, this is a significant gap in transparency.

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, efficient sentence in Korean that directly states the tool's function without unnecessary words. It's front-loaded and appropriately sized for its purpose, with no wasted text. This makes it easy to parse quickly.

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?

Given the tool has 4 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain the ranking system, return format, or behavioral traits. While conciseness is good, more context is needed for effective use, especially with sibling ranking tools that might overlap in functionality.

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%, with clear descriptions for all parameters (characterId, rankingType, offset, limit). The description adds no additional meaning beyond the schema, such as explaining valid values for rankingType or how offset/limit affect results. Since the schema is well-documented, the baseline score of 3 is appropriate, but the description doesn't enhance parameter understanding.

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 '캐릭터별 랭킹을 조회합니다' (Retrieves rankings by character) states the basic action (retrieve) and resource (character rankings), which is clear but vague. It doesn't specify what kind of rankings (e.g., competitive, popularity) or distinguish from sibling tools like cy_ranking_ratingpoint and cy_ranking_tsj, which also handle rankings. The purpose is understandable but lacks specificity.

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 alternatives. It doesn't mention sibling tools like cy_ranking_ratingpoint or cy_ranking_tsj, nor does it provide context such as prerequisites or exclusions. The description only states what it does, leaving the agent to infer usage from the tool name and parameters alone.

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

cy_ranking_ratingpointC

통합 랭킹(레이팅 포인트)을 조회합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
playerIdNo플레이어 ID
nicknameNo플레이어 닉네임
offsetNo오프셋
limitNo결과 개수 제한

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It only states it retrieves data without describing response format, pagination behavior (though offset/limit parameters suggest pagination), error conditions, or performance characteristics. For a read operation with 4 parameters, this leaves significant behavioral gaps.

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, efficient sentence in Korean that directly states the tool's purpose. There's no wasted language or unnecessary elaboration - every word contributes to understanding what the tool does.

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 4 parameters, no annotations, and no output schema, the description is insufficiently complete. It doesn't explain what 'integrated ranking/rating points' means, how results are structured, whether all parameters are optional (as indicated by required: []), or what happens when multiple filtering parameters are provided together.

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 schema fully documents all 4 parameters. The description adds no additional parameter context beyond what's in the schema. According to scoring rules, when schema coverage is high (>80%), the baseline is 3 even with no parameter information in the description.

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 action ('조회합니다' - retrieves/queries) and the resource ('통합 랭킹(레이팅 포인트)' - integrated ranking/rating points). It distinguishes from some siblings like cy_battleitems_get or cy_characters_list by specifying ranking data, but doesn't explicitly differentiate from cy_ranking_characters or cy_ranking_tsj which also retrieve ranking 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?

The description provides no guidance on when to use this tool versus alternatives. There's no mention of when this ranking type is appropriate compared to cy_ranking_characters or cy_ranking_tsj, nor any prerequisites or constraints for usage.

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

cy_ranking_tsjC

투신전 랭킹을 조회합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
tsjTypeYes투신전 타입
offsetNo오프셋
limitNo결과 개수 제한

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 burden of behavioral disclosure. It only states that it retrieves ranking data, without mentioning whether this is a read-only operation, if it requires authentication, rate limits, or what the return format looks like. For a tool with no annotations, this is a significant gap in behavioral context.

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, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized for a simple retrieval tool, though it could be slightly more informative without losing conciseness.

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?

Given no annotations and no output schema, the description is incomplete. It doesn't explain what the ranking data includes, how it's structured, or any behavioral traits. For a tool with three parameters and ranking functionality, more context is needed to help the agent understand the full scope and usage.

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%, with all parameters documented in the schema (tsjType, offset, limit). The description adds no additional meaning about parameters beyond what the schema provides, such as explaining what '투신전' entails or how offset/limit affect results. Baseline 3 is appropriate since the schema does the heavy lifting.

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 the purpose as '투신전 랭킹을 조회합니다' (retrieve 투신전 ranking), which is a clear verb+resource combination. However, it doesn't differentiate from sibling tools like 'cy_ranking_characters' or 'cy_ranking_ratingpoint', leaving ambiguity about what type of ranking this specifically provides. The purpose is understandable but lacks sibling distinction.

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 use this tool versus alternatives. The description doesn't mention any context, prerequisites, or exclusions, and it doesn't reference sibling ranking tools to help the agent choose appropriately. This leaves the agent without usage direction.

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. Dates show when Glama detected each change.

  1. 13 tool updatesv1.0.0
    • First observedcy_battleitems_get
    • First observedcy_battleitems_multi_get
    • First observedcy_battleitems_search
    • First observedcy_characters_list
    • First observedcy_images_character_url
    • First observedcy_images_item_url
    • First observedcy_matches_get
    • First observedcy_players_get
    • First observedcy_players_matches
    • First observedcy_players_search
    • First observedcy_ranking_characters
    • First observedcy_ranking_ratingpoint
    • First observedcy_ranking_tsj

TDQS

B3.2/5.0
Disambiguation5/5

Every tool has a clearly distinct purpose with no ambiguity. Tools are organized by resource type (battleitems, characters, images, matches, players, ranking) and specific actions (get, multi_get, search, list, url, matches, ranking types), making it easy for an agent to select the correct one without confusion.

Naming Consistency5/5

All tool names follow a consistent 'cy_resource_action' pattern using snake_case throughout. The naming convention is predictable and readable, with no deviations in style or structure across the 13 tools.

Tool Count5/5

With 13 tools, the count is well-scoped for a game-related server covering items, characters, images, matches, players, and rankings. Each tool earns its place by addressing specific needs without being overwhelming or insufficient for the domain.

Completeness4/5

The tool surface provides comprehensive coverage for querying and retrieving data across multiple game domains, with minor gaps such as no update or delete operations (which may be intentional for a read-only API) and no direct character detail lookup beyond listing. Agents can work around these with the available tools.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    C
    maintenance
    A community-developed Model Context Protocol server that integrates with the Riot Games API to provide League of Legends data, enabling AI assistants to retrieve player information, ranked stats, champion mastery, and match summaries through natural language queries.
    5
    27
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that integrates with the official Clash Royale API to provide real-time data on players, clans, cards, and tournaments. It enables users to query battle logs, chest cycles, and global rankings directly through Claude Desktop or Claude Code.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that integrates EVE Online's ESI API with AI assistants to enable natural language interaction with character data, market information, and assets. It provides 22 tools for managing skills, wallet balances, ship fittings, and more directly through AI-powered clients.
    2
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/DHKim327/CyphersMCPServer'

If you have feedback or need assistance with the MCP directory API, please join our Discord server