Tandoor Recipe MCP
Recipes, meal plans, shopping lists and more for your local or self-hosted Tandoor instance.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Parent/fan access to Artsonia student-art portfolios, comments, and fans (AI-built).
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ARTSONIA_USERNAME, ARTSONIA_PASSWORD, ARTSONIA_SESSION_CACHE, ARTSONIA_SESSION_FILE, ARTSONIA_OUTPUT_DIR, ARTSONIA_TRANSPORT, ARTSONIA_WS_PORT, ARTSONIA_INLINE_DOWNLOADSค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"artsonia": {
"command": "npx",
"args": [
"-y",
"artsonia-mcp"
],
"env": {
"ARTSONIA_USERNAME": "ใส่ค่าของคุณ",
"ARTSONIA_PASSWORD": "ใส่ค่าของคุณ",
"ARTSONIA_SESSION_CACHE": "ใส่ค่าของคุณ",
"ARTSONIA_SESSION_FILE": "ใส่ค่าของคุณ",
"ARTSONIA_OUTPUT_DIR": "ใส่ค่าของคุณ",
"ARTSONIA_TRANSPORT": "ใส่ค่าของคุณ",
"ARTSONIA_WS_PORT": "ใส่ค่าของคุณ",
"ARTSONIA_INLINE_DOWNLOADS": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add artsonia --env ARTSONIA_USERNAME='ใส่ค่าของคุณ' --env ARTSONIA_PASSWORD='ใส่ค่าของคุณ' --env ARTSONIA_SESSION_CACHE='ใส่ค่าของคุณ' --env ARTSONIA_SESSION_FILE='ใส่ค่าของคุณ' --env ARTSONIA_OUTPUT_DIR='ใส่ค่าของคุณ' --env ARTSONIA_TRANSPORT='ใส่ค่าของคุณ' --env ARTSONIA_WS_PORT='ใส่ค่าของคุณ' --env ARTSONIA_INLINE_DOWNLOADS='ใส่ค่าของคุณ' -- npx -y artsonia-mcpเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"artsonia": {
"command": "npx",
"args": [
"-y",
"artsonia-mcp"
],
"env": {
"ARTSONIA_USERNAME": "ใส่ค่าของคุณ",
"ARTSONIA_PASSWORD": "ใส่ค่าของคุณ",
"ARTSONIA_SESSION_CACHE": "ใส่ค่าของคุณ",
"ARTSONIA_SESSION_FILE": "ใส่ค่าของคุณ",
"ARTSONIA_OUTPUT_DIR": "ใส่ค่าของคุณ",
"ARTSONIA_TRANSPORT": "ใส่ค่าของคุณ",
"ARTSONIA_WS_PORT": "ใส่ค่าของคุณ",
"ARTSONIA_INLINE_DOWNLOADS": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"artsonia": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"artsonia-mcp"
],
"env": {
"ARTSONIA_USERNAME": "ใส่ค่าของคุณ",
"ARTSONIA_PASSWORD": "ใส่ค่าของคุณ",
"ARTSONIA_SESSION_CACHE": "ใส่ค่าของคุณ",
"ARTSONIA_SESSION_FILE": "ใส่ค่าของคุณ",
"ARTSONIA_OUTPUT_DIR": "ใส่ค่าของคุณ",
"ARTSONIA_TRANSPORT": "ใส่ค่าของคุณ",
"ARTSONIA_WS_PORT": "ใส่ค่าของคุณ",
"ARTSONIA_INLINE_DOWNLOADS": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ARTSONIA_USERNAME envARTSONIA_SESSION_CACHE envARTSONIA_SESSION_FILE envARTSONIA_OUTPUT_DIR envARTSONIA_TRANSPORT envARTSONIA_WS_PORT envARTSONIA_INLINE_DOWNLOADS envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 9 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub chrischall ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: ARTSONIA_PASSWORD
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (1.4.1) เข้า registry เมื่อวาน
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย
ในหมวดเดียวกันมี Tandoor Recipe MCP, Joinable, Librus Synergia
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
Recipes, meal plans, shopping lists and more for your local or self-hosted Tandoor instance.
Make any game joinable: pick the pattern, get the snippet, run a two-player self-test.
Librus Synergia school gradebook: grades, attendance, timetable, homework, messages.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
Artsonia MCP server for Claude — developed and maintained by AI (Claude Code)
artsonia_download_artwork saves images only inside an allowed folder; any other dest is refused before anything is fetched or written, and no file is ever written through a symlink.
| variable | default | |
|---|---|---|
ARTSONIA_OUTPUT_DIR | ~/Downloads and ~/Pictures | The folders dest must be inside (subfolders are fine and are created). Several folders: separate them with : (; on Windows). On a hosted server (MCP_DATA_DIR or MCP_BLOB_BASE_URL set), or with ARTSONIA_INLINE_DOWNLOADS=1, nothing is written to disk, so dest is only a label and is not checked: images come back inline up to 10 MiB per result, the rest as one signed zip link when the host has a blob store, and anything that still cannot be delivered is listed by name with the reason. |
artsonia_download_artwork no longer drops or strands an image. What changed in its result:
MCP_DATA_DIR or MCP_BLOB_BASE_URL set, downloads now behave as if ARTSONIA_INLINE_DOWNLOADS=1 were set, whatever that variable says. Before, a hosted server without it saved into $MCP_DATA_DIR/downloads and reported files nobody could open. Because no file is written, a hosted result no longer carries dest, downloaded[].file, skipped[].file, index_file or metadata_count (write_index and write_metadata have nothing to write there); read delivered_via instead.{ url, expires_at, file_count, bytes, archive_bytes }. On a hosted server with a blob store, the images that do not fit inline (10 MiB per result) go into one zip behind that signed link. They count as downloaded."inline", "archive" (plus archive_file, its path in the zip) or "link" (plus url and expires_at, for a single image too big to inline). Disk downloads are unchanged.{ artwork_id, name, bytes, reason, title?, is_private }. name is the file name the image would have had, and reason says why it was not delivered. An image whose zip upload failed is moved here from downloaded.The writes that reach other people — posting a comment and inviting a fan — ask you to confirm them first. Changing your notification settings, marking feedback read, and downloading artwork into your allowed download folders run straight away. A client that can show a confirmation prompt (Claude Code) shows one. A client that cannot (claude.ai, Claude Desktop) gets a two-step flow instead: the first call changes nothing and returns a preview of exactly what would be sent plus a confirmToken; only a second, identical call carrying that token goes ahead. The token is single-use, expires, and is refused if anything changed between the two calls.
| variable | default | |
|---|---|---|
MCP_CONFIRM_MODE | ask-user | What a write does on a client that cannot show a confirmation prompt (claude.ai, Claude Desktop). ask-user: two steps — the first call does nothing and returns a preview plus a token, and the model must get your approval in chat before calling again with it. auto: the same two steps, but the model may use the token after reviewing the preview itself. refuse: writes are refused on such clients. A client that can show prompts (Claude Code) always gets the real prompt, unless MCP_CONFIRM_ELICITATION=off. An unrecognised value is treated as refuse. |
MCP_CONFIRM_ELICITATION | on | off never shows a confirmation prompt, so every client gets the MCP_CONFIRM_MODE path. Set it for a client that claims to support prompts but never shows one (the write hangs — opencode 2.0.x). Any other value stays on, with a warning on stderr. |
MCP_CONFIRM_TTL_SECONDS | 600 | How long a token stays valid. |
MCP_CONFIRM_SECRET | random per process | Signing key; set it only if tokens must survive a server restart. |