io.github.aokings/thth
Supports Bluesky integration with App Password authentication, including posting, tag handling, reply collection, metrics collection, and local analytics.
Supports Mastodon accounts for posting, tag handling, reply collection, metrics collection, and local analytics.
Provides posting to Threads, including approved post publication, reply collection, metrics gathering, and read-only analytics based on local observation history.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@io.github.aokings/ththWhat's in the approved-post ledger?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
THTH(ThreadsThrower・承認済み投稿の投げ手)
設計: docs/設計_THTH_2026-09-08.md(§8 の裁定済み。現行の設計書)。
承認済み(status: approved)の投稿ファイルを読み、静かな時間帯と最短間隔を守って 1 件だけ投げ、
post_id を書き戻して push し、投稿済みの返信を拾って追記し、走った記録と鮮度を出し、
走らなかったことを外部に知らせるまでを持つ。意味(何を書くか・承認・返信の解釈・採集箱への昇格)は持たない。
watchtower(~/Developer/watchtower)の隣に同じ流儀で並べる。watchtower は POST しないので投稿は混ぜない。
版
このソースの版は 2.11.0。現在の設計は 自分の泉、導入は 承認を押すだけ、文書の索引は docs/README.md。
版の正本は thth/VERSION(server.json はテストで一致を強制)。開発中の main には未配布の変更も含まれます。インストール済みの版は thth --version、VM の版と revision は thth board で確認してください。
main への push は保存だけ。release を進める操作が配布(VM は release だけを追う。設計 §3.2.1)。
Related MCP server: mcp-gatehouse
使う人へ
各プロジェクトのセッションが読むのは docs/使い方_プロジェクトのセッション向け_2026-09-09.md だけ。設計書は作った側の記録なので読まなくてよい。
2.12 のローカル実装候補
管理者用の サーバ書込、停止・退出、X 読取予算 を追加しています。配布・本番検収とは別です。X の認可・refresh の本人読取も予算対象で、既定 USD 0 のままでは token 交換前に停止します。X 投稿・採集 adapter はまだありません。
認可(2.11.0)
招待した利用者は、masaru がサーバ側で始めた認可 URL を開いて承認します。利用者に VM や Meta アプリの準備を求めません。Threads/Mastodon/X は thth auth <account> --by masaru、Bluesky は秘密管理ツールから App Password を thth token set <account> --stdin --by masaru へ渡します。X は認可だけ対応し、投稿・採集は未対応です。「接続」ページはこの版にはありません。
運営者の client 設定、貼付の逃げ道、scope と doctor 観測、X の更新間隔の限界は 統一ガイド にまとめています。認可の成功で承認・digest・production の条件は変わりません。
実装と運用の状態(2026-09-18)
2.7.0 の実装 revision f331e8c の全件テストは 2743 件(python -m pytest tests/ -q -n auto -p no:cacheprovider・1 skip・rc=0)。開発中の変更の検証は対象 revision の CI を参照してください。
媒体: Threads(稼働)・Bluesky・Mastodon(同席用の台帳あり・未稼働)。
定期実行中: Threads の 3 アカウント(nigamilab・asmon 関東・kopicha)。masaru の Threads は同席用です。
timer(systemd・thth systemd で生成)は10分ごとに実行し、投稿間隔と静かな時間帯を尊重します。返信の採集(thth replies)と数の採集
(thth measured)は稼働、トークン更新は thth maintain が毎日。
入口は 4 つ: 厚い CLI(bin/thth・python -m thth)、薄い MCP(mcp/server.py・読み取りと
同席の投稿・before_you_post)、timer、そして pip install(thth・thth-mcp の entry point・
依存 0。PyPI に公開済み・MCP registry に io.github.aokings/thth として登録済み)。
トピックの棚(thth topics): 観測者ごとに並ぶ・打ち消し retract-note・history。
v2.8.0: Bluesky/Mastodon のタグ
台帳の hashtags: true では本文のタグと topic を使えます。topic: 茶 は公開本文の末尾に #茶 を付け、同じタグが既にあれば重ねません。hashtags: false ではタグを追加せず、topic が効かないことを警告します。max_hashtags は公開本文のタグの上限(省略時 3、0 以上の整数)です。承認の指紋はタグを含む公開本文を使うため、以前の本文で承認した原稿は approval_stale になり、再確認・再承認が必要です。
where/topics --search の JSON は by_tag にタグ検索・観測の結果を分けます。ローカルの期間比較は thth analytics-report <account> --compare-previous --by tag --json。API で確認できたタグだけを使い、未観測はタグなしと混ぜません。媒体をまたぐ合算はしません。利用手順・2.8.0 リリースノート。
v2.7.0 の変更
指標採集に720時間(30日)を追加し、対象窓を刻みから38日と計算。正常時は指標6回、返信は従来の5回です。返信の採集窓は独立して維持します。
新しい観測に、採取時刻以前48時間以内で最も新しい日次フォロワー数を文脈として添えます。
followers_count_atとstaleness_hoursを含み、追加APIや過去行の後補完はありません。該当しない場合はcontext_reasonに理由を残します。Threads・Bluesky・Mastodonの刻みを揃え、媒体にないviewsはnullのまま維持。合成検証と限界。実SNS APIでの30日後採集は未確認です。
C3・C4は実装保留。独立規約照合報告の未確認事項とApp Reviewの結果を踏まえて別途判断します。
v2.6.0 の変更
既存台帳から刻み別の値、中央値の IQR・min・max、枝別の帰結、採集成否と鮮度、層別比較、採集時刻を上限とした枝の形を追加。既存キーは維持し
schema_version=1のままです。cannot_say_detailsにコードと既存の説明文を併記。施策レポートには未成熟投稿が24時間に達する予定を添え、採集保証とは分けます。handoff-report --since-last-readで保存済みsnapshotとの差分。cursor保存は CLI の--mark-read --by 名前を明示したときだけ。MCP・HTTPは読むだけです。API呼出を増やさない分析の改良です。VM5accountの読取検証と限界は 検証記録 に記載。Bluesky/Mastodon の非空実台帳と実採用施策の検証は未確認です。
v2.5.0 の変更
読み取り専用のレポート 3 本:
analytics-report(活動のスナップショット・--compare-previousで隣接期間の比較)・handoff-report(ローカル運用記録の引継ぎ)・study-report(施策の宣言と本人の観測の結合)。MCP にanalytics_report・operations_handoff・study_report。数値は期間・母数・欠測・根拠を連れて歩き、因果や推奨は出しません。serve-reports: 専用環境向けの非公開レポート HTTP(Unix socket 既定・service credential・読むだけ)。開発版で、人の認証・TLS・一般提供は含みません。限界。 2.12 の明示的な userwrites: trueは 承認ページ経由の書く口 を追加し、既存の read-only credential は維持します。approval-worker: 短い request 応答から分離した永続承認 job の検査・実行。管理者が同じ隔離環境で常駐させます。X の本人公開指標の純粋な変換関数(API・投稿・台帳には未接続)。
独立監査(P2 4・P3 7)とその直し: Unix socket 既定・要求全体の 10 秒 deadline・分離検査の走査を読取 dir に限定・期間比較の母集団から時刻不一致の返信を除外・git 無しでも import 可。
v2.4.0 の変更
利用者・管理者への停止/復旧メールと、元原稿の運用記録。設定・秘密は repo 外に保存します。導入時は 共通通知手順 を実施します。
VM・プロセス停止を検知する外部 missed-ping 監視と、board の停止理由表示。
Threads の投稿エラーに HTTP 番号・許可した API コード等を記録。本文や任意のエラーメッセージは保存しません。
afterの投稿集計、project 指定、topic kind 別集計。self-update の署名検証と merge を同一 commit に固定し、媒体固有の秘密値を伏字対象へ追加。
v2.0.0 で増えた口
台帳を repo の外へ(設計 v2 §3・裁定 §7-1)。正は
$THTH_ROOT/accounts/($THTH_ACCOUNTS_DIRがあればそちら)。 repo に台帳は入っていない(2026-09-14 に 6 本を削除)——clone しても他人の台帳は付いて来ないので、thth account addで自分の 1 本を作るところから始まる。配るのは雛形accounts.example/の 3 本だけ。 repo のaccounts/は1 版だけ互換で読む(stderr に警告 1 行・移行前の機械を止めないため)。thth account migrateが repo の中を外へ copy(移動しない・上書きしない・冪等)、thth account add <name> --media threads|bluesky|mastodon --project <p>がaccounts.example/<media>.jsonの雛形から 1 本書く(必ずproduction: false)。 書く先は互換に落ちていても常に外。doctor・boardが置き場を 1 行で言う。thth ask before-you-post <account> --topic <語>(設計 v2 §1)。この語・この型・この時刻帯で スレッドがどう伸びたかを、件数と期間つきで返す。読むだけ・手元の台帳だけ(provenance.sourceはlocal。泉のサーバはまだ無い)。原稿本文は渡さないし、答えにも出ない。 n が閾値(既定 20)に満たない群は中央値を返さずcannot_sayに理由を出す—— 手元の水ではほとんどがcannot_sayになる。それが正しい答えで、rc は 0。MCP からはbefore_you_post。読む口(
thth where・thth thread・thth who)は取得した投稿本文を保存しません(裁定 2026-09-16「横断の泉はやめる」)。検索語・投稿ID・件数等の最小限の実行記録と、絡みの台帳(自分の行為と反応)は残ります。英語の文書: README.en.md・docs/usage.en.md・llms.txt。
skill:
skills/thth/SKILL.md(wheel にも入る)。動くもの(
thth --helpの全サブコマンド):lint・preview・approve・account・revoke・posts・replies・measured・threads・after・analytics-report・study-report・study・unanswered・handoff-report・serve-reports・approval-worker・topics・forms・queue・schedule・throw・run・systemd・board・collect・pull・auth・refresh・maintain・send・doctor・app・token・ask・mentions・profile・thread・where・who・retract・location・notifications・admin。最初の本番投稿の記録: 2026-09-09、@aoking に疎通確認を 1 本(
17916074118445631)。未着手: X・Facebook ページ・Instagram の各アダプタ。トピック検索の権限(tester には降りない)。泉のサーバ(v2-5)。
権限の制約: tester に降りる scope は 5 つ。削除はできない。
配布:
releaseへの反映と version tag の push を分けます。tag の CI が全件テスト後に PyPI と MCP registry へ OIDC で公開します。
MCP registry
registry は「この PyPI の名前を名乗ってよいのは誰か」を、配布物の README にこの 1 行があるかで確かめる(設計 v2-4 §3・一次資料は quickstart・L2)。だから消さないこと——消すと登録(mcp-publisher publish)が通らなくなる。形(server.json と版の一致)は tests/test_server_json.py が見張る。
mcp-name: io.github.aokings/thth
v3 基盤(2.5.0 から)
study-report は明示した施策の宣言と本人の投稿観測を結ぶ読み取り専用レポートです。採用者の本人確認や因果効果は主張しません。使い方と契約。
analytics-report はローカル台帳から期間・母数・欠測・根拠を揃えたスナップショットを返します。
形式と使い方。
handoff-report / MCP operations_handoff はローカル運用状態・通知未処理を鮮度の制約付きで返します。形式と使い方。
管理者の読み口(2.9.0)
thth admin inventory|account|log|tokens|timers|release|diff は秘密値を出さない読み取り専用レポートです。開始時は thth admin diff --since-last-read、変化した account は thth admin account <name>、週1回 thth admin tokens。--json で構造化結果を取得できます。既読 cursor の保存は admin diff --since-last-read --mark-read --by <名前> の明示時だけです。VM の admin timers は観測を state/_admin/timers.json に保存します。doctor <name> と admin の明示的な --probe は秘密を除いた診断記録を state/<name>/doctor.json に保存します。HTTP/MCP は時刻付きの記録を読むだけで、観測・保存を実行しません。
account add(--force の上書きも)・app set(旧 flags も)・auth・token set・token revoke には --by <名前> が必須です。既存の作成来歴は上書きしません。token revoke はローカルcredential削除でありリモート側の認可取消ではありません。選定した管理変更は既定で管理者へ通知し、台帳の notify_admin_on_change: false で停止できます。
認証付きMCPの6道具とHTTPのadmin scopeは 管理者skill を参照してください。管理レポートから承認・投稿・設定変更は行いません。ログ追記後のfsync失敗は変更を保持して durability_unconfirmed、部分追記は outcome_uncertain と報告します。再試行前に台帳とログを確認してください。
Available Tools
15 toolsafter_you_postedB
出したあとに呼ぶ。この語・この型・この枝で、自分の投稿と返信がどう受け取られたかを、件数と期間つきで返す
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | 型(行動・年度付き 等) | |
| min_n | No | 中央値を返す下限(既定 5) | |
| topic | No | 語(トピック) | |
| account | No | account 名(project の代わり) | |
| project | No | この project の account 全部(account の代わり) | |
| reply_to | No | この post_id への返信だけに絞る | |
| hour_band | No | 時刻帯(朝・昼・夕・深夜)で絞る | |
| author_key | No | この仮名(16 進 16 桁)への返信だけに絞る | |
| window_days | No | 直近何日(既定 30) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility for behavioral disclosure. It only mentions returning counts and period, but does not state whether the tool is read-only, non-destructive, or what happens with no data. Lacks explicit safety and edge-case information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that immediately conveys when to call the tool. Efficient and free of filler, though it omits some useful context that would raise completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 9 parameters, no output schema, and no annotations, the description is minimal. It does not explain how filters interact, what the output format is beyond 'counts and period', or any defaults beyond those in the schema. Terms like 'this branch' are ambiguous and undefined.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter having its own description. The tool description adds only a vague reference to 'this word, this type, this branch' which aligns with schema fields but does not deepen understanding beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (call after posting) and the resource (your posts/replies reception) with the result (counts and period). It distinguishes from before_you_post by timing, though it does not explicitly name that sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a clear timing cue ('after you posted') but does not explicitly mention alternatives or exclusions. The sibling list implies contrast with before_you_post, but that is left to inference rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analytics_reportA
自分の活動のスナップショットを期間・母数・欠測・根拠つきで返す。ローカル台帳を読むだけ。compare_previous=trueで前期間比較。推奨は含まない
| Name | Required | Description | Default |
|---|---|---|---|
| by | No | ||
| min_n | No | 中央値の最小母数(既定5) | |
| account | No | ||
| project | No | ||
| window_days | No | 直近何日(既定7) | |
| compare_previous | No | 直前の同じ日数との比較(既定false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the disclosure burden and does well: it states 'ローカル台帳を読むだけ' (read-only, no side effects), describes output dimensions, and explains the compare_previous toggle. It omits auth/error detail, but for a read-only reporting tool the behavioral picture is fairly clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences with the core behavior front-loaded, followed by the read-only guarantee, the comparison option, and the exclusion of recommendations. Every sentence earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description carries extra responsibility. It communicates the main output dimensions, read-only nature, and comparison behavior, but it does not describe output structure, how account/project scope the snapshot, or edge behavior of compare_previous. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%, and the description adds meaningful context for compare_previous ('compare_previous=trueで前期間比較') and relates output concepts to period/sample size. However, parameters like 'by', 'account', and 'project' remain under-explained, and the description does not fully compensate for the schema gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb '返す' and resource '自分の活動のスナップショット', and clarifies scope with '期間・母数・欠測・根拠つき'. It also distinguishes itself from recommendation-style tools via '推奨は含まない', though it does not name sibling alternatives like study_report.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it: when a read-only snapshot of one's own activity is needed, and explicitly notes it is not a recommendation tool. However, it does not state explicit conditions, exclusions, or point to alternative sibling tools, so usage guidance remains more implied than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
before_you_postB
投稿する前に呼ぶ。この語とこの型で、スレッドがどう伸びたかの実績を、件数と期間つきで返す
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | 型(行動・年度付き 等) | |
| min_n | No | 中央値を返す下限(既定 20) | |
| topic | Yes | 語(トピック) | |
| account | Yes | account 名 | |
| is_reply | No | 返信として出すか | |
| hour_band | No | 出す予定の時刻帯(朝・昼・夕・深夜) | |
| window_days | No | 直近何日(既定 30) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the return value (count and duration) but omits whether the operation is read-only, side effects, permissions, or error behavior. This is a significant gap for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no redundancy. The core purpose is front-loaded and every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 7 parameters, no output schema, and no annotations. The description explains the general purpose and output shape but does not cover when to use it vs. siblings, behavioral safety, or parameter interplay. For a tool called 'before_you_post', more context on expected usage would be needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all 7 parameters. The description adds minimal value by referring to 'this word' and 'this type' (topic and kind) but does not enrich the parameter semantics beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('call before posting') and the resource (thread growth track record) and output (count and duration). It is specific and distinguishes the tool from the 'after_you_posted' sibling by the temporal context, though it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says 'call before posting', providing a clear context for when to use the tool. However, it does not mention exclusions or name alternative tools like 'after_you_posted' or 'thread_read', so it falls short of the full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
operations_handoffB
ローカル運用記録の状態・承認待ち・inflight・通知未処理を根拠と鮮度の制約付きで返す。同期・承認・再送はしない
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | ||
| project | No | ||
| since_last_read | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the behavioral disclosure burden. It does disclose that the tool does not sync, approve, or resend, indicating a read-only operation. It also mentions 'freshness constraints,' suggesting data may not be real-time. However, it does not mention side effects, authentication requirements, error handling, or pagination, so it is only partially transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, dense sentence that packs the core function and key limitations without any fluff. It is front-loaded with the main purpose and includes the critical 'does not' clause. Every word earns its place, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has three parameters with no documentation, no output schema, and no annotations. The description only covers the general purpose and a few behavioral constraints. It leaves the agent without knowledge of parameter meanings, expected response format, or any prerequisites. For a tool with this complexity, the description is incomplete and leaves significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has zero description coverage for its three parameters (account, project, since_last_read), and the description does not explain any of them. It only discusses the output and behavioral constraints. Since the description is the only source of parameter meaning and it provides none, agents cannot know what values to supply or how they affect results.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns local operation record statuses (approval pending, inflight, notification unprocessed) with constraints of evidence and freshness. It also explicitly says it does not sync, approve, or resend, making its read-only nature unambiguous. This gives a specific verb and resource, and the negative clause helps distinguish it from any mutation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives. It never mentions any sibling tool or scenario. The statement about not syncing/approving/resending implies a read-only use case but does not specify when an agent should call this function over others. There is no explicit when-to-use or when-not-to-use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
study_reportA
ローカル施策JSONの未検証の採用宣言と本人の観測を結ぶ。proposedは集計せず、adoptedも因果効果や投稿承認を証明しない。読むだけ
| Name | Required | Description | Default |
|---|---|---|---|
| file | Yes | ||
| min_n | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the tool is read-only ('読むだけ'), that it works with unverified declarations ('未検証'), and that it does not prove causal effects or post approval. This is meaningful behavioral context, though it does not address return values or data-access implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short Japanese sentences, front-loaded with the primary purpose, followed by exclusions and a clear read-only marker. Every sentence earns its place and the definition is easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no output schema, the description leaves key gaps: parameter semantics are absent, and the meaning of '本人の観測' is vague. The purpose and non-goals are stated, but an agent cannot confidently construct a valid call without more parameter detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain either parameter. 'file' can be inferred as the local JSON input, but 'min_n' is completely opaque. With two parameters and no schema descriptions, the description fails to help an agent populate them correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource ('ローカル施策JSON') and a specific action ('結ぶ' / link adoption declarations with observations), and adds exclusions ('proposedは集計せず'). This makes the core function reasonably clear, though it does not explicitly name or differentiate a sibling tool like analytics_report.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: it is a read-only linking/reporting tool for local policy JSON. It also states when not to use it as evidence ('adoptedも因果効果や投稿承認を証明しない') and that proposed items are not aggregated. It lacks an explicit 'use this instead of X' statement, but the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
thread_readA
返信を書く前に呼ぶ。この投稿の枝を、誰が・いつ・何を・誰に向けて言ったかの順で返す。何も保存しない
| Name | Required | Description | Default |
|---|---|---|---|
| since | No | この時刻以降だけ | |
| account | Yes | account 名 | |
| post_id | Yes | 枝の根の post_id。各 message の already_replied は 3 値(T7-3): object(source 付き。ledger=絡みの台帳/queue=queue の下書き/thread=枝の中の自分の返信)=返した/false=台帳・queue・枝のどこにも見当たらない(「返していない」の確定ではない)/null=台帳か queue が読めず判らない(理由は provenance.ledgers_unreadable) | |
| max_messages | No | 読む上限(既定 200・上限 1000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the tool 'doesn't save anything', which is a useful behavioral guarantee implying a read-only operation. However, it does not cover permissions, error behavior, rate limits, or exactly what the returned objects look like beyond the ordering, leaving partial transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no filler. The first sentence states when to call, the second states what it returns and that it does not save. Each element earns its place and the structure is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of an output schema, the description's clarification of the output order ('who, when, what, to whom') and the no-save guarantee are helpful. The schema already documents the parameters and the nuanced already_replied semantics. It is almost complete for the tool's complexity, though it could mention pagination or error cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters (since, account, post_id, max_messages) are already documented in the schema. The description adds no extra parameter-level meaning (e.g., format or interaction between params), so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it returns the branches of a post in a defined order (who, when, what, to whom) and orients the reader to call it before writing a reply. It does not explicitly name sibling alternatives, but the scope is clear enough to distinguish it from tools like after_you_posted or thth_topic_context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says 'call before writing a reply', providing a clear when-to-use condition. It does not mention when not to use it or name alternatives, so it lacks exclusions, but the context is direct and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
thth_boardB
アカウントごとの最終投稿・approved 待ち・inflight・型外の骨を返す(読むだけ)。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explicitly states '(読むだけ)' (read only), which is an important behavioral disclosure given that no annotations are provided. However, it does not mention other behavioral aspects like data freshness, authentication requirements, or whether results are aggregated, so it only partially covers the transparency burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence, front-loading the returned content and appending the read-only note. It is efficient with no filler, though domain-specific jargon like '型外の骨' may reduce clarity for agents unfamiliar with the domain.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only tool with no output schema or annotations, the description lists the main return categories, which is helpful. However, it leaves terms like 'inflight' and '型外の骨' undefined and provides no indication of when to invoke this tool relative to siblings, so an agent may not fully understand the output or usage context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema is an empty object (100% coverage). The baseline for 0 parameters is 4, and the description does not need to add parameter semantics beyond what the schema already shows.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a verb ('返す' = returns) and the specific data categories (per-account final post, approved-pending, inflight, off-schema bones). This makes the tool's purpose reasonably distinct from siblings like thth_queue or thth_preview, though it does not explicitly name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus the many sibling tools. The description only mentions the output content and read-only nature, leaving the agent to infer usage context from the name 'board'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
thth_lintA
docs/sns/queue の 1 ファイルを形式検査する(読むだけ・副作用なし)。
| Name | Required | Description | Default |
|---|---|---|---|
| file | Yes | queue ファイルのパス |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden. It clearly discloses that the operation is read-only and has no side effects ('読むだけ・副作用なし'), which is essential for a lint tool. It does not elaborate on return behavior or error handling, but the core safety profile is well covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, compact sentence that front-loads the action and scope. No filler or redundancy; every word contributes to understanding the tool's purpose and safety characteristics.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one parameter, no output schema), so the description covers the main usage. However, it omits what the tool returns (e.g., lint issues, success/failure) and does not clarify what 'format check' entails. Without an output schema, this missing information leaves some ambiguity for an agent deciding whether the tool meets its needs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the 'file' parameter as a path to a queue file (100% coverage). The description adds valuable context by specifying that the file is located under 'docs/sns/queue', which helps the agent construct the correct path. This extra context goes beyond the schema's generic description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies a concrete verb and resource: 'format checks one file in docs/sns/queue'. It clearly distinguishes from siblings by its focus on a single file and its read-only nature. The 'docs/sns/queue' path also anchors the tool's scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for linting a queue file but does not explicitly state when to use it over siblings like thth_queue or thth_preview. No alternatives or exclusion conditions are mentioned, leaving the agent to infer context from the tool's purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
thth_previewB
実際に投げる本文そのもの(媒体の節。前後に何も足さない)を返す(読むだけ)。
| Name | Required | Description | Default |
|---|---|---|---|
| file | Yes | queue ファイルのパス |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the tool is read-only ('読むだけ') and that it returns content without modification ('前後に何も足さない'), which are useful behavioral traits. However, it omits details like error handling or what happens if the file does not exist, which would be expected for a complete transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the core action and outcome. It is efficient with no wasted words, achieving clarity without verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description covers the essential behavior: what it returns and its read-only nature. While it lacks explicit usage guidance, the tool is straightforward enough that the provided information is largely sufficient, especially with the sibling context available.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% coverage with 'queue ファイルのパス' for the file parameter. The description adds minimal extra meaning by indicating the file is the source of the body text, but it does not elaborate on format, encoding, or constraints. Baseline 3 is appropriate given the high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the exact body text to be posted, specifying it is the media section and adds nothing before or after. This is specific and unambiguous, though it does not explicitly differentiate from sibling tools like thth_queue or before_you_post, which could be confused without deeper context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus the many siblings, such as when to preview versus queue or post. The description only states what it does, leaving the agent to infer usage context, which is insufficient given the number of related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
thth_queueB
draft/approved/posted/型外 の一覧と、次に出るもの・いつかを返す(読むだけ)。
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | 省略時は全アカウント |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It explicitly states '読むだけ' (read-only), which is a key behavioral trait and helps agents know it's non-destructive. However, it doesn't disclose anything else like authentication, error handling, or return format, leaving some ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that front-loads the main output (list and next items) and flags it as read-only. It is efficient with no redundant words, though it could benefit from slightly more detail without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, so the description must explain the return value. It says a list is returned along with next scheduled items and timing, but it doesn't specify the structure or format of this data. Key terms like '型外' are undefined, and there's no mention of pagination or how the account parameter affects results, leaving gaps for an agent attempting to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers the single parameter 'account' with a clear description ('省略時は全アカウント'), achieving 100% coverage. The tool description does not add any parameter-specific context beyond the schema, so it meets the baseline of 3 but doesn't exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action (returns) and resource (queue list with statuses and next scheduled items). It names distinct statuses (draft/approved/posted/型外) and includes timing info, making the purpose fairly clear. However, '型外' is ambiguous and the exact meaning of 'next' is vague, so it's not fully specific enough for a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 the many siblings like thth_preview, after_you_posted, or where_to_appear. It doesn't state exclusions or alternatives, leaving the agent to infer based solely on the queue-related terminology.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
thth_topic_contextA
原稿のトピックを決める前に最初に呼ぶ。原稿と(あれば)記事本文から、判断の入力を固定して返す。記事がまだ無ければ、取りに行くべき URL と必要な JSON の形を返す(読むだけ・副作用なし)。使う順序: context → 足りない資料を取る → evaluate。
| Name | Required | Description | Default |
|---|---|---|---|
| file | Yes | queue ファイルのパス | |
| article | No | 記事証拠(ArticleEvidence) | |
| article_url | No | 本文に URL が複数ある場合の主対象 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explicitly states '読むだけ・副作用なし' (read-only, no side effects), which is valuable behavioral disclosure since no annotations are provided. It also discloses that it 'fixes' judgment inputs and returns either fixed inputs or a URL/JSON shape when the article is missing. This goes beyond the schema and gives the agent a clear behavioral contract. It doesn't mention error cases or rate limits, but for a read-only context tool, the key behaviors are covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it states the most important fact (call first) at the very beginning. Every sentence earns its place: purpose, behavior, fallback behavior, and usage order. No fluff or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only context tool with 100% schema coverage and no output schema, the description is quite complete. It explains the tool's role in the workflow, its side-effect-free nature, and its fallback behavior when the article is missing. The only minor gap is that it doesn't describe the exact structure of the returned 'fixed' judgment inputs, but since there's no output schema and the tool is meant to be called first, the description gives enough for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters. The description adds context about the 'article' parameter (article evidence) and 'article_url' (main target when multiple URLs), but it doesn't add much beyond the schema. The description's mention of '記事がまだ無ければ' (if article doesn't exist yet) implies the article parameter is optional, which aligns with the schema. Baseline 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('呼ぶ' = call), a clear resource (topic context for a manuscript), and a precise position in the workflow ('最初に' = first). It distinguishes itself from siblings by explaining it fixes judgment inputs before topic decisions, and it explicitly contrasts with later steps like evaluate. This is a clear, specific purpose that an agent can act on.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to call this tool FIRST before deciding the topic, and it gives the order: context → fetch missing materials → evaluate. It also explains what happens when an article is missing (returns URL and required JSON shape), which tells the agent when to use this tool vs. fetching materials. This is explicit usage guidance with a sequence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
thth_topic_decisionA
保存済みの判断を読む(読むだけ)。今の原稿と食い違っていれば freshness で言う。
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | decision_id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose the read-only nature and the freshness comparison behavior, which is useful for safety. However, it does not explain what 'freshness' means, how the result is returned, or any permissions, side effects, or failure modes. Some transparency, but significant gaps remain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short, efficient sentences. The primary purpose and read-only nature are front-loaded, followed by the conditional freshness behavior. No filler or redundant wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool with no output schema, the description covers the basic purpose and read-only nature, but leaves 'freshness' undefined and does not describe the return value, how conflicts are surfaced, or prerequisites for use. Adequate for a simple tool but incomplete in a way that could cause agent confusion.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the only parameter 'id' is already described as 'decision_id'. The description adds no additional meaning to the parameter itself. Baseline 3 applies because the schema fully documents the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads a saved decision ('保存済みの判断を読む') and explicitly notes it is read-only ('読むだけ'). This distinguishes it from evaluation or context tools like thth_topic_evaluate or thth_topic_context, and the freshness comparison hints at its specific function. A specific verb and resource with enough differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it (when you need to read a saved decision and check freshness against the current manuscript) but does not explicitly name alternatives, give exclusion criteria, or state when not to use it. The context is present but underdeveloped compared to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
thth_topic_evaluateB
記事本文と候補比較を渡して、引用が本文に在るか・参照が実在するか・観測が新しいか・投稿者が偏っていないかを検査させる。THTH は候補を作らないし順位も付けない——足りないものを言うだけ。候補が suitable でなければ別の候補に繰り上げず、比較し直しを求める。
| Name | Required | Description | Default |
|---|---|---|---|
| file | Yes | ||
| article | Yes | ||
| proposal | Yes | 候補比較(TopicProposal) | |
| article_url | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full transparency burden and does substantial work: it reveals the tool is evaluator-only (no candidate creation or ranking), that it merely reports deficiencies ("足りないものを言うだけ"), and that unsuitable candidates trigger a re-comparison request rather than silent fallback. These are genuine behavioral traits beyond what the name conveys. It does not state side-effect status or return format, but the disclosure is strong for an unannotated tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no wasted repetition; the core action and all four evaluation criteria are front-loaded in the first sentence, and the bold markers aid scannability. The em-dash aside ("足りないものを言うだけ") is slightly stylistic but earns its place by clarifying the tool's evaluator-only nature. Compact and well ordered.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, the four evaluation criteria, and failure behavior, and even hints at output content (the deficiencies it finds). But with no output schema and no annotations, the agent is left without response-format information, and two of the four parameters ('file', 'article_url') remain unexplained. For a tool with nested object parameters, these are material unknowns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25%, so the description needed to compensate. It maps 'article' to 記事本文 and 'proposal' to 候補比較, which adds meaning beyond the bare schema. However, 'file' and 'article_url' are never mentioned in the description, leaving the agent to guess what 'file' represents and how it relates to 'article' and 'article_url' — a significant gap at this coverage level.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete action (検査させる — inspect/evaluate) applied to a clear resource (article text + candidate comparison), and enumerates four specific criteria: citation presence, reference existence, observation novelty, and poster bias. It also carves out what the tool is not ("候補を作らないし順位も付けない"), which differentiates it behaviorally from nearby topic tools. It stops short of naming a specific sibling, but the purpose is unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied: call this when you have an article and a candidate comparison to validate, and the final sentence prescribes the follow-up when a candidate is unsuitable (request re-comparison rather than expect promotion), which is a useful workflow directive. However, no sibling is named as an alternative, and there are no explicit when-to-use vs when-not-to-use conditions relative to plausible siblings like thth_topic_decision or thth_topic_context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
where_to_appearA
絡みに行く先を選ぶ前に呼ぶ。検索の一覧に、自分の履歴(この語・この相手で何が起きたか)を重ねて返す。選ぶのは呼ぶ側
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 1 account・1 語あたりの上限(既定 25) | |
| words | Yes | 検索の語(1〜5 個) | |
| recent | No | TOP でなく RECENT(新しい順)で検索する | |
| account | No | account 名(project の代わり) | |
| project | No | この project の account 全部(account の代わり) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It adds meaningful context by saying the tool returns a search list with personal history overlaid and that the caller makes the final decision, implying it is not autonomous. It does not disclose side effects, auth requirements, or output details, but the described behavior appears read-only and intentional.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it states the trigger first, then the behavior, then the caller's role. Every clause earns its place and there is no redundant text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with five parameters and no output schema, the description is somewhat thin: it gives a trigger and a general return shape but does not explain list format, ordering, limit behavior, or how account/project selection affects history. Still, the schema covers parameters and the intended workflow is understandable enough for an agent to invoke it appropriately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 and the description does not need to restate parameter details. The phrase 'この語・この相手' adds a conceptual tie between parameters and the tool's purpose, but it does not clarify limit, recent, account, or project beyond what the schema already says.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific behavior: it overlays the user's own history onto a search list and returns it, for use before deciding where to appear. This is clear enough as a read/query operation, but it does not explicitly contrast itself with sibling tools such as thth_topic_decision or thth_board.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase '絡みに行く先を選ぶ前に呼ぶ' gives an explicit trigger condition: call this before choosing where to engage. It does not, however, mention when not to use it or which sibling tool might be a better alternative, so the guidance is contextual but not contrastive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
who_is_thisA
返信する相手を確かめる。この仮名と自分のアカウントの接触の回数・時期・反応を返す。発言の内容は持たない
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | account 名(project の代わり) | |
| profile | No | その場で公開プロフィールを引く(Threads だけ・保存しない・既定 false) | |
| project | No | この project の account 全部(account の代わり) | |
| username | No | @ 無しでも可。その場で author_key に写す(保存しない・author_key の代わり) | |
| author_key | No | 仮名(16 進 16 桁・username の代わり) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral disclosure burden. It adds one useful trait: it does not retain message content. However, it does not explicitly state that the operation is read-only or that no state is modified, nor does it mention prerequisites, rate limits, or side effects. The 'no content' note is helpful but partial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences, front-loads the core purpose, and every sentence contributes: purpose, output, and a key limitation. There is no filler or repetition, making it appropriately sized and well structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter tool with no required parameters and no output schema, the description gives the essential return fields (count, timing, reactions). It does not explain parameter selection logic, but the fully covered schema compensates for that. It is complete enough for an agent to understand the tool's role and invoke it, assuming it reads the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The tool description itself adds no parameter-specific meaning beyond the schema. It does not clarify the mutual exclusivity or alternatives between account/project or username/author_key, but the schema already covers these relationships. The description neither enhances nor detracts.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: '返信する相手を確かめる' (check who you're replying to) and specifies the output: contact count, timing, and reactions. It also explicitly notes what it does not hold ('発言の内容は持たない'), distinguishing it from content-reading tools like thread_read. This clearly differentiates it from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case ('before replying') but does not explicitly state when to use this tool versus alternatives, nor does it mention exclusions or sibling tools. No structured guidance directs the agent to choose this tool over others, leaving usage context only implicit.
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.
15 tool updates
v0.1.0- First observed
after_you_posted - First observed
analytics_report - First observed
before_you_post - First observed
operations_handoff - First observed
study_report - First observed
thread_read - First observed
thth_board - First observed
thth_lint - First observed
thth_preview - First observed
thth_queue - First observed
thth_topic_context - First observed
thth_topic_decision - First observed
thth_topic_evaluate - First observed
where_to_appear - First observed
who_is_this
TDQS
Scored across 15 tools
Most tools have a distinct focus, but several clusters overlap: thth_queue, thth_board, and operations_handoff all list pending/inflight/type states, while before_you_post, after_you_posted, and analytics_report all return activity metrics with counts and periods. The descriptions clarify intent, but an agent could easily select the wrong tool without reading carefully.
Naming is inconsistent: some tools use the thth_ prefix and some do not, with no uniform convention. The style mixes nouns (thth_queue), verb phrases (thread_read), questions (who_is_this), and past-tense phrases (after_you_posted), making patterns unpredictable.
Fifteen tools is at the upper edge of a reasonable count, and each covers a specific read-only aspect of the posting workflow. A few could potentially be consolidated, but the count is not excessive for the apparent scope.
The surface covers the core read-only lifecycle: queue, preview, pre/post metrics, thread reading, topic context/evaluate/decision, linting, board status, handoff state, study/analytics reports, and contact history. There are no write/approve/sync tools, but the descriptions consistently mark those as intentional exclusions rather than dead ends.
Maintenance
Related MCP Connectors
Read-only byImprint service guidance and canonical public site routes.
Read-only senior-care exit routes, duplicate-referral deadlines, and templates; no PII or sending.
Read-only checks for proposed orders against evidence and policy; no trading or payment authority.
Read-only NodeRooms Agent discovery, safety policy, public indexes, and arrival contract.
Related MCP Servers
- AlicenseAqualityBmaintenanceRead-only Postgres access with a policy gate that blocks writes and restricts visible tables and columns.62 npmMIT
- AlicenseNot gradedqualityAmaintenanceEnables read access to business data and creation of immutable action proposals that require separate human approval before idempotent execution with an audit trail.Apache 2.0
- FlicenseNot gradedqualityCmaintenanceEnables read-only Meta Ads reporting and diagnostics, plus safe, preview-before-apply mutations such as campaign creation, duplication, targeting replacement, and attribution changes.-
- FlicenseNot gradedqualityCmaintenanceEnables AI agents to read local business data and request database mutations, while requiring human approval before updates or deletions are executed. It provides read-only tools, approval workflows, and audit logging to prevent autonomous destructive changes.-