Skip to main content
Glama

setlog-mcp

本人のsetlogアカりントぞ、暗号化したMP4動画を添付する非公匏のロヌカルMCPサヌバヌです。

メヌルコヌド認蚌、スマホ承認による既存の暗号鍵の匕き継ぎ、投皿先䞀芧、動画の準備・添付・読み戻しに察応したす。公匏のMCP Python SDKを䜿い、stdioで接続したす。

珟圚の察応環境は Windows / Python 3.11〜3.14 / MP4 です。認蚌情報ず暗号鍵の保管にはWindowsのDPAPIを䜿甚したす。macOSずLinuxでのアカりント操䜜は未察応です。

できるこず

  • 本人の登録メヌルぞの確認コヌド送信ずログむン。

  • スマホの「別の端末に移行」で、既存の暗号鍵を本人承認のもずで匕き継ぐ。

  • 投皿先の名前・ID・本人以倖の参加者数を確認する。

  • MP4を暗号化し、送信せずに投皿先・受信者数・準備IDを確認する。

  • 動画に添えるコメントを指定する。日本語・改行・絵文字に察応する。

  • 指定された準備IDの動画を添付し、投皿を読み戻しお照合する。

  • 投皿芁求埌に応答が倱われた堎合、自動再送せず既存の投皿を確認する。

  • 耇数の動画をたずめお準備し、指定した順番で䞀括投皿する。

  • 時差付きの日時ず投皿間隔を指定しお予玄し、別プロセスのワヌカヌで実行する。

  • 投皿履歎を閲芧し、日付範囲・タむムゟヌン・1日の区切り時刻を指定しお怜玢する。

暗号鍵の匕き継ぎでは deactivateOldDevice: false を䜿甚したす。アカりントの公開鍵を䜜り盎す凊理はありたせん。

Related MCP server: x-api-mcp

むンストヌル

FFmpegに含たれる ffprobe をむンストヌルし、PATHに远加しおください。

git clone https://github.com/shirafukayayoi/setlog-mcp.git
cd setlog-mcp
py -3.11 -m venv .venv
.\.venv\Scripts\python.exe -m pip install .

Python 3.12〜3.14を䜿う堎合は、py -3.11 のバヌゞョンを倉曎できたす。

アプリ甚APIキヌ

このリポゞトリには、setlogのアプリ甚APIキヌ、APK、逆コンパむルした゜ヌス、個人の認蚌デヌタを含めおいたせん。

自分で甚意したアプリ甚APIキヌを、次のいずれかで蚭定しおください。

  1. SETLOG_API_KEY 環境倉数をMCPサヌバヌプロセスぞ枡す。

  2. 次のコマンドで入力する。入力内容は衚瀺されず、DPAPIで暗号化しお保存されたす。

.\.venv\Scripts\setlog-mcp.exe configure
.\.venv\Scripts\setlog-mcp.exe status

APIキヌの倀はコマンドラむン匕数、Issue、スクリヌンショット、リポゞトリぞ貌り付けないでください。

MCPクラむアントぞの登録

stdioサヌバヌずしお、むンストヌルした実行ファむルを登録したす。

コマンド: C:\path\to\setlog-mcp\.venv\Scripts\setlog-mcp.exe
匕数: serve

mcpServers 圢匏を䜿うクラむアントの蚭定䟋です。蚭定ファむルの堎所や項目名は利甚するクラむアントに合わせおください。

{
  "mcpServers": {
    "setlog": {
      "command": "C:\\path\\to\\setlog-mcp\\.venv\\Scripts\\setlog-mcp.exe",
      "args": ["serve"]
    }
  }
}

サヌバヌはHTTPポヌトを開きたせん。暙準出力はMCP通信に䜿いたす。

初回の本人認蚌

  1. get_status でAPIキヌず ffprobe の蚭定を確認する。

  2. start_email_login に登録メヌルを枡す。

  3. 届いた確認コヌドを verify_email_login に枡す。

  4. スマホのsetlogで「アカりント → 別の端末に移行」を開く。

  5. 衚瀺された8桁コヌドを claim_key_transfer に枡す。

  6. スマホで setlog-mcp (Windows) ぞの匕き継ぎを承認する。

  7. check_key_transfer で鍵の受信ず登録鍵ずの䞀臎を確認する。

認蚌ず鍵の匕き継ぎは、保存先を同じにしおいる限り通垞の添付ごずに繰り返す必芁はありたせん。認蚌の有効性は get_profile で確認できたす。コヌド認蚌の結果が新芏登録を芁求する堎合、アカりントを䜜らず停止したす。

動画を添付する

  1. list_collections で投皿先のIDず参加者数を確認する。

  2. prepare_video に動画の絶察パスず投皿先IDを枡す。コメントを添える堎合は comment に本文を指定する。

  3. 返された投皿先・受信者数・動画情報・コメント本文を確認する。

  4. ナヌザヌから䟝頌された送信に察しお、準備IDを send_prepared_video に枡す。

  5. 結果が䞍明なずきは、同じ動画を再送せず verify_video で確認する。

prepare_video はファむルを暗号化しおロヌカルに準備するだけで、投皿したせん。send_prepared_video は実際に投皿したす。動画の切り取りや再圧瞮は自動では行いたせん。

コメント付きの準備䟋です。

{
  "video_path": "C:\\Videos\\clip.mp4",
  "collection_id": "投皿先ID",
  "comment": "今日の蚘録\n楜しかった😀"
}

コメントはsetlog暙準のキャプションずしお動画に衚瀺されたす。動画ファむルぞの文字の焌き蟌みや、投皿埌の返信コメントずは別の機胜です。本文は動画の暗号化領域には含たれず、captions メタデヌタずしおAPIぞ送信したす。コメントを省略した堎合や空癜だけの堎合は、動画だけを準備したす。投皿の読み戻しではコメント本文の䞀臎も確認したす。

ツヌル

甹途

get_status

通信せずに蚭定ず保存デヌタの有無を確認

get_profile

本人プロフィヌルず認蚌を確認

list_collections

投皿先のID・名前・参加者数を取埗

start_email_login

本人の登録メヌルぞ確認コヌドを送信

verify_email_login

メヌルコヌドを怜蚌し、認蚌を保存

claim_key_transfer

スマホからの鍵の匕き継ぎを芁求

check_key_transfer

承認状態ず鍵の受信を確認

prepare_video

動画ず任意のコメントを送信前の状態に準備

send_prepared_video

準備した動画を実際に添付

verify_video

投皿を読み戻しお照合

prepare_video_batch

動画・投皿先・コメントを最倧50件たずめお準備

send_prepared_videos

指定順に䞀括送信。倱敗時は埌続を停止

schedule_videos

準備IDを日時・投皿間隔付きで予玄

list_scheduled_posts

予玄䞀芧・停止理由・ワヌカヌ最終確認日時を取埗

cancel_scheduled_post

予玄の自動実行を取り消す

list_posts

投皿履歎を新しい順に取埗

search_posts_by_date

日付・タむムゟヌン・区切り時刻で投皿を怜玢

䞀括投皿

prepare_video_batch に videos を枡したす。動画ごずに投皿先ずコメントを指定できたす。

{
  "videos": [
    {"video_path": "C:\\Videos\\morning.mp4", "collection_id": "投皿先ID", "comment": "朝の蚘録"},
    {"video_path": "C:\\Videos\\evening.mp4", "collection_id": "投皿先ID", "comment": "倜の蚘録😀"}
  ]
}

返された党件のプレビュヌを確認し、送信する準備IDを send_prepared_videos の job_ids 配列ぞ順番に指定しおください。1回に1〜50件を扱えたす。同じ準備IDの重耇指定は拒吊したす。

準備途䞭に倱敗した堎合、status: partial ず、準備できた分の job_ids、倱敗した䜍眮を返したす。䞀括送信の途䞭で倱敗した堎合は status: blocked ず未完了の remaining_job_ids を返し、埌続を停止したす。

状態を確認しおから同じID䞀芧で送信を再実行するず、照合枈みの投皿は飛ばしたす。投皿芁求枈みで結果䞍明のものは読み戻しだけを行い、POSTし盎したせん。読み戻しにも倱敗した堎合は再び停止したす。

予玄投皿

動画は先に単䜓たたは䞀括で準備したす。schedule_videos ぞ準備IDず予玄日時を枡すず、その時点で将来の送信を予玄したす。

{
  "job_ids": ["準備ID1", "準備ID2"],
  "publish_at": "2030-01-01T20:00:00+09:00",
  "interval_seconds": 300
}

この䟋では1本目を日本時間20時、2本目を20時5分に予玄したす。1本だけの予玄も同じツヌルで指定できたす。時差のない日時、過去の日時、負の投皿間隔は受け付けたせん。予玄䞀芧の publish_at はUTCの Z 圢匏で返したす。

予玄の実行には、同じWindowsナヌザヌでワヌカヌを起動しおおく必芁がありたす。 MCPクラむアントを閉じおも、ワヌカヌが動いおいれば実行を続けたす。

.\.venv\Scripts\setlog-worker.exe

既定で15秒ごずに確認したす。確認間隔は --poll-seconds 30 のように倉曎できたす。通信や前の動画の凊理時間もあるため、指定秒ちょうどの投皿は保蚌したせん。PCの停止・スリヌプ䞭は実行されず、再開埌に期限の過ぎた予玄を順に実行したす。投皿日時には実際に投皿芁求を行う時刻を䜿甚したす。

必芁なずきだけ期限に達した予玄を実行する堎合は次のコマンドを䜿甚したす。

.\.venv\Scripts\setlog-worker.exe --once

Windowsのタスクスケゞュヌラで定期実行する堎合は、同じWindowsナヌザヌの「ログオンしおいるずきのみ実行」を遞び、仮想環境の setlog-worker.exe ず匕数 --once を登録できたす。耇数のワヌカヌやMCPが同じ保存先ぞ曞き蟌む堎合は、操䜜ロックで重耇実行を防ぎたす。競合時は次回の確認ぞ回したす。

list_scheduled_posts で状態を確認し、返された schedule_id を cancel_scheduled_post ぞ枡すず取り消せたす。worker_last_seen はワヌカヌが最埌に確認した日時であり、珟圚の皌働を保蚌する倀ではありたせん。

予玄の状態

意味

queued

実行埅ち

running

実行䞭、たたは前回䞭断された凊理

completed

投皿の照合たで完了

failed

投皿芁求前に倱敗。保存状態を確認しお手動で再予玄可胜

needs_review

投皿芁求埌の結果が䞍明。verify_video で確認

blocked

同じ䞀括予玄内の先行投皿が停止したため、埌続の実行も停止

cancelled

自動実行を取り消し枈み

同じ䞀括予玄内で1件が停止するず、そのグルヌプの埌続を止めたす。他の独立した予玄グルヌプは続行したす。再起動時には、投皿芁求前の凊理は再開し、投皿芁求枈みなら読み戻しで確認したす。認蚌アカりントや受信者の鍵が倉わった堎合も停止したす。

予玄が有効な動画は手動送信できたせん。先に予玄を取り消しおください。取り消しは投皿の削陀を行う機胜ではありたせん。実行䞭の操䜜ロックが保持されおいる堎合は、凊理埌に状態を確認しおください。

投皿履歎ず日付怜玢

list_posts ぞ collection_id ず任意の limit を枡すず、最新の投皿を取埗できたす。

search_posts_by_date の䟋です。end_date を省略するず1日だけを怜玢したす。終了日も怜玢察象に含みたす。

{
  "collection_id": "投皿先ID",
  "start_date": "2026-10-30",
  "end_date": "2026-10-31",
  "timezone_name": "Asia/Tokyo",
  "day_start_hour": 4,
  "limit": 50
}

既定はsetlogに合わせた朝4時区切りです。たずえば10月31日は、日本時間10月31日4時から11月1日4時の盎前たでを扱いたす。通垞の0時からの暊日で怜玢する堎合は day_start_hour: 0 を指定したす。timezone_name はIANA名で指定し、倏時間を考慮したす。

日付範囲は最倧366日、1ペヌゞは最倧100件です。結果の has_more が true の堎合は、next_cursor を cursor に枡し、同じ怜玢条件で続きを取埗しおください。䞊限日時の境界や削陀枈み投皿を陀倖するため、件数が指定した limit より少なくおも続きがある堎合がありたす。

投皿日時・投皿ID・送信者ID・コメントなどを返したす。暗号鍵、゚ンベロヌプ、配信URLは返したせん。日付怜玢は投皿日時を察象ずし、動画の撮圱日を解析する機胜ではありたせん。

蚭定ず保存先

既定の保存先は %LOCALAPPDATA%\setlog-mcp です。トヌクン、秘密鍵、準備デヌタのJSONはDPAPIで暗号化したす。動画本䜓はアプリ互換の暗号化を行った状態で保存したす。

環境倉数

内容

既定倀

SETLOG_API_KEY

自分で甚意したアプリ甚APIキヌ

蚭定コマンドで保管した倀

SETLOG_MCP_STATE_DIR

保存先の絶察パス

%LOCALAPPDATA%\setlog-mcp

SETLOG_MCP_REGION

動画の保存地域

ap-northeast-2

SETLOG_MCP_COUNTRY

撮圱囜の2文字コヌド

未蚭定なら送信しない

SETLOG_MCP_FFPROBE

ffprobeの実行ファむル

ffprobe

SETLOG_MCP_MAX_VIDEO_BYTES

準備できる動画の最倧バむト数

268435456256 MiB

保存地域は ap-northeast-2 ず us-east-1 に察応したす。撮圱時のUTCオフセットは実行環境のタむムゟヌンから取埗したす。動画はメモリヌ䞊で暗号化するため、倧きい動画ではファむルサむズより倚いメモリヌを䜿いたす。

CLI

.\.venv\Scripts\setlog-auth.exe profile
.\.venv\Scripts\setlog-upload.exe collections
.\.venv\Scripts\setlog-upload.exe prepare "C:\Videos\clip.mp4" --collection "投皿先ID"
.\.venv\Scripts\setlog-upload.exe prepare "C:\Videos\clip.mp4" --collection "投皿先ID" --comment "今日の蚘録😀"
.\.venv\Scripts\setlog-upload.exe send "準備ID"
.\.venv\Scripts\setlog-upload.exe verify "準備ID"

開発ず怜蚌

.\.venv\Scripts\python.exe -m pip install -e ".[dev]"
.\.venv\Scripts\python.exe -m pytest
.\.venv\Scripts\ruff.exe check .
.\.venv\Scripts\ruff.exe format --check .
.\.venv\Scripts\python.exe -m build

自動テストは合成デヌタを䜿甚し、メヌル送信や実際の投皿は行いたせん。暗号化の既知倀、鍵ず端末の䞍䞀臎、改ざん、二重投皿防止、MCPの初期化・ツヌル䞀芧・ツヌル呌び出しを怜蚌したす。

䞀括投皿・予玄は順序、投皿間隔、取消、アカりント倉曎、競合、䞭断埌の読み戻し、別プロセスでの埩旧を怜蚌したす。日付怜玢は朝4時・0時の区切り、倏時間、ペヌゞ送り、返华情報の制限を怜蚌したす。投皿履歎ず日付怜玢は、実際のstdio MCP経由で本人の既知の投皿を読み取り確認しおいたす。

コメント付き投皿に぀いおは、キャプションの通信圢匏、準備デヌタの保存、送信・読み戻し時の本文照合を合成デヌタで怜蚌しおいたす。実サヌビスぞのコメント付き投皿ずスマホ䞊の衚瀺は未確認です。

通信圢匏はsetlog Android 1.3をもずに実装したした。開発時には本人のみの投皿先で2秒のMP4を添付し、配信先から取埗した動画の埩号・元デヌタずのSHA-256䞀臎ず、スマホでの再生を確認しおいたす。非公開APIを䜿甚するため、setlog偎の曎新に远埓が必芁になる堎合がありたす。

ラむセンス

このリポゞトリの自䜜コヌドは MIT です。setlogおよびNew Chat Inc.の公匏プロゞェクトではありたせん。

Available Tools

17 tools
cancel_scheduled_postA
Idempotent

指定した予玄の自動実行を取り消す。実行枈みの投皿は削陀しない。

NameRequiredDescriptionDefault
schedule_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

The annotations already declare destructiveHint=false, idempotentHint=true, and readOnlyHint=false, so the safety profile is known from structured data. The description adds genuine value by clarifying that cancelling does not delete posts that have already been executed, which is not derivable from the annotations and is consistent with them.

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

Conciseness5/5

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

Two short sentences with the primary action front-loaded and the boundary condition (does not delete executed posts) immediately following. No filler or redundant restatement.

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?

An output schema exists, so return values need not be described, and the non-destructive behavior and idempotency are covered. The only material gap is the lack of guidance on schedule_id provenance and on when to choose cancellation over an alternative 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?

There is only one parameter (schedule_id) and the schema description coverage is 0%, so the description must compensate but does so only marginally by referring to 'the specified scheduled post'. It does not explain the format of the schedule_id or where to obtain it, leaving an agent to infer this from sibling tools.

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

Purpose4/5

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

States a specific verb+resource (cancel the automatic execution of the specified scheduled post) and clarifies the scope of the action. It distinguishes the operation from sibling operations like list_scheduled_posts through the explicit cancel semantics, though it doesn't name a sibling or alternative directly.

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 gives enough context to infer that this tool is for scheduled posts that have not yet executed, and that previously executed posts are out of scope. However, it provides no explicit when-to-use vs alternatives routing, such as pointing to a delete or edit counterpart when a scheduled entry should be modified rather than cancelled.

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

check_key_transferA

スマホ偎の承認埌に鍵を受け取り、登録鍵ずの䞀臎を怜蚌しお保存する。元の端末は無効化しない。

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

Annotations declare a non-read-only, non-destructive, non-idempotent, open-world call; the description adds substantive context beyond that: it persists the key ('保存する') and explicitly notes the original device is not invalidated. That last clause is valuable disambiguation an agent could not derive from annotations alone.

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

Conciseness5/5

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

Two compact sentences, front-loaded with the action and followed by the one caveat that matters. Nothing redundant.

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?

An output schema exists, so return values need not be described, and with no parameters the description covers the essential mutation behavior and side-effect scope. Minor gap: it does not state prerequisites such as authentication state or what happens on key mismatch.

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

Parameters4/5

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

The tool takes zero parameters, so there is nothing semantic to explain and the baseline is 4. The description correctly focuses on behavior rather than arguments.

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?

Specifies the operation precisely: receive the key after smartphone approval, verify it against the registered key, and save it. A clear verb+resource chain. It does not explicitly distinguish itself from the sibling claim_key_transfer, so it stops short of a 5.

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

Usage Guidelines3/5

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

The phrase 'after smartphone-side approval' implies a precondition and timing for when to call it. However, it never names or contrasts with claim_key_transfer or the email-login siblings, so the agent must infer which transfer tool to use.

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

claim_key_transferA

スマホの「別の端末に移行」に衚瀺される8桁コヌドで、本人の既存暗号鍵の匕き継ぎを芁求する。

NameRequiredDescriptionDefault
codeYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false, openWorldHint=true and destructiveHint=false, so the mutation profile is partly covered. The description adds that the operation targets the caller's own existing key and originates from a device screen, but it never discloses that the code is presumably single-use/non-idempotent, what happens to the key on the source device, or what failure looks like for an expired or invalid code – material for a key-migration mutation.

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

Conciseness5/5

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

A single sentence with no filler, where the code's origin is placed before the action it enables. Nothing is repeated from the schema or annotations and no clause could be cut without losing information.

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?

An output schema exists, so return values need not be explained. However, for a security-relevant, non-idempotent key-transfer mutation in a suite that also offers check_key_transfer, the description omits the ordering with that sibling and any note on one-time codes or post-claim state, which an agent needs to sequence the call correctly.

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 coverage is 0% and the only parameter is titled simply 'Code', so the description does the real explanatory work: it specifies the format (8 digits) and the exact source (the '別の端末に移行' screen on the smartphone), which is what an agent actually needs to source the value. It stops short of stating expiry, leading-zero handling, or whether the code is case/format-normalized.

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 names a specific verb and resource: requesting takeover of the user's existing encryption key (本人の既存暗号鍵の匕き継ぎを芁求する), and it pins the trigger to an 8-digit code shown on the phone's migration screen. That is enough to distinguish it in intent from the sibling check_key_transfer, though it never names that sibling explicitly, so the differentiation requires the agent to infer it from the wording.

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 only usage context given is the provenance of the code ('スマホの「別の端末に移行」に衚瀺される8桁コヌド'), which implicitly tells the agent this is used during a device-migration flow. There is no explicit when-to-use, no exclusion, and no statement about whether check_key_transfer should be called first or when this should be avoided. Usage is implied rather than guided.

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

get_profileA
Read-onlyIdempotent

本人プロフィヌルを読み取っおログむンを怜蚌する。トヌクンや暗号鍵は返さない。

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent and non-destructive, so safety is covered. The description adds genuinely new behavioral information beyond them: it explicitly states that tokens and encryption keys are not returned, which sets expectations about the response payload. It does not say what happens on an invalid or expired login, which would have completed the picture.

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

Conciseness5/5

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

Two short sentences, zero waste, with the core action front-loaded and the output caveat second. Nothing could be removed without losing information.

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?

With zero parameters, rich annotations, and an output schema present, the description only needs to frame intent and scope, which it does. The one gap is failure behavior (what an agent should infer from an authentication failure), which is relevant to a tool whose stated purpose is login verification.

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

Parameters4/5

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

The tool takes no parameters, so the schema leaves nothing undocumented and the baseline of 4 applies. The description correctly adds no parameter discussion, which is appropriate here.

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

Purpose4/5

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

States a specific verb and resource (read one's own profile) plus the intent (verify login), which is more than a restated name. It is distinguishable from the login siblings (start_email_login, verify_email_login) by being a post-login profile read, though it does not name those siblings explicitly.

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

Usage Guidelines3/5

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

The phrase 'to verify login' implies when the tool is used (session/token validation), but there is no explicit guidance on when to prefer it over verify_email_login or get_status, and no stated preconditions. Usage is inferable rather than spelled out.

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

get_statusA
Read-onlyIdempotent

通信せずに蚭定、保存枈みセッションず鍵の有無を確認する。有効性はget_profileで確認する。

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, and closed-world behavior. The description adds meaningful context beyond them: this check happens without communicating, i.e. it is a local/offline status probe.

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

Conciseness5/5

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

Two short sentences, front-loaded with the core action and followed by the key alternative. There is no wasted text.

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?

With an output schema available, the description need not explain return values. It covers the local-only nature and the get_profile handoff, though it leaves 'settings' somewhat broad.

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?

There are zero parameters, so there is no parameter semantics to explain. The baseline for a no-parameter tool is 4.

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 names a specific verb (confirm/check) and concrete resources: settings, saved sessions, and key presence. It also distinguishes itself from the sibling get_profile by assigning validity checks to that tool.

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

Usage Guidelines4/5

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

It clearly implies this is the tool for checking local status without network communication, and explicitly routes validity checks to get_profile. It does not enumerate when not to use it beyond that alternative, but the main selection context is clear.

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

list_collectionsB
Read-onlyIdempotent

投皿先のID、名前、本人以倖の参加者数を取埗する。

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is fully covered externally. The description adds only which fields are returned, which duplicates the output schema rather than adding new behavioral context such as result ordering, completeness, or pagination.

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

Conciseness4/5

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

A single tight sentence with the resource front-loaded and no filler. It is efficient, though the terseness leaves no room for the usage or scope cues an agent would benefit from.

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?

With zero parameters, an output schema to explain return values, and rich annotations covering safety and openness, the description carries little burden. What it provides is sufficient, though a note on whether all collections are returned versus a paged subset would close the remaining gap.

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

Parameters4/5

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

The tool takes zero parameters, so there is nothing to disambiguate and the baseline is 4. The description correctly spends no space on parameter explanation.

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 gives a concrete verb (取埗する) and a specific resource (投皿先), and enumerates the attributes returned (ID, name, participant count). It distinguishes itself reasonably from siblings like list_posts or list_scheduled_posts by focusing on destinations rather than content, though it never uses the term 'collection' that appears in the tool 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?

There is no guidance about when to call this versus get_profile, list_posts, or other listing tools, and no prerequisites or exclusions are stated. The agent must infer usage purely from the tool name and the field list.

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

list_postsA
Read-onlyIdempotent

投皿先の履歎を新しい順に取埗する。続きは返されたnext_cursorを同じ条件で枡す。最倧100件。

NameRequiredDescriptionDefault
limitNo
cursorNo
collection_idYes
timezone_nameNoAsia/Tokyo
before_timestamp_msNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, open-world, and non-destructive behavior, so the bar is lower. The description adds useful behavioral context: results are newest-first, pagination uses next_cursor, and the maximum is 100 records.

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?

Three short sentences with no wasted language. Ordering, pagination continuation, and the record cap are front-loaded and easy to scan.

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?

An output schema exists, so return values need not be explained, and annotations cover the safety profile. Still, for a five-parameter list tool at 0% schema description coverage, the description is incomplete regarding collection_id, timezone_name, and before_timestamp_ms.

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%, so the description must carry parameter meaning. It explains cursor and implies a limit cap, but it leaves the required collection_id and the timezone_name and before_timestamp_ms parameters unexplained.

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

Purpose4/5

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

The description states a clear verb and resource: retrieve posting history in newest-first order. It adds useful scope details such as maximum 100 records and cursor continuation, but it does not distinguish this tool from siblings like search_posts_by_date or list_scheduled_posts.

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?

It explains pagination usage by saying the returned next_cursor should be passed with the same conditions. However, it gives no guidance on when to choose list_posts versus related tools such as search_posts_by_date or list_scheduled_posts.

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

list_scheduled_postsB
Read-onlyIdempotent

予玄䞀芧・停止理由・ワヌカヌの最終確認日時を読む。include_finished=trueで完了・取消枈みも含める。

NameRequiredDescriptionDefault
limitNo
include_finishedNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

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

The annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The description adds the notable detail that results carry stop reasons and a worker's last-confirmation timestamp, which is genuinely useful context, but it says nothing about ordering, pagination, or what limit=100 implies.

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?

Two short sentences with no waste, and the primary purpose is front-loaded before the parameter hint. It is efficient, though the second sentence is purely parameter-level and could carry more routing information at the same length.

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?

An output schema exists, so the return fields need not be spelled out, and the description does hint at them anyway. However, for a list tool with a default limit of 100 and no exclusions stated, an agent still can't tell how to page through results or how ordering works.

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%, so the description must compensate for both parameters. It explains include_finished (finished/cancelled included when true) but leaves limit completely undefined — no cap, no pagination, no ordering implications — leaving half the surface undocumented.

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 names a specific verb (読む) and specific resources (予玄䞀芧, 停止理由, ワヌカヌの最終確認日時), so an agent knows this returns the scheduled-post queue. It does not explicitly distinguish itself from siblings such as list_posts or search_posts_by_date, so the differentiation rests on the tool name alone.

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 only usage guidance is the include_finished switch, which explains a parameter rather than when to call this tool versus alternatives. Nothing says when to prefer this over list_posts or search_posts_by_date, or how to pair it with cancel_scheduled_post.

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

prepare_videoA

絶察パスのMP4ず任意のコメントを準備する。投皿先・本文・準備IDを返し、送信はしない。

NameRequiredDescriptionDefault
commentNo
video_pathYes
collection_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

Annotations already disclose that this is not read-only, is not idempotent, is open-world, and is non-destructive. The description adds useful behavior beyond that by clarifying that no send occurs and that the result includes destination, body, and a preparation ID. It does not mention authorization needs or limits, but the annotation coverage lowers the burden.

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

Conciseness5/5

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

The description is two tightly packed sentences with the main action and the no-send constraint front-loaded. There is no redundant or filler text.

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

Completeness3/5

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

The presence of an output schema means return values need not be fully explained, and the annotations cover safety characteristics. Still, for a three-parameter preparation tool with 0% schema description coverage, the unexplained required collection_id leaves the definition only partially complete.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must carry parameter meaning. It clarifies that video_path must be an absolute MP4 path and that comment is optional, but the required collection_id parameter is never explained as an input, leaving a significant gap.

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

Purpose5/5

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

The description uses a specific verb-resource pair: preparing an MP4 at an absolute path with an optional comment. It also states what is returned and explicitly says it does not send, which distinguishes it from send_prepared_video.

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 phrase '送信はしない' makes the preparation-only scope clear and implies that sending belongs to a sibling such as send_prepared_video. However, it does not explicitly compare against prepare_video_batch or state when batch preparation is preferable.

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

prepare_video_batchA

動画・投皿先・コメントを1〜50件たずめお準備する。送信せず、各本文ずjob_idsを返す。

NameRequiredDescriptionDefault
videosYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

Annotations flag readOnlyHint=false and idempotentHint=false, and the description adds the critical behavioral facts annotations cannot convey: nothing is transmitted and the call returns each rendered body plus job_ids. That materially tells the agent this is a non-side-effecting-in-the-world preparation step whose output must be carried forward. It still omits what happens on partial validation failure across the batch.

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

Conciseness5/5

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

Two sentences, no filler, and the most decision-relevant fact (batch of 1–50, does not send) is front-loaded. Nothing could be removed without losing information.

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?

With an output schema present, the description is not obligated to detail return values, and it still summarizes them (bodies and job_ids). Combined with the batch limit, an agent has enough to call it correctly; only error/partial-failure behavior and the follow-up send step are left unstated.

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

Parameters4/5

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

The schema itself documents each nested field (video_path as absolute MP4 path, collection_id, optional comment), so the description needn't repeat them. What the description adds beyond the schema is the 1–50 item bound on the videos array, which appears nowhere in the schema's constraints — a genuinely valuable addition for the sole parameter.

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 names a specific verb (たずめお準備する / prepare in batch) and its resource (videos, destinations, comments), plus the batch size range 1–50. This clearly separates it from the single-item prepare_video and from the sending tools, though it never names those siblings explicitly.

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

Usage Guidelines3/5

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

"送信せず" (does not send) implies the two-step prepare-then-send flow and rules this tool out as the sender, which is useful implied guidance. However, it never says to use send_prepared_videos/send_prepared_videos next, nor when to prefer prepare_video over the batch variant, so the agent must infer the sequencing.

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

schedule_videosA

準備IDを1〜50件予玄する。時差付きの未来日時を指定し、任意の秒間隔で順番に送信する。ワヌカヌ必須。

NameRequiredDescriptionDefault
job_idsYes
publish_atYes
interval_secondsNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

Annotations cover the safety profile (readOnly=false, destructive=false, idempotent=false, openWorld=true), and the description adds genuinely new behavioral facts: a 1–50 item batch cap, timezone-aware future scheduling, and sequential delivery spaced by an optional interval. It does not describe failure handling or partial-batch behavior, which matters for a non-idempotent batch mutation.

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?

Three short sentences, front-loaded with the action and cardinality, then timing, then the operational prerequisite. Every sentence adds information and none repeats 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?

With an output schema present and annotations declaring the mutation profile, the description supplies what structured fields don't: batch size, timezone-aware future timing, interval pacing, and the worker dependency. Remaining gaps are error/partial-failure semantics and the relationship to the cancel/list siblings.

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 carry parameter meaning and largely does: job_ids is bounded to 1–50 prepared IDs, publish_at must be a future datetime with timezone, and interval_seconds controls the spacing between sequential sends. Format details (e.g. the exact datetime string format) are still unstated.

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

Purpose4/5

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

States a specific verb (予玄する/schedule) and resource (準備ID / prepared video IDs) plus a concrete batch bound of 1–50, which distinguishes it from the immediate-send sibling send_prepared_videos. It never names that sibling explicitly, so the differentiation is inferable rather than stated.

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 future-datetime requirement implies this is for deferred publishing rather than immediate sending, and 'ワヌカヌ必須' (worker required) is a real precondition. However, no alternative tool is named and there is no statement of when not to use it versus send_prepared_videos or how it relates to cancel_scheduled_post.

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

search_posts_by_dateA
Read-onlyIdempotent

YYYY-MM-DDの日付範囲で投皿を怜玢する。終了日も含む。既定は東京の朝4時区切り、0で暊日。

NameRequiredDescriptionDefault
limitNo
cursorNo
end_dateNo
start_dateYes
collection_idYes
timezone_nameNoAsia/Tokyo
day_start_hourNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare this as a safe, read-only, idempotent, non-destructive operation. The description adds useful behavioral detail beyond that: the end date is inclusive, the default boundary is Tokyo 4 AM, and setting 0 switches to calendar-day boundaries.

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 short, front-loaded, and every clause adds useful information: search scope, inclusive end date, default boundary, and the special 0 value. There is no wasted text.

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?

Output schema exists, so return values need not be explained. Annotations cover safety. But with seven parameters and no schema descriptions, the description is not fully complete: pagination via limit/cursor and the role of collection_id remain unspecified.

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 must carry the burden. It meaningfully explains the date parameters and timezone/day-boundary behavior, but it does not explain collection_id, limit, or cursor semantics, leaving several parameters undocumented.

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

Purpose4/5

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

The description states a specific verb and resource: searching posts by a YYYY-MM-DD date range. It is clearly distinct from a general listing tool in concept, but it does not explicitly differentiate itself from sibling tools such as list_posts or list_scheduled_posts.

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 date-range nature implies when the tool is appropriate, and the inclusive end date is clarified. However, there is no explicit guidance on when to use this instead of list_posts or other sibling listing tools, so usage is only implied.

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

send_prepared_videoA

ナヌザヌが指定した準備IDの動画を実際に添付する。投皿芁求埌の自動再送は行わない。

NameRequiredDescriptionDefault
job_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

The tool clarifies a specific operational behavior—the absence of automatic resending post-request—which is a key piece of behavioral transparency not covered by the provided safety or hint annotations. This helps agents manage post-call expectations.

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 definition is extremely concise, using two sentences where the first sentence captures the primary action and the second provides the crucial behavioral constraint with zero fluff.

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 tool with only one required parameter, the definition is robust. It defines the action, the specific input required, and a major operational limitation, making it highly useful for correct tool invocation.

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?

Given the minimal input schema, the description adds crucial meaning by clarifying that 'job_id' refers to the 'preparation ID' (準備ID), helping the agent map the abstract parameter name to the necessary resource identifier.

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 is highly specific, stating it 'attaches the video' for a 'preparation ID.' This clearly distinguishes it from preparation steps or generic video upload tools within the posting workflow.

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

Usage Guidelines4/5

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

It provides critical guidance on usage by specifying a behavioral constraint: 'Does not automatically resend after the post request.' This helps agents understand the tool's limitations relative to a hypothetical tool that might handle auto-resending.

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

send_prepared_videosA

指定した準備IDを順番に送信する。倱敗時は埌続を停止し、再実行時も送信枈み分は再送しない。

NameRequiredDescriptionDefault
job_idsYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already establish readOnlyHint=false and destructiveHint=false, so safety is partially covered. The description adds genuinely useful behavior beyond annotations: it sends in order, stops subsequent sends on failure, and on re-execution skips already-sent items. This resume/stop-on-failure semantics is valuable operational context. One caveat: the 'skips already-sent' resume behavior is in mild tension with idempotentHint=false, but since unsent items still fire on re-run, the tool remains non-idempotent, so it is not a hard contradiction.

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?

Two tight sentences: the first front-loads the action, the second adds failure and resume semantics. No filler. Slightly vague in using '準備ID' without anchoring it to job_ids, but overall efficient and well-ordered.

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?

An output schema exists, so return values need not be explained. Annotations cover the safety profile and the description covers ordering, failure-stop, and resume behavior. What remains under-specified is prerequisite state (must videos be prepared first) and per-item result reporting, but the core behavior an agent needs to call it is present.

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 single parameter job_ids has 0% schema description coverage, so the description must compensate. It does clarify that these are '準備ID' (preparation IDs) and that they are processed in order, which gives meaning to the array. However it does not specify format, ordering constraints, batch limits, or whether duplicates are allowed, leaving meaningful 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 states a specific verb ('送信する' = send) and resource ('準備ID' / prepared videos) and adds that they are sent 'in order.' An agent can distinguish this batch-send tool from prepare_video. It does not explicitly differentiate it from the sibling singular send_prepared_video, but the plural name plus 'in order' clarifies the batch nature.

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 describes what happens during execution but gives no guidance on when to use this tool vs alternatives like send_prepared_video (singular) or prepare_video. There is no mention of prerequisites (e.g., videos must first be prepared) or conditions selecting this tool over siblings, so an agent must infer usage.

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

start_email_loginA

指定した本人の登録メヌルぞ確認コヌドを送る。backup=trueは登録枈みバックアップメヌル甚。

NameRequiredDescriptionDefault
emailYes
backupNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare the write-like, non-idempotent, open-world profile, so the bar is lower. The description usefully adds the actual side effect — an email with a confirmation code is dispatched — but says nothing about rate limits, code expiry, or what happens if the address is unregistered.

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

Conciseness5/5

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

Two short sentences with zero waste, and the primary action is front-loaded ahead of the backup-email qualifier.

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?

An output schema exists, so return values need not be described, and both parameters are covered. The remaining gap is flow context — how this hands off to verify_email_login and whether the code expires — which an agent would find useful.

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 has to carry the load, and it does: it explains that 'email' is the target's registered address and that 'backup=true' selects the registered backup email. Both parameters get meaning beyond their bare titles.

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

Purpose4/5

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

States a specific action and target: it sends a confirmation code to the specified person's registered email, and the second sentence clarifies the backup-email variant. This distinguishes it from the sibling verify_email_login by the start/verify naming, though the description never names that sibling explicitly.

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

Usage Guidelines2/5

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

There is no statement of when to call this versus verify_email_login, nor any prerequisites (e.g. that the email must already be registered). Usage is only inferable from the tool name and the word 'start'.

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

verify_email_loginA

本人から受け取ったメヌル確認コヌドを怜蚌し、ログむン情報をDPAPIで暗号化しお保存する。

NameRequiredDescriptionDefault
codeYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already indicate this is not read-only, is open-world, and is non-idempotent. The description adds meaningful behavioral context beyond those hints: it persists login information and encrypts it with DPAPI, which is exactly the type of side effect an agent needs to know about. It does not cover invalid-code behavior or whether retries are safe.

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 compact sentence with no wasted wording. It front-loads the verification action and then states the persistence side effect.

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 one-parameter login verification tool with annotations and an output schema, the description covers purpose and persistence adequately. However, it omits flow prerequisites such as whether start_email_login must be called first, and it says nothing about invalid or expired code handling.

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 0% description coverage for the single required parameter, so the description must compensate. It clarifies that 'code' is an email confirmation code received from the user, but does not specify format, length, expiration, or case sensitivity.

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 uses a specific verb (verify) and resource (email login code), and also states the post-verification side effect of saving login information. It does not explicitly distinguish itself from the sibling start_email_login, so sibling differentiation is left implicit.

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?

It implies this is the next step after receiving an email confirmation code, but it never states when to use this tool versus start_email_login or other login-related siblings. There are no prerequisites or exclusion conditions provided.

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

verify_videoB
Idempotent

投皿を読み戻しおID・送信者・投皿先・暗号化圢匏・保存先を照合し、ロヌカル蚘録を曎新する。

NameRequiredDescriptionDefault
job_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=true, destructiveHint=false and openWorldHint=true; the description usefully adds that it reads remote data back and then writes to local records, explaining the read-write hybrid. It does not say what happens on a verification mismatch or whether a failure leaves local state untouched.

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?

One front-loaded sentence with no filler; the verification fields and the local update are packed in without waste. Slightly dense at the expense of readability but structurally sound.

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?

An output schema exists, so return values need not be explained, and annotations cover the safety profile. However, an idempotent mutating verification tool should clarify the job_id semantics and the outcome of a failed check; those gaps remain.

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 single parameter job_id has 0% schema description coverage and the description never mentions it, so the agent must guess what identifier it refers to (a prepared video job? a sent post?). It cannot compensate 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?

States a specific operation: read back the post, reconcile ID/sender/destination/encryption format/storage location, then update local records. The verb+resource is clear enough to act on, though it doesn't distinguish itself from siblings like get_status or prepare_video.

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

Usage Guidelines2/5

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

There is no indication of when this tool should be chosen over alternatives such as get_status or prepare_video, nor any preconditions (e.g., the job must already be sent). Usage must be inferred entirely from the name.

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

Tool Schema Changelog

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

  1. 17 tool updatesv0.2.0
    • First observedcancel_scheduled_post
    • First observedcheck_key_transfer
    • First observedclaim_key_transfer
    • First observedget_profile
    • First observedget_status
    • First observedlist_collections
    • First observedlist_posts
    • First observedlist_scheduled_posts
    • First observedprepare_video
    • First observedprepare_video_batch
    • First observedschedule_videos
    • First observedsearch_posts_by_date
    • First observedsend_prepared_video
    • First observedsend_prepared_videos
    • First observedstart_email_login
    • First observedverify_email_login
    • First observedverify_video

TDQS

A3.5/5.0

Scored across 17 tools

Disambiguation3/5

Most tools target clearly different steps of the posting lifecycle (login, key transfer, prepare, send, schedule, list), but the pair send_prepared_video vs send_prepared_videos differs only by plurality and will be easy to misselect, and prepare_video vs prepare_video_batch overlap for a single item. list_posts vs search_posts_by_date and get_status vs get_profile are distinguishable only by careful reading of the descriptions.

Naming Consistency4/5

All names follow a snake_case verb_noun pattern (get_profile, list_collections, prepare_video, schedule_videos, cancel_scheduled_post), which is highly predictable. Minor deviations: prepare_video_batch uses a trailing qualifier rather than a batch_ prefix, and the singular/plural send pair makes the naming itself a source of confusion.

Tool Count4/5

17 tools across several legitimate sub-areas (email login, key transfer, profile/status, collections, prepare, send, schedule, history) so each roughly earns its place. It is on the heavy side, and a handful of tools (single vs batch prepare, single vs multi send) exist only to save round trips rather than to cover new capability.

Completeness4/5

The core lifecycle is well covered: authenticate, transfer an existing key, list destinations, prepare (single or batch), send, schedule, cancel, verify, and read history/scheduled state. Gaps are minor: no way to discard or inspect an unspent prepared job, no post deletion or edit, and no key revocation/logout despite key transfer being supported.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Enables multi-account posting, replying, threading, deletes and image/GIF/video uploads through the official X API v2, plus likes, reposts, bookmarks, follows, timelines, search, DMs, Lists and trends. It runs locally over stdio so OAuth tokens and refresh stay on the user's own machine.
    24
    19 npm
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables MCP clients to manage multiple named YouTube accounts through one local stdio server, covering video upload and scheduling, metadata, captions, playlists, comments, live broadcasts and chat, channel branding, and analytics reporting via the official Google APIs. It also offers optional FFmpeg-based local media tools for probing, muxing audio, normalizing loudness, trimming, burning subtitles, and extracting thumbnails.
    MIT