Puter MCP
Puter MCP enables AI tools to interact with Puter: manage files, websites, workers, and more
MCP Task Orchestrator เป็นเครื่องมือช่วยจัดระเบียบการทำงานของ AI agent ผ่านการจัดการรายการงาน (work items) การตั้งด่านตรวจ (gates) การกำหนดชุดเครื่องมือตามบทบาท และการติดตามการรันงาน
แปลอัตโนมัติจากคำอธิบายของผู้ทำ · ทีมยังไม่ได้ตรวจ
Workflow discipline for AI agents: work items, gates, role-scoped tool profiles and runsเลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ผลตรวจผ่าน 3/3 · ทำงานบนเครื่องคุณ · ✓ ตรวจคำสั่งแล้ว 14 พ.ย. 2569
ขั้นแรก: คุณใช้ AI ตัวไหน
เลือกแอปที่คุณใช้ ขั้นตอนจะขึ้นด้านล่าง
ต่อกับ Claude ได้ แต่ต้องเตรียมก่อน
ต้องมีคีย์ของ MCP Task Orchestrator (สร้างที่เว็บของผู้ทำ) · ต้องกรอกค่าตั้ง 1 ช่อง (API_ALLOW_UNAUTHENTICATED) · ต้องลง Docker ในเครื่องก่อน (ทำครั้งเดียว) · ใช้ได้เฉพาะแอป Claude บนคอม (Windows หรือ Mac) ไม่ใช่บนเว็บหรือมือถือ
เปิดเว็บของผู้ทำ สมัครบัญชีแล้วสร้างคีย์ (API key) เก็บไว้ ใช้ในขั้นถัดไป ราคาและแผนฟรีดูที่เว็บของผู้ทำ
วิธีขอคีย์อยู่ใน README ของผู้ทำด้านล่าง
ค่าเหล่านี้เป็นค่าตั้งของโปรแกรม ไม่ใช่คีย์ ไม่ต้องสมัครอะไร ใส่ตามที่ผู้ทำอธิบาย
API_ALLOW_UNAUTHENTICATED แฟล็กยืนยันที่ต้องใช้ควบคู่กับ API_AUTH_MODE=none (ค่าเริ่มต้น: false) คำอธิบายแปลอัตโนมัติ ชื่อตัวแปรคงตามต้นฉบับ ถ้าไม่แน่ใจให้ดูต้นฉบับ
SettingsDeveloperEdit Config
{
"mcpServers": {
"task-orchestrator": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"API_ALLOW_QUERY_TOKEN_FOR_SSE",
"-e",
"API_ALLOW_UNAUTHENTICATED",
"-e",
"API_AUTH_MODE",
"-e",
"API_JWKS_MAX_TOKEN_LIFETIME_SECONDS",
"-e",
"API_SSE_AUTH_CHECK_INTERVAL_SECONDS",
"ghcr.io/jpicklyk/task-orchestrator:4.0.2"
],
"env": {
"API_ALLOW_QUERY_TOKEN_FOR_SSE": "ใส่ค่าของคุณ",
"API_ALLOW_UNAUTHENTICATED": "ใส่ค่าของคุณ",
"API_AUTH_MODE": "ใส่ค่าของคุณ",
"API_JWKS_MAX_TOKEN_LIFETIME_SECONDS": "ใส่ค่าของคุณ",
"API_SSE_AUTH_CHECK_INTERVAL_SECONDS": "ใส่ค่าของคุณ"
}
}
}
}วางคีย์ในช่องของแอปเท่านั้น อย่าวางในแชตหรือส่งให้ใคร
ใช้ MCP Task Orchestrator บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง✓ ถ้า Claude บอกว่ากำลังใช้ MCP Task Orchestrator หรือมีชื่อเครื่องมือของ MCP Task Orchestrator ขึ้นในคำตอบ แปลว่าต่อสำเร็จ
คำสั่งด้านบนใช้ได้เลยโดยไม่ต้องใส่ค่าเหล่านี้ ถ้าอยากปรับค่อยเพิ่มเองตามคำอธิบายของผู้ทำ
DATABASE_PATH พาธไฟล์ฐานข้อมูล SQLite (ค่าเริ่มต้น: data/current-tasks.db) AGENT_CONFIG_DIR ไดเรกทอรีที่มี .taskorchestrator/config.yaml สำหรับสคีมาเวิร์กโฟลว์ (ค่าเริ่มต้น: ไดเรกทอรีทำงาน) MCP_TRANSPORT โหมดการขนส่ง: stdio (ค่าเริ่มต้น) หรือ http MCP_HTTP_PORT พอร์ต HTTP เมื่อใช้ทรานสปอร์ต http (ค่าเริ่มต้น: 3001) MCP_SESSION_IDLE_TIMEOUT_MINUTES จำนวนนาทีที่ไม่มีคำขอก่อนที่เซสชัน HTTP MCP จะถูกปิด ไคลเอนต์จะเริ่มต้นใหม่ในการเรียกครั้งถัดไป (ค่าเริ่มต้น: 120) LOG_LEVEL ระดับการบันทึก log: DEBUG, INFO, WARN, ERROR (ค่าเริ่มต้น: INFO) LOG_FILE พาธไฟล์ log แบบไม่บังคับ หากไม่ตั้งค่า (ค่าเริ่มต้น) จะปิดการบันทึก log ลงไฟล์; log จะเป็น JSON บน stderr เสมอ API_ENABLED สวิตช์หลักของ REST API ตั้งเป็น true เพื่อลงทะเบียนเส้นทาง /api/v1/ (ค่าเริ่มต้น: false) API_JWKS_ALGORITHMS รายการอัลกอริทึม JWT ที่อนุญาตสำหรับโหมด jwks คั่นด้วยเครื่องหมายจุลภาค (เช่น RS256,EdDSA) API_JWKS_ALLOW_INSECURE_URL การเลือกใช้เพื่ออนุญาตให้ดึง API_JWKS_URL ผ่าน http แบบไม่เข้ารหัส เฉพาะ loopback เท่านั้น (ค่าเริ่มต้น: false) API_JWKS_AUDIENCE ค่าของ claim aud ที่คาดหวังใน JWT (โหมด jwks) API_JWKS_CACHE_TTL_SECONDS TTL ของแคชคีย์ JWKS เป็นวินาที (ค่าเริ่มต้น: 300) API_JWKS_ISSUER ค่า iss claim ที่คาดหวังใน JWT (โหมด jwks) API_JWKS_MAX_STALE_SECONDS อายุสูงสุดของชุดคีย์ที่แคชไว้ ซึ่งยังใช้งานได้หลังการรีเฟรชล้มเหลว (ค่าเริ่มต้น: max(3600, TTL)) API_JWKS_URL URL ของ JWKS endpoint (โหมด jwks); ต้องเป็น https และแก้ไขไปยังที่อยู่สาธารณะ API_REDACT_NOTE_ATTRIBUTION ซ่อนข้อมูล actor/verification ในโน้ตสำหรับผู้เรียกที่ไม่ใช่ admin (ค่าเริ่มต้น: true) API_SSE_BUFFER_SIZE หน้าต่างการเล่นซ้ำ Last-Event-ID ในหน่วยของ event id (ค่าเริ่มต้น: 1000; 0 = ไม่เล่นซ้ำ) API_TOKENS_PATH พาธของไฟล์ YAML สำหรับ bearer token secret (ค่าเริ่มต้น: /run/secrets/api-tokens.yaml) CORS_ALLOWED_HEADERS รายการ request header ของ CORS ที่อนุญาต คั่นด้วยเครื่องหมายจุลภาค CORS_ALLOWED_METHODS รายการเมธอดของ CORS ที่อนุญาต คั่นด้วยเครื่องหมายจุลภาค CORS_ALLOWED_ORIGINS รายการ origin ของ CORS ที่อนุญาต คั่นด้วยเครื่องหมายจุลภาค หากว่างหมายถึงไม่อนุญาตการเข้าถึงข้ามโดเมน CORS_EXPOSE_HEADERS รายการส่วนหัวการตอบกลับ (response headers) ที่คั่นด้วยเครื่องหมายจุลภาค ซึ่งไคลเอนต์ของเบราว์เซอร์อาจอ่านได้ CORS_MAX_AGE_SECONDS ระยะเวลาแคชของ CORS preflight เป็นวินาที (ค่าเริ่มต้น: 3600) DATABASE_BUSY_TIMEOUT_MS เวลารอ (busy timeout) ของ SQLite สำหรับเส้นทางการเริ่มต้นระบบ หน่วยมิลลิวินาที (ค่าเริ่มต้น: 5000, ขั้นต่ำ 100) DATABASE_MAX_CONNECTIONS จำนวนการเชื่อมต่อของ read pool (ค่าเริ่มต้น: 10, จำกัดช่วงที่ 1-64) DATABASE_SHOW_SQL บันทึกทุกคำสั่ง SQL ที่ระดับ DEBUG (ค่าเริ่มต้น: false) DB_COMPACT_ON_UPGRADE รันการบีบอัดข้อมูลเริ่มต้นครั้งเดียวหลังอัปเกรด (ค่าเริ่มต้น: true; false เพื่อปิดการทำงาน) FLYWAY_REPAIR รัน Flyway repair แล้วออกจากโปรแกรม (ค่าเริ่มต้น: false) FTS_INTEGRITY การตรวจสอบความสมบูรณ์ของ FTS5 ตอนเริ่มต้น: startup (ค่าเริ่มต้น) หรือ off MCP_ALLOWED_HOSTS รายการ Host header ที่อนุญาต คั่นด้วยเครื่องหมายจุลภาค เพิ่มเติมจากค่าเริ่มต้นของ loopback (การขนส่งแบบ HTTP) MCP_ALLOW_UNAUTHENTICATED เลือกใช้ MCP_TRANSPORT=http ด้วย API_ENABLED=false โดยให้บริการ /mcp ในฐานะผู้ใช้ภายในเครื่อง (ค่าเริ่มต้น: false) MCP_HTTP_HOST ที่อยู่ bind เมื่อใช้การขนส่งแบบ http (ค่าเริ่มต้น: 0.0.0.0) MCP_SERVER_NAME ชื่อบริการที่รายงานในข้อมูลระบุตัวตน MCP และข้อมูลบริการ REST (ค่าเริ่มต้น: mcp-task-orchestrator-current) MCP_TOOL_PROFILE โปรไฟล์เครื่องมือผ่าน stdio: orchestration (ค่าเริ่มต้น), knowledge หรือ director READINESS_FILE ไฟล์มาร์กเกอร์ความพร้อมที่ถูกสัมผัสหนึ่งครั้งเมื่อการเริ่มต้นสำเร็จ (ค่าเริ่มต้น: /tmp/mcp-task-orchestrator.ready) RESOURCE_LEASES_ENFORCED สวิตช์ปิดการทำงานทั้งระบบสำหรับเกตการจอง resource (ค่าเริ่มต้น: true) RETENTION_AUDIT_EVENTS_DAYS จำนวนวันที่จะเก็บแถวเหตุการณ์ประเภทการตรวจสอบ (audit) ไว้ (ค่าเริ่มต้น: 0 = เก็บตลอดไป) RETENTION_CALL_LOG_DAYS จำนวนวันที่จะเก็บแถวของ call_log ที่ถูกรวมแล้ว (ค่าเริ่มต้น: 90) RETENTION_EVENTS_DAYS จำนวนวันที่จะเก็บแถวเหตุการณ์ประเภทกิจกรรม (activity) ไว้ (ค่าเริ่มต้น: 180) RETENTION_LEASE_HISTORY_DAYS จำนวนวันที่จะเก็บช่วงเวลาที่ปิดแล้วของ resource_lease_history (ค่าเริ่มต้น: 365) SCHEMA_MODE เฟสของ schema: migrate (ค่าเริ่มต้น) ใช้การย้ายข้อมูลที่รอดำเนินการ; validate ปฏิเสธเวอร์ชันที่รอดำเนินการหรือเวอร์ชันในอนาคต UPGRADE_BACKUP สำเนาฐานข้อมูลเวอร์ชัน 3.x ที่ตรวจสอบแล้วก่อนการอัปเกรด (.pre-4.0..bak) ซึ่งสร้างก่อนการย้ายข้อมูล 4.0 รอบแรก หากการคัดลอกล้มเหลว การเริ่มต้นระบบจะล้มเหลว ตั้งเป็น false เพื่อข้าม (ค่าเริ่มต้น: true) คำอธิบายแปลอัตโนมัติ ชื่อตัวแปรคงตามต้นฉบับ ถ้าไม่แน่ใจให้ดูต้นฉบับ
ชื่อเมนูตรวจกับหน้าช่วยเหลือของ Anthropic เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป
ChatGPT ยังต่อ MCP Task Orchestrator ไม่ได้
MCP Task Orchestrator ต้องติดตั้งในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะตัวที่ทำงานบนเว็บ
ก · ใช้แอปที่ต่อ MCP Task Orchestrator ได้
ต่อกับ Claude Code ได้ แต่ต้องเตรียมก่อน
ต้องมีคีย์ของ MCP Task Orchestrator (สร้างที่เว็บของผู้ทำ) · ต้องกรอกค่าตั้ง 1 ช่อง (API_ALLOW_UNAUTHENTICATED) · ต้องลง Docker ในเครื่องก่อน (ทำครั้งเดียว)
เปิดเว็บของผู้ทำ สมัครบัญชีแล้วสร้างคีย์ (API key) เก็บไว้ ใช้ในขั้นถัดไป ราคาและแผนฟรีดูที่เว็บของผู้ทำ
วิธีขอคีย์อยู่ใน README ของผู้ทำด้านล่าง
ค่าเหล่านี้เป็นค่าตั้งของโปรแกรม ไม่ใช่คีย์ ไม่ต้องสมัครอะไร ใส่ตามที่ผู้ทำอธิบาย
API_ALLOW_UNAUTHENTICATED แฟล็กยืนยันที่ต้องใช้ควบคู่กับ API_AUTH_MODE=none (ค่าเริ่มต้น: false) คำอธิบายแปลอัตโนมัติ ชื่อตัวแปรคงตามต้นฉบับ ถ้าไม่แน่ใจให้ดูต้นฉบับ
Mac: กด Command+Space พิมพ์ Terminal · Windows: เปิด PowerShell
claude mcp add --scope user task-orchestrator --env API_ALLOW_QUERY_TOKEN_FOR_SSE='ใส่ค่าของคุณ' --env API_ALLOW_UNAUTHENTICATED='ใส่ค่าของคุณ' --env API_AUTH_MODE='ใส่ค่าของคุณ' --env API_JWKS_MAX_TOKEN_LIFETIME_SECONDS='ใส่ค่าของคุณ' --env API_SSE_AUTH_CHECK_INTERVAL_SECONDS='ใส่ค่าของคุณ' -- docker run -i --rm -e API_ALLOW_QUERY_TOKEN_FOR_SSE -e API_ALLOW_UNAUTHENTICATED -e API_AUTH_MODE -e API_JWKS_MAX_TOKEN_LIFETIME_SECONDS -e API_SSE_AUTH_CHECK_INTERVAL_SECONDS ghcr.io/jpicklyk/task-orchestrator:4.0.2แก้ “ใส่ค่าของคุณ” เป็นคีย์ของคุณก่อนกด Enter
วางคีย์ในช่องของแอปเท่านั้น อย่าวางในแชตหรือส่งให้ใคร
ต้องเห็น MCP Task Orchestrator ในรายการและขึ้นว่าเชื่อมต่อแล้ว
ใช้ MCP Task Orchestrator บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง✓ ถ้า Claude Code บอกว่ากำลังใช้ MCP Task Orchestrator หรือมีชื่อเครื่องมือของ MCP Task Orchestrator ขึ้นในคำตอบ แปลว่าต่อสำเร็จ
คำสั่งด้านบนใช้ได้เลยโดยไม่ต้องใส่ค่าเหล่านี้ ถ้าอยากปรับค่อยเพิ่มเองตามคำอธิบายของผู้ทำ
DATABASE_PATH พาธไฟล์ฐานข้อมูล SQLite (ค่าเริ่มต้น: data/current-tasks.db) AGENT_CONFIG_DIR ไดเรกทอรีที่มี .taskorchestrator/config.yaml สำหรับสคีมาเวิร์กโฟลว์ (ค่าเริ่มต้น: ไดเรกทอรีทำงาน) MCP_TRANSPORT โหมดการขนส่ง: stdio (ค่าเริ่มต้น) หรือ http MCP_HTTP_PORT พอร์ต HTTP เมื่อใช้ทรานสปอร์ต http (ค่าเริ่มต้น: 3001) MCP_SESSION_IDLE_TIMEOUT_MINUTES จำนวนนาทีที่ไม่มีคำขอก่อนที่เซสชัน HTTP MCP จะถูกปิด ไคลเอนต์จะเริ่มต้นใหม่ในการเรียกครั้งถัดไป (ค่าเริ่มต้น: 120) LOG_LEVEL ระดับการบันทึก log: DEBUG, INFO, WARN, ERROR (ค่าเริ่มต้น: INFO) LOG_FILE พาธไฟล์ log แบบไม่บังคับ หากไม่ตั้งค่า (ค่าเริ่มต้น) จะปิดการบันทึก log ลงไฟล์; log จะเป็น JSON บน stderr เสมอ API_ENABLED สวิตช์หลักของ REST API ตั้งเป็น true เพื่อลงทะเบียนเส้นทาง /api/v1/ (ค่าเริ่มต้น: false) API_JWKS_ALGORITHMS รายการอัลกอริทึม JWT ที่อนุญาตสำหรับโหมด jwks คั่นด้วยเครื่องหมายจุลภาค (เช่น RS256,EdDSA) API_JWKS_ALLOW_INSECURE_URL การเลือกใช้เพื่ออนุญาตให้ดึง API_JWKS_URL ผ่าน http แบบไม่เข้ารหัส เฉพาะ loopback เท่านั้น (ค่าเริ่มต้น: false) API_JWKS_AUDIENCE ค่าของ claim aud ที่คาดหวังใน JWT (โหมด jwks) API_JWKS_CACHE_TTL_SECONDS TTL ของแคชคีย์ JWKS เป็นวินาที (ค่าเริ่มต้น: 300) API_JWKS_ISSUER ค่า iss claim ที่คาดหวังใน JWT (โหมด jwks) API_JWKS_MAX_STALE_SECONDS อายุสูงสุดของชุดคีย์ที่แคชไว้ ซึ่งยังใช้งานได้หลังการรีเฟรชล้มเหลว (ค่าเริ่มต้น: max(3600, TTL)) API_JWKS_URL URL ของ JWKS endpoint (โหมด jwks); ต้องเป็น https และแก้ไขไปยังที่อยู่สาธารณะ API_REDACT_NOTE_ATTRIBUTION ซ่อนข้อมูล actor/verification ในโน้ตสำหรับผู้เรียกที่ไม่ใช่ admin (ค่าเริ่มต้น: true) API_SSE_BUFFER_SIZE หน้าต่างการเล่นซ้ำ Last-Event-ID ในหน่วยของ event id (ค่าเริ่มต้น: 1000; 0 = ไม่เล่นซ้ำ) API_TOKENS_PATH พาธของไฟล์ YAML สำหรับ bearer token secret (ค่าเริ่มต้น: /run/secrets/api-tokens.yaml) CORS_ALLOWED_HEADERS รายการ request header ของ CORS ที่อนุญาต คั่นด้วยเครื่องหมายจุลภาค CORS_ALLOWED_METHODS รายการเมธอดของ CORS ที่อนุญาต คั่นด้วยเครื่องหมายจุลภาค CORS_ALLOWED_ORIGINS รายการ origin ของ CORS ที่อนุญาต คั่นด้วยเครื่องหมายจุลภาค หากว่างหมายถึงไม่อนุญาตการเข้าถึงข้ามโดเมน CORS_EXPOSE_HEADERS รายการส่วนหัวการตอบกลับ (response headers) ที่คั่นด้วยเครื่องหมายจุลภาค ซึ่งไคลเอนต์ของเบราว์เซอร์อาจอ่านได้ CORS_MAX_AGE_SECONDS ระยะเวลาแคชของ CORS preflight เป็นวินาที (ค่าเริ่มต้น: 3600) DATABASE_BUSY_TIMEOUT_MS เวลารอ (busy timeout) ของ SQLite สำหรับเส้นทางการเริ่มต้นระบบ หน่วยมิลลิวินาที (ค่าเริ่มต้น: 5000, ขั้นต่ำ 100) DATABASE_MAX_CONNECTIONS จำนวนการเชื่อมต่อของ read pool (ค่าเริ่มต้น: 10, จำกัดช่วงที่ 1-64) DATABASE_SHOW_SQL บันทึกทุกคำสั่ง SQL ที่ระดับ DEBUG (ค่าเริ่มต้น: false) DB_COMPACT_ON_UPGRADE รันการบีบอัดข้อมูลเริ่มต้นครั้งเดียวหลังอัปเกรด (ค่าเริ่มต้น: true; false เพื่อปิดการทำงาน) FLYWAY_REPAIR รัน Flyway repair แล้วออกจากโปรแกรม (ค่าเริ่มต้น: false) FTS_INTEGRITY การตรวจสอบความสมบูรณ์ของ FTS5 ตอนเริ่มต้น: startup (ค่าเริ่มต้น) หรือ off MCP_ALLOWED_HOSTS รายการ Host header ที่อนุญาต คั่นด้วยเครื่องหมายจุลภาค เพิ่มเติมจากค่าเริ่มต้นของ loopback (การขนส่งแบบ HTTP) MCP_ALLOW_UNAUTHENTICATED เลือกใช้ MCP_TRANSPORT=http ด้วย API_ENABLED=false โดยให้บริการ /mcp ในฐานะผู้ใช้ภายในเครื่อง (ค่าเริ่มต้น: false) MCP_HTTP_HOST ที่อยู่ bind เมื่อใช้การขนส่งแบบ http (ค่าเริ่มต้น: 0.0.0.0) MCP_SERVER_NAME ชื่อบริการที่รายงานในข้อมูลระบุตัวตน MCP และข้อมูลบริการ REST (ค่าเริ่มต้น: mcp-task-orchestrator-current) MCP_TOOL_PROFILE โปรไฟล์เครื่องมือผ่าน stdio: orchestration (ค่าเริ่มต้น), knowledge หรือ director READINESS_FILE ไฟล์มาร์กเกอร์ความพร้อมที่ถูกสัมผัสหนึ่งครั้งเมื่อการเริ่มต้นสำเร็จ (ค่าเริ่มต้น: /tmp/mcp-task-orchestrator.ready) RESOURCE_LEASES_ENFORCED สวิตช์ปิดการทำงานทั้งระบบสำหรับเกตการจอง resource (ค่าเริ่มต้น: true) RETENTION_AUDIT_EVENTS_DAYS จำนวนวันที่จะเก็บแถวเหตุการณ์ประเภทการตรวจสอบ (audit) ไว้ (ค่าเริ่มต้น: 0 = เก็บตลอดไป) RETENTION_CALL_LOG_DAYS จำนวนวันที่จะเก็บแถวของ call_log ที่ถูกรวมแล้ว (ค่าเริ่มต้น: 90) RETENTION_EVENTS_DAYS จำนวนวันที่จะเก็บแถวเหตุการณ์ประเภทกิจกรรม (activity) ไว้ (ค่าเริ่มต้น: 180) RETENTION_LEASE_HISTORY_DAYS จำนวนวันที่จะเก็บช่วงเวลาที่ปิดแล้วของ resource_lease_history (ค่าเริ่มต้น: 365) SCHEMA_MODE เฟสของ schema: migrate (ค่าเริ่มต้น) ใช้การย้ายข้อมูลที่รอดำเนินการ; validate ปฏิเสธเวอร์ชันที่รอดำเนินการหรือเวอร์ชันในอนาคต UPGRADE_BACKUP สำเนาฐานข้อมูลเวอร์ชัน 3.x ที่ตรวจสอบแล้วก่อนการอัปเกรด (.pre-4.0..bak) ซึ่งสร้างก่อนการย้ายข้อมูล 4.0 รอบแรก หากการคัดลอกล้มเหลว การเริ่มต้นระบบจะล้มเหลว ตั้งเป็น false เพื่อข้าม (ค่าเริ่มต้น: true) คำอธิบายแปลอัตโนมัติ ชื่อตัวแปรคงตามต้นฉบับ ถ้าไม่แน่ใจให้ดูต้นฉบับ
ชื่อเมนูตรวจกับหน้าช่วยเหลือของ Anthropic เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป
ต่อกับ Cursor ได้ แต่ต้องเตรียมก่อน
ต้องมีคีย์ของ MCP Task Orchestrator (สร้างที่เว็บของผู้ทำ) · ต้องกรอกค่าตั้ง 1 ช่อง (API_ALLOW_UNAUTHENTICATED) · ต้องลง Docker ในเครื่องก่อน (ทำครั้งเดียว)
เปิดเว็บของผู้ทำ สมัครบัญชีแล้วสร้างคีย์ (API key) เก็บไว้ ใช้ในขั้นถัดไป ราคาและแผนฟรีดูที่เว็บของผู้ทำ
วิธีขอคีย์อยู่ใน README ของผู้ทำด้านล่าง
ค่าเหล่านี้เป็นค่าตั้งของโปรแกรม ไม่ใช่คีย์ ไม่ต้องสมัครอะไร ใส่ตามที่ผู้ทำอธิบาย
API_ALLOW_UNAUTHENTICATED แฟล็กยืนยันที่ต้องใช้ควบคู่กับ API_AUTH_MODE=none (ค่าเริ่มต้น: false) คำอธิบายแปลอัตโนมัติ ชื่อตัวแปรคงตามต้นฉบับ ถ้าไม่แน่ใจให้ดูต้นฉบับ
ในค่าตั้งของ MCP Task Orchestrator ช่อง API_ALLOW_QUERY_TOKEN_FOR_SSE, API_AUTH_MODE, API_JWKS_MAX_TOKEN_LIFETIME_SECONDS, API_SSE_AUTH_CHECK_INTERVAL_SECONDS, API_ALLOW_UNAUTHENTICATED ยังว่าง ใส่คีย์ของคุณแล้วบันทึก
วางคีย์ในช่องของแอปเท่านั้น อย่าวางในแชตหรือส่งให้ใคร
ใช้ MCP Task Orchestrator บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง✓ ถ้า Cursor บอกว่ากำลังใช้ MCP Task Orchestrator หรือมีชื่อเครื่องมือของ MCP Task Orchestrator ขึ้นในคำตอบ แปลว่าต่อสำเร็จ
คำสั่งด้านบนใช้ได้เลยโดยไม่ต้องใส่ค่าเหล่านี้ ถ้าอยากปรับค่อยเพิ่มเองตามคำอธิบายของผู้ทำ
DATABASE_PATH พาธไฟล์ฐานข้อมูล SQLite (ค่าเริ่มต้น: data/current-tasks.db) AGENT_CONFIG_DIR ไดเรกทอรีที่มี .taskorchestrator/config.yaml สำหรับสคีมาเวิร์กโฟลว์ (ค่าเริ่มต้น: ไดเรกทอรีทำงาน) MCP_TRANSPORT โหมดการขนส่ง: stdio (ค่าเริ่มต้น) หรือ http MCP_HTTP_PORT พอร์ต HTTP เมื่อใช้ทรานสปอร์ต http (ค่าเริ่มต้น: 3001) MCP_SESSION_IDLE_TIMEOUT_MINUTES จำนวนนาทีที่ไม่มีคำขอก่อนที่เซสชัน HTTP MCP จะถูกปิด ไคลเอนต์จะเริ่มต้นใหม่ในการเรียกครั้งถัดไป (ค่าเริ่มต้น: 120) LOG_LEVEL ระดับการบันทึก log: DEBUG, INFO, WARN, ERROR (ค่าเริ่มต้น: INFO) LOG_FILE พาธไฟล์ log แบบไม่บังคับ หากไม่ตั้งค่า (ค่าเริ่มต้น) จะปิดการบันทึก log ลงไฟล์; log จะเป็น JSON บน stderr เสมอ API_ENABLED สวิตช์หลักของ REST API ตั้งเป็น true เพื่อลงทะเบียนเส้นทาง /api/v1/ (ค่าเริ่มต้น: false) API_JWKS_ALGORITHMS รายการอัลกอริทึม JWT ที่อนุญาตสำหรับโหมด jwks คั่นด้วยเครื่องหมายจุลภาค (เช่น RS256,EdDSA) API_JWKS_ALLOW_INSECURE_URL การเลือกใช้เพื่ออนุญาตให้ดึง API_JWKS_URL ผ่าน http แบบไม่เข้ารหัส เฉพาะ loopback เท่านั้น (ค่าเริ่มต้น: false) API_JWKS_AUDIENCE ค่าของ claim aud ที่คาดหวังใน JWT (โหมด jwks) API_JWKS_CACHE_TTL_SECONDS TTL ของแคชคีย์ JWKS เป็นวินาที (ค่าเริ่มต้น: 300) API_JWKS_ISSUER ค่า iss claim ที่คาดหวังใน JWT (โหมด jwks) API_JWKS_MAX_STALE_SECONDS อายุสูงสุดของชุดคีย์ที่แคชไว้ ซึ่งยังใช้งานได้หลังการรีเฟรชล้มเหลว (ค่าเริ่มต้น: max(3600, TTL)) API_JWKS_URL URL ของ JWKS endpoint (โหมด jwks); ต้องเป็น https และแก้ไขไปยังที่อยู่สาธารณะ API_REDACT_NOTE_ATTRIBUTION ซ่อนข้อมูล actor/verification ในโน้ตสำหรับผู้เรียกที่ไม่ใช่ admin (ค่าเริ่มต้น: true) API_SSE_BUFFER_SIZE หน้าต่างการเล่นซ้ำ Last-Event-ID ในหน่วยของ event id (ค่าเริ่มต้น: 1000; 0 = ไม่เล่นซ้ำ) API_TOKENS_PATH พาธของไฟล์ YAML สำหรับ bearer token secret (ค่าเริ่มต้น: /run/secrets/api-tokens.yaml) CORS_ALLOWED_HEADERS รายการ request header ของ CORS ที่อนุญาต คั่นด้วยเครื่องหมายจุลภาค CORS_ALLOWED_METHODS รายการเมธอดของ CORS ที่อนุญาต คั่นด้วยเครื่องหมายจุลภาค CORS_ALLOWED_ORIGINS รายการ origin ของ CORS ที่อนุญาต คั่นด้วยเครื่องหมายจุลภาค หากว่างหมายถึงไม่อนุญาตการเข้าถึงข้ามโดเมน CORS_EXPOSE_HEADERS รายการส่วนหัวการตอบกลับ (response headers) ที่คั่นด้วยเครื่องหมายจุลภาค ซึ่งไคลเอนต์ของเบราว์เซอร์อาจอ่านได้ CORS_MAX_AGE_SECONDS ระยะเวลาแคชของ CORS preflight เป็นวินาที (ค่าเริ่มต้น: 3600) DATABASE_BUSY_TIMEOUT_MS เวลารอ (busy timeout) ของ SQLite สำหรับเส้นทางการเริ่มต้นระบบ หน่วยมิลลิวินาที (ค่าเริ่มต้น: 5000, ขั้นต่ำ 100) DATABASE_MAX_CONNECTIONS จำนวนการเชื่อมต่อของ read pool (ค่าเริ่มต้น: 10, จำกัดช่วงที่ 1-64) DATABASE_SHOW_SQL บันทึกทุกคำสั่ง SQL ที่ระดับ DEBUG (ค่าเริ่มต้น: false) DB_COMPACT_ON_UPGRADE รันการบีบอัดข้อมูลเริ่มต้นครั้งเดียวหลังอัปเกรด (ค่าเริ่มต้น: true; false เพื่อปิดการทำงาน) FLYWAY_REPAIR รัน Flyway repair แล้วออกจากโปรแกรม (ค่าเริ่มต้น: false) FTS_INTEGRITY การตรวจสอบความสมบูรณ์ของ FTS5 ตอนเริ่มต้น: startup (ค่าเริ่มต้น) หรือ off MCP_ALLOWED_HOSTS รายการ Host header ที่อนุญาต คั่นด้วยเครื่องหมายจุลภาค เพิ่มเติมจากค่าเริ่มต้นของ loopback (การขนส่งแบบ HTTP) MCP_ALLOW_UNAUTHENTICATED เลือกใช้ MCP_TRANSPORT=http ด้วย API_ENABLED=false โดยให้บริการ /mcp ในฐานะผู้ใช้ภายในเครื่อง (ค่าเริ่มต้น: false) MCP_HTTP_HOST ที่อยู่ bind เมื่อใช้การขนส่งแบบ http (ค่าเริ่มต้น: 0.0.0.0) MCP_SERVER_NAME ชื่อบริการที่รายงานในข้อมูลระบุตัวตน MCP และข้อมูลบริการ REST (ค่าเริ่มต้น: mcp-task-orchestrator-current) MCP_TOOL_PROFILE โปรไฟล์เครื่องมือผ่าน stdio: orchestration (ค่าเริ่มต้น), knowledge หรือ director READINESS_FILE ไฟล์มาร์กเกอร์ความพร้อมที่ถูกสัมผัสหนึ่งครั้งเมื่อการเริ่มต้นสำเร็จ (ค่าเริ่มต้น: /tmp/mcp-task-orchestrator.ready) RESOURCE_LEASES_ENFORCED สวิตช์ปิดการทำงานทั้งระบบสำหรับเกตการจอง resource (ค่าเริ่มต้น: true) RETENTION_AUDIT_EVENTS_DAYS จำนวนวันที่จะเก็บแถวเหตุการณ์ประเภทการตรวจสอบ (audit) ไว้ (ค่าเริ่มต้น: 0 = เก็บตลอดไป) RETENTION_CALL_LOG_DAYS จำนวนวันที่จะเก็บแถวของ call_log ที่ถูกรวมแล้ว (ค่าเริ่มต้น: 90) RETENTION_EVENTS_DAYS จำนวนวันที่จะเก็บแถวเหตุการณ์ประเภทกิจกรรม (activity) ไว้ (ค่าเริ่มต้น: 180) RETENTION_LEASE_HISTORY_DAYS จำนวนวันที่จะเก็บช่วงเวลาที่ปิดแล้วของ resource_lease_history (ค่าเริ่มต้น: 365) SCHEMA_MODE เฟสของ schema: migrate (ค่าเริ่มต้น) ใช้การย้ายข้อมูลที่รอดำเนินการ; validate ปฏิเสธเวอร์ชันที่รอดำเนินการหรือเวอร์ชันในอนาคต UPGRADE_BACKUP สำเนาฐานข้อมูลเวอร์ชัน 3.x ที่ตรวจสอบแล้วก่อนการอัปเกรด (.pre-4.0..bak) ซึ่งสร้างก่อนการย้ายข้อมูล 4.0 รอบแรก หากการคัดลอกล้มเหลว การเริ่มต้นระบบจะล้มเหลว ตั้งเป็น false เพื่อข้าม (ค่าเริ่มต้น: true) คำอธิบายแปลอัตโนมัติ ชื่อตัวแปรคงตามต้นฉบับ ถ้าไม่แน่ใจให้ดูต้นฉบับ
ชื่อเมนูตรวจกับหน้าช่วยเหลือของ Cursor เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป
ต่อกับ VS Code ได้ แต่ต้องเตรียมก่อน
ต้องมีคีย์ของ MCP Task Orchestrator (สร้างที่เว็บของผู้ทำ) · ต้องกรอกค่าตั้ง 1 ช่อง (API_ALLOW_UNAUTHENTICATED) · ต้องลง Docker ในเครื่องก่อน (ทำครั้งเดียว)
เปิดเว็บของผู้ทำ สมัครบัญชีแล้วสร้างคีย์ (API key) เก็บไว้ ใช้ในขั้นถัดไป ราคาและแผนฟรีดูที่เว็บของผู้ทำ
วิธีขอคีย์อยู่ใน README ของผู้ทำด้านล่าง
ค่าเหล่านี้เป็นค่าตั้งของโปรแกรม ไม่ใช่คีย์ ไม่ต้องสมัครอะไร ใส่ตามที่ผู้ทำอธิบาย
API_ALLOW_UNAUTHENTICATED แฟล็กยืนยันที่ต้องใช้ควบคู่กับ API_AUTH_MODE=none (ค่าเริ่มต้น: false) คำอธิบายแปลอัตโนมัติ ชื่อตัวแปรคงตามต้นฉบับ ถ้าไม่แน่ใจให้ดูต้นฉบับ
ในค่าตั้งของ MCP Task Orchestrator ช่อง API_ALLOW_QUERY_TOKEN_FOR_SSE, API_AUTH_MODE, API_JWKS_MAX_TOKEN_LIFETIME_SECONDS, API_SSE_AUTH_CHECK_INTERVAL_SECONDS, API_ALLOW_UNAUTHENTICATED ยังว่าง ใส่คีย์ของคุณแล้วบันทึก
วางคีย์ในช่องของแอปเท่านั้น อย่าวางในแชตหรือส่งให้ใคร
ใช้ MCP Task Orchestrator บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง✓ ถ้า VS Code บอกว่ากำลังใช้ MCP Task Orchestrator หรือมีชื่อเครื่องมือของ MCP Task Orchestrator ขึ้นในคำตอบ แปลว่าต่อสำเร็จ
คำสั่งด้านบนใช้ได้เลยโดยไม่ต้องใส่ค่าเหล่านี้ ถ้าอยากปรับค่อยเพิ่มเองตามคำอธิบายของผู้ทำ
DATABASE_PATH พาธไฟล์ฐานข้อมูล SQLite (ค่าเริ่มต้น: data/current-tasks.db) AGENT_CONFIG_DIR ไดเรกทอรีที่มี .taskorchestrator/config.yaml สำหรับสคีมาเวิร์กโฟลว์ (ค่าเริ่มต้น: ไดเรกทอรีทำงาน) MCP_TRANSPORT โหมดการขนส่ง: stdio (ค่าเริ่มต้น) หรือ http MCP_HTTP_PORT พอร์ต HTTP เมื่อใช้ทรานสปอร์ต http (ค่าเริ่มต้น: 3001) MCP_SESSION_IDLE_TIMEOUT_MINUTES จำนวนนาทีที่ไม่มีคำขอก่อนที่เซสชัน HTTP MCP จะถูกปิด ไคลเอนต์จะเริ่มต้นใหม่ในการเรียกครั้งถัดไป (ค่าเริ่มต้น: 120) LOG_LEVEL ระดับการบันทึก log: DEBUG, INFO, WARN, ERROR (ค่าเริ่มต้น: INFO) LOG_FILE พาธไฟล์ log แบบไม่บังคับ หากไม่ตั้งค่า (ค่าเริ่มต้น) จะปิดการบันทึก log ลงไฟล์; log จะเป็น JSON บน stderr เสมอ API_ENABLED สวิตช์หลักของ REST API ตั้งเป็น true เพื่อลงทะเบียนเส้นทาง /api/v1/ (ค่าเริ่มต้น: false) API_JWKS_ALGORITHMS รายการอัลกอริทึม JWT ที่อนุญาตสำหรับโหมด jwks คั่นด้วยเครื่องหมายจุลภาค (เช่น RS256,EdDSA) API_JWKS_ALLOW_INSECURE_URL การเลือกใช้เพื่ออนุญาตให้ดึง API_JWKS_URL ผ่าน http แบบไม่เข้ารหัส เฉพาะ loopback เท่านั้น (ค่าเริ่มต้น: false) API_JWKS_AUDIENCE ค่าของ claim aud ที่คาดหวังใน JWT (โหมด jwks) API_JWKS_CACHE_TTL_SECONDS TTL ของแคชคีย์ JWKS เป็นวินาที (ค่าเริ่มต้น: 300) API_JWKS_ISSUER ค่า iss claim ที่คาดหวังใน JWT (โหมด jwks) API_JWKS_MAX_STALE_SECONDS อายุสูงสุดของชุดคีย์ที่แคชไว้ ซึ่งยังใช้งานได้หลังการรีเฟรชล้มเหลว (ค่าเริ่มต้น: max(3600, TTL)) API_JWKS_URL URL ของ JWKS endpoint (โหมด jwks); ต้องเป็น https และแก้ไขไปยังที่อยู่สาธารณะ API_REDACT_NOTE_ATTRIBUTION ซ่อนข้อมูล actor/verification ในโน้ตสำหรับผู้เรียกที่ไม่ใช่ admin (ค่าเริ่มต้น: true) API_SSE_BUFFER_SIZE หน้าต่างการเล่นซ้ำ Last-Event-ID ในหน่วยของ event id (ค่าเริ่มต้น: 1000; 0 = ไม่เล่นซ้ำ) API_TOKENS_PATH พาธของไฟล์ YAML สำหรับ bearer token secret (ค่าเริ่มต้น: /run/secrets/api-tokens.yaml) CORS_ALLOWED_HEADERS รายการ request header ของ CORS ที่อนุญาต คั่นด้วยเครื่องหมายจุลภาค CORS_ALLOWED_METHODS รายการเมธอดของ CORS ที่อนุญาต คั่นด้วยเครื่องหมายจุลภาค CORS_ALLOWED_ORIGINS รายการ origin ของ CORS ที่อนุญาต คั่นด้วยเครื่องหมายจุลภาค หากว่างหมายถึงไม่อนุญาตการเข้าถึงข้ามโดเมน CORS_EXPOSE_HEADERS รายการส่วนหัวการตอบกลับ (response headers) ที่คั่นด้วยเครื่องหมายจุลภาค ซึ่งไคลเอนต์ของเบราว์เซอร์อาจอ่านได้ CORS_MAX_AGE_SECONDS ระยะเวลาแคชของ CORS preflight เป็นวินาที (ค่าเริ่มต้น: 3600) DATABASE_BUSY_TIMEOUT_MS เวลารอ (busy timeout) ของ SQLite สำหรับเส้นทางการเริ่มต้นระบบ หน่วยมิลลิวินาที (ค่าเริ่มต้น: 5000, ขั้นต่ำ 100) DATABASE_MAX_CONNECTIONS จำนวนการเชื่อมต่อของ read pool (ค่าเริ่มต้น: 10, จำกัดช่วงที่ 1-64) DATABASE_SHOW_SQL บันทึกทุกคำสั่ง SQL ที่ระดับ DEBUG (ค่าเริ่มต้น: false) DB_COMPACT_ON_UPGRADE รันการบีบอัดข้อมูลเริ่มต้นครั้งเดียวหลังอัปเกรด (ค่าเริ่มต้น: true; false เพื่อปิดการทำงาน) FLYWAY_REPAIR รัน Flyway repair แล้วออกจากโปรแกรม (ค่าเริ่มต้น: false) FTS_INTEGRITY การตรวจสอบความสมบูรณ์ของ FTS5 ตอนเริ่มต้น: startup (ค่าเริ่มต้น) หรือ off MCP_ALLOWED_HOSTS รายการ Host header ที่อนุญาต คั่นด้วยเครื่องหมายจุลภาค เพิ่มเติมจากค่าเริ่มต้นของ loopback (การขนส่งแบบ HTTP) MCP_ALLOW_UNAUTHENTICATED เลือกใช้ MCP_TRANSPORT=http ด้วย API_ENABLED=false โดยให้บริการ /mcp ในฐานะผู้ใช้ภายในเครื่อง (ค่าเริ่มต้น: false) MCP_HTTP_HOST ที่อยู่ bind เมื่อใช้การขนส่งแบบ http (ค่าเริ่มต้น: 0.0.0.0) MCP_SERVER_NAME ชื่อบริการที่รายงานในข้อมูลระบุตัวตน MCP และข้อมูลบริการ REST (ค่าเริ่มต้น: mcp-task-orchestrator-current) MCP_TOOL_PROFILE โปรไฟล์เครื่องมือผ่าน stdio: orchestration (ค่าเริ่มต้น), knowledge หรือ director READINESS_FILE ไฟล์มาร์กเกอร์ความพร้อมที่ถูกสัมผัสหนึ่งครั้งเมื่อการเริ่มต้นสำเร็จ (ค่าเริ่มต้น: /tmp/mcp-task-orchestrator.ready) RESOURCE_LEASES_ENFORCED สวิตช์ปิดการทำงานทั้งระบบสำหรับเกตการจอง resource (ค่าเริ่มต้น: true) RETENTION_AUDIT_EVENTS_DAYS จำนวนวันที่จะเก็บแถวเหตุการณ์ประเภทการตรวจสอบ (audit) ไว้ (ค่าเริ่มต้น: 0 = เก็บตลอดไป) RETENTION_CALL_LOG_DAYS จำนวนวันที่จะเก็บแถวของ call_log ที่ถูกรวมแล้ว (ค่าเริ่มต้น: 90) RETENTION_EVENTS_DAYS จำนวนวันที่จะเก็บแถวเหตุการณ์ประเภทกิจกรรม (activity) ไว้ (ค่าเริ่มต้น: 180) RETENTION_LEASE_HISTORY_DAYS จำนวนวันที่จะเก็บช่วงเวลาที่ปิดแล้วของ resource_lease_history (ค่าเริ่มต้น: 365) SCHEMA_MODE เฟสของ schema: migrate (ค่าเริ่มต้น) ใช้การย้ายข้อมูลที่รอดำเนินการ; validate ปฏิเสธเวอร์ชันที่รอดำเนินการหรือเวอร์ชันในอนาคต UPGRADE_BACKUP สำเนาฐานข้อมูลเวอร์ชัน 3.x ที่ตรวจสอบแล้วก่อนการอัปเกรด (.pre-4.0..bak) ซึ่งสร้างก่อนการย้ายข้อมูล 4.0 รอบแรก หากการคัดลอกล้มเหลว การเริ่มต้นระบบจะล้มเหลว ตั้งเป็น false เพื่อข้าม (ค่าเริ่มต้น: true) คำอธิบายแปลอัตโนมัติ ชื่อตัวแปรคงตามต้นฉบับ ถ้าไม่แน่ใจให้ดูต้นฉบับ
ชื่อเมนูตรวจกับหน้าช่วยเหลือของ VS Code เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป
โปรแกรมอื่นที่ใช้ MCP ได้ เช่น Windsurf, Zed หรือ Gemini CLI มีวิธีเพิ่มต่างกัน ดูวิธีของแต่ละตัวในหน้ารวมโปรแกรม
ค่าตั้งแบบไฟล์ JSON อยู่ในหัวข้อ “สำหรับคนเขียนโค้ด” ด้านล่าง
Claude Code
claude mcp add --scope user task-orchestrator --env API_ALLOW_QUERY_TOKEN_FOR_SSE='ใส่ค่าของคุณ' --env API_ALLOW_UNAUTHENTICATED='ใส่ค่าของคุณ' --env API_AUTH_MODE='ใส่ค่าของคุณ' --env API_JWKS_MAX_TOKEN_LIFETIME_SECONDS='ใส่ค่าของคุณ' --env API_SSE_AUTH_CHECK_INTERVAL_SECONDS='ใส่ค่าของคุณ' -- docker run -i --rm -e API_ALLOW_QUERY_TOKEN_FOR_SSE -e API_ALLOW_UNAUTHENTICATED -e API_AUTH_MODE -e API_JWKS_MAX_TOKEN_LIFETIME_SECONDS -e API_SSE_AUTH_CHECK_INTERVAL_SECONDS ghcr.io/jpicklyk/task-orchestrator:4.0.2Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"task-orchestrator": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"API_ALLOW_QUERY_TOKEN_FOR_SSE",
"-e",
"API_ALLOW_UNAUTHENTICATED",
"-e",
"API_AUTH_MODE",
"-e",
"API_JWKS_MAX_TOKEN_LIFETIME_SECONDS",
"-e",
"API_SSE_AUTH_CHECK_INTERVAL_SECONDS",
"ghcr.io/jpicklyk/task-orchestrator:4.0.2"
],
"env": {
"API_ALLOW_QUERY_TOKEN_FOR_SSE": "ใส่ค่าของคุณ",
"API_ALLOW_UNAUTHENTICATED": "ใส่ค่าของคุณ",
"API_AUTH_MODE": "ใส่ค่าของคุณ",
"API_JWKS_MAX_TOKEN_LIFETIME_SECONDS": "ใส่ค่าของคุณ",
"API_SSE_AUTH_CHECK_INTERVAL_SECONDS": "ใส่ค่าของคุณ"
}
}
}
}Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"task-orchestrator": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"API_ALLOW_QUERY_TOKEN_FOR_SSE",
"-e",
"API_ALLOW_UNAUTHENTICATED",
"-e",
"API_AUTH_MODE",
"-e",
"API_JWKS_MAX_TOKEN_LIFETIME_SECONDS",
"-e",
"API_SSE_AUTH_CHECK_INTERVAL_SECONDS",
"ghcr.io/jpicklyk/task-orchestrator:4.0.2"
],
"env": {
"API_ALLOW_QUERY_TOKEN_FOR_SSE": "ใส่ค่าของคุณ",
"API_ALLOW_UNAUTHENTICATED": "ใส่ค่าของคุณ",
"API_AUTH_MODE": "ใส่ค่าของคุณ",
"API_JWKS_MAX_TOKEN_LIFETIME_SECONDS": "ใส่ค่าของคุณ",
"API_SSE_AUTH_CHECK_INTERVAL_SECONDS": "ใส่ค่าของคุณ"
}
}
}
}VS Code (mcp.json)
{
"servers": {
"task-orchestrator": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"API_ALLOW_QUERY_TOKEN_FOR_SSE",
"-e",
"API_ALLOW_UNAUTHENTICATED",
"-e",
"API_AUTH_MODE",
"-e",
"API_JWKS_MAX_TOKEN_LIFETIME_SECONDS",
"-e",
"API_SSE_AUTH_CHECK_INTERVAL_SECONDS",
"ghcr.io/jpicklyk/task-orchestrator:4.0.2"
],
"env": {
"API_ALLOW_QUERY_TOKEN_FOR_SSE": "ใส่ค่าของคุณ",
"API_ALLOW_UNAUTHENTICATED": "ใส่ค่าของคุณ",
"API_AUTH_MODE": "ใส่ค่าของคุณ",
"API_JWKS_MAX_TOKEN_LIFETIME_SECONDS": "ใส่ค่าของคุณ",
"API_SSE_AUTH_CHECK_INTERVAL_SECONDS": "ใส่ค่าของคุณ"
}
}
}
}DATABASE_PATH envAGENT_CONFIG_DIR envMCP_TRANSPORT envMCP_HTTP_PORT envMCP_SESSION_IDLE_TIMEOUT_MINUTES envLOG_LEVEL envLOG_FILE envAPI_ALLOW_QUERY_TOKEN_FOR_SSE ความลับ จำเป็น envAPI_ALLOW_UNAUTHENTICATED จำเป็น envAPI_AUTH_MODE ความลับ จำเป็น envAPI_ENABLED envAPI_JWKS_ALGORITHMS envAPI_JWKS_ALLOW_INSECURE_URL envAPI_JWKS_AUDIENCE envAPI_JWKS_CACHE_TTL_SECONDS envAPI_JWKS_ISSUER envAPI_JWKS_MAX_STALE_SECONDS envAPI_JWKS_MAX_TOKEN_LIFETIME_SECONDS ความลับ จำเป็น envAPI_JWKS_URL envAPI_REDACT_NOTE_ATTRIBUTION envAPI_SSE_AUTH_CHECK_INTERVAL_SECONDS ความลับ จำเป็น envAPI_SSE_BUFFER_SIZE envAPI_TOKENS_PATH envCORS_ALLOWED_HEADERS envCORS_ALLOWED_METHODS envCORS_ALLOWED_ORIGINS envCORS_EXPOSE_HEADERS envCORS_MAX_AGE_SECONDS envDATABASE_BUSY_TIMEOUT_MS envDATABASE_MAX_CONNECTIONS envDATABASE_SHOW_SQL envDB_COMPACT_ON_UPGRADE envFLYWAY_REPAIR envFTS_INTEGRITY envMCP_ALLOWED_HOSTS envMCP_ALLOW_UNAUTHENTICATED envMCP_HTTP_HOST envMCP_SERVER_NAME envMCP_TOOL_PROFILE envREADINESS_FILE envRESOURCE_LEASES_ENFORCED envRETENTION_AUDIT_EVENTS_DAYS envRETENTION_CALL_LOG_DAYS envRETENTION_EVENTS_DAYS envRETENTION_LEASE_HISTORY_DAYS envSCHEMA_MODE envUPGRADE_BACKUP envคำอธิบายแปลอัตโนมัติ ชื่อตัวแปรคงตามต้นฉบับ ถ้าไม่แน่ใจให้ดูต้นฉบับ
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
oci: ghcr.io/jpicklyk/task-orchestrator:4.0.2ดูจากแบบการต่อของ server ตัวนี้ และเอกสารของผู้ทำโปรแกรมแต่ละตัว ตรวจเมื่อ 10 พ.ย. 2569
ติดตั้งบนเครื่องได้ใน
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 14 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub jpicklyk ซึ่งเป็นเจ้าของ repo
มีการแก้โค้ดล่าสุด 3 วันที่ผ่านมา
ใช้ MIT
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
ถาม แชร์เคล็ดลับ หรือแจ้งว่าใช้ไม่ได้ เรียงตามที่คนกดว่ามีประโยชน์
ยังไม่มีใครโพสต์ ถามหรือแชร์เป็นคนแรกได้เลย
ข้อความในส่วนนี้เขียนโดยผู้ใช้ ไม่ใช่ทีม PopNx
ยังไม่มีรีวิว
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 3 จาก 3 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: API_ALLOW_QUERY_TOKEN_FOR_SSE, API_AUTH_MODE, API_JWKS_MAX_TOKEN_LIFETIME_SECONDS, API_SSE_AUTH_CHECK_INTERVAL_SECONDS
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด 3 วันที่ผ่านมา และส่งรุ่นล่าสุด (4.0.2) เข้า registry 3 วันที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Docker ในเครื่องด้วย
ในหมวดเดียวกันมี Puter MCP, XcodeBuildMCP, XcodeBuildMCP
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
Puter MCP enables AI tools to interact with Puter: manage files, websites, workers, and more
ให้ AI จัดการโปรเจกต์ Xcode สั่ง build และใช้ iOS Simulator
XcodeBuildMCP provides tools for Xcode project management, simulator management, and app utilities.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
Server-enforced workflow discipline for AI agents.
Prompt-based frameworks hope the LLM follows instructions. This one blocks the call if it doesn't.
Task Orchestrator is an MCP server that gives AI coding agents a persistent work item graph with quality gates enforced by the server, not the prompt. It is built for developers running multi-agent or multi-session coding workflows: an orchestrator dispatching sub-agents, a fresh session picking up yesterday's work, or an autonomous loop draining a backlog. It ships as a Docker image, works with any MCP client, and has an optional Claude Code plugin that adds skills and hooks on top.
New here? Start with the [illustrated field guide](https://jpicklyk.github.io/task-orchestrator/field-guide/). It explains the ideas on this page in short visual pages, several of them interactive: fire triggers at a phase gate, click a work breakdown through its dependencies, and watch a schema resolve.
Multi-agent workflows need infrastructure the model doesn't provide. When an orchestrator dispatches sub-agents across sessions, there's no built-in way to enforce what documentation must exist before work starts, track which agent made which change, or guarantee dependency ordering across a work breakdown. These are structural concerns — they belong in the server, not in prompts.
Task Orchestrator puts them in the server. If a required design note isn't filled, advance returns an error naming the missing note. If an upstream dependency isn't complete, the transition is blocked. Every transition and note records who made it. A new session recovers the full state in one call instead of replaying a conversation. And the rules are YAML config, not hardcoded prompts - change them without changing code.
Morning — new session, new agent, zero context:
Agent: items_read(select="context") → 2 items in work, 1 blocked, 1 stalled (missing implementation-notes) Agent: items_read(select="history", since="2026-01-14T17:00:00Z") → Recent transitions show orchestrator-1 dispatched 3 sub-agents yesterday
Agent: advance(ops=[{ op: "transition", itemId: "a3f28c01", trigger: "start" }]) -> gate_blocked: "Item a3f28c01-... is missing 1 required notes." (detail.missing: requirements)
Agent: notes_write(ops=[{ op: "upsert", itemId: "a3f28c01", key: "requirements", role: "queue", body: "Validate email format, enforce password complexity..." }]) -> results[0]: { ok: true, id: "...", version: 1, created: true }
Agent: advance(ops=[{ op: "transition", itemId: "a3f28c01", trigger: "start" }]) → queue → work. Caller recorded. No context rebuilding.
Prerequisite: Docker installed and running.
The simplest setup is a per-session STDIO container: no port, no daemon, no REST API. Add it to your project's .mcp.json:
{
"mcpServers": { "mcp-task-orchestrator": { "command": "docker", "args": [ "run", "--rm", "-i", "-v", "mcp-task-data:/app/data", "ghcr.io/jpicklyk/task-orchestrator:latest" ] } } }
Claude Code users can register the same shape from the CLI instead:
claude mcp add-json mcp-task-orchestrator '{
"command": "docker", "args": ["run", "--rm", "-i", "-v", "mcp-task-data:/app/data", "ghcr.io/jpicklyk/task-orchestrator:latest"] }'
Restart your client. The server creates its SQLite database on first run. Without a config file every tool works in schema-free mode: no gates, no required notes. Add schemas when you want enforcement.
Create .taskorchestrator/config.yaml in your project (see Workflow Enforcement for an example, or use the plugin's /task-orchestrator:manage-schemas skill) and mount that folder into the container:
{
"mcpServers": { "mcp-task-orchestrator": { "command": "docker", "args": [ "run", "--rm", "-i", "-v", "mcp-task-data:/app/data", "-v", "/absolute/path/to/your/project/.taskorchestrator:/project/.taskorchestrator:ro", "-e", "AGENT_CONFIG_DIR=/project", "ghcr.io/jpicklyk/task-orchestrator:latest" ] } } }
At every start the server imports the mounted file into its database (the server-config-import boot step) and then serves the stored copy; editing the file takes effect on the next restart. If several containers share one data volume but mount different files, the last one to boot wins; use step 3 for multi-project setups.
Use an absolute host path. Claude Code's .mcp.json expands only environment variables (${VAR} and ${VAR:-default}), so editor-style placeholders such as ${workspaceFolder} are not substituted. Only the .taskorchestrator/ folder is exposed; the server has no access to the rest of your project.
If you work across several repositories, run one persistent server with the REST API enabled. Each project's .taskorchestrator/config.yaml then syncs into it automatically through the plugin's config-sync hook: no per-project container, no manual mount, and config changes hot-reload without a restart. The plugin's /task-orchestrator:configure-server skill renders this setup interactively; the manual equivalent is:
docker pull ghcr.io/jpicklyk/task-orchestrator:latest
docker run -d --name mcp-task-orchestrator-http --restart unless-stopped \ -v mcp-task-data:/app/data \ -e MCP_TRANSPORT=http -e API_ENABLED=true -e API_AUTH_MODE=none -e API_ALLOW_UNAUTHENTICATED=true \ -p 127.0.0.1:3001:3001 \ ghcr.io/jpicklyk/task-orchestrator:latest
Register it in .mcp.json using the HTTP shape:
{
"mcpServers": { "mcp-task-orchestrator": { "type": "http", "url": "http://localhost:3001/mcp" } } }
And export the client-side variable that tells config-sync where the server is (without it, config-sync silently does nothing):
export TASK_ORCHESTRATOR_API_URL=http://localhost:3001
Alternatively, a client.json (apiUrl only, no token) supplies the URL. Project-mode /task-orchestrator:init writes it beside the project config, only for a loopback server and only as a bare origin with no path, query or fragment (add .taskorchestrator/client.json to .gitignore, the URL is machine-specific); /task-orchestrator:init --user writes the user-level file, which works for any host. The order is the environment variable, then the project-level file, then the user-level file. /task-orchestrator:init sets up a project root for the current directory, and /task-orchestrator:init --user creates a personal root that serves every directory without its own config.
SECURITY: unauthenticated mode (REST and
/mcpalike) means anyone who can reach the port has full
read/write/delete access, as the single
localprincipal. This is only safe because the port is published loopback-only (-p 127.0.0.1:3001:3001).
Never publish it on
0.0.0.0or a wider interface. For shared or networked deployments use bearer
tokens or JWKS auth — see Fleet Deployment.
Prefer to run without Docker? CONTRIBUTING.md covers building the fat JAR from source.
Every work item has a role: queue (not started), work (in progress), review (optional, opt-in per schema), blocked (an upstream dependency is unmet), and terminal (done or cancelled). Each role maps to one or more configurable statuses. Agents move items with the advance tool's transition op rather than editing status directly, and that call is where every gate is checked. Schemas attach note requirements to roles: a note declared with role: queue must exist before the item can leave the queue phase.
Illustrated: Phase Gates draws the roles and triggers as a track and includes a gate simulator.
Schemas define what agents must produce at each phase, and the server blocks progression until it's done. They also set a planning floor: when an agent enters plan mode, the schema tells it what documentation must exist before implementation can start, shaping the plan itself.
# .taskorchestrator/config.yaml
work_item_schemas: feature-task: notes:
With this schema, advance transition with trigger: "start" from queue requires requirements to be filled. The server returns a gate_blocked error listing exactly which notes are missing.
The guidance field provides authoring instructions surfaced at the right moment: when an agent is about to fill that note, the response names it as guidanceKey (with the skillPointer when the note names a skill), and items_read schema returns the text. The skill field goes further, naming a skill the agent should invoke before filling the note so the evaluation follows a defined framework rather than freeform prose.
Traits add cross-cutting note requirements to any schema without duplicating definitions. Define a trait once, apply it to any item type:
traits:
needs-security-review: notes:
work_item_schemas: feature-task: default_traits:
Every feature-task item automatically inherits the security-assessment requirement. Traits can also be applied per item via the traits array of an items_write create or update, so a task touching authentication gets needs-security-review while a CSS cleanup doesn't.
Illustrated: Schemas and Traits shows how a type, its default traits and per-item traits resolve into one gate. Seats covers splitting a phase between several agents.
Everything is a WorkItem in a hierarchical graph. Items nest to any depth and are connected by typed dependency edges. Create an entire work breakdown atomically:
{ "ops": [{
"op": "create_tree", "root": { "title": "User Authentication", "type": "feature-task" }, "children": [ { "ref": "schema", "title": "Database schema", "type": "feature-task" }, { "ref": "api", "title": "Login API", "type": "feature-task" }, { "ref": "tests", "title": "Integration tests", "type": "feature-task" } ], "deps": [ { "from": "schema", "