dodo-mcp 1.0.4 → 1.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # DODO MCP
2
2
 
3
- **DODO MCP 1.0.4** คือ MCP server แบบ local-first สำหรับให้ AI ช่วยพัฒนา software โดยทำงานกับ workspace ที่เจ้าของเลือก ค่าเริ่มต้นเป็นโหมดส่วนตัวแบบเพิ่มโปรเจกต์แล้วใช้ได้ทันที และยังมีโหมด managed สำหรับแยก workspace ACL/trust แบบละเอียด
3
+ **DODO MCP 1.0.5** คือ MCP server แบบ local-first สำหรับให้ AI ช่วยพัฒนา software โดยทำงานกับ workspace ที่เจ้าของเลือก ค่าเริ่มต้นเป็นโหมดส่วนตัวแบบเพิ่มโปรเจกต์แล้วใช้ได้ทันที และยังมีโหมด managed สำหรับแยก workspace ACL/trust แบบละเอียด
4
4
 
5
5
  ## จุดเด่น
6
6
 
@@ -35,6 +35,62 @@ dodo setup --check
35
35
  dodo --cli
36
36
  ```
37
37
 
38
+ ## เชื่อม ChatGPT ภายในไม่กี่นาที
39
+
40
+ ChatGPT ต้องเชื่อมผ่าน **Public MCP URL** ของ DODO ซึ่งลงท้ายด้วย `/mcp` ส่วน
41
+ `https://chatgpt.com/connector_platform_oauth_redirect` เป็น **OAuth callback**
42
+ สำหรับลงทะเบียน client เท่านั้น ไม่ใช่ MCP Server URL
43
+
44
+ ก่อนเริ่มให้อัปเดต CLI แล้วตั้ง Cloudflare Tunnel ของ DODO โดยแทน
45
+ `https://dodo.example.com` ด้วย public hostname ของคุณ Tunnel ต้อง route ทุก path
46
+ ไปที่ `http://127.0.0.1:21730`
47
+
48
+ ```bash
49
+ npm install -g dodo-mcp@latest
50
+ dodo --version
51
+ dodo tunnel configure \
52
+ --tunnel \
53
+ --public-url https://dodo.example.com \
54
+ --os-credential
55
+ ```
56
+
57
+ ลงทะเบียน static OAuth client ด้วยคำสั่งด้านล่าง คัดลอกคำสั่งตรงจาก code block
58
+ โดยไม่เติม `\` หน้า `--` และไม่ครอบ URL ด้วยรูปแบบ Markdown `[ข้อความ](URL)`:
59
+
60
+ ```bash
61
+ dodo auth add-client \
62
+ --name "ChatGPT" \
63
+ --redirect-uri "https://chatgpt.com/connector_platform_oauth_redirect"
64
+ ```
65
+
66
+ คำสั่งจะแสดง `client_id` และ `client_secret` ครั้งเดียว ให้เก็บไว้ในหน้าตั้งค่า
67
+ ChatGPT เท่านั้น ห้ามส่งลงแชต, issue หรือ Git จากนั้นเปิด DODO ค้างไว้:
68
+
69
+ ```bash
70
+ dodo start
71
+ ```
72
+
73
+ ใน ChatGPT web ให้เปิด **Settings → Security and login → Developer mode** แล้วไปที่
74
+ [ChatGPT Plugins](https://chatgpt.com/plugins) กด `+` และกรอก:
75
+
76
+ - **MCP Server URL:** `https://dodo.example.com/mcp`
77
+ - **Authentication:** `OAuth`
78
+ - **OAuth Client ID / Secret:** ค่าที่ได้จาก `dodo auth add-client`
79
+
80
+ เมื่อกด Connect/Create/Scan Tools และหน้า authorization กำลังรอ ให้เปิด terminal
81
+ อีกหน้าต่างเพื่อตรวจ request แล้วอนุมัติ ID ที่ตรงกับหน้า browser:
82
+
83
+ ```bash
84
+ dodo auth pending
85
+ dodo auth approve REQUEST_ID
86
+ ```
87
+
88
+ กลับไปที่ ChatGPT รอให้ scan เสร็จ เริ่มแชตใหม่ เลือก DODO ใน Developer mode แล้ว
89
+ ทดสอบด้วย `ใช้ DODO เรียก project_overview` HTTP จะแสดง Compact surface ประมาณ 19
90
+ tools และเข้าถึง operations ที่เหลือผ่าน `dodo_discover` กับ gateway ตามสิทธิ์เดิม
91
+
92
+ ดูขั้นตอนเต็มและวิธีแก้ OAuth/Tunnel ที่ [เชื่อม Web clients](docs/WEB_CLIENTS.md)
93
+
38
94
  `dodo --cli` เปิดเมนู local owner สำหรับเลือก/เพิ่มโปรเจกต์ เปิด MCP + Local Config +
39
95
  Tunnel, เปิด Remote Config ชั่วคราว 1 ชั่วโมง และรัน setup รวม `cloudflared` โดยไม่ต้อง
40
96
  `cd` เข้าโปรเจกต์
@@ -0,0 +1,38 @@
1
+ # DODO MCP 1.0.5
2
+
3
+ รุ่น 1.0.5 เพิ่มคู่มือเชื่อม DODO กับ ChatGPT ที่ทำตามได้จากหน้าแรกของโปรเจกต์
4
+ และขยายเอกสาร Web Clients โดยไม่เปลี่ยน runtime หรือ security model
5
+
6
+ ## การเปลี่ยนแปลง
7
+
8
+ - เพิ่ม Quick Start สำหรับ ChatGPT ใน README
9
+ - ระบุว่า Public MCP URL ต้องลงท้ายด้วย `/mcp`
10
+ - ระบุว่า `https://chatgpt.com/connector_platform_oauth_redirect` เป็น OAuth callback
11
+ สำหรับ `dodo auth add-client` ไม่ใช่ MCP Server URL
12
+ - เพิ่มขั้นตอนเปิด Developer mode, กรอก static OAuth credentials, scan tools และ
13
+ อนุมัติผ่าน `dodo auth pending` / `dodo auth approve REQUEST_ID`
14
+ - เพิ่ม troubleshooting สำหรับ Tunnel route, OAuth discovery, callback mismatch,
15
+ pending request และ client tool cache
16
+
17
+ ## อัปเดต
18
+
19
+ ```bash
20
+ npm install -g dodo-mcp@1.0.5
21
+ dodo --version
22
+ ```
23
+
24
+ หลังอัปเดตให้ restart DODO แล้ว Refresh หรือสร้าง MCP connection ใน ChatGPT ใหม่
25
+ เมื่อ client ยังเก็บ catalog หรือ metadata เดิม
26
+
27
+ ## Security
28
+
29
+ รุ่นนี้ไม่ลด OAuth, target/workspace authority, trust, approvals, path/secret guards,
30
+ expected-hash protection, command sandbox หรือ Tunnel credential policy คู่มือย้ำว่า
31
+ ห้ามส่ง client secret, OAuth token, Tunnel token หรือ Local Config URL ลง chat และ
32
+ ให้ตรวจ request ID/วลีบน browser ก่อน owner อนุมัติ
33
+
34
+ ## Verification
35
+
36
+ Automated release gate ตรวจ source, packaging และ fresh tarball install แยกจาก manual
37
+ ChatGPT acceptance การเห็นคู่มือหรือผ่าน server tests ไม่ถือว่า ChatGPT live connection
38
+ ผ่านจนกว่าจะเชื่อม public hostname และทำ OAuth/tool call จริง
@@ -1,5 +1,18 @@
1
1
  # DODO MCP — Release Notes
2
2
 
3
+ ## 1.0.5 — ChatGPT connection guide
4
+
5
+ - เพิ่มขั้นตอนเชื่อม ChatGPT ไว้บนหน้าแรก ตั้งแต่ Public MCP URL, Cloudflare Tunnel,
6
+ static OAuth client, Developer mode, tool scan และ owner approval
7
+ - แยกความหมายของ MCP Server URL (`https://HOST/mcp`) ออกจาก OAuth callback
8
+ (`https://chatgpt.com/connector_platform_oauth_redirect`) อย่างชัดเจน
9
+ - เพิ่มคำสั่ง `dodo auth add-client` ที่คัดลอกไปรันได้โดยไม่มี Markdown ปน พร้อม
10
+ troubleshooting สำหรับ empty pending request, redirect mismatch, OAuth 404 และ cache
11
+ - ไม่มีการเปลี่ยน runtime, tool surface, OAuth policy หรือ permission model
12
+
13
+ ติดตั้งหรืออัปเดตด้วย `npm install -g dodo-mcp@1.0.5` แล้ว restart DODO process
14
+ ก่อน Refresh หรือสร้าง ChatGPT MCP connection ใหม่
15
+
3
16
  ## 1.0.4 — Windows setup guidance and actionable recovery
4
17
 
5
18
  - เพิ่มคู่มือ Windows Setup สำหรับติดตั้ง components, `cloudflared`, Desktop/Web
@@ -1,15 +1,126 @@
1
- # DODO MCP — Web Clients
2
-
3
- ## Connection checklist
4
-
5
- 1. รัน DODO และตั้ง public HTTPS origin
6
- 2. ตรวจว่า URL ลงท้ายด้วย `/mcp`
7
- 3. เพิ่ม static OAuth client ด้วย exact callback URL
8
- 4. เลือก OAuth ใน web client
9
- 5. ทำ authorization ใน browser
10
- 6. approve interaction ผ่าน `dodo auth pending` และ `dodo auth approve ID`
11
- 7. scan tools
12
- 8. เรียก `project_overview` และตรวจ `toolSurface`
1
+ # DODO MCP — เชื่อม ChatGPT และ Web Clients
2
+
3
+ ## สิ่งที่ต้องแยกให้ออกก่อน
4
+
5
+ | ค่า | ใช้ตรงไหน | ตัวอย่าง |
6
+ |---|---|---|
7
+ | Public origin | โดเมน HTTPS ที่ Cloudflare Tunnel ของเจ้าของให้บริการ | `https://dodo.example.com` |
8
+ | MCP Server URL | กรอกในหน้าเพิ่ม MCP ของ ChatGPT | `https://dodo.example.com/mcp` |
9
+ | OAuth callback | ลงทะเบียนกับ DODO ผ่าน `auth add-client` | `https://chatgpt.com/connector_platform_oauth_redirect` |
10
+
11
+ OAuth callback ไม่ใช่ URL สำหรับเปิดหรือติดตั้ง MCP และต้องคัดลอกเป็น URL ธรรมดา
12
+ ห้ามใส่ `[https://...](https://...)` เพราะนั่นเป็น Markdown ไม่ใช่ URI
13
+
14
+ ## เชื่อม ChatGPT แบบครบขั้นตอน
15
+
16
+ ### 1. อัปเดตและตรวจ DODO
17
+
18
+ ```bash
19
+ npm install -g dodo-mcp@latest
20
+ dodo --version
21
+ dodo setup --check
22
+ ```
23
+
24
+ ### 2. ตั้ง Public MCP ผ่าน DODO Tunnel
25
+
26
+ เจ้าของต้องสร้าง Cloudflare Tunnel, public hostname และ DNS ไว้ก่อน โดย route
27
+ **ทุก path** ไปที่ `http://127.0.0.1:21730` ห้าม route Local Config `21731` หรือ
28
+ metrics `21732` ออกสาธารณะ
29
+
30
+ ```bash
31
+ dodo tunnel configure \
32
+ --tunnel \
33
+ --public-url https://dodo.example.com \
34
+ --os-credential
35
+ ```
36
+
37
+ แทน `https://dodo.example.com` ด้วย hostname จริงของคุณ Prompt จะรับ Tunnel token
38
+ ผ่าน OS credential store; token ไม่ควรอยู่ใน command line, chat หรือ repository
39
+
40
+ ### 3. ลงทะเบียน ChatGPT OAuth client
41
+
42
+ คัดลอกคำสั่งนี้ตรง ๆ อย่าเติม `\` หน้า `--` และอย่าวาง Markdown link แทน URL:
43
+
44
+ ```bash
45
+ dodo auth add-client \
46
+ --name "ChatGPT" \
47
+ --redirect-uri "https://chatgpt.com/connector_platform_oauth_redirect"
48
+ ```
49
+
50
+ DODO รองรับ RFC 9207 issuer identification จึงใช้ stable callback นี้ได้ คำสั่งจะ
51
+ แสดง `client_id` และ `client_secret` เพียงครั้งเดียว เก็บทั้งสองค่าใน client config
52
+ ของ ChatGPT และห้ามส่งให้ผู้อื่น หากทำหายให้สร้าง client ใหม่แทนการค้น secret เดิม
53
+
54
+ ### 4. เปิด DODO
55
+
56
+ ```bash
57
+ dodo start
58
+ ```
59
+
60
+ ให้ terminal นี้เปิดค้างไว้ ใน Tunnel mode DODO จะเริ่มและดูแล `cloudflared` ของตัวเอง
61
+ ตรวจสถานะได้โดยไม่เปิดเผย credential:
62
+
63
+ ```bash
64
+ dodo tunnel status
65
+ dodo tunnel doctor
66
+ ```
67
+
68
+ ### 5. เพิ่ม MCP ใน ChatGPT
69
+
70
+ 1. เปิด ChatGPT web แล้วไปที่ **Settings → Security and login**
71
+ 2. เปิด **Developer mode**
72
+ 3. ไปที่ <https://chatgpt.com/plugins> แล้วกด `+`
73
+ 4. ตั้งชื่อ เช่น `DODO MCP`
74
+ 5. กรอก **MCP Server URL** เป็น `https://dodo.example.com/mcp`
75
+ 6. เลือก Authentication เป็น **OAuth**
76
+ 7. กรอก OAuth Client ID และ Client Secret ที่ได้จากขั้นตอน 3
77
+ 8. กด Connect, Create หรือ Scan Tools ตามข้อความที่หน้า ChatGPT แสดง
78
+
79
+ ชื่อเมนูย่อยอาจเปลี่ยนตามแผนบัญชีหรือ workspace policy แต่ MCP URL ต้องเป็น public
80
+ HTTPS URL ที่ลงท้ายด้วย `/mcp` และ Authentication ต้องเป็น OAuth เสมอ
81
+
82
+ ### 6. อนุมัติ OAuth จากเครื่องเจ้าของ
83
+
84
+ หลัง ChatGPT เริ่ม authorization และหน้า browser กำลังรอ เปิด terminal อีกหน้าต่าง:
85
+
86
+ ```bash
87
+ dodo auth pending
88
+ ```
89
+
90
+ ตรวจ request ID และวลีเทียบกับหน้า browser แล้วอนุมัติเฉพาะรายการที่ตรงกัน:
91
+
92
+ ```bash
93
+ dodo auth approve REQUEST_ID
94
+ ```
95
+
96
+ ไม่ต้องใส่ `--` หน้า ID หาก `pending` ไม่พบรายการ แปลว่า ChatGPT ยังไม่ได้เริ่ม
97
+ authorization, DODO ไม่ได้รัน หรือ public OAuth routes เข้าไม่ถึง
98
+
99
+ ### 7. ทดสอบใน ChatGPT
100
+
101
+ กลับไปให้ tool scan เสร็จ เริ่ม conversation ใหม่ เลือก DODO จาก Developer mode แล้วส่ง:
102
+
103
+ ```text
104
+ ใช้ DODO MCP เรียก project_overview แล้วรายงานชื่อโปรเจกต์ toolSurface และจำนวน tools
105
+ ```
106
+
107
+ หากยังไม่มี project ให้เปิด `dodo --cli` หรือ Local Config URL ที่ startup แสดง แล้ว
108
+ เพิ่ม absolute path ภายหลังได้ OAuth client ไม่ผูกกับ CWD ที่ใช้รัน `auth add-client`
109
+
110
+ ## แก้ปัญหาที่พบบ่อย
111
+
112
+ | อาการ | วิธีตรวจและแก้ |
113
+ |---|---|
114
+ | ChatGPT ต่อไม่ได้ | รัน `dodo tunnel doctor` และตรวจว่า hostname route ทุก path ไป `127.0.0.1:21730` |
115
+ | Redirect URI mismatch | ลบ client ที่ลงทะเบียนผิดแล้วสร้างใหม่ด้วย callback แบบ exact string ตาม code block |
116
+ | `dodo auth pending` ว่าง | กด Connect/Scan Tools ใน ChatGPT ก่อน และให้ `dodo start` ยังรันอยู่ |
117
+ | ได้ 404 จาก OAuth หรือ discovery | Tunnel route มาเฉพาะ `/mcp`; แก้ให้ route ทุก path เพราะ OAuth ใช้ `/.well-known/...`, `/auth`, `/interaction`, `/token` และ `/jwks` ด้วย |
118
+ | เห็น tools เก่า/เรียกแล้ว not found | เปิด connection ใน ChatGPT แล้ว Refresh; หาก cache ยังไม่เปลี่ยนให้ลบและสร้าง connection ใหม่ |
119
+ | ยังไม่เห็น Sub-agent operations | เปิด **Settings → Sub-agent tools ใน MCP** ใน Local Config แล้ว restart DODO และ rescan/recreate connection |
120
+
121
+ ห้ามส่ง `client_secret`, access token, refresh token, Cloudflare Tunnel token หรือ URL
122
+ ของ Local Config ให้ผู้ช่วย AI เพื่อแก้ปัญหา ใช้เฉพาะสถานะและ redacted logs จาก
123
+ `dodo tunnel status`, `dodo tunnel doctor` และ `dodo tunnel logs`
13
124
 
14
125
  ## Compact behavior
15
126
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dodo-mcp",
3
- "version": "1.0.4",
3
+ "version": "1.0.5",
4
4
  "author": "Arthittakun",
5
5
  "description": "DODO — local-first MCP server with multi-project coding, AI providers, sub-agents, context, memory, media and workflow tools; embedded OAuth and workspace permissions.",
6
6
  "type": "module",
@@ -43,6 +43,7 @@
43
43
  "docs/RELEASE_1.0.2.md",
44
44
  "docs/RELEASE_1.0.3.md",
45
45
  "docs/RELEASE_1.0.4.md",
46
+ "docs/RELEASE_1.0.5.md",
46
47
  "docs/RELEASE_NOTES.md",
47
48
  "docs/SCHEDULES.md",
48
49
  "docs/SECURITY.md",