tea-planner
ðµ ä»å€©åä»ä¹è¶ · tea-planner MCP
æ ç±æäžç¢ïŒå¯äžç±è¶äººã ââ çœå± æ
äŒå¯¹æ äººææ åœïŒäžå°æ°ç«è¯æ°è¶ãè¯é è¶å¹Žåã ââ è蜌
äºæ æ¯è¿æ ·çïŒå®¶éè¶è¶æ¥è¶å€ïŒå€å°æ¯æ¬¡æåŒæåèŠååäºåéïŒæåæ¿çè¿æ¯çŠ»ææè¿çé£äžçãè¶å¶å朮æªèªå·±ïŒéæ©å°éŸä¹æªèªå·±ïŒäžåŠè®©çšåºèé ã
äºæ¯æäºè¿äžªæåš Cherry Studio äžç MCPââãä»å€©åä»ä¹ããå 眮 107 欟è¶çå£¶æ³¡åæ°ïŒç»¿è¶ãä¹éŸãé»è¶ã红è¶ãçœè¶ãé»è¶ãè±è¶ïŒè¿æäžå è¯Žäžæž 该åœåªç±»çæªäžè¥¿ïŒïŒæ¯å€©æ¿äœ æäžææçç±ç硬åžïŒæå£èãæ¶æ®µãæè¿å没åè¿ãåºå积ç°çšåºŠå ææœçŸãå€å€©ä¹èœæœäžçæ®ïŒåªæ¯æŠçäœïŒæ·±å€ä¹äžäŒåªå¡ç»äœ 代çšè¶ââè§åæ¯èœ¯çïŒæ²¡æåªæ¬Ÿè¶è¢«å€æ»åã
æä»ä¹å·¥å ·ïŒ11 䞪ïŒ
å·¥å · | äœ è¯Žçè¯ |
| ä»å€©åä»ä¹ïŒ |
| ä»å€©å·æ³¡ä»ä¹ïŒ |
| æä¹°äºéŸäºãéè§é³ãæ£å±±å°ç§ïŒæ¯ææ¹éïŒ |
| æåå äºç¢§èºæ¥ |
| ææ¬å°äºå€å°ïŒäžé®æž 空ïŒå«ç»§æ¿äœè çè¶æïŒ |
| æçè¶å£¶æ¯ 300ml / å·æ³¡å£¶æ¢æ 2L |
| å€ªæ·¡äº / æç¹èŠ / 仿°é / æŽè¶å€ªè¿ / é·å³ / æ³¡é žäº / éŠå³æ²¡äº |
| æåäºXX / è®°éäºæ€å / æè¿åè¿å¥ |
Related MCP server: mcp_hydration
éšçœ²ïŒCherry StudioïŒäž€åéïŒ
éèŠ uvïŒèªåžŠ uvxïŒïŒ
uvx tea-chay-advisorCherry Studio â 讟眮 â MCP æå¡åš â å¯Œå ¥è¿æ®µ JSONïŒ
{
"mcpServers": {
"tea-planner": {
"command": "uvx",
"args": ["tea-chay-advisor"],
"env": {}
}
}
}æåŒåŒå
³ïŒå·¥å
·å衚åºç° 11 䞪工å
·å³æåãuvx äŒèªåšä» PyPI æå tea-chay-advisorïŒäžçšåæåšè£
Python äŸèµïŒä¹äžç𿹿¬å°è·¯åŸã
ç¶ååšçžåºäœçœ®éšçœ²SKILL.md
åŒç®±äžæ¥
æ¬å®¶ïŒãææ¬å°äºå€å°ãâ æäœè ç 107 æ¬Ÿè¶æž 空ïŒç¡®è®€äž€æ¬¡æåšæïŒäžè¯¯äŒ€ïŒ
è¿èާïŒãæä¹°äºéŸäºã倧红è¢ãèçœè¶ãâ æ¹éå ¥åºïŒåæ°èªåšæç±»å«å¥å¥œ
åŒåïŒãä»å€©åä»ä¹ïŒãâ å©äžçäºçšåºæ¿äœ çº ç»
å ³äºæ³¡æ³ïŒåšæåå çè¿æ¡ïŒ
è¿äžæ¯åå€«è¶æ³¡æ³ã 没æçç¢ã没æå¿«åºæ±€ã没æ"äžæ³¡éŠäºæ³¡æ°Žäžæ³¡è¶"ãäœè èªçšçæ¯ 400ml 倧è¶å£¶ + 1.6L å·æ³¡å£¶ãTDS20 çº¯åæ°ŽïŒäžæ¬¡æ³šæ»¡ã泡åäºåéãäžæ¬¡æ§åºæ±€ãè¶æ°Žå犻ïŒè·¯æ°æ¥è¿è¶å¶å®¡è¯åè±åŒè¶å£¶ãæææè¶éãæ°Žæž©ãæ¶éŽéœæè¿äžªåºæ¯æ ¡åã
è¶å ·äžäžæ ·ïŒè¯Žäžå¥ãæçè¶å£¶æ¯ 500mlãïŒæè¶éèªåšæè¶æ°Žæ¯çŒ©æŸïŒæ°Žæž©æ¶éŽäžåšãå·æ³¡åçã
å€çïŒè®©è¶è¶åè¶å¯¹å³
çè®ºåæ°åªæ¯èµ·ç¹ïŒåå®¶æ¹æ¬¡ãä»åšå¹Žä»œéœäŒè®©è¶å犻诎æä¹ŠãååŸäžå¯¹å³å°±è¯ŽïŒ
倪淡 / å€ªæµ / æ¶© â èªåšåŸ®è°æè¶ãæ¶éŽãæ°Žæž©
仿°é / æŽè¶å€ªè¿ â è°æŽè¶æ¡£äœïŒçæ®é»è®€ïŒå¿«æŽ1次+æ ¢æŽ1次+æ£å³2åéïŒçæ®/å å ¡/蟹éç ïŒå¿«æŽ2次+æ ¢æŽ1次+æ£å³2åé+å¿«æŽ1次ïŒ
é·å³ / éŠæ°æ£ â ççè¿æ¯åŒç
æ³¡é žäº / éŠå³æ²¡äº â æ°Žæž©é 3â
è°è¿å€Žäºè¯Žãé眮XXãïŒäžé®åå°ç论åŒ
æææ°æ®éœååšèæ¬æèŸ¹ç 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 |
| What should I drink today? |
| What should I cold-brew today? |
| I bought Longjing, Tieguanyin, Lapsang Souchong (batch supported) |
| I finished the Biluochun |
| I moved to another city (one-click wipe â don't inherit the author's tea cabinet) |
| My teapot is 300ml / my cold-brew pitcher is now 2L |
| Too weak / too bitter / warehouse musty / over-rinsed / stewed / turned sour / aroma gone |
| I drank X / undo that / what have I been drinking |
Deploy (Cherry Studio, two minutes)
Requires uv (which provides uvx):
uvx tea-chay-advisorCherry 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
Move in: say "I moved to another city" â wipes the author's 107 teas (double confirmation, no accidents)
Stock up: "I bought Longjing, Dahongpao, aged white tea" â batch import, parameters auto-assigned by category
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ç®ïŒ
éå · | 貎æ¹ãèšè |
| 仿¥ãäœã²é£®ã ïŒ |
| 仿¥ãäœã²æ°Žåºã·ã¹ã«ïŒ |
| éŸäºè¶ãéµè§é³ãæ£å±±å°çš®ã²è²·ãã¿ïŒäžæ¬ç»é²å°æïŒ |
| ç¢§èºæ¥ã²é£®ãåãã¿ |
| åŒãè¶ã·ã¿ïŒäžåæäœãå šæ¶å»ââäœè ãè¶æ«ã²åŒã繌ã¬ãã€ïŒ |
| æ¥é ã300ml / æ°Žåºã·å®¹åšã²2Lãè®ãã¿ |
| èã¹ã®ã« / èŠã€ / å庫è / æŽè¶ã·ã¹ã® / èžã¬å³ / é žããã¯ããã¿ / éŠãªã¬é£ã³ã |
| ããã²é£®ã³ã / èšéã²æ€å / æè¿äœã²é£®ã³ãïŒ |
é åïŒCherry Studioã2åïŒ
uvïŒuvxã²å«ã ïŒã¬å¿ èŠïŒ
uvx tea-chay-advisorCherry 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æé
åŒãè¶ã¹ïŒãåŒãè¶ã·ã¿ããèšãŠ â äœè ã107çš®é¡ã埡è¶ã²æ¶å»ïŒèª€æäœé²æ¢ãç²2å確èªïŒ
ä»å ¥ã¬ã«ïŒãéŸäºè¶ãå€§çŽ è¢ãçæçœè¶ã²è²·ãã¿ã â äžæ¬ç»é²ãæ¢ä»¶ãåé¡å¥ãèªåèšå®
飮ã ïŒã仿¥ãäœã²é£®ã ïŒã â åŸãèšç«ã¬æ±ã³ãåã¬ã«
æ·¹ã¬æ¹ãå°±ã€ãïŒæ³šã°åãè®ã äºïŒ
ã³ã¬ã工倫è¶åŒããæãªãã»ã³ã èç¢ã¢ãé«éæœåºã¢ããäžç ç®ãéŠãªãäºç ç®ãæ°Žãäžç ç®ãè¶ãã¢æãªãã»ã³ãäœè ã¬æ®æ®µäœ¿ããã°ã«ãã 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ã³ïŒ
ããŒã« | ã¢ãã¿ ã ã³ãã |
| ãã§ãŠ ã¯ ãã ããªã³ã¯ ã¹ã«ïŒ |
| ãã§ãŠ ã¯ ãã ã³ãŒã«ãããªã¥ãŒ ã¹ã«ïŒ |
| ãã³ãžã³ãããã«ã³ãã³ãã©ããµã³ã¹ãŒãã§ã³ ã²ãã ã·ã¿ïŒããã ãµããŒã ããïŒ |
| ããŒã«ãªãã¥ã³ ãã£ããã·ã¥ ã·ã¿ |
| ã ãŒã ã·ã¿ïŒã¯ã³ã¯ãªã㯠ã¯ã€ãââãªãŒãµãŒ ã ãã£ãŒãã£ãããã ã² ã€ã³ããªãã ã·ãã€ïŒ |
| ã〠ãã£ãŒããã ã 300ml / ã³ãŒã«ãããªã¥ãŒããã ã² 2L ã ãã§ã³ãž ã·ã¿ |
| ãŠã£ãŒã¯ã¹ã®ã« / ãã¿ãŒ / ãŠã§ã¢ããŠã¹ã ã¹ã㣠/ ãªã³ã¹ ã·ã¹ã® / ã¹ãã¥ãŒã / ãµã¯ãŒ ã ããã¿ / ã¢ãã 㬠ãŽãŒã³ |
| ãã ããªã³ã¯ ã·ã¿ / ã¬ã³ãŒã ã¢ã³ã㥠/ ã¬ã»ã³ããªãŒ ãã ããªã³ã¯ ã·ã¿ïŒ |
ãããã€ïŒCherry Studioã2ããããïŒ
uvïŒuvx 㢠ã¢ã«ïŒã¬ ã€ã«ïŒ
uvx tea-chay-advisorCherry 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ã¹ããã
ã ãŒãã€ã³ïŒãã ãŒã ã·ã¿ãã ã€ãšã â ãªãŒãµãŒ ã 107ã¿ã€ã ã ãã£ãŒ ãŒã³ã ã¯ã€ãïŒãã¹ãã€ã¯ ãã»ã° ã¿ã¡ ã 2ã«ã€ ã³ã³ãã¡ãŒã ïŒ
ã¹ããã¯ïŒããã³ãžã³ãããŒãã³ããªããšã€ãžããã¯ã€ããã£ãŒ ã²ãã ã·ã¿ã â ããã ã€ã³ããŒãããã©ã¡ãŒã¿ 㯠ã«ããŽãªãŒ ãã ã ãªãŒã ã»ãã
ããªã³ã¯ïŒããã§ãŠ ã¯ ãã ããªã³ã¯ ã¹ã«ïŒã â ã¢ã 㯠ããã°ã©ã 㬠ã¯ãªãŒ ã·ã ã¯ã¬ã«
ããªã¥ãŒã€ã³ã° ã ãã€ãïŒã㢠ã¹ã« ããš ã ãªãŒã ã·ãïŒ
ã³ã¬ 㯠ãŽã³ããŒã¹ã¿ã€ã« ãžã£ ãã€ã ã¬ã€ã¯ã³ ã¢ããã©ãã·ã¥ã€ã³ãã¥ãŒãžã§ã³ ã¢ãããã¡ãŒã¹ã ã€ã³ãã¥ãŒãžã§ã³ 㯠ã¢ãããã»ã«ã³ã 㯠ãŠã©ãŒã¿ãŒããµãŒã 㯠ãã¬ãŒããŒã㢠ãã€ããªãŒãµãŒ 㬠ãŠãŒãº ã·ãã« ã 㯠400ml ã ããã° ãã£ãŒããã + 1.6L ã ã³ãŒã«ãããªã¥ãŒããããTDS20 ã ãã¥ã¢ãŠã©ãŒã¿ãŒãã¯ã³ã¿ã€ã ã ãã£ã« ã·ãã4ã5ãããã ã¹ãã£ãŒã ã·ããã¯ã³ãŽãŒ ã ãã¢ã¢ãŠã ã·ã ãã£ãŒãªãŒã ã ãªã«ãŒ ã² ã»ãã¬ãŒã ã¹ã«ââãã£ãŒ ãã¥ããã³ã° 〠ããªãã£ãã·ã¥ ãã£ãŒããã ã ã¯ããŒã¹ ã ã¢ãããŒããã¹ãã ã ãªãŒããªã§ãŠããã³ãã©ãã£ãŒãã¿ã€ã 㯠ã³ã ã»ããã¢ãã ã ãã£ãªãã¬ãŒã·ã§ã³ ãµã¬ãã«ã
ã®ã¢ 㬠ãã£ãã¡ã¬ã³ãïŒãã〠ãã£ãŒããã ã 500mlãã ã€ãšãããªãŒããªã§ãŠ ã¬ ãã£ãŒãŠã©ãŒã¿ãŒã¬ã·ãª ã ãªãŠãžã ãªãŒã ã ã¹ã±ãŒã« ãµã¬ã«ããã³ãã©ãã£ãŒ ã ã¿ã€ã 㯠ãã§ã³ãž ã·ãã€ãã³ãŒã«ãããªã¥ãŒ 㢠ã»ã€ã ã
ã¬ãã¥ãŒïŒãã£ãŒ ã² ãŠã¢ ãã€ã¹ã ã ã°ã㌠ãµã»ã«
ã»ãªãªãŒ ã ãã©ã¡ãŒã¿ 㯠ã¿ã ã ã¹ã¿ãŒããã€ã³ãããã³ã㌠ã ãããããŠã§ã¢ããŠã¹ ã€ã€ãŒãã¹ãã¬ãŒãž ã³ã³ãã£ã·ã§ã³ ã ãšããããã£ãŒ 㯠ã¹ããã¯ã·ãŒã ã«ã© ãããšãŒã ã·ã ã€ã¯ããã€ã¹ã 㬠ãã³ ãã ãã£ãŒã« ã·ã¿ã©ããœããã ã»ã€ ã·ã ã€ã€ïŒ
ãŠã£ãŒã¯ã¹ã®ã« / ã¹ããã³ã°ã¹ã®ã« / ã¢ã¹ããªã³ãžã§ã³ã â ãªãŒããªã§ãŠã»ã¿ã€ã ã»ãã³ãã©ãã£ãŒ ã² ãªãŒã ãã¡ã€ã³ãã¥ãŒã³
ãŠã§ã¢ããŠã¹ã ã¹ã㣠/ ãªã³ã¹ ã·ã¹ã® â ãªã³ã¹ ã«ãŒãã³ ã² ã¢ãžã£ã¹ãïŒãã ããŒã¢ã« ããã©ã«ãïŒã¯ã€ã㯠ãªã³ã¹ 1ã«ã€ + ã¹ã㌠ãªã³ã¹ 1ã«ã€ + 2ãããã ãšã¢ãªã³ã°ãã©ã€ã ããŒã¢ã« / ãªã¥ãŠã㪠/ ããŒããŒããªãã¯ïŒã¯ã€ã㯠2ã«ã€ + ã¹ã㌠1ã«ã€ + 2ãããã ãšã¢ãªã³ã° + ã¯ã€ã㯠1ã«ã€ïŒ
ã¹ãã¥ãŒã / ã¢ãã ãã§ãŒãã£ã³ã° â ãªãã ãªã³ ã« ãªãã ãªã ã«
ãµã¯ãŒ ã ããã¿ / ã¢ãã ãŽãŒã³ â ãã³ãã©ãã£ãŒ ã² 3â ããŠã³
ãªãŒããŒãã¥ãŒã³ ã·ã¿ã©ããã ãªã»ãããã ã€ãšããã¯ã³ã¯ãªã㯠ã ã»ãªãªãŒ ã ããã¯
ããŒã¿ 㯠ãŒã³ã ã¹ã¯ãªãã ã ãã㪠ã state.json ã ã»ãŒã ãµã¬ãã«ãã³ã ãã¡ã€ã« ãã± ããã¯ã¢ãã ã¹ã¬ãããŠã¢ ãã€ã¹ã ããªãã¡ã¬ã³ã¹ 㢠ã€ãã·ã§ ã ã ãŒã ããã«ã
ããžããµã³ã³ãŠ ã ã·ã ãã ãã£ãŒ 㯠ãŠã¢ ãã£ãŒãããŠã¹ 㯠ãŠã¢ ããŠã¹ããã©ã¡ãŒã¿ 㯠ã»ãªãªãŒããªã€ã·ãµ ã³ãœ 㬠ãžã£ã¹ãã£ã¹ãããã°ã©ã 㯠ãã£ãŒ ã² ããªã¥ãŒ ãããã€ãã¿ã ãœã³ãœã³ ãªãŒãºããã« ã ã³ã€ã³ ã² ãã¹ ã·ãã« ãã±ããšã
ðµ ì€ëì ë ë§ì€ê¹ · tea-planner MCP
ìŽì (çç±) ììŽ í ì¬ë°ì ë€ìŽ, ì°š(è¶)륌 ì¬ëíë ìŽìê² ë¶ì¹ë žëŒ. â 백거ìŽ(çœå± æ)
ê³ ìž(æ 人)곌 ê³ êµ(æ å) ìê°ì ê·žë§ëê³ , ì ë¶ë¡ ì ì°š(è¶)륌 ìí(詊é©)íëŒ. ì(è©©)ì ì , ì²ì¶(鿥)ìŽ ë°ë¡ ì§êžìŽë€. â ìì(è軟)
ì¬ì (äºæ )ì ìŽë ìµëë€: ì§ì ì°š(è¶)ê° ì ì (挞挞) ë§ìì žì, ì°¬ì¥(饿¬)ì ìŽ ëë§ë€ 5ë¶(äºåé) ëì ë©íë ìë€ê°, ê²°êµ(çµå±) ì(æ)ì ê°ì¥ ê°ê¹ìŽ í íµ(æ¡¶)ì ì§ê² ë©ëë€. ì°š(è¶)ê° ìµêž°(æ¿æ°£)륌 ëš¹ë 걎 ì í, ì í(éžæ) ì¥ì (éç€)ë ì íìŽë, íë¡ê·žëš(program)ìŽ ë€ì§ìŽì°ê² ë§ë ê²ëë€.
ê·žëì Cherry Studio ìì ì¹ì ìŽ MCP(ì ìíŒ) â âì€ëì ë ë§ì€ê¹â. 107ê°ì§ ì°š(è¶)ì íží¬(壺泡) ë§€ê°ë³ì(åªä»è®æž)륌 ëŽì¥(å §è)íê³ ììµëë€ (ë ¹ì°š(ç¶ è¶), ì°ë¡±ì°š(çéŸè¶), íì°š(é»è¶), íì°š(çŽ è¶), 백찚(çœè¶), í©ì°š(é»è¶), íì°š(è±è¶), ê·žëŠ¬ê³ ìŽëì ë£ìŽìŒ í ì§ ì ë§€í ꎎìí ê²ë€ê¹ì§). ë§€ìŒ(æ¯æ¥) ì¬ë¬ë¶ ëì ìŽì (çç±) ìë ëì (é é¢) ì ëì žì€ëë€: ê³ì (å£ç¯), ìê°ë(æéåž¶), ìµê·Œ(æè¿)ì ë§ì šëì§ ì¬ë¶(èåŠ), ì¬ê³ (åšåº«)ê° ëšŒì§ë¥Œ ë€ì§ìŽìŽ ì ë(çšåºŠ)륌 ê°ì€(å é)íŽ ì¶ì²š(æœç±€)í©ëë€. ì¬ëŠìë ì볎(çæ®)ê° ëœí ì ìì§ë§, íë¥ (確ç)ìŽ ë®ì ë¿ì ëë€. ëŠì ë°€ìë ëì©ì°š(代çšè¶)ë§ ë ìêž°ì§ ììµëë€. ê·ì¹(èŠå)ì ë¶ëëœê³ , ìŽë€ ì°š(è¶)ë ì¬í(æ»å) ì ê³ (宣å)륌 ë°ì§ ììµëë€.
ë구(éå ·) 11ê°
ë구(éå ·) | ìŽë ê² ë§íìžì |
| ì€ë ë ë§ì€ê¹ì? |
| ì€ë ëí¬(å·æ³¡) ë í ê¹ì? |
| ì©ì (éŸäº), ì² êŽì(éµè§é³), ì ì°ìì¢ (æ£å±±å°çš®) ììŽì (ìŒêŽ(äžæ¬) ì§ì(æ¯æŽ)) |
| 벜ëŒì¶(ç¢§èºæ¥) ë€ ë§ì šìŽì |
| ìžì§(å€å°)ë¡ ìŽì¬(ç§»åŸ)íìŽì (í ë²ì ë¹ì°êž° â ìê°(äœå®¶)ì ì°š(è¶) ì°¬ì¥(饿¬)ì ë¬Œë €ë°ì§ ë§ìžì) |
| ì ë€êŽ(è¶çœ)ì 300mlìì / ëí¬(å·æ³¡) 죌ì ì륌 2Lë¡ ë°ê¿šìŽì |
| ë묎 ì°íŽì / ì¢ ìšì / ì°œê³ (å庫) ëìê° ëì / ìžì°š(æŽè¶)ê° ê³ŒíŽì / 믌믞(æ¶å³)ê° ëì / ììŽì¡ìŽì / í¥(éŠ)ìŽ ììŽì¡ìŽì |
| XX ë§ì šìŽì / ì못 êž°ë¡(èšé)íìŒë ëë늬Ʞ / ìµê·Œ(æè¿)ì ë ë§ì šì£ |
ë°°í¬(éšçœ²) (Cherry Studio, 2ë¶(å))
uv(uvx í¬íš(å å«)) íì(å¿ èŠ):
uvx tea-chay-advisorCherry Studio â ì€ì (èšå®) â MCP ìë²(server) â ìŽ JSON(ì ìŽìš) ê°ì žì€êž°:
{
"mcpServers": {
"tea-planner": {
"command": "uvx",
"args": ["tea-chay-advisor"],
"env": {}
}
}
}ì€ìì¹ë¥Œ ìŒê³ ë구(éå
·) 목ë¡(ç®é)ì 11ê° ë구(éå
·)ê° ëíë멎 ì±ê³µ(æå)ì
ëë€. uvxê° PyPIìì tea-chay-advisor륌 ìë(èªå)ìŒë¡ ê°ì žì€ë¯ë¡, ìë(æå) pip ì€ì¹(èšçœ®)ë ë¡ì»¬ 겜ë¡(ç¶è·¯) ì€ì (èšå®)ë íì(å¿
èŠ) ììµëë€.
ê·žë° ë€ì íŽë¹(該ç¶) ìì¹(äœçœ®)ì SKILL.md륌 ë°°í¬(éšçœ²)íìžì.
ê°ëŽ(éå°) 3ëšê³(äžæ®µé)
ìŽì¬(ç§»åŸ): âìžì§(å€å°)ë¡ ìŽì¬(ç§»åŸ)íìŽìâ â ìê°(äœå®¶)ì 107ê°ì§ ì°š(è¶)륌 ë¹ìëë€ (ë ë² íìž(確èª) í ì€í(寊è¡), ì€ì(倱æ) ë°©ì§(鲿¢))
ì ê³ (å ¥åº«): âì©ì (éŸäº), ëíí¬(å€§çŽ è¢), ë žë°±ì°š(èçœè¶) ììŽìâ â ìŒêŽ(äžæ¬) ì ê³ (å ¥åº«), ë§€ê°ë³ì(åªä»è®æž)ë ìë(èªå)ìŒë¡ ë¶ë¥(åé¡)ì ë°ëŒ ì€ì (èšå®)ë©ëë€
ìì(詊飮): âì€ë ë ë§ì€ê¹ì?â â ëëšžì§ë íë¡ê·žëš(program)ìŽ ëì (代身) ê³ ë¯Œ(èŠæ¶)í©ëë€
í¬ë²(泡æ³)ì êŽíŽ (ë°ë¥Žêž° ì ì 뚌ì ìœìŒìžì)
ìŽê²ì ê³µížì°š(工倫è¶) í¬ë²(泡æ³)ìŽ ìëëë€. ê°ì(èç¢)ë ìê³ , ë¹ ë¥ž ì¶í(åºæ¹¯)ë ìê³ , â첫 ì°ëЬ í¥(éŠ), ëì§ž 묌, ì ì§ž ì°š(è¶)âë ììµëë€. ì ì(èè )ê° ì°ë ê²ì 400ml ëí(倧å) ë€êŽ(è¶çœ) + 1.6L ëí¬(å·æ³¡) 죌ì ì, TDS20 ì ì ì(淚補氎) ì ëë€. í ë² ê°ë ë¶ê³ , 4~5ë¶(å) ì°ëŠ¬ê³ , í ë²ì ì ë¶ ì¶í(åºæ¹¯)íê³ , ì°š(è¶)ì 묌ì ë¶ëЬ(åé¢)í©ëë€. ì°š(è¶) ì¬ì¬(審æ»)ë ìêµì(è±ååŒ) í°í¬íž(teapot)ì ê°ê¹ìµëë€. 몚ë í¬ì°šë(æè¶é), ììš(氎溫), ìê°(æé)ì ìŽ ìë늬ì€(scenario)ì ë§ì¶° 볎ì (è£æ£)ëìŽ ììµëë€.
ì°š ë구(éå ·)ê° ë€ë¥Žë©Ž? "ëŽ ë€êŽ(è¶çœ)ì 500mlìì"ëŒê³ ë§í멎 í¬ì°šë(æè¶é)ìŽ ìë(èªå)ìŒë¡ ì°šì(è¶æ°Ž) ë¹ìš(æ¯ç)ì ë°ëŒ ì¡°ì (調æŽ)ë©ëë€. ììš(氎溫)곌 ìê°(æé)ì ê·žëë¡ì ëë€. ëí¬(å·æ³¡)ë ëìŒ(åäž)í©ëë€.
복Ʞ(埩ç¢): ì°š(è¶)륌 ë§ì€ìë¡ ì ë§ì ë§ê²
ìŽë¡ ì (çè«ç) ë§€ê°ë³ì(åªä»è®æž)ë ì¶ë°ì (åºçŒé»)ìŒ ë¿ì ëë€. ììž(å人) ë°°ì¹(batch), ì°œê³ (å庫) ì°ë(幎床), ì ì¥(貯è) ìí(çæ )ì ë°ëŒ ì°š(è¶)ê° ì€ëª ì(èªªææž)ìì ë²ìŽë©ëë€. ë§ìŽ ìŽìí멎 ë§íìžì:
ë묎 ì°íš / ë묎 ì§íš / ë«ì â í¬ì°šë(æè¶é), ìê°(æé), ììš(氎溫) ìë(èªå) ë¯žìž ì¡°ì (埮现 調æŽ)
ì°œê³ (å庫) ëì / ìžì°š(æŽè¶) 곌ë€(éå€) â ìžì°š(æŽè¶) ëšê³(段é) ì¡°ì (調æŽ) (ìíž(çæ®) Ʞ볞(åºæ¬): ë¹ ë¥ž ìžì°š 1í(äžå) + ë늰 ìžì°š 1í(äžå) + 2ë¶(å) ì°ë¯ž(æ£å³); ìíž(çæ®)/ì¡ë³Ž(å å ¡)/ë³ìì (éé·ç£): ë¹ ë¥ž 2í(äºå) + ë늰 1í(äžå) + 2ë¶(å) ì°ë¯ž(æ£å³) + ë¹ ë¥ž 1í(äžå))
믌믞(æ¶å³) / í¥(éŠ)ìŽ í©ìŽì§ â ëê»ì ë®ê±°ë ì¶
ììŽì§ / í¥(éŠ)ìŽ ì¬ëŒì§ â ììš(氎溫) 3â íëœ(äžèœ)
곌íê² ì¡°ì (調æŽ)íìŒë©Ž "XX 늬ì "ìŽëŒê³ ë§íìžì â ìŽë¡ ê°(çè«ê°)ìŒë¡ ë³µê·(埩æž)
몚ë ë°ìŽí°(è³æ)ë ì€í¬ëŠœíž ì state.jsonì ì ì¥(貯è)ë©ëë€. ìŽ íìŒ(æä»¶) íëë§ ë°±ì
(backup)í멎 ì
ë§ìŽ ìŽì¬(ç§»åŸ)íŽë ë°ëŒê°ëë€.
ì°žê³ (åè)ë§ íìžì. ì°š(è¶)ë ë¹ì ì ì°š(è¶), ì ì ë¹ì ì ì , ë§€ê°ë³ì(åªä»è®æž)ë ìŽë¡ ì (çè«ç)ìŽê³ , ë§ììŽìŒ ì§ì§ì ëë€. íë¡ê·žëš(program)ì ì°š(è¶)륌 ì°ëŠ¬ì§ ëª»í©ëë€. ê·žì ì ë² ì¬ëЬ(äºç) ìë ëì (é é¢) íë륌 ëì§ ë¿ì ëë€.
ðµ HÃŽm nay uá»ng gì · tea-planner MCP
æ ç±æäžç¢ïŒå¯äžç±è¶äººã (KhÃŽng cá» gì mà nâng chén trà ïŒè¶ïŒ, xin gá»i tặng ngưá»i yêu trà ïŒè¶ïŒ.) ââ Bạch Cư Dá»ïŒçœå± æïŒ
äŒå¯¹æ äººææ åœïŒäžå°æ°ç«è¯æ°è¶ãè¯é è¶å¹Žåã (Äừng Äá»i diá»n cá» nhânïŒæ äººïŒ mà nhá» cá» quá»cïŒæ åïŒ, hãy nhóm lá»a má»i pha thá» trà ïŒè¶ïŒ má»i. ThÆ¡ïŒè©©ïŒ và rượu, ká»p lúc tuá»i xuânïŒæ¥ïŒ.) ââ TÃŽ ThứcïŒè軟ïŒ
Chuyá»n là thế nà y: trà trong nhà ngà y cà ng nhiá»u, nhiá»u Äến mức má»i lần má» tá»§ là ngẩn ngưá»i nÄm phút, cuá»i cùng vẫn lấy há»p gần tay nhất. Trà bỠẩm thì trách mình, khó chá»n cÅ©ng trách mình, chi bằng Äá» chương trìnhïŒç« çšïŒ gánh tá»i.
Thế là có MCP nà y treo trên Cherry Studio ââ ãHÃŽm nay uá»ng gìã. TÃch hợpïŒéåïŒ sẵn tham sá»ïŒåæžïŒ pha trà ïŒè¶ïŒ cho 107 loại trà ïŒtrà xanhïŒç¶ è¶ïŒ, ÃŽ longïŒçéŸïŒ, hắc trà ïŒé»è¶ïŒ, há»ng trà ïŒçŽ è¶ïŒ, bạch trà ïŒçœè¶ïŒ, hoà ng trà ïŒé»è¶ïŒ, hoa trà ïŒè±è¶ïŒ, cùng má»t Äá»ng thứ kỳ quái khó phân loạiïŒåé¡ïŒ), má»i ngà y thay bạn tung má»t Äá»ng xu có lÜ doïŒçç±ïŒ: theo mùa, thá»i Äiá»mïŒæé»ïŒ trong ngà y, gần Äây có uá»ng hay khÃŽng, mức Äá» bám bụi tá»n khoïŒååº«ïŒ mà gia quyá»nïŒå æ¬ïŒ rút thÄm. Mùa hÚ vẫn có thá» trúng Phá» NhÄ© thụcïŒæ®æŽ±çïŒ, chá» là xác suấtïŒç¢ºçïŒ thấp; Äêm khuya cÅ©ng khÃŽng nhét cho bạn toà n trà thay thếïŒè¶ä»£æ¿ïŒ ââ quy tắcïŒèŠåïŒ má»m, khÃŽng có loại trà nà o bá» kết án tá» hìnhïŒæ»åïŒ.
Có những cÃŽng cụïŒå·¥å ·ïŒ gì (11 cái)
CÃŽng cụïŒå·¥å ·ïŒ | Bạn nói gì |
| HÃŽm nay uá»ng gì? |
| HÎm nay pha lạnh gì? |
| TÃŽi mua Long Tá»nhïŒéŸäºïŒ, Thiết Quan ÃmïŒéµè§é³ïŒ, ChÃnh SÆ¡n Tiá»u Chá»§ngïŒæ£å±±å°çš®ïŒ (há» trợïŒäºå©ïŒ nháºp hà ng loạtïŒè¡çïŒ) |
| TÃŽi uá»ng hết BÃch La XuânïŒç¢§èºæ¥ïŒ rá»i |
| TÃŽi chuyá»n nhà Äến nÆ¡i khác (má»t nút xóa sạch, Äừng kế thừaïŒç¹Œæ¿ïŒ tá»§ trà cá»§a tác giảïŒäœè ïŒ) |
| Ẁm trà cá»§a tÃŽi là 300ml / bình pha lạnh Äá»i thà nh 2L |
| Quá nhạt / hÆ¡i Äắng / mùi kho nặng / rá»a trà quá tay / mùi hầm / bá» chua / mất hươngïŒéŠïŒ |
| TÃŽi uá»ng XX / Ghi nhầm thì thu há»iïŒæ¶åïŒ / Gần Äây Äã uá»ng gì |
Triá»n khaiïŒå±éïŒ (Cherry Studio, hai phút)
Cần uv (có sẵn uvx):
uvx tea-chay-advisorCherry Studio â Cà i Äặt â MCP Servers â Nháºp Äoạn JSON nà y:
{
"mcpServers": {
"tea-planner": {
"command": "uvx",
"args": ["tea-chay-advisor"],
"env": {}
}
}
}Báºt cÃŽng tắcïŒå·¥åïŒ, danh sáchïŒååïŒ cÃŽng cụïŒå·¥å
·ïŒ xuất hiá»nïŒåºçŸïŒ 11 cÃŽng cụïŒå·¥å
·ïŒ là thà nh cÃŽngïŒæåïŒ. uvx tá»± Äá»ngïŒèªåïŒ lấy tea-chay-advisor từ PyPI, nên khÃŽng cần cà i pip thá»§ cÃŽngïŒæåïŒ cÅ©ng khÃŽng cần sá»a ÄÆ°á»ng dẫnïŒè·¯åŒïŒ cục bá».
KhÃŽng muá»n dùng uv? Thả SKILL.md và o thư mụcïŒæžç®ïŒ Skills cá»§a Cherry Studio Äá» dùng bản fallback chá» chạy prompt (khÃŽng lưu trạng tháiïŒçæ
ïŒ, nhưng dùng ÄÆ°á»£c ngay).
Ba bưá»c sau khi cà i
Chuyá»n nhà : ãTÃŽi chuyá»n nhà Äến nÆ¡i khácãâ xóa sạch 107 loại trà cá»§a tác giảïŒäœè ïŒ (xác nháºnïŒç¢ºèªïŒ hai lần má»i thá»±c hiá»nïŒå¯ŠçŸïŒ, khÃŽng xóa nhầm)
Nháºp hà ngïŒå ¥è¡ïŒ: ãTÃŽi mua Long Tá»nhïŒéŸäºïŒ, Äại Há»ng Bà oïŒå€§çŽ è¢ïŒ, lão bạch trà ïŒèçœè¶ïŒãâ nháºp khoïŒå ¥åº«ïŒ hà ng loạt, tham sá»ïŒåæžïŒ tá»± Äá»ngïŒèªåïŒ phân loạiïŒåé¡ïŒ theo chá»§ng loạiïŒçš®é¡ïŒ
Uá»ng trà ïŒè¶ïŒ: ãHÃŽm nay uá»ng gì?ãâ viá»c còn lại Äá» chương trìnhïŒç« çšïŒ thay bạn Äau Äầu
Vá» cách pha (Äá»c trưá»c khi rót)
Äây khÃŽng phải cách pha trà cÃŽng phuïŒå倫è¶ïŒ. KhÃŽng có gaiwanïŒèç¢ïŒ, khÃŽng có rót nhanh, khÃŽng có ânhất phao hương, nhá» phao thá»§y, tam phao trà ïŒäžæ³¡éŠäºæ³¡æ°Žäžæ³¡è¶ïŒâ. Tác giảïŒäœè ïŒ tá»± dùng ấm trà lá»n 400ml + bình pha lạnh 1.6L, nưá»c tinh khiếtïŒçŽæœïŒ TDS20, má»t lần rót Äầy, pha bá»n nÄm phút, rót ra má»t lần, tách trà ïŒè¶ïŒ khá»i nưá»c, lá»i pha gần vá»i Äánh giá cảm quan trà ïŒè¶è審è©ïŒ và ấm trà kiá»u Anh. Má»i lượng trà , nhiá»t Äá»ïŒæº«åºŠïŒ, thá»i gianïŒæéïŒ Äá»u ÄÆ°á»£c hiá»u chá»nhïŒæ ¡æ£ïŒ theo bá»i cảnhïŒèæ¯ïŒ nà y.
Dụng cụ trà ïŒè¶å ·ïŒ khác ư? Nói má»t câuãẀm trà cá»§a tÃŽi là 500mlã, lượng trà tá»± Äá»ngïŒèªåïŒ co giãn theo tá»· lá»ïŒæ¯äŸïŒ trà -nưá»c, nhiá»t Äá»ïŒæº«åºŠïŒ và thá»i gianïŒæéïŒ giữ nguyên. Pha lạnh cÅ©ng tương tá»±ïŒçžäŒŒïŒ.
Phục bà nïŒåŸ©ç€ïŒ: Äá» trà cà ng uá»ng cà ng hợp khẩu vá»ïŒå£å³ïŒ
Tham sá»ïŒåæžïŒ lÜ thuyếtïŒçè«ïŒ chá» là Äiá»m xuất phátïŒåºçŒé»ïŒ; lÃŽ hà ng cá»§a ngưá»i bán, nÄm tá»n khoïŒååº«ïŒ Äá»u khiến trà lá»ch khá»i sách hưá»ng dẫnïŒååŒïŒ. Uá»ng thấy khÃŽng hợp khẩu vá»ïŒå£å³ïŒ thì nói:
Quá nhạt / quá Äáºm / chát â tá»± Äá»ngïŒèªåïŒ vi chá»nhïŒåŸ®æŽïŒ lượng trà , thá»i gianïŒæéïŒ, nhiá»t Äá»ïŒæº«åºŠïŒ
Mùi kho nặng / rá»a trà quá tay â Äiá»u chá»nhïŒèª¿æŽïŒ cấp Äá» rá»a trà (Phá» NhÄ© sinhïŒæ®æŽ±çïŒ mặc Äá»nhïŒé»å®ïŒ: rá»a nhanh 1 lần + rá»a cháºm 1 lần + tản mùiïŒæ£å³ïŒ 2 phút; Phá» NhÄ© thụcïŒæ®æŽ±çïŒ/ Lục BảoïŒå å ¡ïŒ/ biên tiêu chuyênïŒéé·ç£ïŒ: rá»a nhanh 2 lần + rá»a cháºm 1 lần + tản mùiïŒæ£å³ïŒ 2 phút + rá»a nhanh 1 lần)
Mùi hầm / hương thÆ¡m tản â Äáºy nắp hay má» nắp
Bá» chua / mất hươngïŒéŠïŒ â nhiá»t Äá»ïŒæº«åºŠïŒ nưá»c giảm 3â
Chá»nh quá tay thì nóiãreset XXã, má»t nút quay vá» giá trá»ïŒå¹åŒïŒ lÜ thuyếtïŒçè«ïŒ.
Má»i dữ liá»uïŒè³æïŒ Äá»u ghi trong state.json cạnh script, sao lưuïŒåä»œïŒ má»t file nà y, khẩu vá»ïŒå£å³ïŒ có thá» theo bạn chuyá»n nhà .
Chá» Äá» tham khảoïŒåèïŒ. Trà là trà cá»§a bạn, miá»ng là miá»ng cá»§a bạn, tham sá»ïŒåæžïŒ là lÜ thuyếtïŒçè«ïŒ, uá»ng ngon má»i tÃnh. Chương trìnhïŒç« çšïŒ khÃŽng biết pha trà , nó chá» tung má»t Äá»ng xu khá biết lÜ lẜïŒçäŸïŒ.
ðµ 仿¥äœè¶é£² · tea-planner MCP
ç¡ç±æäžç¢ïŒå¯èæè¶äººãââçœå± æ
äŒå°æ äººææ åïŒäžå°æ°ç«è©Šæ°è¶ãè©©é è¶å¹Žè¯ãââè軟
æå®¶äžä¹è¶æ¥å¢ïŒä¹è³åæ«è«ç¶ïŒåç«åæïŒçµå廿æè¿è ãè¶å朮ïŒååšå·±ïŒæä¹é£ïŒå亊åšå·±ïŒäžåŠå§å ¶éæŒçšåºãéææ€ææŒ Cherry Studio ä¹ MCPïŒåæ°ã仿¥é£²äœè¶ããå §çœ®çŸæäžåè¶ä¹å£ºæ³¡åæžïŒç¶ è¶ãéè¶ãé»è¶ãçŽ è¶ãçœè¶ãé»è¶ãè±è¶ïŒåæé£æžäœé¡ä¹ç°åè¥å¹²ïŒïŒæ¯æ¥ä»£åæ²äžææä¹é¢ïŒä»¥å£ç¯ãæèŸ°ã鿥飲åŠã庫èç©å¡µä¹ä¹ æ«ïŒæ¬å ¶èŒéèæœç±€ãçå€äºŠæåŸçæ®ïŒç¹å ¶æ©åŸ®ïŒæ·±å€äºŠäžæä»¥ä»£çšè¶çžå¡ââæ³åºŠæè»ïŒç¡äžè¶éæ£ã
åšçšåäž
åš | åä¹æèš |
| 仿¥é£²äœè¶ïŒ |
| 仿¥å·æ³¡äœè¶ïŒ |
| åŸè³ŒéŸäºãéµè§é³ãæ£å±±å°çš®ïŒå¯äžŠåïŒ |
| åŸé£²ç¡ç¢§èºæ¥ |
| åŸé·å± ç°å°ïŒäžéµæž ç©ºïŒæ¯æ¿äœä¹è¶æ«ïŒ |
| åŸå£ºäžçŸæ¯«å / å·æ³¡å£ºæäºå |
| 倪淡 / åŸ®èŠ / åæ°£é / æŽè¶éç / æ¶å³ / æ³¡é ž / éŠæ°£ç¡ |
| åŸé£²æè¶ / èª€èšæ€å / è¿é£²äœè¶ |
éšçœ²æ³ïŒCherry StudioïŒé å»å¯æïŒ
é uvïŒå §å« uvxïŒïŒ
uvx tea-chay-advisorCherry Studio â èšçœ® â MCP æååš â å°å ¥æ€ JSONïŒ
{
"mcpServers": {
"tea-planner": {
"command": "uvx",
"args": ["tea-chay-advisor"],
"env": {}
}
}
}åå
¶ééïŒå·¥å
·å衚çŸåäžåšå³æåãuvx èª PyPI èªåå tea-chay-advisorïŒç¡é æå pipïŒäºŠç¡é é
çœ®æ¬æ©è·¯åŸã
埩æŒçžæèéšçœ² SKILL.mdãäžé¡çš uv è
ïŒäºŠå¯çœ® SKILL.md æŒ Cherry Studio ä¹ Skills ç®éïŒåŸä»¥æç€ºè©æ¬å
ïŒç¡æä¹
ä¹åïŒç¶éç®±å³çšïŒã
åçšäžæ¥
é·å± ïŒãåŸé·å± ç°å°ãâ æž 空äœä¹äžçŸäžåè¶ïŒå ©åºŠç¢ºèªä¹è¡ïŒäžèª€å·ïŒ
é²è²šïŒãåŸè³ŒéŸäºãå€§çŽ è¢ãèçœè¶ãâ ææ¹å ¥åº«ïŒåæžäŸé¡èªå®
é飲ïŒã仿¥é£²äœè¶ïŒãâ é€äºä»çšåºèºèº
è«æ³¡æ³ïŒæå£ºåå è§æ€ïŒ
æ€éå·¥å€«è¶æ³ä¹ã ç¡èç¢ïŒç¡çŸåºæ¹¯ïŒç¡ãäžæ³¡éŠäºæ³¡æ°Žäžæ³¡è¶ãä¹èªªãäœèªçš åçŸæ¯«å倧壺ãäžåå å·æ³¡å£ºãTDS äºåçŽæ°ŽïŒäžæ³šè滿ïŒç¹åäºåéïŒäžåŸèç¡ïŒè¶æ°Žåé¢ïŒå ¶è·¯æžè¿è¶è審è©èè±åŒè¶å£ºãæè¶ä¹éãæ°Žæº«ãæé·ïŒæææ€å¢æ ¡å®ã
è¶å ·æç°ïŒäœèšãåŸå£ºäºçŸæ¯«åãïŒæè¶éå³æè¶æ°Žæ¯å¢æïŒæ°Žæº«èæé·äžæ¹ãå·æ³¡äºŠç¶ã
埩ç€ïŒäœ¿è¶æé£²æåå£
çŽäžåæžïŒåŸçºèµ·é»ãåæ¶æ¹æ¬¡ãåå²å¹Žä»œïŒç足䜿è¶èé¢èç±ã飲ä¹äžåïŒäŸ¿çŽèšïŒ
倪淡 / å€ªæ¿ / æŸ â èªå埮調æè¶ãæé·ã氎溫
åæ°£é / æŽè¶éç â 調æŽè¶ä¹æªïŒçæ®é»èªïŒå¿«æŽäžæ¬¡+æ ¢æŽäžæ¬¡+æ£å³äºåéïŒçæ®/å å ¡/éé·ç£ïŒå¿«æŽäºæ¬¡+æ ¢æŽäžæ¬¡+æ£å³äºåé+å¿«æŽäžæ¬¡ïŒ
æ¶å³ / éŠæ°£æ£ â å èææéè
æ³¡é ž / éŠæ°£ç¡ â æ°Žæº«éäžåºŠ
調ä¹éçïŒèšãé眮æè¶ãïŒäžéµåŸ©æžçŽäžä¹åŒ
è«žæžæåžåæŒè
³æ¬æä¹ state.json äžïŒäœå仜æ€äžæä»¶ïŒå£å³äŸ¿å¯éšåé·åŸã
å äŸåé ã è¶ä¹åä¹è¶ïŒå£ä¹åä¹å£ïŒåæžä¹çŽäžä¹è«ïŒçæšæ¹çºæºãçšåºäžèœç¹èïŒææ²äžæçšè¿æ çä¹é¢è³ã
Available Tools
11 toolsadd_teaA
ãæä¹°äºXXãïŒæ°è¶å ¥åºãæ¯ææ¹éïŒãæä¹°äºéŸäºãéè§é³ãæ£å±±å°ç§ãäžæ¬¡å ¥åºå€æ¬Ÿã äžå 眮è¶å šåçžåçäŒæ¢å€ååæ°ïŒæ¬å®¶æž 空åå¯çšïŒïŒæ°è¶èªåšæç±»å«å¥é»è®€å£¶æ³¡åæ°ã åæ°: name: è¶åïŒå¿ å¡«ïŒãå€äžªè¶åå¯çšé¡¿å·/éå·/åå·/æ¢è¡åé category: å¯éç±»å«ïŒå¯æš¡ç³ïŒãæ®æŽ±ãäŒåœå°é»è¶ïŒïŒæ¹éå¯Œå ¥æ¶çšäºæ æ³ä»è¶åæšæçè¶ note: å¯é倿³šïŒåŠãæåãã2024幎ããæåéçã g/temp/minutes/rinse: å¯éèªå®ä¹å£¶æ³¡åæ°ïŒ400mläžæ³¡ïŒã0 æ -1 衚瀺çšç±»å«é»è®€ïŒæ¹éæš¡åŒäžæ¯ææŸåŒåæ°
| Name | Required | Description | Default |
|---|---|---|---|
| g | No | ||
| name | Yes | ||
| note | No | ||
| temp | No | ||
| rinse | No | ||
| minutes | No | ||
| category | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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 æçæ£æ§è¡ïŒé²è¯¯è§ŠïŒãéŠæ¬¡è°çšè¿åé¢è§ã
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | ||
| randomness | No | ||
| datetime_str | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
æ¥çæè¿åè¶è®°åœã
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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 å¯éïŒç»¿è¶/è°å³ç»¿è¶/è±è¶/çœè¶/é»è¶/ä¹éŸè¶/红è¶/è°å³çº¢è¶/é»è¶/代çšè¶ã
| Name | Required | Description | Default |
|---|---|---|---|
| category | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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: å¯éå奜è¯ïŒåŠ 'æ³åéŠç' / 'æž æ·¡' / 'æè' / 'æç¥' / 'å®ç¥'
| Name | Required | Description | Default |
|---|---|---|---|
| mood | No | ||
| count | No | ||
| randomness | No | ||
| datetime_str | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 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.
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.
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.
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.
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.
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ãïŒçšäºç²å³éæäžåºå蜮æ¢ãè¶å坿š¡ç³å¹é ã
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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ãæ¢å€ïŒïŒèªèŽè¶çŽæ¥å é€ãè¶åæš¡ç³å¹é ã
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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: å¯é倿³šïŒåŠ 'åå®¶è¿æ¹åæ·¡' / 'æŸä¹ äºä»æ°é'
| Name | Required | Description | Default |
|---|---|---|---|
| g | No | ||
| lid | No | ||
| mode | No | hot | |
| name | Yes | ||
| note | No | ||
| temp | No | ||
| hours | No | ||
| reset | No | ||
| minutes | No | ||
| prewash | No | ||
| feedback | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| reset | No | ||
| pot_ml | No | ||
| cold_ml | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
æ€éæè¿äžæ¡åè¶è®°åœïŒè®°éäºå¯æïŒã
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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. Dates show when Glama detected each change.
11 tool updates
v0.1.0- First observed
add_tea - First observed
clear_inventory - First observed
coldbrew_recommend - First observed
history - First observed
inventory - First observed
recommend - First observed
record - First observed
remove_tea - First observed
review - First observed
set_brewer - First observed
undo_record
TDQS
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.
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.
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.
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
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server exposing Kettle Logic insight articles & industry guidance as tools + resources.
An MCP server that automatically collects feedback on your MCP server.
MCP server for weather with reasoning â umbrella advice, outdoor checks, city comparisons.
Cloud-hosted MCP server for durable AI memory
Related MCP Servers
- AlicenseAqualityDmaintenanceAn MCP server that enables highly personalized music recommendations from TIDAL based on custom criteria, allowing users to create and manage playlists directly in their TIDAL account.7MIT
- FlicenseNot gradedqualityDmaintenanceMCP server for tracking water intake, enabling users to log and manage hydration data via natural language.-
- FlicenseAqualityBmaintenanceAn MCP server for ordering tea from Licas Tea, allowing AI to find stores, view menus, build orders, and estimate prices in conversation. Currently read-only: no real orders or payments.4-
- AlicenseAqualityCmaintenanceMCP server for managing houseplants by recording waterings and observations, providing care reminders and diagnosis through natural language.9MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/blyatman996/Tea-Chay-Advisor'
If you have feedback or need assistance with the MCP directory API, please join our Discord server