Skip to main content
Glama
blyatman996

tea-planner

by blyatman996

🍵 今日はどのお茶にする? · tea-planner MCP

理由もなく茶を一碗手にして、茶を愛する人に贈る。 —— 白居易

故人に向かって故国を想うのはやめよう。新しい火で新しい茶を試そう。詩と酒は若いうちに楽しむもの。 —— 蘇軾

話はこうだ:家の茶がどんどん増えて、戸棚を開けるたびに5分間ぼんやりして、結局手に一番近い箱を取ってしまう。茶葉が湿るのも自分のせい、選択に悩むのも自分のせい、ならばプログラムに責任を取らせよう。

というわけで、Cherry Studio 上で動く MCP——「今日はどのお茶?」が生まれた。107種類の茶の急須抽出パラメータ(緑茶、烏龍茶、黒茶、紅茶、白茶、黄茶、花茶、そして分類に困る変わり種)を内蔵し、毎日理由のあるコインを投げてくれる。季節、時間帯、最近飲んだかどうか、在庫の埃の被り具合で重み付け抽選。夏でも熟普洱が当たることはある、ただ確率が低いだけ。深夜に代用茶だけを押し付けられることもない——規則は柔らかく、どの茶も死刑宣告は受けない。

ツール一覧(11個)

ツール

あなたの言葉

recommend

今日は何を飲む?

coldbrew_recommend

今日は何を水出しする?

add_tea

龍井茶、鉄観音、正山小種を買った(一括対応)

remove_tea

碧螺春を飲み切った

clear_inventory

引っ越した(ワンクリックで全消去、作者の茶棚を引き継がない)

set_brewer

私のティーポットは300ml / 水出しポットを2Lにした

review

薄すぎる / 苦い / 倉庫臭がする / 洗茶しすぎ / 蒸し味 / 酸っぱくなった / 香りが消えた

record / undo_record / history

〇〇を飲んだ / 記録を間違えたので取り消し / 最近何を飲んだ?

Related MCP server: mcp_hydration

導入(Cherry Studio、2分)

uv(uvx 同梱)が必要:

uvx tea-chay-advisor

Cherry Studio → 設定 → MCPサーバー → このJSONをインポート:

{
  "mcpServers": {
    "tea-planner": {
      "command": "uvx",
      "args": ["tea-chay-advisor"],
      "env": {}
    }
  }
}

スイッチをオンにすると、ツール一覧に11個のツールが表示されれば成功。uvx が PyPI から自動的に tea-chay-advisor を取得するので、Python の依存関係を手動でインストールする必要も、ローカルパスを変更する必要もありません。

その後、適切な場所にSKILL.mdを配置します。

導入後の3ステップ

  1. 引っ越し:「引っ越した」→ 作者の107種類のお茶を空にする(誤操作防止のため2回確認)

  2. 仕入れ:「龍井茶、大紅袍、老白茶を買った」→ 一括登録、パラメータは自動的にカテゴリ別に設定

  3. 飲む:「今日は何を飲む?」→ 残りはプログラムが代わりに悩んでくれる

淹れ方について(始める前に読んでください)

これは功夫茶の淹れ方ではありません。 蓋碗も、速出しも、「一煎目は香り、二煎目は水、三煎目は茶」もありません。作者が普段使っているのは 400mlの大型ティーポット + 1.6Lの水出しポット、TDS20の純水で、一度に満たし、4〜5分蒸らし、一回で出し切って茶葉と茶湯を分ける、茶の審評とイギリス式ティーポットに近いやり方です。茶葉の量、湯温、時間はすべてこのシーンに合わせて調整されています。

茶器が違いますか?「私のティーポットは500ml」と言えば、茶葉の量は自動的に茶水比でスケールされ、湯温と時間は変わりません。水出しも同様です。

振り返り:お茶をどんどん好みに

理論上のパラメータはあくまで出発点に過ぎません。販売元のロットや倉庫での年数によって、お茶は仕様書から外れていきます。味が合わないと感じたら、言ってください:

  • 薄すぎる / 濃すぎる / 渋い → 茶葉の量、時間、湯温を自動微調整

  • 倉庫臭が強い / 洗茶しすぎ → 洗茶の段階を調整(生普洱の初期設定:速洗い1回+遅洗い1回+2分間空気にさらす。熟普洱・六堡・辺境磚茶:速洗い2回+遅洗い1回+2分間空気にさらす+速洗い1回)

  • 蒸し味 / 香りが飛ぶ → 蓋をするか開けるか

  • 酸っぱくなった / 香りが消えた → 湯温を3℃下げる

  • 調整しすぎたら「〇〇をリセット」と言えば、ワンクリックで理論値に戻る

すべてのデータはスクリプトの隣にある state.json に保存されます。このファイルを一つバックアップすれば、好みの味も一緒に引っ越せます。


参考までに。 お茶はあなたのお茶、口はあなたの口、パラメータは理論値、美味しいかどうかが正義。プログラムはお茶を淹れられません。ただ、道理にかなったコインを一枚投げるだけです。

🍵 Man! What Tea Today? · tea-planner MCP

With no reason to hold a bowl of tea, I send it to those who love tea. — Bai Juyi

Brood not over the old country with old friends; light a new fire and try the new tea. Poetry and wine, while time is still ours. — Su Shi

Here's how it started: the tea collection kept growing until opening the cabinet meant five minutes of blank staring, followed by grabbing whichever box was closest. Tea getting damp? My fault. Choice paralysis? Also my fault. So I made the program take the blame.

Thus this MCP living inside Cherry Studio — "What Tea Today?". It ships with brewing parameters for 107 teas (green, oolong, dark, black, white, yellow, jasmine, plus a bunch of oddities that defy categorization). Every day it flips a coin for you — but a coin with reasons: weighted by season, time of day, what you drank recently, and how long each tea has been gathering dust. Ripe pu-erh can still win in summer (just less likely), and late nights won't be limited to herbal tisanes — the rules are soft. No tea gets a death sentence.

The 11 tools

Tool

What you say

recommend

What should I drink today?

coldbrew_recommend

What should I cold-brew today?

add_tea

I bought Longjing, Tieguanyin, Lapsang Souchong (batch supported)

remove_tea

I finished the Biluochun

clear_inventory

I moved to another city (one-click wipe — don't inherit the author's tea cabinet)

set_brewer

My teapot is 300ml / my cold-brew pitcher is now 2L

review

Too weak / too bitter / warehouse musty / over-rinsed / stewed / turned sour / aroma gone

record / undo_record / history

I drank X / undo that / what have I been drinking

Deploy (Cherry Studio, two minutes)

Requires uv (which provides uvx):

uvx tea-chay-advisor

Cherry Studio → Settings → MCP Servers → Import this JSON:

{
  "mcpServers": {
    "tea-planner": {
      "command": "uvx",
      "args": ["tea-chay-advisor"],
      "env": {}
    }
  }
}

Flip the switch, and once 11 tools show up you're done. uvx automatically pulls tea-chay-advisor from PyPI, so there's no manual pip install and no local path to configure.

Prefer not to use uv? Drop SKILL.md into Cherry Studio's Skills folder for a prompt-only fallback (no persistence, but works out of the box).

Three steps after install

  1. Move in: say "I moved to another city" — wipes the author's 107 teas (double confirmation, no accidents)

  2. Stock up: "I bought Longjing, Dahongpao, aged white tea" — batch import, parameters auto-assigned by category

  3. Drink: "What should I drink today?" — let the program do the agonizing

About the brewing method (read before you pour)

This is not gongfu style. No gaiwan, no flash infusions, no "first steep aroma, second steep water, third steep flavor". The author brews with a 400ml teapot + 1.6L cold-brew pitcher and TDS-20 purified water: fill once, steep four to five minutes, pour it all out at once, separate leaf from liquor — closer to tea evaluation cupping and the English teapot. Every dose, temperature, and time is calibrated for that setup.

Different gear? Say "my teapot is 500ml" and the leaf dose scales with the water ratio automatically — temperature and time stay put. Same for cold brew.

Review: teaching the tea to suit you

Theoretical parameters are just a starting point. Vendors' batches, warehouse years, and storage will all push a tea off its spec sheet. If it tastes wrong, say so:

  • Too weak / too strong / astringent → auto-tunes dose, time, temperature

  • Warehouse musty / over-rinsed → adjusts the rinse routine (sheng pu-erh default: 1 quick rinse + 1 slow rinse + 2 min airing; shou pu-erh / liubao / border brick: 2 quick + 1 slow + 2 min airing + 1 quick)

  • Stewed / aroma fading → lid on or lid off

  • Turned sour / aroma gone → temperature down 3°C

  • Overshot? Say "reset XX" and it's back to the theory

Everything lives in state.json next to the script. Back up that one file and your taste moves house with you.


For reference only. Your tea is your tea, your mouth is your mouth, the parameters are theoretical, and only the taste counts. The program can't brew — it just flips a fairly sensible coin.

🍵 嗚呼、諸君ヨ!我々ハ今日ハ何ヲ飮ムカ! · tea-planner MCP

由無ク一碗ヲ持シ、茶ヲ愛スル人ニ寄ス。 —— 白居易

故人ニ對シテ故國ヲ思フ事休メヨ、且ク新火ヲ將テ新茶ヲ試ミヨ。詩酒ハ年華ニ趁ヘ。 —— 蘇軾

事ノ始マリハ斯ウダ。御茶ノ在庫ガ增エ續ケ、戸棚ヲ開ケル度ニ5分間ボンヤリ立チ盡クシ、結局一番手近ナ箱ヲ掴ム樣ニナッタ。茶葉ガ濕氣ルノハ私ノ所爲。選擇困難モ私ノ所爲。其レ故ニ計畫ニ責任ヲ負ハセタ。

斯ウシテCherry Studio上デ動クMCP「今日ハドノ御茶ニスル?」ガ生マレタ。107種類ノ茶ノ急須抽出條件(綠茶、烏龍茶、黑茶、紅茶、白茶、黃茶、花茶、其ノ他分類不能ナ變ハリ種)ヲ内藏シ、每日理由ノ有ル硬貨ヲ投ゲテ呉レル。季節、時間帶、月月火水木金金、最近飮ンダ如何カ、在庫ノ埃被リ度合イデ重ミ付ケ抽選ス。夏デモ熟普洱ガ當タル事ハ有ル。唯ダ確率ガ低イダケ。深夜ニ代用茶許リヲ押シ付ケル事モ爲ナイ——規則ハ柔ラカク、死刑判決ヲ受ケル御茶ハ無イ。

道具一覽(11箇)

道具

貴方ノ言葉

recommend

今日ハ何ヲ飮ム?

coldbrew_recommend

今日ハ何ヲ水出シスル?

add_tea

龍井茶、鐵觀音、正山小種ヲ買ッタ(一括登録對應)

remove_tea

碧螺春ヲ飮ミ切ッタ

clear_inventory

引ッ越シタ(一回操作デ全消去——作者ノ茶櫃ヲ引キ繼ガナイ)

set_brewer

急須ハ300ml / 水出シ容器ヲ2Lニ變ヘタ

review

薄スギル / 苦イ / 倉庫臭 / 洗茶シスギ / 蒸レ味 / 酸ッパクナッタ / 香リガ飛ンダ

record / undo_record / history

〇〇ヲ飮ンダ / 記錄ヲ撤回 / 最近何ヲ飮ンダ?

配備(Cherry Studio、2分)

uv(uvxヲ含ム)ガ必要:

uvx tea-chay-advisor

Cherry Studio → 設定 → MCPサーバー → 此ノJSONヲ取込:

{
  "mcpServers": {
    "tea-planner": {
      "command": "uvx",
      "args": ["tea-chay-advisor"],
      "env": {}
    }
  }
}

開閉器ヲ入レニシ、道具一覽ニ11箇ノ道具ガ表示サレレバ成功。uvx ガ PyPI カラ自動的ニ tea-chay-advisor ヲ引キ寄セ、手動ノ pip install モ經路ノ設定モ不要ナリ。

uvヲ使ヒタクナイ場合ハ、SKILL.md ヲ Cherry Studio ノ Skills フォルダニ入レルト、指示文ノミノ代替手段ガ使ヘル(永續化ハサレナイガ、直グ使ヘル)。

導入後3手順

  1. 引ッ越ス:「引ッ越シタ」ト言ウ → 作者ノ107種類ノ御茶ヲ消去(誤操作防止ノ爲2回確認)

  2. 仕入レル:「龍井茶、大紅袍、熟成白茶ヲ買ッタ」 → 一括登録、條件ハ分類別ニ自動設定

  3. 飮ム:「今日ハ何ヲ飮ム?」 → 後ハ計畫ガ惱ンデ呉レル

淹レ方ニ就イテ(注グ前ニ讀ム事)

コレハ工夫茶式デハ有リマセン。 蓋碗モ、高速抽出モ、「一煎目ハ香リ、二煎目ハ水、三煎目ハ茶」モ有リマセン。作者ガ普段使ッテヰルノハ 400mlノ大急須 + 1.6Lノ水出シ容器、TDS20ノ純水。一度ニ滿タシ、4〜5分蒸ラシ、一氣ニ注ギ出シテ茶葉ト茶湯ヲ分離スル——茶ノ官能審査ヤ鬼畜米英式茶壺ニ近イ遣リ方デス。總テノ茶葉量、湯温、時間ハ此ノ構成ニ合ハセテ調整サレテヰマス。

道具ガ違ウ?「急須ハ500ml」ト言ヘバ、茶葉量ガ茶水比ニ應ジテ自動デ調整サレ、湯温ト時間ハ變ハラナイ。水出シモ同様。

評價:御茶ヲ貴方好ミニ育テル

理論上ノ條件ハ出發點ニ過ギマセン。販賣元ノロット、倉庫デノ年数、保存狀態ニ因ッテ、御茶ハ仕様書カラ外レテ行キマス。味ガ合ハナイト感ジタラ、然ウ言ッテ下サイ:

  • 薄スギル / 濃スギル / 澁イ → 茶葉量・時間・湯温ヲ自動微調整

  • 倉庫臭ガ强イ / 洗茶シスギ → 洗茶手順ヲ調整(生普洱初期設定:高速洗イ1回+低速洗イ1回+2分空氣ニ當テル。熟普洱/六堡茶/邊境磚茶:高速洗イ2回+低速洗イ1回+2分空氣ニ當テル+高速洗イ1回)

  • 蒸レ味 / 香リガ飛ブ → 蓋ヲスルカ開ケルカ

  • 酸ッパクナッタ / 香リガ消ヘタ → 湯温ヲ3℃下ゲル

  • 調整シスギタラ「〇〇ヲ初期化」ト言ヘバ、一回操作デ理論値ニ戻ル

總テノ情報ハスクリプトノ隣ニ有ル state.json ニ保存サレマス。此ノファイル一ツヲ控ヘトシテ保存スレバ、貴方ノ味ノ好ミモ一緒ニ引ッ越セマス。


御參考マデニ。 御茶ハ貴方ノ御茶、口ハ貴方ノ口、條件ハ理論値、而シテ美味シサコソガ正義。計畫ハ御茶ヲ淹レラレマセン。唯ダ、ソコソコ理屈ノ有ル硬貨ヲ投ゲルダケデス。

🍵 キョウ サ、ドノ ティー ニ スル? · tea-planner MCP

ワケ モ ナク ティー ヲ イッパイ イレテ、ティー ガ スキ ナ ヒト ニ プレゼント。—— ハク キョイ

フルイ トモダチ ト フルサト ノ コト ナンカ シンク スル ノ ヤメテ、アタラシイ ヒ デ アタラシイ ティー ヲ トライ シヨウ。ポエトリー ト ワイン ハ、タイム ガ ヤング ナ ウチ ニ エンジョイ シロ。—— ソ ショク

コト ノ ハジマリ ハ コウ。ティーコレクション ガ ドンドン グロー シテ、キャビネット オープン スル タビ ニ 5ミニッツ ボーッ ト スタンド シテ、ケッキョク イチバン テジカ ナ ボックス グラブ スル ヨウ ニ ナッタ。ティーリーフ ガ ダンプ ニ ナル ノ ハ マイ フォールト。チョイスパラライシス モ マイ フォールト。ダカラ プログラム ニ レスポンシビリティ オシッツケタ。

コウシテ Cherry Studio ノ ウエ デ ラン スル MCP「キョウ ワ ドノ ティー?」ガ ボーン シタ。107タイプ ノ ティー ノ ポットブリュー パラメータ(グリーンティー、ウーロンティー、ダークティー、ブラックティー、ホワイトティー、イエローティー、フラワーティー、ソノタ クラシファイ フノウ ナ ウィアード ナ ヤツ)ヲ ビルトイン シテ、エブリデイ リーズナブル ナ コイン ヲ トス シテ クレル。シーズン、タイムオブデイ、レセントリー ドリンク シタカ、インベントリー ノ ダスト レベル デ ウェイテッド ロット スル。サマー デモ ライププーアル ガ ヒット スル コト アル。タダ プロバビリティ ガ ロー ナ ダケ。レイトナイト ニ ハーバルティー バッカリ プッシュ スル コト モ シナイ——ルール ワ ソフト デ、デス センテンス ヲ イイワタサレル ティー ハ ナイ。

ツールリスト(11コ)

ツール

アナタ ノ コトバ

recommend

キョウ ワ ナニ ドリンク スル?

coldbrew_recommend

キョウ ワ ナニ コールドブリュー スル?

add_tea

ロンジン、テツカンノン、ラプサンスーチョン ゲット シタ(バッチ サポート ツキ)

remove_tea

ビールオチュン フィニッシュ シタ

clear_inventory

ムーブ シタ(ワンクリック ワイプ——オーサー ノ ティーキャビネット ヲ インヘリット シナイ)

set_brewer

マイ ティーポット ハ 300ml / コールドブリューポット ヲ 2L ニ チェンジ シタ

review

ウィークスギル / ビター / ウェアハウスムスティ / リンス シスギ / スチュード / サワー ニ ナッタ / アロマ ガ ゴーン

record / undo_record / history

〇〇 ドリンク シタ / レコード アンドゥ / レセントリー ナニ ドリンク シタ?

デプロイ(Cherry Studio、2ミニッツ)

uv(uvx モ アル)ガ イル:

uvx tea-chay-advisor

Cherry Studio → セッティング → MCPサーバー → コノ JSON ヲ インポート:

{
  "mcpServers": {
    "tea-planner": {
      "command": "uvx",
      "args": ["tea-chay-advisor"],
      "env": {}
    }
  }
}

スイッチ オン ニ シテ、ツールリスト ニ 11コ アピア シタラ サクセス。uvx ガ PyPI カラ オート デ tea-chay-advisor ヲ ゲット スル カラ、ジブン ノ パス モ pip モ イラナイ。

uv ヲ ツカイタクナイ ヒト ワ、SKILL.md ヲ Cherry Studio ノ Skills フォルダ ニ パット スレバ、プロンプトオンリー ノ フォールバック ガ ユーズ デキル(パーシステンス ハ ナイ ケド、アウトオブボックス デ ユーズ デキル)。

インストール ノ アト 3ステップ

  1. ムーブイン:「ムーブ シタ」ト イエバ → オーサー ノ 107タイプ ノ ティー ゼンブ ワイプ(ミステイク フセグ タメ ニ 2カイ コンファーム)

  2. ストック:「ロンジン、ダーホンパオ、エイジドホワイトティー ゲット シタ」 → バッチ インポート、パラメータ ワ カテゴリー ベツ ニ オート セット

  3. ドリンク:「キョウ ワ ナニ ドリンク スル?」 → アト ワ プログラム ガ ワリー シテ クレル

ブリューイング ニ ツイテ(ポア スル マエ ニ リード シテ)

コレ ワ ゴンフースタイル ジャ ナイ。 ガイワン モ、フラッシュインフュージョン モ、「ファースト インフュージョン ワ アロマ、セカンド ワ ウォーター、サード ワ フレーバー」モ ナイ。オーサー ガ ユーズ シテル ノ ワ 400ml ノ ビッグ ティーポット + 1.6L ノ コールドブリューポット、TDS20 ノ ピュアウォーター。ワンタイム デ フィル シテ、4〜5ミニッツ スティープ シテ、ワンゴー デ ポアアウト シテ ティーリーフ ト リカー ヲ セパレート スル——ティー キュッピング ヤ ブリティッシュ ティーポット ニ クロース ナ アプローチ。スベテ ノ リーフリョウ、テンペラチャー、タイム ワ コノ セットアップ ニ キャリブレーション サレテル。

ギア ガ ディファレント?「マイ ティーポット ハ 500ml」ト イエバ、リーフリョウ ガ ティーウォーターレシオ ニ オウジテ オート デ スケール サレル。テンペラチャー ト タイム ワ チェンジ シナイ。コールドブリュー モ セイム。

レビュー:ティー ヲ ユア テイスト ニ グロー サセル

セオリー ノ パラメータ ワ タダ ノ スタートポイント。ベンダー ノ ロット、ウェアハウス イヤー、ストレージ コンディション ニ ヨッテ、ティー ワ スペックシート カラ デビエート シテ イク。テイスト ガ ヘン ダト フィール シタラ、ソノママ セイ シテ イイ:

  • ウィークスギル / ストロングスギル / アストリンジェント → リーフリョウ・タイム・テンペラチャー ヲ オート ファインチューン

  • ウェアハウスムスティ / リンス シスギ → リンス ルーチン ヲ アジャスト(ナマ プーアル デフォルト:クイック リンス 1カイ + スロー リンス 1カイ + 2ミニッツ エアリング。ライプ プーアル / リュウバオ / ボーダーブリック:クイック 2カイ + スロー 1カイ + 2ミニッツ エアリング + クイック 1カイ)

  • スチュード / アロマ フェーディング → リッド オン カ リッド オフ カ

  • サワー ニ ナッタ / アロマ ゴーン → テンペラチャー ヲ 3℃ ダウン

  • オーバーチューン シタラ「〇〇 リセット」テ イエバ、ワンクリック デ セオリー ニ バック

データ ワ ゼンブ スクリプト ノ トナリ ノ state.json ニ セーブ サレテル。コノ ファイル ダケ バックアップ スレバ、ユア テイスト プリファレンス モ イッショ ニ ムーブ デキル。


マジ、サンコウ ニ シテ ネ。 ティー ワ ユア ティー、マウス ワ ユア マウス、パラメータ ワ セオリー、オイシサ コソ ガ ジャスティス。プログラム ワ ティー ヲ ブリュー デキナイ。タダ ソコソコ リーズナブル ナ コイン ヲ トス シテル ダケダヨ。

🍵 今日は何を飲もうか · tea-planner MCP

理由もなく一椀を手に取り、茶を愛する人に贈る。 —— 白居易(はくきょい)

故人と故郷を思うのはやめて、新しい火で新しい茶を試そう。詩と酒、青春がまさに今だ。 —— 蘇軾(そしょく)

事情はこうです。家のお茶がどんどん増えて、棚を開けるたびに5分間ぼんやりして、結局一番手近な缶を取ってしまう。お茶が湿気を吸うのも私のせい、選択障害も私のせいだから、プログラムに責任をなすりつけることにしました。

そこで、Cherry Studio の上に載せたこの MCP——「今日は何を飲もうか」。107種類のお茶の壺泡(ティーポット)パラメーターを内蔵しています(緑茶、烏龍茶、黒茶、紅茶、白茶、黄茶、花茶、そしてどこに分類すればいいのか微妙な変なものまで)。毎日皆さんの代わりに理屈のあるコインを投げます。季節、時間帯、最近飲んだかどうか、在庫がほこりをかぶった程度を加重して抽選します。夏でも熟普(熟成プーアル)が選ばれることはありますが、確率が低いだけです。深夜でも代用茶ばかり押し付けられることはありません。ルールは柔らかく、どのお茶も死刑宣告を受けることはありません。

ツール11個

ツール

このように言ってください

recommend

今日は何を飲みますか?

coldbrew_recommend

今日は水出しで何にしますか?

add_tea

龍井、鉄観音、正山小種を買いました(一括対応)

remove_tea

碧螺春を飲み終わりました

clear_inventory

他県に引っ越しました(一括で空にする——作者のお茶棚を引き継がないでください)

set_brewer

私の急須は300mlです/水出しポットを2Lに替えました

review

薄すぎる/少し渋い/倉庫の匂いがする/洗茶しすぎ/蒸らし臭がする/酸っぱくなった/香りが消えた

record / undo_record / history

XXを飲みました/記録を間違えたので取り消し/最近何を飲んだ?

デプロイ(配備) (Cherry Studio, 2分)

uv (uvx を含む) が必要:

uvx tea-chay-advisor

Cherry Studio → 設定 → MCP サーバー → この JSON をインポート:

{
  "mcpServers": {
    "tea-planner": {
      "command": "uvx",
      "args": ["tea-chay-advisor"],
      "env": {}
    }
  }
}

スイッチをオンにして、ツールリストに11個のツールが表示されれば成功です。uvx が PyPI から tea-chay-advisor を自動的に取得するので、手動の pip インストールもローカルパスの設定も不要です。

その後、該当の場所に SKILL.md を配置してください。

開封3ステップ

  1. 引っ越し:「他県に引っ越しました」 → 作者の107種類のお茶を空にします(確認を2回行ってから実行、誤操作防止)

  2. 入庫:「龍井、大紅袍、老白茶を買いました」 → 一括入庫、パラメーターは自動的に分類に応じて設定されます

  3. 試飲:「今日は何を飲みますか?」 → 残りはプログラムが代わりに悩みます

抽出方法について(従う前に読んでください)

これは功夫茶の抽出方法ではありません。 蓋碗もなければ、早出しもありません。「一煎目は香り、二煎目は水、三煎目は茶」もありません。著者が使っているのは400mlの大型ティーポット + 1.6Lの水出しポット、TDS20の精製水です。一度満たして注ぎ、4〜5分蒸らし、一度にすべて出湯し、茶葉と茶液を分離します。茶の審評や英国式ティーポットに近いアプローチです。すべての投茶量、水温、時間はこのシナリオに合わせて校正されています。

茶器が違う?「私の急須は500mlです」と言えば、投茶量が自動的に茶水比に応じて調整されます。水温と時間はそのままです。水出しも同様です。

復盤(レビュー):お茶をあなたの好みに育てる

理論のパラメーターは単なる出発点です。売り手のロット、倉庫の年度、保管状態によって、お茶は仕様書から逸れていきます。味がおかしいと感じたら、そのまま言ってください:

  • 薄すぎる / 濃すぎる / 渋い → 投茶量・時間・水温を自動で微調整

  • 倉庫の匂い / 洗茶しすぎ → 洗茶の工程を調整(生普デフォルト: 早洗茶1回 + 遅洗茶1回 + 2分間の風通し; 熟普/六堡/辺銷磚: 早2回 + 遅1回 + 2分間の風通し + 早1回)

  • 蒸らし臭 / 香りが散る → 蓋をするか開けるか

  • 酸っぱくなる / 香りが消える → 水温を3℃下げる

  • 調整しすぎたら「XXリセット」と言えば、ワンクリックで理論値に戻ります

すべてのデータはスクリプトの横の state.json に保存されます。このファイル1つだけバックアップすれば、好みは引っ越してもついてきます。


参考程度にしてください。 お茶はあなたのお茶、口はあなたの口、パラメーターは理論、おいしくなければ意味がありません。プログラムはお茶を淹れられません。ただそれなりに理屈のあるコインを1枚投げるだけです。

🍵 今日は何を飲むのか · tea-planner MCP

理由もなく一碗を手に取り、茶を愛する人に贈る。 —— 白居易

故人を前にして故国を思うのはやめ、新しい火で新しい茶を試そう。詩と酒、青春を楽しむのは今だ。 —— 蘇軾

事情はこうです。家のお茶がどんどん増えて、棚を開けるたびに5分間ぼーっとしてしまい、結局一番手近な缶を取ってしまいます。お茶が湿気るのは自分のせい、選ぶのが難しいのも自分のせいだから、いっそプログラムに罪をかぶせてしまおうと思ったのです。

そうして、Cherry Studio の上に載せたこの MCP——「今日は何を飲もうか」。107種類のお茶の抽出パラメーターを組み込んでいます(緑茶、烏龍茶、黒茶、紅茶、白茶、黄茶、花茶、そしてどこに分類すればいいのか微妙な変なものまで)。毎日あなたの代わりに理屈のあるコインを投げます。季節、時間帯、最近飲んだかどうか、在庫がほこりをかぶった度合いを加重して抽選します。夏でも熟普(熟成プーアル)が当たることはありますが、確率が低いだけ。深夜も代用茶ばかり押し付けられることはありません。ルールは柔らかく、どのお茶も死刑宣告を受けません。

ツール一覧(11個)

ツール

あなたの言い方

recommend

今日は何を飲みますか?

coldbrew_recommend

今日は水出しで何を淹れますか?

add_tea

龍井、鉄観音、正山小種を買いました(一括インポート対応)

remove_tea

碧螺春を飲み終わりました

clear_inventory

他県に引っ越しました(ワンボタンで空にします。作者の茶棚を引き継がないでください)

set_brewer

私の急須は300mlです/水出しポットを2Lに替えました

review

薄すぎる/少し苦い/倉庫の匂いが強い/洗茶しすぎ/蒸らし臭がする/酸っぱくなった/香りがなくなった

record / undo_record / history

XXを飲みました/記録を間違えたら取り消し/最近何を飲んだ?

デプロイ (Cherry Studio, 2分)

uv (uvx を含む) が必要:

uvx tea-chay-advisor

Cherry Studio → 設定 → MCP サーバー → この JSON をインポート:

{
  "mcpServers": {
    "tea-planner": {
      "command": "uvx",
      "args": ["tea-chay-advisor"],
      "env": {}
    }
  }
}

スイッチをオンにして、ツールリストに11個のツールが表示されれば成功です。uvx が PyPI から tea-chay-advisor を自動的に取得するので、手動の pip インストールもローカルのパス設定も必要ありません。

uv を使いたくない? SKILL.md を Cherry Studio の Skills フォルダに入れれば、プロンプトのみで動作するフォールバック版が使えます(状態は保存されませんが、すぐに使えます)。

インストール後の3ステップ

  1. 引っ越し:「他県に引っ越しました」 → 作者の107種類のお茶を空にします(2回確認して実行、誤削除防止)

  2. 入庫:「龍井、大紅袍、老白茶を買いました」 → 一括入庫、パラメーターは種類に応じて自動設定

  3. 試飲:「今日は何を飲みますか?」 → 残りはプログラムが代わりに頭を悩ませます

抽出方法について(注ぐ前に読んでください)

これは功夫茶の淹れ方ではありません。 蓋碗もなければ、早出しもありません。「一煎目は香り、二煎目は水、三煎目は茶」もありません。著者は400mlの大型ティーポット + 1.6Lの水出しポット、TDS20の精製水を使い、一度満たして注ぎ、4〜5分抽出し、一度にすべて注ぎ出して茶葉と茶液を分けます。これは茶の審評や英国式ティーポットに近い方法です。すべての投茶量、水温、時間はこのシナリオに合わせて校正されています。

茶器が違いますか?「私の急須は500mlです」と言えば、投茶量が自動的に茶水比に応じて伸縮し、水温と時間はそのままです。水出しも同様です。

復盤:お茶を飲むほど好みに合うように

理論上のパラメーターは出発点にすぎません。売り手のロット、倉庫の年度、保管状態によって、お茶は説明書から外れていきます。味が変だと感じたら、そのまま言ってください:

  • 薄すぎる/濃すぎる/渋い → 投茶量・時間・水温を自動で微調整

  • 倉庫の匂いが強い/洗茶しすぎ → 洗茶の段階を調整(生普デフォルト: 早洗茶1回 + 遅洗茶1回 + 2分間香りを放つ; 熟普/六堡/辺銷磚: 早2回 + 遅1回 + 2分間香りを放つ + 早1回)

  • 蒸らし臭/香りが散る → 蓋をするか開けるか

  • 酸っぱくなった/香りが消えた → 水温を3℃下げる

  • 調整しすぎたら「XXリセット」と言えば、ワンクリックで理論値に戻ります

すべてのデータはスクリプトの横の state.json に記録されます。このファイル1つをバックアップするだけで、好みは引っ越しについてきます。


参考程度にしてください。 お茶はあなたのお茶、口はあなたの口、パラメーターは理論、おいしく飲めてこそ本物です。プログラムはお茶の淹れ方を知りません。ただそれなりに筋の通ったコインを1枚投げるだけです。

🍵 今日は何茶を飲もうか · tea-planner MCP

理由もなく一碗を手に取り、茶を愛する人に贈る。——白居易

故人に向かって故国を思うのはやめ、新たな火で新茶を試そう。詩と酒、青春は今を楽しむもの。——蘇軾

家のお茶は日に日に増えていく。やがて戸棚を開けては茫然とし、しばし立ち尽くし、結局手に一番近い缶を取る。茶が湿気るのは自分のせい、選ぶのが難しいのも自分のせい。それならばその過ちをプログラムに委ねてしまおう。こうして Cherry Studio の上に載せる MCP を作り、「今日飲何茶(今日は何茶を飲むか)」と名付けた。107種の茶の壺泡パラメーターを内蔵する(緑茶、青茶、黒茶、紅茶、白茶、黄茶、花茶、そのほか分類が難しい珍しいもの少々)。毎日あなたの代わりに根拠のあるコインを1枚投げる。季節、時間帯、最近飲んだかどうか、在庫がほこりをかぶった期間の長短を重み付けして抽選する。真夏でも熟普が選ばれることがあるが、それはごくわずか。深夜も代用茶ばかり押し付けることはない。規則は柔らかく、どの茶も見捨てられることはない。

ツール11個

ツール

あなたの言葉

recommend

今日は何のお茶を飲む?

coldbrew_recommend

今日は何の茶を水出しにする?

add_tea

龍井、鉄観音、正山小種を買った(複数並べてOK)

remove_tea

碧螺春を飲み終えた

clear_inventory

引っ越すので在庫を空にしたい(一括削除、私の茶棚は引き継がない)

set_brewer

私の急須は300ml / 水出しポットは2リットルに替える

review

薄すぎる / 少し苦い / 倉味が強い / 洗茶しすぎ / 蒸し煮の味 / 酸っぱい / 香りが無くなった

record / undo_record / history

あるお茶を飲んだ / 誤って記録したのを取り消す / 最近飲んだお茶は?

デプロイ方法(Cherry Studio、ものの数分で完了)

uv(uvx を含む)が必要です:

uvx tea-chay-advisor

Cherry Studio → 設定 → MCP サーバー → この JSON をインポート:

{
  "mcpServers": {
    "tea-planner": {
      "command": "uvx",
      "args": ["tea-chay-advisor"],
      "env": {}
    }
  }
}

スイッチをオンにすると、ツール一覧に11個のツールが表示されれば成功です。uvx は PyPI から自動的に tea-chay-advisor を取得するため、手動の pip は不要で、ローカルパスの設定も必要ありません。

また、対応する場所に SKILL.md をデプロイします。uv を使いたくない場合は、SKILL.md を Cherry Studio の Skills ディレクトリに置き、プロンプトだけで代用することもできます(永続的な機能はありませんが、そのまま使えます)。

最初の3ステップ

  1. 引っ越し:「引っ越すので在庫を空にしたい」→ 私の107種類のお茶をすべて削除(確認を2回行ってから実行するので、誤って消すことはありません)

  2. 仕入れ:「龍井、大紅袍、老白茶を買った」→ まとめて在庫に登録、パラメータは種類ごとに自動設定

  3. 飲み始め:「今日は何のお茶を飲む?」→ あとはプログラムにお任せ

淹れ方について(急須を手にする前にまずご覧ください)

これは工夫茶の淹れ方ではありません。 蓋碗もなければ、茶湯を素早く出し切ることもなく、「一煎目は香り、二煎目は水、三煎目は茶」という説もありません。私は 400ml の大急須、1.6リットルの水出しポット、TDS 20 の純水 を使い、一気に注いで満たし、4〜5分抽出して、一気に注ぎ切って茶葉と茶湯を分離します。そのやり方は、茶葉の審評や英国式ティーポットに近いものです。茶葉の量、湯温、抽出時間は、すべてこの条件に合わせて調整されています。

茶器が違いますか?その場合は「私の急須は500ml」と言うだけで、茶葉の量は茶と水の比率に応じて増減します。湯温と抽出時間は変わりません。水出しも同様です。

見直し:お茶をどんどん口に合うように

紙の上のパラメータは、ただの出発点にすぎません。業者のロットや保管年数によって、お茶は記録から大きく外れることがあります。飲んで合わなければ、率直に伝えてください:

  • 薄すぎる / 濃すぎる / 渋い → 茶葉の量・抽出時間・湯温を自動で微調整

  • 倉味が強い / 洗茶しすぎ → 洗茶の設定を調整(生プーアルのデフォルト:早洗い1回+ゆっくり洗い1回+におい抜き2分;熟プーアル/六堡茶/辺銷磚:早洗い2回+ゆっくり洗い1回+におい抜き2分+早洗い1回)

  • 蒸し煮の味 / 香りが飛ぶ → フタをするか開けるか

  • 酸っぱい / 香りが無くなった → 湯温を3度下げる

  • 調整しすぎてしまったら「○○茶をリセット」と言えば、ワンクリックで紙の上の値に戻ります

すべてのデータはスクリプトの隣にある state.json に保存されます。このファイルをバックアップしておくだけで、好みの味をどこへでも持ち運べます。


参考までに。 お茶はあなたのお茶、口はあなたの口、パラメータは紙の上の話にすぎず、おいしさこそが基準です。プログラムはお茶を淹れられません。ただ、少しばかり理にかなったコインを一枚投げるだけです。

Available Tools

11 tools
add_teaA

「我买了XX」:新茶入库。支持批量:「我买了龙井、铁观音、正山小种」一次入库多款。 与内置茶全名相同的会恢复原参数(搬家清空后可用);新茶自动按类别套默认壶泡参数。 参数: name: 茶名(必填)。多个茶名可用顿号/逗号/分号/换行分隔 category: 可选类别(可模糊,「普洱」会归到黑茶);批量导入时用于无法从茶名推断的茶 note: 可选备注,如「明前」「2024年」「朋友送的」 g/temp/minutes/rinse: 可选自定义壶泡参数(400ml一泡)。0 或 -1 表示用类别默认;批量模式不支持显式参数

ParametersJSON Schema
NameRequiredDescriptionDefault
gNo
nameYes
noteNo
tempNo
rinseNo
minutesNo
categoryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations provided, the description carries full responsibility and does so thoroughly. It discloses that exact-name matches with built-in teas restore original parameters, that new teas get category-default brewing parameters, that 0/-1 means use defaults, and that batch mode does not support explicit parameters.

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 front-loaded with a concrete usage example, followed by concise behavioral notes and a structured parameter list. Every sentence adds useful information, and the format is easy for an agent to parse.

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

Completeness4/5

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

Given the tool's complexity—batch mode, defaults, fuzzy categories, restore behavior—the description covers the crucial operational details well. It does not explain every edge case, such as duplicate non-built-in tea names, but the core invocation path is complete and the output schema exists to cover return values.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must fully compensate. It explains name separators, fuzzy category matching with an example, note content examples, and the special semantics of g/temp/minutes/rinse, including batch-mode restrictions. This goes far beyond the bare parameter names in the schema.

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

Purpose5/5

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

The description states a specific verb and resource: adding new tea to inventory, with a natural-language trigger 「我买了XX」. It also clarifies batch addition with examples, which clearly distinguishes this from sibling tools like remove_tea or record.

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 opening examples make the intended invocation context clear: when the user reports buying tea, including batch purchases. It does not explicitly name alternatives or exclusions, but the context is unambiguous enough for an agent to select this tool over siblings.

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

clear_inventoryA

「我搬到了外地」:清空全部库存(内置107款全部标记移除、自购茶删除)与喝茶历史、复盘调校。 清空后可用「我买了XX、YY、ZZ」批量导入新茶单;与内置茶全名相同的会自动恢复原参数。

参数: confirm: 必须为 True 才真正执行(防误触)。首次调用返回预览。

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so well: it discloses exactly what gets destroyed, the built-in items are marked removed, self-purchased items are deleted, and history/review tuning is cleared. It also discloses the confirm-before-execute safeguard and the first-call preview behavior, which is strong transparency for a destructive tool.

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

Conciseness5/5

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

The description is compact and front-loaded: it opens with the scenario, states the full effect, then gives the post-condition and parameter rule. Every sentence earns its place and there is no filler.

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

Completeness5/5

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

For a one-boolean-parameter destructive tool with an output schema available, the description is complete: it defines the action, the scope, the safety mechanism, the preview flow, and the recovery/import path. No critical call-relevant information is missing.

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

Parameters5/5

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

The schema provides no parameter descriptions (0% coverage), so the description must compensate. It fully explains the single `confirm` parameter: it must be True to actually execute, it prevents accidental triggering, and the first call returns a preview. This is complete semantic coverage.

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 clear verb, 清空 (clear), and precisely defines the affected scope: all inventory (built-in and self-purchased), drinking history, and review tuning. This explicitly distinguishes it from the single-item sibling tools like remove_tea and undo_record.

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 a concrete trigger scenario, 「我搬到了外地」, and explains the intended post-condition: the user can batch-import a new tea list afterward. It does not explicitly name alternatives or exclusions, so it falls just short of full guidance.

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

coldbrew_recommendA

「今天冷泡什么」:为 1.6L 冷泡壶推荐冷泡茶(冷藏层约4℃)。 输出投茶量、冷藏时长、预计可饮时间。抹茶/可可/茶膏/药茶丸不适合冷泡壶,自动排除。

参数: datetime_str: 可选,ISO 格式 '2026-08-16T21:30';缺省用系统当前时间(用于计算"几点能喝") randomness: 0~1 随机程度,默认 0.6 count: 返回几款(主推+备选),默认 1,最多 5

ParametersJSON Schema
NameRequiredDescriptionDefault
countNo
randomnessNo
datetime_strNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden and does so well: it discloses auto-exclusion of matcha/cocoa/tea paste/medicinal tea pills, the default-current-time behavior for datetime_str, and the meaning of randomness and count. It only omits edge-case behaviors such as empty inventory, which is minor for a recommendation tool.

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

Conciseness5/5

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

The description is front-loaded with a short purpose phrase, then gives outputs, exclusions, and parameter meanings in a tight structured list. No sentence is wasted or redundant with the schema.

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

Completeness5/5

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

For a tool with no required parameters and an output schema, the description covers the essential invocation context: defaults, ranges, output fields, and excluded inputs. Missing behavior like empty-inventory errors is not necessary for correct selection and invocation.

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

Parameters5/5

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

Schema description coverage is 0%, but the description fully compensates by explaining datetime_str's ISO format/default, randomness's 0-1 range/default, and count's max/default. This is exactly the semantic information an agent needs beyond the bare schema fields.

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?

Description states a specific action: recommend cold-brew tea for a 1.6L cold-brew pot at refrigerator temperature, and names concrete outputs (tea amount, cold-brew duration, ready-to-drink time). This clearly separates it from the generic sibling `recommend` by scoping it to cold brewing.

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 intended scenario is explicit: use when the user wants a cold-brew tea recommendation for the 1.6L pot, with automatic exclusion of unsuitable tea forms. It does not explicitly name sibling alternatives or state when to use `recommend` instead, so it stops short of full alternative routing.

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

historyA

查看最近喝茶记录。

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the burden. '查看' makes clear this is a read operation, and '最近' implies recency ordering, but the description does not disclose whether results are sorted, how the limit applies, or what happens when there are no records. Basic behavior is transparent, but details are left out.

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, front-loaded sentence that states the tool's purpose with no filler. It is appropriately sized for a simple read tool and every word contributes meaning.

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 tool is simple, has one optional parameter, and an output schema exists, so return details do not need explanation. Still, the description fails to explain the `limit` parameter and gives no explicit usage guidance beyond the obvious purpose, leaving minor but real gaps.

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 `limit` parameter has 0% schema description coverage and is not mentioned in the tool description. The name and default value are self-explanatory, but the description adds no meaning about how the limit is applied or what range of values is acceptable.

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 ('查看' = view) and a concrete resource ('最近喝茶记录' = recent tea-drinking records), making it clear this is a read-oriented history tool. It is easily distinguishable from siblings like `record` or `inventory`, which imply writing or current stock rather than past records.

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 context for use is implied: call it when you need to see recent tea-drinking logs. However, it does not explicitly name alternatives or state when not to use it, so an agent must infer the boundary against siblings like `record` or `review`.

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

inventoryA

列出库存茶品及壶泡参数。category 可选:绿茶/调味绿茶/花茶/白茶/黄茶/乌龙茶/红茶/调味红茶/黑茶/代用茶。

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations provided, the description must carry the behavioral burden. The verb 列出 clearly signals a read-only query operation and names what is returned, which is sufficient for a simple list tool. It does not explicitly discuss ordering, pagination, or live-vs-snapshot semantics, but these are minor for this low-complexity operation.

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 one compact sentence that front-loads the action and resource, then adds the only parameter information an agent needs. Every clause contributes; there is no filler.

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

Completeness4/5

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

For a one-parameter list operation with an output schema, the description covers the core behavior and filter values completely. It stops just short of full completeness by not explicitly stating that an omitted category returns all items and by not framing when inventory should be preferred over sibling tools.

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

Parameters5/5

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

The input schema provides only a bare string with an empty default and no enum, while the tool description supplies the full parameter meaning: category is an optional filter and all ten accepted values are enumerated. This fully compensates for the 0% schema description coverage.

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 opens with the explicit verb 列出 and names the exact resource 库存茶品及壶泡参数, making the tool's function unmistakable. This also separates it from mutation siblings like add_tea, remove_tea, and clear_inventory, which clearly imply write operations rather than listing.

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

Usage Guidelines2/5

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

No guidance is given about when to choose inventory over siblings such as history, recommend, or coldbrew_recommend, and no exclusions or alternative conditions are stated. The only usage hint is the optional category filter, which is parameter-level guidance rather than tool-selection guidance.

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

recommendA

推荐今天(或指定日期时间)喝什么茶,输出 400ml 壶泡一泡的完整参数。

参数: datetime_str: 可选,ISO 格式 '2026-02-14T20:30';缺省用系统当前时间 randomness: 0~1 随机程度。0=非常应季规律,1=非常随机惊喜。默认 0.6 count: 返回几款(主推+备选),默认 1,最多 5 mood: 可选偏好词,如 '想喝香的' / '清淡' / '暖胃' / '提神' / '安神'

ParametersJSON Schema
NameRequiredDescriptionDefault
moodNo
countNo
randomnessNo
datetime_strNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations provided, the description carries the behavioral burden. It usefully discloses default current-time usage, randomness semantics (0=regular, 1=surprise), count limits, and mood options, which is meaningful. However, it does not state whether the recommendation uses inventory data, whether it has side effects, or what constraints apply beyond the parameters.

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 one purpose line plus a tight parameter list with no filler. The primary function is front-loaded, and each bullet adds distinct, useful 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?

The description covers all parameters and the high-level return shape, and an output schema exists to handle return details. It is slightly incomplete because it does not explicitly route between hot-brew recommend and coldbrew_recommend, nor state whether inventory is considered, but it remains highly usable.

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

Parameters5/5

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

Input schema coverage is 0%, but the description compensates fully by documenting all four parameters: datetime_str ISO syntax and fallback, randomness range with default 0.6, count default and max 5, and mood examples. This gives an agent everything needed to form correct arguments.

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 opening line states a specific verb ('推荐') and a concrete resource: what tea to drink today or at a given datetime, plus the exact output shape (400ml 壶泡一泡的完整参数). The '壶泡' detail implicitly differentiates it from the sibling coldbrew_recommend, so an agent can tell them apart.

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?

No explicit when-to-use or when-not-to-use guidance is given, and no sibling alternative such as coldbrew_recommend is named. The '壶泡' wording implies hot-brew usage and the datetime parameter implies current-time behavior, but the choice is left to inference 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.

recordA

记录「我刚喝了XX」,用于疲劳降权与库存轮换。茶名可模糊匹配。

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full disclosure burden. It does reveal meaningful side effects (fatigue weighting, inventory rotation) and fuzzy matching, but it does not detail exactly what is modified, whether duplicate records are allowed, or how reversible the action is.

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?

One compact sentence packs the action, purpose, and matching behavior with no filler. The action pattern is front-loaded, making it immediately scannable for an agent.

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 one-parameter tool with an output schema and low complexity, the description covers the essentials for selection and invocation. It could add a pointer to undo_record for accidental entries, but nothing critical is missing.

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

Parameters4/5

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

The input schema only lists 'name' with no description, and schema coverage is 0%. The description compensates by identifying the parameter as a tea name and noting that fuzzy matching is supported, which adds meaning beyond the schema. It omits format or matching details, but with only one parameter the core meaning is clear.

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 concrete pattern ('我刚喝了XX') to define the tool as recording a tea-drinking event, and clearly states the downstream purpose (fatigue downweighting and inventory rotation). It is distinguishable from siblings like add_tea and undo_record despite not explicitly naming them.

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

Usage Guidelines4/5

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

The description implies the trigger condition (the user has just drunk a tea) and gives clear context for when the tool is relevant. However, it does not explicitly say when not to use it or point to alternatives such as undo_record for correcting mistakes.

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

remove_teaA

「我喝光了XX」:把茶移出库存。内置茶标记为喝光(可说「我买了XX」恢复);自购茶直接删除。茶名模糊匹配。

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full behavioral burden. It discloses that built-in teas are reversibly marked as consumed, self-purchased teas are directly deleted, and names use fuzzy matching. It does not mention no-match handling or whether the action is logged, but core safety-relevant behavior is covered.

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 entire description is one compact sentence that front-loads the trigger phrase and packs in operation, conditional behavior, restoration path, and match semantics. There is no filler or redundant restating of the tool name.

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

Completeness4/5

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

For a destructive one-parameter tool with no annotations, it covers the key user-facing differences: reversible built-in consumption, irreversible self-purchased deletion, and fuzzy matching. An output schema exists, so return details are not required; however, ambiguous/no-match outcomes and interaction with undo_record/history are not addressed.

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 provides only 'name: string' with 0% coverage, so the description must add meaning. The 'XX' template in 'I drank up XX' maps the parameter to a tea name, and 'fuzzy match' explains acceptable input behavior. It could be more explicit about the field name, but the command-template approach is sufficient.

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

Purpose5/5

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

The description states a concrete verb and resource ('remove tea from inventory') and gives a natural trigger phrase ('I drank up XX'). It further distinguishes built-in teas (marked consumed) from self-purchased teas (deleted), making the tool's purpose clear relative to add_tea and clear_inventory.

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 trigger phrase and the parenthetical restoration note ('I bought XX' to restore) communicate when to use remove_tea and suggest add_tea as the inverse. It does not explicitly mention when not to use it or how record/undo_record relate, so it falls short of full guidance.

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

reviewA

「复盘」:记录喝感评价,并自动微调该款茶的热泡/冷泡参数(持久化到 state.json)。 理论参数只是起点——商家优劣、陈化、储存变质都会让实际口感偏离,复盘让参数贴合你的真实杯子。

参数: name: 茶名(必填,模糊匹配库存) feedback: 喝感反馈词。'太淡'/'不够味'→加量延时加温;'太浓'/'苦'→减量延时降温;'涩'→降温减时; '仓气重'/'仓味'/'堆味'/'霉味'→洗茶档位+1;'洗茶太过'/'香味洗掉'→洗茶档位-1; '闷味'/'闷熟'→改开盖泡;'香气散'/'跑香'→改盖盖泡; '泡酸'/'发酸'→降温(红茶高温出酸);'香味没了'/'没香气'→降温(高温毁香); '正好'/'好喝'→记录不调;含'重置'→清除调校。多维可组合(如'仓气重还淡'、'香味没了还淡')。 mode: hot=热泡壶泡(默认);cold=冷泡 reset: True 直接清除该茶该场景的调校(等价 feedback 含'重置') g/temp/minutes: 直接指定热泡目标参数(投茶g/水温℃/浸泡min,>=0 才生效,优先于自动调整) hours: 直接指定冷泡冷藏小时数(>=0 生效) prewash: 直接指定洗茶档位 0~6(0=不洗,2=生普默认,4=熟普/六堡/砖茶默认;>=0 生效) lid: 直接指定盖盖/开盖:1=盖盖(存香保温),0=开盖(散气防闷);>=0 生效 note: 可选备注,如 '商家这批偏淡' / '放久了仓气重'

ParametersJSON Schema
NameRequiredDescriptionDefault
gNo
lidNo
modeNohot
nameYes
noteNo
tempNo
hoursNo
resetNo
minutesNo
prewashNo
feedbackNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden and does so thoroughly. It discloses persistence to state.json, automatic adjustment logic, reset semantics, direct parameter precedence over auto-adjustment, and mode-specific behaviors such as prewash ranges and lid settings.

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 long, but justifiably so for 11 parameters with substantial behavior semantics. It is front-loaded with the core purpose, followed by a well-organized parameter list where every line adds necessary decision and invocation information.

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

Completeness5/5

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

Given the high complexity, absent schema descriptions, and no annotations, the description covers side effects, defaults, precedence, resets, and all 11 parameter semantics. An output schema exists, so return-value documentation is not required. The only minor unstated edge case is behavior when a name fails fuzzy matching, but this does not undermine overall completeness.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must compensate, and it does comprehensively. Each parameter—name, feedback, mode, reset, g/temp/minutes, hours, prewash, lid, and note—is explained with meaning, defaults, valid ranges, and behavioral effects.

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 opens with a specific verb and resource: 「记录喝感评价,并自动微调该款茶的热泡/冷泡参数」, making it clear this is a review/refinement tool. It also distinguishes itself from siblings by emphasizing automatic parameter adjustment persisted to state.json, rather than just recording.

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

Usage Guidelines4/5

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

The description clearly establishes when to use this tool: when actual drinking experience deviates from theoretical parameters due to merchant quality, aging, or storage issues. It provides detailed conditional behavior for different feedback words, but it does not explicitly name sibling alternatives or state when not to use it, so it stops short of a 5.

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

set_brewerA

修改壶具容量:「我的茶壶是500ml」/「冷泡壶换成2L」。投茶量按茶水比自动等比缩放,水温/时间不变。 默认 400ml 茶壶 + 1.6L 冷泡壶;存储的投茶量始终是 400ml/1.6L 基准值,仅显示时折算。

参数: pot_ml: 茶壶容量 ml(1003000),>=0 才生效 cold_ml: 冷泡壶容量 ml(5006000),>=0 才生效 reset: True 恢复默认 400ml / 1.6L

ParametersJSON Schema
NameRequiredDescriptionDefault
resetNo
pot_mlNo
cold_mlNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden—and it delivers. It discloses that tea amount scales proportionally, water temperature and time stay unchanged, stored values are always baseline amounts, conversion happens only at display time, and reset restores defaults. This goes well beyond a typical setter description.

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 well-structured: purpose and examples first, then storage/default behavior, then a clean parameter list. Every line adds operational value and there is no filler or repetition of schema fields.

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

Completeness5/5

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

The tool is simple and the description covers defaults, scaling semantics, storage normalization, reset behavior, and parameter constraints. Since an output schema exists, explaining return values is unnecessary. No critical calling information is missing.

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

Parameters5/5

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

Schema description coverage is 0%, but the description fully compensates by documenting each parameter's unit, valid range, activation condition ('>=0 才生效'), and reset behavior. An agent can correctly construct calls without any external knowledge.

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 opens with a specific verb and resource ('修改壶具容量') and gives concrete user-phrase examples, making the tool's function unmistakable. It is clearly distinct from all listed siblings, which concern records, inventory, recommendations, and reviews.

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

Usage Guidelines4/5

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

The description supplies clear trigger examples ('我的茶壶是500ml' / '冷泡壶换成2L') that tell an agent exactly when to invoke this tool. It does not explicitly name alternatives or state when not to use it, so it falls just short of a 5.

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

undo_recordA

撤销最近一条喝茶记录(记错了可悔)。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does state that only the most recent record is affected, but it omits critical traits like whether the action is destructive, irreversible, or what happens if no record exists yet. For a mutation tool, this is a significant gap.

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, front-loaded sentence that states the core action and follows with a brief use-case clarification. Every word contributes meaning, and there is no redundancy or irrelevant 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?

For a stateless, zero-parameter tool that has an output schema, the description is nearly sufficient. However, because there are no annotations, it would benefit from explaining edge-case behavior (e.g., attempted undo with no records) or explicitly noting irreversible side effects.

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 accepts zero parameters, so there is no schema detail for the description to clarify. The empty schema already provides complete coverage of the parameter space, making the baseline 4 appropriate.

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

Purpose5/5

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

The description clearly states a specific action (撤销/undo) applied to a specific resource (最近一条喝茶记录 / most recent tea-drinking record). The parenthetical '记错了可悔' reinforces the use case, and the tool is unambiguously distinct from siblings like record, history, and inventory-related commands.

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

Usage Guidelines3/5

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

The description implies the tool should be used when a tea-drinking record was made by mistake, but it does not explicitly compare with alternatives such as record or history, nor does it define exclusion conditions. Usage guidance relies on the parenthetical hint rather than a clear statement of when to choose this tool over others.

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. 11 tool updatesv0.1.0
    • First observedadd_tea
    • First observedclear_inventory
    • First observedcoldbrew_recommend
    • First observedhistory
    • First observedinventory
    • First observedrecommend
    • First observedrecord
    • First observedremove_tea
    • First observedreview
    • First observedset_brewer
    • First observedundo_record

TDQS

A4.1/5.0

Scored across 11 tools

Disambiguation5/5

Each tool targets a distinct action or resource: logging, undo, inventory, history, hot recommendation, cold recommendation, add/remove/clear inventory, brewer settings, and feedback tuning. Even the closely related record and review tools are clearly separated by purpose—one logs a drink event, the other records feedback and adjusts brewing parameters.

Naming Consistency4/5

Most tools follow a clear lower_snake_case verb pattern like add_tea, remove_tea, clear_inventory, and set_brewer. Minor deviations exist: inventory and history are noun-style commands rather than verb_noun, and undo_record is a prefixed form, but the overall naming remains readable and predictable.

Tool Count5/5

With 11 tools, the server is well-scoped for a personal tea planning application. Each tool covers a distinct workflow from inventory management and drinking logs to hot/cold recommendations and brew parameter tuning, with no obvious redundancy.

Completeness4/5

The tool surface covers the core lifecycle: add/remove/clear/list inventory, log/undo/history drinking, recommend hot and cold brews, adjust brewer capacity, and record tasting feedback. A minor gap is the lack of a direct tea parameter editing tool, though re-adding teas and review-based tuning mitigate this.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers