Skip to main content
Glama
ruchiayeon

Telegram MCP Server & Channel Monitor

by ruchiayeon

Telegram MCP Server & Channel Monitor

Telegram Bot API 기반 MCP 도구 서버 + Telethon User API 기반 채널 실시간 모니터링 시스템.


📁 파일 구조

.
├── telegram.py              # 코어 모듈 (mcp, _tg, _err, config 로드)
├── tg_messages.py           # 메시지 CRUD 도구 (9개)
├── tg_media.py              # 미디어 전송 도구 (9개)
├── tg_chat.py               # 채팅 정보/관리 도구 (8개)
├── tg_interactive.py        # 인터랙티브/유틸 도구 (9개)
├── telegram_extended.py     # MCP 서버 진입점 (총 35개 도구)
├── telegram_monitor.py      # 채널 실시간 모니터링 (메시지 로깅)
├── telegram_config.json     # 사용자별 봇 설정 + 공통 설정
├── pyproject.toml           # 의존성 관리
└── README.md                # 이 문서

Related MCP server: Better Telegram MCP

1. 환경 설정

telegram_config.json 설정 (필수)

이 파일이 없으면 MCP 서버와 모니터가 실행되지 않습니다. 반드시 프로젝트 루트(telegram-mcp/)에 telegram_config.json을 생성하고, 최소 1명의 사용자 봇 정보를 입력한 뒤 사용하세요.

모든 설정은 telegram_config.json 파일 하나로 관리합니다.

{
  "default_user": "gayeon",
  "settings": {
    "monitor_mode": "buffer",
    "buffer_minutes": 5,
    "immediate_debounce_sec": 3,
    "buffer_max_messages": 50,
    "session_name": "telegram_session"
  },
  "gayeon": {
    "bot_token": "BOT_TOKEN_HERE",
    "chat_id": "CHAT_ID_HERE",
    "api_id": "",
    "api_hash": "",
    "phone": ""
  }
}

구조 규격

타입

필수

설명

default_user

string

O

user 미지정 시 기본으로 사용할 사용자 키

settings

object

O

공통 설정

settings.monitor_mode

string

-

모니터링 모드 (buffer / immediate)

settings.buffer_minutes

int

-

버퍼 모드 수집 간격(분)

settings.immediate_debounce_sec

int

-

즉시 모드 디바운스(초)

settings.buffer_max_messages

int

-

버퍼 최대 메시지 수

settings.session_name

string

-

Telethon 세션 파일명

{사용자}

object

O (1명 이상)

사용자별 봇 설정

{사용자}.bot_token

string

O

Bot API 토큰 (@BotFather 발급)

{사용자}.chat_id

string

O

봇과 대화할 채팅 ID

{사용자}.api_id

string

-

User API 앱 ID (my.telegram.org)

{사용자}.api_hash

string

-

User API 앱 해시

{사용자}.phone

string

-

로그인 전화번호 (+821012345678)

사용자 추가 방법

  1. telegram_config.json에 새 키를 추가합니다:

{
  "새사용자": {
    "bot_token": "새봇토큰",
    "chat_id": "새chat_id",
    "api_id": "",
    "api_hash": "",
    "phone": ""
  }
}
  1. 해당 사용자가 텔레그램에서 봇에 /start를 보내면 chat_id를 확인할 수 있습니다.

  2. MCP 도구 호출 시 user 파라미터에 사용자 키를 지정하면 해당 봇으로 동작합니다.

패키지 설치

uv sync

2. 실행

MCP 서버 (35개 도구)

uv run telegram_extended.py

채널 모니터링

uv run telegram_monitor.py

최초 실행 시 Telethon 로그인 인증(전화번호 → 인증코드)이 필요합니다. 이후 telegram_session.session 파일에 세션이 저장되어 자동 로그인됩니다.


3. MCP 도구 목록 (35개)

3-1. 메시지 CRUD — tg_messages.py (9개)

도구

API

설명

telegram_send_message

sendMessage

텍스트 메시지 전송 (Markdown/HTML)

telegram_get_updates

getUpdates

봇 수신 메시지 조회 (offset 중복 방지)

telegram_edit_message

editMessageText

메시지 수정

telegram_delete_message

deleteMessage

메시지 삭제

telegram_delete_messages

deleteMessages

메시지 복수 삭제

telegram_forward_message

forwardMessage

포워드 (출처 표시)

telegram_forward_messages

forwardMessages

복수 포워드

telegram_copy_message

copyMessage

복사 (출처 없음)

telegram_copy_messages

copyMessages

복수 복사

3-2. 미디어 전송 — tg_media.py (9개)

도구

API

설명

telegram_send_photo

sendPhoto

사진 전송

telegram_send_document

sendDocument

파일/문서 전송

telegram_send_video

sendVideo

동영상 전송

telegram_send_audio

sendAudio

오디오 전송

telegram_send_voice

sendVoice

음성 메시지 전송

telegram_send_animation

sendAnimation

GIF/애니메이션 전송

telegram_send_video_note

sendVideoNote

둥근 비디오 전송

telegram_send_media_group

sendMediaGroup

미디어 그룹(앨범) 전송

telegram_send_sticker

sendSticker

스티커 전송

3-3. 채팅 정보/관리 — tg_chat.py (8개)

도구

API

설명

telegram_get_chat

getChat

채팅 상세 조회

telegram_get_chat_members_count

getChatMemberCount

멤버 수 조회

telegram_get_me

getMe

봇 정보 조회

telegram_pin_message

pinChatMessage

메시지 고정

telegram_unpin_message

unpinChatMessage

고정 해제

telegram_ban_user

banChatMember

사용자 차단

telegram_unban_user

unbanChatMember

차단 해제

telegram_send_chat_action

sendChatAction

채팅 액션 전송 (입력 중...)

3-4. 인터랙티브/유틸 — tg_interactive.py (9개)

도구

API

설명

telegram_send_poll

sendPoll

투표 생성

telegram_send_with_buttons

sendMessage (inline_keyboard)

인라인 버튼 메시지

telegram_answer_callback_query

answerCallbackQuery

콜백 쿼리 응답

telegram_send_location

sendLocation

위치 전송

telegram_send_venue

sendVenue

장소 전송

telegram_send_contact

sendContact

연락처 전송

telegram_send_dice

sendDice

주사위/랜덤 전송

telegram_set_message_reaction

setMessageReaction

메시지 리액션

telegram_get_file

getFile

파일 정보/다운로드 URL 조회

3-5. 채널 모니터 — telegram_monitor.py

지정한 텔레그램 채널의 메시지를 실시간 수신하여 로그로 기록합니다.

모니터링할 채널은 telegram_monitor.pyConfig.MONITOR_CHANNELS 리스트에 직접 추가합니다.


4. 시퀀스 다이어그램

4-1. MCP 도구 서버 흐름

sequenceDiagram
    participant Client as MCP 클라이언트<br/>(Claude Desktop 등)
    participant MCP as MCP 서버<br/>(telegram_extended.py)
    participant TG as Telegram Bot API

    Client->>MCP: 도구 호출 (예: telegram_send_message)
    MCP->>MCP: Pydantic 입력 검증
    MCP->>TG: POST /bot{TOKEN}/{method}
    TG-->>MCP: JSON 응답
    MCP-->>Client: 결과 문자열 반환

4-2. 채널 모니터 흐름

sequenceDiagram
    participant CH as 텔레그램 채널
    participant Monitor as TelegramMonitor<br/>(Telethon User API)
    participant Log as 로그 출력

    Note over Monitor: 로그인 + 이벤트 핸들러 등록

    CH->>Monitor: 새 메시지 이벤트
    Monitor->>Log: [채널] sender: 메시지 내용

    CH->>Monitor: 새 메시지 이벤트
    Monitor->>Log: [채널] sender: 메시지 내용

4-3. 전체 시스템 구성도

graph TB
    subgraph "MCP 도구 서버"
        A[telegram.py<br/>코어: mcp, _tg, _err]
        B[tg_messages.py<br/>메시지 9개]
        C[tg_media.py<br/>미디어 9개]
        D[tg_chat.py<br/>채팅 8개]
        E[tg_interactive.py<br/>인터랙티브 9개]
        F[telegram_extended.py<br/>진입점]
        A --> B & C & D & E
        F -->|import| B & C & D & E
        B & C & D & E -->|Bot API| G[Telegram Bot API]
    end

    subgraph "채널 모니터"
        H[telegram_monitor.py] -->|User API<br/>Telethon| I[텔레그램 채널]
        H -->|로깅| J[콘솔 로그]
    end

    L[MCP 클라이언트<br/>Claude Desktop 등] -->|MCP 프로토콜| F

    style A fill:#4a9eff,color:#fff
    style F fill:#4a9eff,color:#fff
    style H fill:#ff6b6b,color:#fff

5. MCP 클라이언트 연결

claude_desktop_config.json에 추가:

{
  "mcpServers": {
    "telegram": {
      "command": "uv",
      "args": ["run", "/path/to/telegram_extended.py"]
    }
  }
}

봇 토큰 등 모든 설정은 telegram_config.json에서 관리되므로 env는 불필요합니다.


6. chat_id 확인 방법

대상

방법

본인 ID

@userinfobot/start

그룹 ID

그룹에 @userinfobot 초대 후 /start

채널 ID

web.telegram.org URL에서 숫자 확인

그룹·채널 ID는 보통 음수(예: -1001234567890)입니다.


7. 주의사항

  • 그룹·채널 관리 도구(pin, ban 등)는 봇 관리자 권한 필요

  • telegram_get_updates는 Webhook과 동시 사용 불가

  • Bot API 속도 제한: 동일 채팅 초당 1건, 분당 20건 이하 권장

  • telegram_monitor.py는 User API 사용 → 개인 계정 로그인 필요 (봇 아님)


Contributors

이름

역할

Gayeon Lee (@ruchiayeon)

Creator & Developer

Claude (Anthropic)

AI Pair Programmer

Contact


AI Instructions (LLM Context)

이 섹션은 AI 에이전트가 이 프로젝트를 이해하고 작업할 때 참고하는 구조화된 컨텍스트입니다.

Project Overview

  • 프로젝트명: Telegram MCP Server & Channel Monitor

  • 언어: Python 3.14+

  • 패키지 매니저: uv

  • 핵심 의존성: httpx, mcp (FastMCP), pydantic, telethon

Architecture

telegram.py (코어 모듈)
  ├── telegram_config.json에서 사용자별 설정 로드
  ├── mcp = FastMCP("telegram_mcp")  ← 공유 인스턴스
  ├── _tg(method, payload, user): 사용자별 봇으로 Telegram Bot API 호출
  ├── get_chat_id(user): 사용자의 chat_id 반환
  └── _err(): 예외 → 사용자 친화적 에러 문자열 변환

tg_messages.py (메시지 CRUD 9개 도구)
  ├── send_message, get_updates, edit, delete, delete_messages
  └── forward, forward_messages, copy, copy_messages

tg_media.py (미디어 전송 9개 도구)
  └── photo, document, video, audio, voice, animation, video_note, media_group, sticker

tg_chat.py (채팅 관리 8개 도구)
  └── get_chat, members_count, get_me, pin, unpin, ban, unban, chat_action

tg_interactive.py (인터랙티브/유틸 9개 도구)
  └── poll, buttons, callback, location, venue, contact, dice, reaction, get_file

telegram_extended.py (진입점)
  ├── import tg_messages, tg_media, tg_chat, tg_interactive
  └── mcp.run()으로 실행 시 총 35개 도구 제공

telegram_monitor.py (독립 실행 스크립트)
  ├── Telethon User API 사용 (Bot API 아님)
  ├── Config 클래스: telegram_config.json에서 설정 로드
  ├── TelegramMonitor 클래스:
  │   ├── _on_new_message(): NewMessage 이벤트 핸들러 (메시지 로깅)
  │   └── run(): 로그인 + 채널 이벤트 구독 + 연결 유지
  └── asyncio.run(monitor.run())으로 실행

Key Patterns

  • 모듈 분리 패턴: telegram.py가 코어(mcp, _tg, _err)를 제공하고, 4개 도구 모듈(tg_messages, tg_media, tg_chat, tg_interactive)이 기능별로 도구를 등록. telegram_extended.py는 진입점으로 모든 모듈을 import 후 mcp.run() 실행.

  • 입력 검증: 모든 MCP 도구는 Pydantic BaseModel로 입력 검증 (ConfigDict(extra="forbid") 사용).

  • 에러 처리: _err() 함수로 httpx 예외를 사용자 친화적 한국어 문자열로 변환.

  • 설정 관리: telegram_config.json 단일 파일로 사용자별 봇 설정 + 공통 설정 관리.

  • 비동기: httpx.AsyncClient (MCP 서버), Telethon + asyncio (모니터).

File Modification Rules

  • telegram.py 수정 시: 4개 도구 모듈이 mcp, _tg, _err, get_chat_id, DEFAULT_USER를 import하므로 이 인터페이스 유지 필요.

  • 새 MCP 도구 추가 시: 해당 카테고리의 tg_*.py 파일에 Pydantic 모델 + @mcp.tool() 데코레이터로 추가.

  • 새 카테고리 추가 시: tg_newcategory.py 생성 후 telegram_extended.py에 import 추가.

  • 모니터링 채널 변경 시: telegram_monitor.pyConfig.MONITOR_CHANNELS 리스트 수정.

Configuration

모든 설정은 telegram_config.json 단일 파일로 관리됩니다. 상세 규격은 상단 "1. 환경 설정" 참조.

Available Tools

35 tools
telegram_answer_callback_queryB

인라인 버튼 클릭(콜백 쿼리)에 대한 응답을 보냅니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=false and destructiveHint=false, suggesting this is a non-destructive write operation. The description adds that it 'sends a response,' which aligns with annotations but doesn't provide additional behavioral context (e.g., rate limits, authentication needs, or side effects like user notifications). No contradiction with annotations exists, but the description offers minimal extra insight beyond what annotations cover.

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 with the core action and target, making it easy to parse quickly. Every part of the sentence contributes to understanding the purpose.

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?

Given the tool has annotations (readOnlyHint=false, destructiveHint=false) and an output schema (which reduces need to describe return values), the description covers the basic purpose adequately. However, it lacks details on usage context, parameter meanings, and behavioral nuances, leaving gaps for an AI agent to fully leverage the tool. It's minimally complete but not comprehensive.

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 mentions no parameters, while the input schema has one parameter ('params') with nested properties. Schema description coverage is 0%, meaning parameter descriptions are entirely missing in the schema. However, the description doesn't compensate by explaining parameters like 'callback_query_id' or 'text'. Since there's only one top-level parameter, the baseline is slightly higher, but the lack of semantic details keeps the score at a minimal adequate level.

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 ('send a response') and target ('inline button click/callback query'), making the purpose understandable. It doesn't explicitly differentiate from sibling tools, but since sibling tools are mostly about sending messages or managing users/chats, this tool's focus on callback queries is implicitly distinct. The description avoids tautology by not just repeating the name.

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 (e.g., needing a callback query ID from a previous interaction), exclusions, or related tools. Given the sibling list includes many message-sending tools, some context on when callback responses are appropriate would be helpful but is absent.

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

telegram_ban_userA
Destructive

그룹/채널에서 특정 사용자를 차단합니다. (봇이 관리자 권한 필요)

Args: params (BanUserInput): - chat_id (int): 그룹/채널 ID - user_id (int): 차단할 사용자 ID - until_date (int): 차단 해제 Unix 타임스탬프 (None=영구 차단)

Returns: str: 차단 성공 메시지 또는 에러

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

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

The description adds valuable behavioral context beyond what annotations provide. While annotations indicate destructiveHint=true (mutation) and readOnlyHint=false (write operation), the description specifies the bot needs admin permissions and clarifies the temporal aspect ('until_date' for temporary vs permanent bans). It doesn't mention rate limits, error handling specifics, or what happens if the user is already banned, but provides meaningful operational 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 well-structured with a clear purpose statement followed by Args and Returns sections. Every sentence adds value: the first states purpose and prerequisites, the Args section documents parameters, and Returns indicates outcome. It could be slightly more concise by integrating the parameter explanations more seamlessly, but overall it's efficient and front-loaded.

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?

Given this is a destructive operation with 3 parameters and no schema descriptions, the description does a good job covering the essentials: purpose, prerequisites, parameters, and return indication. With an output schema present, it doesn't need to detail return values. It could improve by mentioning error conditions or what happens on repeated bans, but covers the core context adequately for agent use.

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?

With 0% schema description coverage, the description carries the full burden of parameter documentation. It lists all three parameters (chat_id, user_id, until_date) and provides semantic meaning for each, explaining what 'until_date' represents and that 'None' means permanent ban. However, it doesn't explain parameter formats beyond what's obvious from names, and doesn't provide examples or edge cases for parameter values.

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 purpose with a specific verb ('차단합니다' - ban) and resource ('그룹/채널에서 특정 사용자' - specific user in group/channel). It explicitly distinguishes from sibling tools by being the only ban operation (vs unban_user for reversal). The description goes beyond the title to specify the action and target.

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 provides clear context about when to use this tool ('그룹/채널에서' - in group/channel) and mentions a prerequisite ('봇이 관리자 권한 필요' - bot needs admin permissions). However, it doesn't explicitly state when NOT to use it or mention alternatives like temporary restrictions vs permanent bans, nor does it reference the sibling unban_user tool for reversal operations.

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

telegram_copy_messageA

메시지 내용을 포워드 마크 없이 복사하여 다른 채팅에 전송합니다.

Args: params (CopyMessageInput): - from_chat_id (int): 원본 채팅 ID - to_chat_id (int): 복사 대상 채팅 ID - message_id (int): 복사할 메시지 ID - caption (str): 미디어 메시지에 추가할 캡션 (선택)

Returns: str: 복사 성공 메시지 또는 에러

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=false and destructiveHint=false, covering basic safety. The description adds context about copying without forward marks, which is useful behavioral detail not in annotations. However, it does not disclose other traits like rate limits, authentication needs, or error handling, resulting in moderate transparency.

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 well-structured with a clear purpose statement, followed by Args and Returns sections. It is front-loaded and efficient, with no wasted sentences. Minor improvement could be made by integrating the purpose more seamlessly, but overall it is concise and organized.

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?

Given the tool's moderate complexity, annotations covering safety, and an output schema (Returns section), the description is mostly complete. It explains the action, parameters, and return value. However, it could benefit from more behavioral context or error examples to fully guide the agent, slightly reducing completeness.

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 0%, so the description must compensate. It includes an 'Args' section detailing each parameter's purpose (e.g., '원본 채팅 ID' for from_chat_id), adding meaningful semantics beyond the schema. However, it lacks details on parameter formats or constraints, preventing a perfect score.

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 specific action: '메시지 내용을 포워드 마크 없이 복사하여 다른 채팅에 전송합니다' (copy message content without forward mark and send to another chat). It distinguishes from sibling tools like 'telegram_forward_message' by emphasizing the absence of forward attribution, making the purpose explicit and differentiated.

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?

The description implies usage for copying messages without forward marks, but does not explicitly state when to use this tool versus alternatives like 'telegram_forward_message' or 'telegram_copy_messages'. It provides basic context but lacks explicit guidance on exclusions or prerequisites, leaving some ambiguity for the agent.

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

telegram_copy_messagesB

여러 메시지를 포워드 마크 없이 복사하여 다른 채팅에 전송합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

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

Annotations provide readOnlyHint=false and destructiveHint=false, indicating this is a write operation but not destructive. The description adds the key behavioral detail '포워드 마크 없이' (without forward marks), which is valuable context not in annotations. However, it doesn't mention rate limits, authentication needs, or what happens if messages fail to copy.

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?

Single sentence, front-loaded with the core action, zero wasted words. Efficiently communicates the essential function without unnecessary elaboration.

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?

Given this is a write operation (annotations show readOnlyHint=false) with 3 required sub-parameters and an output schema exists, the description is minimally adequate. It explains the core behavior but lacks details about prerequisites, error conditions, or relationship to sibling tools. The output schema will handle return values, but the description doesn't provide enough context for safe 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 0%, so the schema provides no parameter descriptions. The tool description doesn't mention any parameters at all, failing to compensate for the schema gap. However, with only 1 parameter (a nested object with 3 sub-parameters), the baseline is 3 since the schema structure itself provides some clarity.

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 ('복사하여 전송합니다' - copy and send) and resource ('여러 메시지' - multiple messages), specifying it's for multiple messages without forward marks. It distinguishes from 'telegram_copy_message' (singular) and 'telegram_forward_messages' (with forward marks), but doesn't explicitly mention 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?

No guidance on when to use this tool versus alternatives like 'telegram_copy_message' (singular), 'telegram_forward_messages', or 'telegram_send_message'. The description only states what it does, not when it's appropriate compared to other message-sending tools.

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

telegram_delete_messageA
Destructive

텔레그램 채팅에서 특정 메시지를 삭제합니다.

Args: params (DeleteMessageInput): - chat_id (int): 채팅 ID - message_id (int): 삭제할 메시지 ID

Returns: str: 삭제 성공 메시지 또는 에러

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already indicate destructiveHint=true and readOnlyHint=false, which correctly align with the 'delete' action. The description adds useful context by specifying it's for Telegram chats and mentions potential error returns, but doesn't elaborate on permissions, rate limits, or irreversible nature beyond what annotations imply.

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 well-structured with clear sections (purpose, Args, Returns) and uses minimal sentences. However, the Args section could be more integrated rather than separate, and some information is redundant with the schema.

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 destructive operation with good annotations and output schema, the description covers the essential purpose and parameters adequately. It mentions error returns but could better address permissions, limitations, or differences from sibling tools to be fully 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?

Schema description coverage is 0%, but the description includes an Args section that documents both parameters (chat_id and message_id) with clear Korean descriptions. However, it doesn't add significant semantic context beyond what's already evident from parameter names and basic 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 clearly states the specific action ('텔레그램 채팅에서 특정 메시지를 삭제합니다' - 'Delete a specific message in a Telegram chat') with the exact resource (message in a chat). It distinguishes itself from siblings like 'telegram_delete_messages' (plural) by specifying single message deletion.

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 like 'telegram_delete_messages' for bulk deletion or 'telegram_edit_message' for modification instead of deletion. There are no prerequisites or contextual usage instructions mentioned.

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

telegram_delete_messagesB
Destructive

텔레그램 채팅에서 여러 메시지를 한 번에 삭제합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the agent knows this is a destructive write operation. The description adds minimal behavioral context beyond this—it specifies 'multiple messages at once' which hints at batch capability, but doesn't mention permissions, rate limits, or irreversible nature beyond what annotations imply.

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 any fluff or redundancy. It's appropriately sized and front-loaded with the core action.

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?

Given that this is a destructive tool with annotations covering safety, an output schema exists (so return values are documented elsewhere), and the description is concise, it's minimally adequate. However, for a tool with 0% schema coverage and no usage guidelines, it could benefit from more detail on parameters and context to be fully 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?

Schema description coverage is 0%, so the schema provides no parameter descriptions. The tool description mentions 'in a Telegram chat' and 'multiple messages,' which loosely corresponds to chat_id and message_ids parameters, but doesn't explain their formats, constraints (like maxItems: 100), or required types. It adds some meaning but insufficiently compensates for the schema gap.

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 ('delete multiple messages at once') and resource ('in a Telegram chat'), making the purpose immediately understandable. It distinguishes from the sibling 'telegram_delete_message' by specifying 'multiple messages' versus single message deletion, though it doesn't explicitly name the sibling.

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 like 'telegram_delete_message' for single deletions or other deletion-related tools. The description only states what it does, not when it's appropriate or what prerequisites might exist.

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

telegram_edit_messageA

이미 전송된 텔레그램 메시지의 내용을 수정합니다.

Args: params (EditMessageInput): - chat_id (int): 채팅 ID - message_id (int): 수정할 메시지 ID - text (str): 새 메시지 내용 - parse_mode (str): 'Markdown' 또는 'HTML' (기본값: Markdown)

Returns: str: 수정 성공 메시지 또는 에러

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=false and destructiveHint=false, which the description doesn't contradict. The description adds minimal behavioral context beyond annotations, mentioning that it returns a success message or error, but doesn't detail aspects like rate limits, authentication needs, or what happens if the message can't be edited (e.g., time limits). With annotations covering basic safety, this is adequate but not rich.

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 well-structured with a purpose statement, Args, and Returns sections, making it easy to parse. It's concise with no redundant information, though the Korean language might require translation for some agents, slightly affecting accessibility.

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?

Given the tool's moderate complexity (editing messages), annotations provide safety hints, and an output schema exists (implied by 'Returns'), the description is reasonably complete. It covers purpose, parameters, and return values, though it could benefit from more behavioral details like edit limitations or error cases.

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 0%, so the description must compensate. It provides a clear Args section listing parameters (chat_id, message_id, text, parse_mode) with brief explanations and default values, adding meaningful semantics beyond the bare schema. However, it doesn't explain parameter interactions or constraints like text length limits, which are in the schema but not described.

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 purpose: '이미 전송된 텔레그램 메시지의 내용을 수정합니다' (edits the content of an already sent Telegram message). It uses specific verbs ('수정합니다' - edits) and identifies the resource (Telegram message), distinguishing it from sibling tools like telegram_send_message (sends new messages) and telegram_delete_message (deletes messages).

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?

The description implies usage context by specifying '이미 전송된' (already sent) messages, suggesting this is for editing existing messages rather than creating new ones. However, it doesn't explicitly state when to use this versus alternatives like telegram_send_message for new messages or telegram_delete_message for removal, nor does it mention any prerequisites or exclusions.

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

telegram_forward_messageB

한 채팅에서 다른 채팅으로 메시지를 포워드(전달)합니다. 출처 표시 포함.

Args: params (ForwardMessageInput): - from_chat_id (int): 원본 채팅 ID - to_chat_id (int): 전달 대상 채팅 ID - message_id (int): 전달할 메시지 ID

Returns: str: 포워드 성공 메시지 또는 에러

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=false and destructiveHint=false, confirming this is a non-destructive write operation. The description adds that forwarding includes '출처 표시 포함' (source attribution included), which is useful behavioral context not covered by annotations. However, it doesn't mention rate limits, authentication requirements, or error conditions beyond the generic return statement.

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 well-structured with clear sections (description, Args, Returns). It's concise at 4 sentences total, with no redundant information. The front-loaded purpose statement is clear, though the parameter descriptions could be integrated more smoothly.

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 mutation tool with 3 parameters and no schema descriptions, the description provides basic parameter semantics and mentions source attribution. However, it lacks details on authentication, error handling, or comparison to sibling tools. The output schema exists, so describing return values isn't needed, but more behavioral context would help.

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 0%, meaning parameter descriptions in the schema are empty. The description's Args section provides Korean descriptions for all three parameters (원본 채팅 ID, 전달 대상 채팅 ID, 전달할 메시지 ID), which adds essential semantic meaning. However, it doesn't explain format constraints (e.g., valid chat ID ranges) or provide examples.

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: '한 채팅에서 다른 채팅으로 메시지를 포워드(전달)합니다' (forwards a message from one chat to another). It specifies the verb (forward/전달) and resource (message/메시지). However, it doesn't explicitly differentiate from sibling tools like 'telegram_copy_message' or 'telegram_forward_messages', which perform similar operations.

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 'telegram_copy_message' (which might preserve original formatting differently) or 'telegram_forward_messages' (which forwards multiple messages). There's no context about prerequisites, permissions, or typical use cases.

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

telegram_forward_messagesB

한 채팅에서 다른 채팅으로 여러 메시지를 한 번에 포워드합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

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

Annotations indicate this is not read-only and not destructive, which the description doesn't contradict. The description adds minimal behavioral context beyond annotations - it mentions 'multiple messages at once' and the batch operation nature, but doesn't address rate limits, authentication needs, or what happens to forwarded messages (e.g., whether they retain original metadata).

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 gets straight to the point with zero wasted words. It's appropriately sized for the tool's complexity and front-loads the core functionality.

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?

Given that this is a mutation tool (forwarding messages) with no schema description coverage but good property descriptions in the schema itself, plus the presence of an output schema, the description is minimally adequate. However, it should ideally mention the 100-message limit (from maxItems in schema) and provide more behavioral context for a write operation.

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?

With 0% schema description coverage, the description carries full burden for parameter explanation but provides none. It doesn't mention any of the three required parameters (from_chat_id, to_chat_id, message_ids) or their semantics. The baseline is 3 because the schema itself has good property descriptions (in Korean) that explain each parameter's purpose.

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 ('forward multiple messages at once') and resources ('from one chat to another chat'), making the purpose immediately understandable. However, it doesn't explicitly distinguish this tool from its sibling 'telegram_forward_message' (singular vs. plural), which would be helpful for agent selection.

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 to choose this over 'telegram_forward_message' (for single messages) or 'telegram_copy_messages' (which might preserve original authorship), 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.

telegram_get_chatA
Read-only

채팅 ID로 채팅/그룹/채널의 상세 정보를 조회합니다.

Args: params (GetChatInput): - chat_id (int): 조회할 채팅 ID

Returns: str: 채팅 이름, 타입, 멤버 수, 설명 등의 JSON 정보

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 and destructiveHint=false, so the agent knows this is a safe read operation. The description adds useful context about what information is returned (chat name, type, member count, description), which goes beyond the annotations. However, it doesn't mention rate limits, authentication requirements, or error conditions.

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 appropriately sized with a clear purpose statement followed by Args and Returns sections. The structure is logical and front-loaded. The Korean text is efficient, though the English translation in the response format adds some redundancy.

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?

Given the simple single-parameter read operation with good annotations and an output schema (implied by 'Returns' section), the description is reasonably complete. It explains what information is returned, though doesn't detail the JSON structure. For this complexity level, it provides sufficient context for agent usage.

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?

With 0% schema description coverage (the schema has no parameter descriptions), the description fully compensates by clearly explaining the single parameter's purpose ('조회할 채팅 ID' - chat ID to retrieve). The description adds complete semantic meaning beyond the bare schema, though it doesn't specify format constraints (e.g., numeric ID vs username).

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 specific action ('조회합니다' - retrieves/looks up) and resource ('채팅/그룹/채널의 상세 정보' - detailed information of chat/group/channel), with explicit scope ('채팅 ID로' - by chat ID). It distinguishes from siblings like telegram_get_chat_members_count (which only gets member count) and telegram_get_me (which gets bot info).

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?

The description implies usage when detailed chat information is needed, but doesn't explicitly state when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., bot must be a member) or exclusions. The context is clear but lacks explicit guidance on tool selection.

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

telegram_get_chat_members_countB
Read-only

채팅/그룹/채널의 총 멤버(구독자) 수를 조회합니다.

Args: params (GetChatInput): - chat_id (int): 조회할 채팅 ID

Returns: str: 멤버 수 또는 에러

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=true and destructiveHint=false, so the agent knows this is a safe read operation. The description adds minimal behavioral context beyond this, stating it retrieves member count and may return an error. It doesn't disclose rate limits, authentication needs, or specific error conditions, but it doesn't contradict the annotations either.

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 well-structured with a clear purpose statement, Args, and Returns sections. It's concise with no wasted sentences, though the Korean language might add slight complexity for non-Korean agents. The information is front-loaded with the main purpose stated first.

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?

Given the tool's low complexity (1 parameter) and the presence of annotations and an output schema, the description is somewhat complete. It covers the basic purpose and parameter, but lacks usage guidelines, detailed behavioral context, and error handling specifics, which could be important for a read operation in a messaging platform.

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 0%, so the schema provides no parameter descriptions. The description includes an 'Args' section that explains 'chat_id' as '조회할 채팅 ID' (chat ID to retrieve), adding basic semantics. However, it doesn't clarify format constraints, valid ranges, or examples, leaving gaps in understanding.

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 the total number of members/subscribers in a chat/group/channel). It specifies the verb '조회합니다' (retrieve) and resource '멤버 수' (member count). However, it doesn't explicitly differentiate from sibling tools like 'telegram_get_chat', which might retrieve chat metadata rather than just member count.

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 any prerequisites, such as needing appropriate permissions or being in a specific context, nor does it compare it to sibling tools like 'telegram_get_chat' that might offer related functionality. Usage is implied only by the tool's name and description.

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

telegram_get_fileB
Read-only

file_id로 파일 정보와 다운로드 URL을 조회합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=true and destructiveHint=false, so the agent knows this is a safe read operation. The description adds that it retrieves both 'file information' and 'download URL', which provides useful context beyond the annotations. However, it doesn't disclose other behavioral traits like rate limits, authentication needs, or error conditions. No contradiction with annotations exists.

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. It's front-loaded with the core action and includes all necessary elements without waste. No extraneous information or redundancy is present.

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?

Given the tool's low complexity (one parameter), annotations covering safety (read-only, non-destructive), and the presence of an output schema (which handles return values), the description is reasonably complete. It specifies what the tool does and the key input. However, it lacks usage guidelines and richer parameter semantics, which are minor gaps in this context.

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 0%, with one parameter (file_id) documented only with a title and type in the schema. The description mentions 'file_id' as the input but doesn't add semantic details like format examples, source, or constraints. Since coverage is low, the description partially compensates by naming the parameter, but more detail would be helpful. Baseline adjusted for low 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: 'file_id로 파일 정보와 다운로드 URL을 조회합니다' (retrieves file information and download URL using file_id). It specifies the verb (retrieve/lookup), resource (file information and download URL), and key input (file_id). However, it doesn't explicitly differentiate from sibling tools like 'telegram_get_chat' or 'telegram_get_me', which also retrieve information but for different resources.

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 (e.g., needing a valid file_id from a message), exclusions, or comparisons to other file-related tools (none exist in the sibling list, but general usage context is missing). The agent must infer usage from the purpose alone.

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

telegram_get_meA
Read-only

현재 봇의 기본 정보(이름, username, id 등)를 조회합니다.

Returns: str: 봇 정보 JSON 또는 에러

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already provide readOnlyHint=true and destructiveHint=false, indicating this is a safe read operation. The description adds valuable context by specifying the return format ('봇 정보 JSON 또는 에러' - bot info JSON or error), which helps the agent understand what to expect beyond just the safety profile. No contradictions with annotations exist.

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 perfectly concise with two sentences that each earn their place: the first states the purpose with examples, and the second clarifies the return format. No wasted words, and the information is front-loaded with the core functionality.

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?

Given this is a simple read-only tool with 0 parameters, 100% schema coverage, annotations covering safety, and an output schema (implied by 'Has output schema: true'), the description provides exactly what's needed. It explains what the tool does and what it returns, making it complete for this level of complexity.

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?

With 0 parameters and 100% schema description coverage, the baseline would be 4. The description appropriately doesn't discuss parameters since none exist, and instead focuses on the tool's purpose and return value, which adds meaningful context beyond the empty schema.

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 specific action ('조회합니다' - retrieve/query) and resource ('현재 봇의 기본 정보' - current bot's basic information), with examples of what information is included (이름, username, id 등). It distinguishes itself from sibling tools that perform actions like sending messages, banning users, or editing content by focusing on bot metadata retrieval.

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?

The description implies this tool should be used when needing bot information (name, username, ID), but doesn't explicitly state when to use it versus alternatives or provide context about prerequisites. No guidance is given about when NOT to use this tool or what other tools might serve similar purposes.

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

telegram_get_updatesA
Read-only

텔레그램 봇으로 수신된 새 메시지를 가져옵니다.

스케줄 태스크에서 주기적으로 호출하여 새 메시지를 확인합니다. offset을 사용하면 이미 처리한 메시지를 다시 가져오지 않습니다.

Args: params (GetUpdatesInput): - offset (int): 마지막으로 처리한 update_id + 1 (선택사항) - limit (int): 가져올 메시지 수 (기본 20)

Returns: str: 메시지 목록 JSON. 각 항목에 update_id, chat_id, sender, text 포함. 메시지 없으면 "새 메시지 없음" 반환.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, indicating a safe read operation. The description adds valuable behavioral context beyond annotations: it explains how offset prevents duplicate message retrieval ('offset을 사용하면 이미 처리한 메시지를 다시 가져오지 않습니다') and mentions the periodic scheduling use case. It doesn't describe rate limits or authentication needs, but provides useful implementation guidance that annotations don't cover.

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 well-structured with clear sections: purpose statement, usage guidance, parameter explanations, and return value description. Each sentence adds value. It could be slightly more concise by integrating the parameter explanations more seamlessly, but overall it's efficient with no wasted words.

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 read-only tool with good annotations and an output schema (implied by the Returns section), the description is complete. It covers purpose, usage pattern, parameter semantics, and return format. The output description ('메시지 목록 JSON. 각 항목에 update_id, chat_id, sender, text 포함. 메시지 없으면 "새 메시지 없음" 반환') adequately explains what to expect, compensating for the lack of formal output schema in the context signals.

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 0%, so the description carries full burden for parameter documentation. It successfully explains both parameters: offset ('마지막으로 처리한 update_id + 1') and limit ('가져올 메시지 수'). The description adds crucial semantic context about offset preventing duplicate processing, which isn't in the schema. However, it doesn't mention the limit's maximum value (100) or that offset is optional, though the schema covers these.

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 purpose: '텔레그램 봇으로 수신된 새 메시지를 가져옵니다' (Fetch new messages received by a Telegram bot). It specifies the exact action (fetch/retrieve) and resource (new messages), and distinguishes itself from siblings like send_message or delete_message by focusing on retrieval rather than sending or modifying messages.

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 provides clear usage context: '스케줄 태스크에서 주기적으로 호출하여 새 메시지를 확인합니다' (Call periodically from scheduled tasks to check for new messages). This gives practical guidance on when to use it. However, it doesn't explicitly state when NOT to use it or name specific alternatives among the many sibling tools, though the purpose naturally differentiates it from sending/modification tools.

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

telegram_pin_messageA

채팅에서 특정 메시지를 고정합니다. (봇이 관리자 권한 필요)

Args: params (PinMessageInput): - chat_id (int): 채팅 ID - message_id (int): 고정할 메시지 ID - disable_notification (bool): 알림 없이 고정 여부 (기본 False)

Returns: str: 고정 성공 메시지 또는 에러

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations indicate readOnlyHint=false and destructiveHint=false, but the description adds valuable context: it specifies that bot admin permissions are required, which is crucial behavioral information not covered by annotations. It also mentions the return value (success message or error), though the output schema handles this. No contradictions with annotations.

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 appropriately sized and front-loaded with the core purpose in the first sentence. The Args and Returns sections are structured clearly, though the translation to English might slightly affect flow. Every sentence adds value.

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?

Given the tool's moderate complexity (mutation with permissions), the description is quite complete: it covers purpose, permissions, parameters, and return behavior. The output schema exists, so return values don't need explanation. It could benefit from more explicit sibling differentiation, but it's largely adequate.

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 0%, so the description carries the full burden. It provides clear semantics for all parameters in the Args section: chat_id (채팅 ID), message_id (고정할 메시지 ID), and disable_notification (알림 없이 고정 여부). This compensates well for the lack of schema 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 clearly states the specific action ('고정합니다' - pins) and resource ('채팅에서 특정 메시지' - a specific message in a chat), and it distinguishes from siblings like 'telegram_unpin_message' (unpins) and 'telegram_delete_message' (deletes). The mention of bot admin requirement adds specificity.

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 provides clear context for when to use this tool (to pin a message in a chat, requiring bot admin permissions). It doesn't explicitly state when not to use it or name alternatives like 'telegram_unpin_message', but the context is sufficient for basic differentiation.

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

telegram_send_animationB

텔레그램 채팅에 GIF 또는 무음 MP4 애니메이션을 전송합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations indicate this is not read-only and not destructive, which aligns with a 'send' operation. The description adds that it sends animations specifically (GIF/silent MP4), providing some context beyond annotations, but doesn't mention rate limits, authentication needs, or response 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?

Single sentence, front-loaded with the core action. Efficiently conveys the purpose without unnecessary words, though it could be more structured with additional context.

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?

Given the tool has an output schema (not provided here) and annotations cover basic hints, the description is minimally complete for a send operation. However, it lacks details on error conditions, return values, or usage context, making it adequate but with clear 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?

Schema description coverage is 0%, but the description doesn't add any parameter information beyond what's implied by the tool name. It mentions GIF/MP4 animations, which relates to the 'animation' parameter, but doesn't explain other parameters like chat_id, caption, or parse_mode. With no schema descriptions, the baseline is low, but the description offers minimal compensation.

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 ('전송합니다' - send) and resource ('텔레그램 채팅에 GIF 또는 무음 MP4 애니메이션' - GIF or silent MP4 animation to Telegram chat). It distinguishes from siblings like telegram_send_photo or telegram_send_video by specifying animation content, but doesn't explicitly contrast with all media-sending 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?

No guidance on when to use this tool versus alternatives like telegram_send_video or telegram_send_media_group. The description only states what it does, not when it's appropriate or what prerequisites exist (e.g., chat access, file formats).

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

telegram_send_audioB

텔레그램 채팅에 오디오 파일을 전송합니다. URL 또는 file_id 사용 가능.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations indicate this is not read-only (readOnlyHint: false) and not destructive (destructiveHint: false), which the description doesn't contradict. The description adds minimal behavioral context about acceptable audio sources (URL or file_id), but doesn't mention rate limits, authentication requirements, file size limits, or what happens on success/failure. With annotations covering basic safety, this earns a baseline score.

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 states the core purpose upfront. There's no wasted verbiage, though it could be slightly more informative about usage context. The structure is appropriate for a straightforward send operation.

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?

Given the tool has annotations covering read/write and destructive status, an output schema exists (though not shown), and schema coverage is complete, the description provides adequate context for a basic send operation. However, it lacks important contextual details like file format restrictions, size limits, or error conditions that would be helpful despite the structured data.

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 has 100% description coverage with clear parameter documentation in Korean. The description only mentions 'URL 또는 file_id 사용 가능' which corresponds to the 'audio' parameter, adding minimal value beyond what's already in the schema. With high schema coverage, the baseline is 3 even without parameter elaboration 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 ('전송합니다' - send) and resource ('오디오 파일' - audio file) with the target context ('텔레그램 채팅' - Telegram chat). It distinguishes from siblings like 'telegram_send_message' or 'telegram_send_voice' by specifying audio files, but doesn't explicitly contrast with 'telegram_send_document' which could also handle audio files.

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 like 'telegram_send_voice' (for voice messages) or 'telegram_send_document' (for generic file uploads). It mentions URL or file_id usage but doesn't explain when one source type is preferred over the other or any prerequisites for using this tool.

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

telegram_send_chat_actionB

채팅에 '입력 중...', '파일 업로드 중...' 등 상태 표시를 전송합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=false and destructiveHint=false, suggesting a non-destructive write operation. The description adds context by specifying the type of action (status indicators like 'typing'), which isn't covered by annotations. However, it doesn't disclose other behavioral traits such as rate limits, authentication needs, or what happens if the chat is invalid. No contradiction with annotations exists.

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 front-loads the core purpose ('채팅에 상태 표시를 전송합니다') and provides illustrative examples. There is no wasted text, and it's 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.

Completeness3/5

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

Given the tool has an output schema (which handles return values), annotations covering safety, and low parameter complexity, the description is minimally adequate. However, it lacks details on usage context, parameter semantics, and behavioral nuances like error handling, making it incomplete for optimal agent understanding.

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?

The input schema has 0% description coverage, with parameters 'chat_id' and 'action' only having basic titles/descriptions in Korean. The tool description doesn't add any parameter-specific semantics—it doesn't explain what 'chat_id' refers to (e.g., numeric ID) or detail 'action' values beyond the examples. With low schema coverage, the description fails to compensate adequately.

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: '채팅에 상태 표시를 전송합니다' (send status indicators to a chat). It specifies the action ('전송합니다' - send) and the resource ('채팅' - chat), with examples like '입력 중...' (typing) and '파일 업로드 중...' (uploading file). However, it doesn't explicitly differentiate from sibling tools like 'telegram_send_message', which might be used for similar chat interactions.

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 lacks context on prerequisites (e.g., chat access), exclusions, or comparisons to siblings like 'telegram_send_message' for actual message sending. Usage is implied through examples 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.

telegram_send_contactC

텔레그램 채팅에 연락처(전화번호+이름)를 전송합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior3/5

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

Annotations provide readOnlyHint=false and destructiveHint=false, indicating this is a non-destructive write operation. The description adds that it sends contacts to Telegram chats, which is consistent with annotations. However, it doesn't disclose additional behavioral traits like rate limits, authentication requirements, error conditions, or what happens after sending (e.g., message visibility, notifications).

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 states the core functionality without unnecessary words. It's appropriately sized for a straightforward tool and front-loads the essential action and target.

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 an output schema (which handles return values), the description's main gaps are parameter documentation and usage guidance. With 0% schema coverage and 5 parameters, the description should explain what each parameter does, but only partially covers two. For a write operation with multiple parameters, this is insufficient for an agent to use it correctly without guessing.

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

Parameters1/5

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

Schema description coverage is 0%, meaning parameter descriptions are entirely missing from the schema. The tool description mentions '연락처(전화번호+이름)' which only covers phone_number and first_name parameters, ignoring chat_id, last_name, and vcard. With 5 parameters total and no schema documentation, the description fails to compensate for the coverage gap.

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 ('전송합니다' - send) and resource ('연락처(전화번호+이름)' - contact with phone number+name) with specific scope ('텔레그램 채팅에' - to Telegram chat). It distinguishes from sibling tools like telegram_send_message or telegram_send_location by specifying contact sending, but doesn't explicitly differentiate from all send_* siblings beyond the contact type.

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 (like chat access), comparison with other contact-sharing methods, or typical use cases. The agent must infer usage from the tool name and description alone.

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

telegram_send_diceB

텔레그램 채팅에 주사위/슬롯 등 랜덤 애니메이션을 전송합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations provide readOnlyHint=false and destructiveHint=false, indicating this is a non-destructive write operation. The description adds that it sends '랜덤 애니메이션' (random animations), which suggests unpredictable outcomes, but doesn't detail side effects like message visibility, rate limits, or authentication needs beyond what annotations cover.

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?

Single sentence that is front-loaded with the core action and resource. Efficient with no wasted words, though slightly vague on specifics like parameter usage.

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?

Given the tool has an output schema (not provided but indicated), the description needn't cover return values. It adequately explains the tool's purpose for a simple action with 1 parameter and non-destructive annotations, though could benefit from more behavioral context.

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 0%, so the schema lacks parameter descriptions. The tool description mentions '주사위/슬롯 등' (dice/slot etc.) and '이모지' (emoji) in the schema, but doesn't explain parameter meanings like chat_id or emoji options beyond what's minimally implied. With 1 parameter and low coverage, it partially compensates but leaves gaps.

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 ('전송합니다' - sends) and resource ('텔레그램 채팅' - Telegram chat) with specific examples ('주사위/슬롯 등 랜덤 애니메이션' - dice/slot random animations). It distinguishes from siblings like send_message or send_photo by specifying it sends animated random content rather than text or media files.

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 explicit guidance on when to use this tool versus alternatives like send_message for text or send_sticker for static stickers. The description implies usage for sending random animations but doesn't specify scenarios (e.g., games, random selection) or exclusions.

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

telegram_send_documentA

텔레그램 채팅에 파일(문서)을 전송합니다. URL 또는 file_id 사용 가능.

Args: params (SendDocumentInput): - chat_id (int): 채팅 ID - document (str): 파일 URL 또는 Telegram file_id - caption (str): 파일 설명 (선택, 최대 1024자) - parse_mode (str): 'Markdown' 또는 'HTML' (기본값: Markdown)

Returns: str: 전송 성공 메시지 또는 에러

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=false and destructiveHint=false, which the description doesn't contradict. The description adds context about acceptable document sources (URL or file_id) and caption length limits, but doesn't mention rate limits, authentication needs, or error handling beyond '전송 성공 메시지 또는 에러'. With annotations covering safety, this adds moderate value.

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 appropriately sized with a clear purpose statement followed by structured Args and Returns sections. Every sentence adds value, though the Returns section could be more specific. It's front-loaded with the main action.

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?

Given a mutation tool with annotations, 0% schema coverage, and an output schema (implied by Returns), the description is mostly complete. It explains parameters well and states the return is a success/error message, but lacks details on error types or response format. Sibling context is adequate.

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 0%, so the description fully compensates by explaining all parameters in detail: chat_id, document (URL or file_id), caption (optional, max 1024 chars), and parse_mode (Markdown/HTML, default Markdown). It adds meaning beyond schema types, though it doesn't cover nested structures (none exist).

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 specific action ('텔레그램 채팅에 파일(문서)을 전송합니다') with the resource (Telegram chat) and distinguishes from siblings by specifying it sends documents/files rather than other media types like photos, videos, or messages. The title annotation '텔레그램 파일/문서 전송' reinforces this.

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?

The description implies usage context by mentioning 'URL 또는 file_id 사용 가능' and listing parameters, but doesn't explicitly state when to use this tool versus alternatives like telegram_send_photo or telegram_send_video. No guidance on prerequisites (e.g., bot permissions) or exclusions is provided.

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

telegram_send_locationB

텔레그램 채팅에 지도 핀(위치 정보)을 전송합니다.

Args: params (SendLocationInput): - chat_id (int): 채팅 ID - latitude (float): 위도 (예: 37.5665) - longitude (float): 경도 (예: 126.9780)

Returns: str: 전송 성공 메시지 또는 에러

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=false and destructiveHint=false, confirming this is a write operation that doesn't destroy data. The description adds that it sends location information to a chat, which aligns with the annotations. However, it doesn't provide additional behavioral context such as rate limits, authentication requirements, or what constitutes '전송 성공' (send success) versus errors beyond what's implied by the return statement.

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 well-structured with clear sections: purpose statement, Args with parameters, and Returns. It's appropriately sized with no redundant information. The front-loaded purpose statement is clear, though the parameter listing could be more integrated rather than in a separate Args block.

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?

Given the tool's moderate complexity (sending location data), annotations cover safety aspects, and an output schema exists (implied by 'Returns: str'), the description is somewhat complete. It explains the action and parameters but lacks usage guidelines and richer behavioral context. The presence of output schema means return values don't need detailed explanation, but more operational guidance would help.

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 0%, meaning parameter descriptions in the schema are minimal. The description compensates by listing parameters (chat_id, latitude, longitude) with brief explanations and examples in the Args section, adding meaning beyond the bare schema. However, it doesn't fully detail parameter constraints or usage nuances, leaving some gaps.

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: '텔레그램 채팅에 지도 핀(위치 정보)을 전송합니다' (Send a map pin/location information to a Telegram chat). This specifies the verb ('전송합니다' - send) and resource ('지도 핀' - map pin/location). It distinguishes from siblings like telegram_send_message or telegram_send_photo by focusing specifically on location data, though it doesn't explicitly contrast with telegram_send_venue which also involves location.

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 when to choose this over telegram_send_venue (which also sends location with venue details) or other messaging tools, nor does it specify any prerequisites or contextual constraints for sending locations in Telegram chats.

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

telegram_send_media_groupA

텔레그램 채팅에 사진/동영상 앨범(미디어 그룹)을 전송합니다. 2~10개.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=false and destructiveHint=false, confirming this is a write operation that doesn't destroy data. The description adds that it sends media groups/albums (implying multiple items sent together as a unit) and specifies the 2-10 item range, which provides useful behavioral context beyond the annotations. However, it doesn't mention rate limits, authentication requirements, error conditions, or how the album appears in the chat interface.

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 extremely concise - just one sentence that efficiently communicates the tool's purpose, target, content type, and quantity constraint. Every word earns its place with no redundant information. The structure is front-loaded with the core action and resource.

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?

Given that there's an output schema (which handles return values), annotations covering safety profile, and a simple parameter structure, the description provides adequate context. It clearly explains what the tool does, what it sends, and the quantity constraints. For a media-sending operation with good structural support, this description is reasonably complete, though it could benefit from mentioning sibling tool relationships more explicitly.

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?

With 0% schema description coverage (the schema has descriptions but they're in Korean, matching the description language), the description carries the full parameter documentation burden. It effectively explains the core parameters: it specifies the action (send media group), target (Telegram chat), media types (photos/videos), and quantity constraint (2-10 items). While it doesn't detail individual parameter fields like chat_id format or media item structure, it provides sufficient semantic context for the main operation.

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 ('전송합니다' - send) and resource ('텔레그램 채팅에 사진/동영상 앨범' - photo/video album to Telegram chat), and specifies the quantity constraint (2-10 items). It distinguishes itself from single-media sending tools like telegram_send_photo or telegram_send_video by mentioning '미디어 그룹' (media group/album). However, it doesn't explicitly contrast with telegram_send_with_buttons or other multi-message tools.

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?

The description implies usage context through the quantity constraint (2-10 media items) and media type specification (photos/videos), suggesting this is for sending albums rather than single media. However, it doesn't provide explicit guidance on when to choose this over alternatives like sending multiple individual messages or using other multi-content tools like telegram_send_with_buttons. No prerequisites or exclusions are mentioned.

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

telegram_send_messageB

텔레그램 채팅에 메시지를 전송합니다.

Args: params (SendMessageInput): - chat_id (int): 대상 채팅 ID - text (str): 전송할 메시지 (Markdown 지원) - parse_mode (str): 'Markdown' 또는 'HTML' (기본값: Markdown)

Returns: str: 전송 성공 메시지 또는 에러

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already indicate this is not read-only (readOnlyHint: false) and not destructive (destructiveHint: false). The description adds that it sends messages and mentions Markdown support, which provides useful context beyond annotations. However, it doesn't disclose important behavioral aspects like rate limits, authentication requirements, or what happens with invalid chat IDs.

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 well-structured with clear sections (Args, Returns) and uses bullet points for parameters. It's appropriately sized at 4 sentences total. The first sentence clearly states the purpose, though the parameter explanations could be slightly more concise.

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 message-sending tool with 3 parameters and no schema descriptions, the description adequately covers the basics. It mentions the tool has an output schema (Returns section), so it doesn't need to detail return values. However, it lacks important context about error conditions, rate limits, and differentiation from sibling sending 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?

The description lists all three parameters (chat_id, text, parse_mode) with brief explanations that mostly mirror the schema descriptions. With 0% schema description coverage, the description compensates by documenting the parameters, but doesn't add significant semantic value beyond what's already implied by parameter names. The mention of Markdown support for the text parameter is helpful context.

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: '텔레그램 채팅에 메시지를 전송합니다' (sends a message to a Telegram chat). It specifies the verb ('전송합니다' - send) and resource ('텔레그램 채팅' - Telegram chat). However, it doesn't explicitly differentiate from sibling tools like 'telegram_send_with_buttons' or 'telegram_send_photo' that also send messages but with different capabilities.

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 many sibling tools for sending different types of content (photos, videos, documents, messages with buttons, etc.), there's no indication that this is specifically for plain text messages with optional Markdown/HTML formatting versus those other options.

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

telegram_send_photoA

텔레그램 채팅에 사진을 전송합니다. URL 또는 file_id 사용 가능.

Args: params (SendPhotoInput): - chat_id (int): 채팅 ID - photo (str): 이미지 URL 또는 Telegram file_id - caption (str): 이미지 설명 (선택, 최대 1024자) - parse_mode (str): 'Markdown' 또는 'HTML' (기본값: Markdown)

Returns: str: 전송 성공 메시지 또는 에러

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

Annotations provide readOnlyHint=false and destructiveHint=false, indicating this is a write operation but not destructive. The description adds that it sends a photo to a chat, which aligns with annotations. However, it doesn't disclose additional behavioral traits like rate limits, authentication requirements, or what happens if the photo fails to send beyond the generic '에러' (error) mention.

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 well-structured with a purpose statement followed by Args and Returns sections. Every sentence adds value: the first explains what the tool does, the Args detail parameters, and Returns indicates outcome. It could be slightly more concise by integrating parameter details into a single paragraph.

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?

Given the tool has an output schema (implied by 'Has output schema: true'), the description doesn't need to detail return values beyond mentioning '전송 성공 메시지 또는 에러' (success message or error). It covers the essential purpose and parameters adequately, though it lacks context on error conditions or usage examples.

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 0%, so the description carries full burden. It provides clear semantics for all parameters: chat_id identifies the chat, photo can be URL or file_id, caption is optional with max length, and parse_mode has specific options. This compensates well for the lack of schema 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 clearly states the tool's purpose with a specific verb ('전송합니다' - send) and resource ('사진' - photo) in the first sentence. It distinguishes from siblings by specifying it's for photos only, unlike other send_* tools for different media types (animation, audio, document, etc.).

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?

The description implies usage context by mentioning '텔레그램 채팅에' (to Telegram chat) and that URL or file_id can be used, but doesn't explicitly state when to use this versus alternatives like telegram_send_message for text or telegram_send_media_group for multiple media. No guidance on prerequisites or when-not-to-use scenarios is provided.

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

telegram_send_pollA

텔레그램 채팅에 투표를 생성합니다.

Args: params (SendPollInput): - chat_id (int): 채팅 ID - question (str): 투표 질문 (최대 300자) - options (list[str]): 선택지 목록 (2~10개) - is_anonymous (bool): 익명 투표 여부 (기본 True) - allows_multiple_answers (bool): 복수 선택 허용 (기본 False)

Returns: str: 투표 생성 성공 메시지 또는 에러

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=false and destructiveHint=false, confirming this is a write operation that doesn't destroy data. The description adds context about what gets created (a poll) and mentions error handling in the returns statement. However, it doesn't disclose rate limits, authentication requirements, or other behavioral traits beyond what annotations already 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 well-structured with clear sections (Args, Returns) and uses bullet points for parameter details. While efficient, the Korean-only text might limit accessibility for some agents, and the returns statement could be more specific about success/error formats.

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?

Given the tool's moderate complexity (5 parameters with constraints) and the presence of an output schema (implied by 'Returns: str'), the description is reasonably complete. It documents all parameters thoroughly and indicates the return type. However, it could benefit from more behavioral context about Telegram-specific requirements or limitations.

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

Parameters5/5

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

With 0% schema description coverage (parameters documented only in the description), the description carries the full burden of parameter documentation. It provides comprehensive details for all 5 parameters including data types, constraints (max 300 characters, 2-10 options), and default values. This fully compensates for the schema's lack of descriptions.

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: '텔레그램 채팅에 투표를 생성합니다' (creates a poll in a Telegram chat). It specifies the verb ('생성합니다' - creates) and resource ('투표' - poll), distinguishing it from sibling tools like send_message or send_photo. However, it doesn't explicitly differentiate from all other messaging tools, keeping it at 4 rather than 5.

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 many sibling tools for sending different content types (message, photo, video, etc.), there's no indication of when a poll is appropriate versus other communication methods. No prerequisites or exclusions are mentioned.

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

telegram_send_stickerB

텔레그램 채팅에 스티커를 전송합니다. file_id 또는 URL 사용 가능.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations indicate this is not read-only and not destructive, which the description doesn't contradict. The description adds minimal behavioral context by mentioning the two input formats (file_id or URL) and acceptable file types (.webp/.tgs/.webm), but doesn't cover important aspects like authentication requirements, rate limits, error conditions, or what happens when sending fails.

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 with just one sentence that states the core functionality. While efficient, it might be too brief given the lack of other contextual information about this mutation tool. Every word earns its place, but more information would be helpful.

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 mutation tool with no destructive hint but also no read-only hint, the description provides basic functionality but lacks important context. While an output schema exists (which reduces the need to describe return values), the description doesn't address prerequisites, error handling, or how this integrates with the broader Telegram API ecosystem represented by the many sibling 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?

With 0% schema description coverage, the description doesn't add meaningful parameter information beyond what's already implied by the tool name. It mentions 'file_id or URL' which relates to the 'sticker' parameter, but doesn't explain 'chat_id' or provide any additional context about parameter usage, format requirements, or constraints.

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 ('send sticker') and target ('Telegram chat'), making the purpose immediately understandable. However, it doesn't differentiate this tool from other Telegram send tools like 'telegram_send_photo' or 'telegram_send_message' beyond the media type, which prevents 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?

No guidance is provided about when to use this tool versus alternatives. The description mentions 'file_id or URL' but doesn't explain when one format is preferred over the other or how this compares to sending other media types like photos or videos through sibling tools.

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

telegram_send_venueB

텔레그램 채팅에 장소(위치+이름+주소)를 전송합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

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

Annotations provide readOnlyHint=false and destructiveHint=false, indicating this is a non-destructive write operation. The description doesn't contradict these annotations. It adds that this sends content to a Telegram chat, which provides context about the target system. However, it lacks additional behavioral details like rate limits, authentication requirements, error conditions, or what happens if the chat_id is invalid.

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 states exactly what the tool does with zero wasted words. It's front-loaded with the core functionality and uses clear terminology. Every element of the sentence contributes directly to understanding the tool's purpose.

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?

Given this is a write operation (annotations show readOnlyHint=false) with 6 parameters and an output schema exists, the description is minimally complete. It explains what the tool does at a high level but lacks details about when to use it, error handling, or behavioral nuances. The existence of an output schema means return values don't need explanation, but more context about the Telegram-specific behavior 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 0% (parameter descriptions are in Korean but counted as 0% in context signals), so the description carries full burden. The description mentions '장소(위치+이름+주소)' which maps to latitude/longitude (위치), title (이름), and address (주소), covering 3 of the 6 parameters. It doesn't mention chat_id, foursquare_id, or the specific parameter structure (nested under 'params'). Baseline would be lower, but partial coverage of core parameters brings it to adequate.

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 ('전송합니다' - send) and resource ('장소(위치+이름+주소)' - venue with location+name+address) to a specific destination ('텔레그램 채팅' - Telegram chat). It distinguishes from siblings like telegram_send_location (which sends only coordinates) by specifying it sends a full venue with name and address. However, it doesn't explicitly contrast with all similar tools like telegram_send_contact.

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 are multiple sibling tools for sending different types of content (location, contact, message, etc.), but the description doesn't indicate when a venue is preferred over a simple location or contact. No prerequisites, constraints, or comparison with similar tools are mentioned.

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

telegram_send_videoC

텔레그램 채팅에 동영상을 전송합니다. URL 또는 file_id 사용 가능.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior3/5

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

Annotations already indicate this is not read-only and not destructive, so the agent knows it performs a write operation safely. The description adds that it sends videos to Telegram chats, which provides basic context but doesn't disclose important behavioral aspects like authentication requirements, rate limits, file size constraints, or what happens on failure.

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 - just one sentence in Korean that directly states the tool's function. There's no wasted verbiage, though it could benefit from being slightly more informative given the parameter 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?

For a video-sending tool with 7 parameters and no schema descriptions, the single-sentence description is inadequate. While an output schema exists (which helps), the description fails to explain key aspects like required authentication, file format/size limitations, or how this differs from similar media-sending tools in the sibling list.

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

Parameters1/5

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

With 0% schema description coverage, the description carries full responsibility for explaining parameters. It only mentions that 'URL or file_id' can be used for the video parameter, completely ignoring the 6 other parameters (chat_id, caption, parse_mode, duration, width, height) that are documented in the schema but not mentioned 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 ('send video') and target ('Telegram chat'), making the purpose immediately understandable. However, it doesn't distinguish this tool from similar sibling tools like 'telegram_send_animation' or 'telegram_send_video_note' that also send media content.

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 about when to use this tool versus alternatives like 'telegram_send_animation' or 'telegram_send_media_group'. It mentions that URLs or file_ids can be used, but this is parameter information rather than usage context.

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

telegram_send_video_noteC

텔레그램 채팅에 둥근 비디오 메시지를 전송합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior3/5

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

Annotations provide readOnlyHint=false and destructiveHint=false, indicating this is a write operation but not destructive. The description adds that it sends to a Telegram chat, which provides context about the target system. However, it doesn't disclose important behavioral details like rate limits, authentication requirements, error conditions, or what happens on success.

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?

Extremely concise single sentence with no wasted words. Every word contributes to the core purpose. The structure is front-loaded with the essential action and target.

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?

While there's an output schema, the description is inadequate for a tool with 4 parameters and 0% schema coverage. For a write operation that sends media to a messaging platform, the description should address more about behavior, constraints, and typical usage patterns. The presence of an output schema doesn't compensate for the lack of parameter guidance.

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

Parameters1/5

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

The description provides zero information about parameters. With 0% schema description coverage and 4 parameters (chat_id, video_note, duration, length), the description doesn't compensate at all. It doesn't explain what '둥근 비디오' (round video) means in practice or how parameters interact.

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 ('전송합니다' - send) and resource ('둥근 비디오 메시지' - round video message) with specific target ('텔레그램 채팅' - Telegram chat). It distinguishes from siblings like 'telegram_send_video' by specifying the round video format. However, it doesn't explicitly contrast with all similar sending tools.

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 alternatives like 'telegram_send_video' or 'telegram_send_animation'. The description only states what it does, not when it's appropriate. No mention of prerequisites, constraints, or typical use cases.

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

telegram_send_voiceB

텔레그램 채팅에 음성 메시지를 전송합니다. .ogg OPUS 형식.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior3/5

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

Annotations indicate this is not read-only and not destructive, which aligns with the 'send' action. The description adds the specific format requirement (.ogg OPUS), which is useful behavioral context beyond annotations. However, it doesn't mention authentication needs, rate limits, error conditions, or what happens if the chat_id is invalid.

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 very concise - just one sentence stating the purpose and format requirement. It's front-loaded with the core functionality. However, it could be more structured by separating format requirements from the main purpose.

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 tool with 5 parameters, 0% schema description coverage, no output schema details provided in context, and annotations only covering basic safety hints, the description is incomplete. It mentions the format requirement but doesn't explain parameter meanings, return values, or usage context. The existence of an output schema (per context signals) reduces the need to describe returns, but parameter understanding remains inadequate.

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?

Schema description coverage is 0%, meaning parameter descriptions are entirely missing from the schema. The tool description mentions '.ogg OPUS 형식' which relates to the 'voice' parameter, but doesn't explain any other parameters like chat_id, caption, parse_mode, or duration. With 5 parameters and 0% schema coverage, the description provides minimal compensation.

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 ('전송합니다' - sends) and resource ('텔레그램 채팅에 음성 메시지' - voice message to Telegram chat), specifying it sends voice messages to Telegram chats. However, it doesn't explicitly differentiate from sibling tools like telegram_send_audio or telegram_send_video_note which also send media to chats.

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 like telegram_send_audio or telegram_send_message. It mentions the required format (.ogg OPUS) but doesn't explain when voice messages are preferred over other message types or what distinguishes this from similar media-sending tools.

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

telegram_send_with_buttonsA

URL 링크 또는 콜백 버튼이 붙은 텔레그램 메시지를 전송합니다.

버튼 예시 (buttons 파라미터): [[{"text": "공식 사이트", "url": "https://example.com"}], [{"text": "확인", "callback_data": "ok"}, {"text": "취소", "callback_data": "cancel"}]]

Args: params (SendInlineKeyboardInput): - chat_id (int): 채팅 ID - text (str): 메시지 내용 - buttons (list[list[dict]]): 버튼 2차원 배열 - parse_mode (str): 'Markdown' 또는 'HTML' (기본값: Markdown)

Returns: str: 전송 성공 메시지 또는 에러

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations indicate readOnlyHint=false and destructiveHint=false, covering basic safety. The description adds valuable context beyond annotations: it specifies the tool sends messages (a write operation, consistent with annotations), provides a concrete example of button usage, and mentions the return value ('전송 성공 메시지 또는 에러' - success message or error). This enhances understanding of behavior without contradicting annotations.

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 well-structured with a clear purpose statement, example, and parameter breakdown. It is appropriately sized for the tool's complexity. However, the example is detailed, which is helpful but slightly reduces conciseness. Overall, it is front-loaded and efficient, with each section earning its place.

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?

Given the tool's moderate complexity (sending messages with buttons), the description is complete. It covers purpose, parameters (with examples), and return values. Annotations provide safety hints, and the output schema exists (though not detailed in the description, which is acceptable). The description adequately supplements structured fields without redundancy.

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

Parameters5/5

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

The input schema has 0% description coverage, so the description carries the full burden. It compensates excellently by detailing all parameters in the 'Args' section: chat_id, text, buttons (with a comprehensive example), and parse_mode (including default value). This adds significant meaning beyond the bare schema, fully documenting parameter purposes and usage.

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 purpose: 'URL 링크 또는 콜백 버튼이 붙은 텔레그램 메시지를 전송합니다' (sends Telegram messages with URL links or callback buttons). It specifies the exact action (send), resource (Telegram message), and distinguishing feature (with buttons), differentiating it from sibling tools like telegram_send_message which presumably sends plain messages.

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?

The description implies usage context by mentioning buttons, suggesting it should be used when interactive elements are needed. However, it does not explicitly state when to use this tool versus alternatives like telegram_send_message or other send_* tools, nor does it provide exclusions or prerequisites. The guidance is implicit rather than explicit.

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

telegram_set_message_reactionB

메시지에 이모지 리액션을 설정하거나 제거합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

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

Annotations provide readOnlyHint=false and destructiveHint=false, indicating this is a non-destructive write operation. The description adds that it can both set and remove reactions, which is useful context beyond annotations. However, it doesn't disclose other behavioral traits like rate limits, authentication needs, or side effects (e.g., notifications to users). No contradiction with annotations exists.

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 in Korean that directly states the tool's function without unnecessary words. It's front-loaded with the core action and efficiently conveys both setting and removing reactions. Every part of the sentence 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?

Given the tool has annotations (readOnlyHint, destructiveHint) and an output schema (implied by context signals), the description doesn't need to cover safety or return values. However, with 0% schema coverage and 4 nested parameters, the description should do more to explain parameter usage and context. It's minimally adequate but leaves gaps in understanding how to invoke the tool 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?

Schema description coverage is 0%, so the schema provides no parameter descriptions. The tool description mentions '메시지' (message) and '이모지 리스트' (emoji list), hinting at chat_id/message_id and reaction parameters, but doesn't explain all four parameters or their semantics in detail. Since there's only 1 top-level parameter (params object), the description adds minimal value, aligning with the baseline for low 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 as '메시지에 이모지 리액션을 설정하거나 제거합니다' (Sets or removes emoji reactions on a message), which specifies the verb (set/remove) and resource (emoji reactions on messages). It distinguishes from sibling tools like telegram_send_message or telegram_edit_message by focusing on reactions rather than message content. However, it doesn't explicitly differentiate from other reaction-related tools (none exist in the sibling list), so it's not a perfect 5.

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 (e.g., needing message IDs), exclusions, or comparisons to similar tools. While the sibling list includes no direct reaction alternatives, guidelines for when reactions are appropriate versus other interactions (e.g., editing messages) are absent.

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

telegram_unban_userA

그룹/채널에서 차단된 사용자를 해제합니다. (봇이 관리자 권한 필요)

Args: params (UnbanUserInput): - chat_id (int): 그룹/채널 ID - user_id (int): 차단 해제할 사용자 ID - only_if_banned (bool): 차단된 경우에만 해제 (기본 True)

Returns: str: 차단 해제 성공 메시지 또는 에러

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

Annotations indicate this is not read-only (readOnlyHint=false) and not destructive (destructiveHint=false). The description adds valuable context about the admin permission requirement, which isn't captured in annotations. However, it doesn't describe rate limits, error conditions beyond mentioning '에러' (error), or what happens when only_if_banned=false and the user isn't banned.

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 perfectly structured with a clear purpose statement, prerequisite note, organized parameter documentation, and return value explanation. Every sentence serves a distinct purpose with zero wasted words. The information is front-loaded with the core functionality stated first.

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 mutation tool with 0% schema description coverage, the description does an excellent job explaining parameters and returns. The output schema exists (Returns section mentions string response), so the description appropriately doesn't detail return values. It covers the essential context but could benefit from more behavioral details about edge cases.

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 0%, so the description carries full burden. The Args section provides clear descriptions for all three parameters (chat_id, user_id, only_if_banned) with the boolean's default value explained. However, it doesn't explain parameter formats (e.g., what constitutes valid Telegram IDs) or the implications of only_if_banned=false.

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 specific action ('해제합니다' - unban) and target resource ('그룹/채널에서 차단된 사용자' - banned user in group/channel). It distinguishes from sibling tools like 'telegram_ban_user' by being the inverse operation. The purpose 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?

The description provides clear context about when to use this tool - when you need to unban a user in a Telegram group/channel. It explicitly mentions the prerequisite '봇이 관리자 권한 필요' (bot needs admin permissions). However, it doesn't explicitly state when NOT to use it or mention alternatives among siblings.

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

telegram_unpin_messageA

채팅에서 고정된 메시지를 해제합니다. (봇이 관리자 권한 필요)

Args: params (UnpinMessageInput): - chat_id (int): 채팅 ID - message_id (int): 고정 해제할 메시지 ID (None이면 가장 최근 고정 메시지)

Returns: str: 고정 해제 성공 메시지 또는 에러

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

The description adds valuable behavioral context beyond the annotations. While annotations indicate this is not read-only and not destructive, the description specifies the admin permission requirement and clarifies the default behavior when message_id is None (unpins the most recent pinned message). This provides important operational context that annotations alone don't convey.

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 perfectly structured with a clear purpose statement, parameter explanations in a formatted Args section, and return information. Every sentence earns its place, and the information is front-loaded with the core functionality stated first.

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?

Given the tool's moderate complexity (mutation requiring permissions), the description provides good coverage of purpose, parameters, and behavioral constraints. With an output schema present, it doesn't need to detail return values. The main gap is lack of error handling specifics beyond mentioning 'error' in returns.

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?

With 0% schema description coverage, the description carries the full burden of explaining parameters. It clearly explains both chat_id and message_id parameters, including the special behavior when message_id is None. The description adds meaningful semantic context that the bare schema lacks, though it could provide more detail about chat_id format.

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 specific action ('unpin a message from a chat') and distinguishes it from sibling tools like 'telegram_pin_message'. It uses precise Korean terminology that matches the tool's function without being tautological.

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 states when to use this tool ('to unpin a message from a chat') and mentions a prerequisite ('bot needs admin permissions'). However, it doesn't provide guidance on when NOT to use it or mention specific alternatives among the sibling tools.

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. 35 tool updatesv0.1.0
    • First observedtelegram_answer_callback_query
    • First observedtelegram_ban_user
    • First observedtelegram_copy_message
    • First observedtelegram_copy_messages
    • First observedtelegram_delete_message
    • First observedtelegram_delete_messages
    • First observedtelegram_edit_message
    • First observedtelegram_forward_message
    • First observedtelegram_forward_messages
    • First observedtelegram_get_chat
    • First observedtelegram_get_chat_members_count
    • First observedtelegram_get_file
    • First observedtelegram_get_me
    • First observedtelegram_get_updates
    • First observedtelegram_pin_message
    • First observedtelegram_send_animation
    • First observedtelegram_send_audio
    • First observedtelegram_send_chat_action
    • First observedtelegram_send_contact
    • First observedtelegram_send_dice
    • First observedtelegram_send_document
    • First observedtelegram_send_location
    • First observedtelegram_send_media_group
    • First observedtelegram_send_message
    • First observedtelegram_send_photo
    • First observedtelegram_send_poll
    • First observedtelegram_send_sticker
    • First observedtelegram_send_venue
    • First observedtelegram_send_video
    • First observedtelegram_send_video_note
    • First observedtelegram_send_voice
    • First observedtelegram_send_with_buttons
    • First observedtelegram_set_message_reaction
    • First observedtelegram_unban_user
    • First observedtelegram_unpin_message

TDQS

A3.5/5.0
Disambiguation4/5

Most tools are clearly distinct by media type or action, but some overlap exists: copy_message vs forward_message both move messages, and send_with_buttons could be confused with send_message for text-only cases. However, descriptions clarify differences like forwarding with attribution vs copying without.

Naming Consistency5/5

All tools follow a strict 'telegram_verb_noun' pattern with consistent snake_case throughout. The naming is highly predictable, making it easy to infer tool purposes from their names alone.

Tool Count3/5

35 tools is borderline heavy for a Telegram server, though it covers many media types and actions. It feels comprehensive but may overwhelm agents with many similar tools (e.g., send_photo, send_video, send_animation).

Completeness5/5

The toolset provides extensive coverage of Telegram Bot API functionalities, including message CRUD, user management, media sending, and polling. There are no obvious gaps for core Telegram operations, supporting a wide range of bot workflows.

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

  • F
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that wraps the Telegram Bot API into semantic tools for LLM agents, supporting multi-bot management for sending and receiving messages. It enables agents to send text, photos, and documents, as well as fetch recent updates from multiple configured Telegram bots.
    -
  • A
    license
    Not graded
    quality
    A
    maintenance
    Production-grade MCP server for Telegram with dual-mode Bot API and MTProto. 6 composite tools covering messages, chats, media, contacts management with 3-tier token optimization.
    11
    Apache 2.0
  • F
    license
    A
    quality
    D
    maintenance
    An MCP server for interacting with Telegram bots and channels using the Telegraf library. It allows AI agents to send messages, manage channels, forward content, and intelligently respond to Telegram conversations.
    5
    40
    8
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server that enables Telegram bot interaction via Telegraf, providing tools for sending, replying, reacting, editing, deleting, forwarding messages, and receiving Telegram events over an optional notification channel.
    46
    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/ruchiayeon/telegram-mcp'

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