clew-code 0.2.13 → 0.2.14

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.
Files changed (52) hide show
  1. package/dist/main.js +2596 -2527
  2. package/docs/architecture.html +148 -148
  3. package/docs/architecture.th.html +79 -79
  4. package/docs/clew-code-architecture.html +6 -6
  5. package/docs/commands.html +225 -224
  6. package/docs/commands.th.html +132 -131
  7. package/docs/configuration.html +147 -147
  8. package/docs/configuration.th.html +108 -108
  9. package/docs/daemon.html +129 -129
  10. package/docs/daemon.th.html +73 -73
  11. package/docs/features/bridge-mode.html +99 -99
  12. package/docs/features/bridge-mode.th.html +90 -90
  13. package/docs/features/evals.html +182 -182
  14. package/docs/features/evals.th.html +90 -90
  15. package/docs/features/peer.html +178 -178
  16. package/docs/features/searxng-search.html +151 -151
  17. package/docs/features/searxng-search.th.html +95 -95
  18. package/docs/features/sentry-setup.html +157 -157
  19. package/docs/features/sentry-setup.th.html +97 -97
  20. package/docs/index.html +298 -299
  21. package/docs/index.th.html +292 -292
  22. package/docs/installation.html +105 -105
  23. package/docs/installation.th.html +105 -105
  24. package/docs/internals/growthbook-ab-testing.html +113 -113
  25. package/docs/internals/growthbook-ab-testing.th.html +81 -81
  26. package/docs/internals/hidden-features.html +175 -149
  27. package/docs/internals/hidden-features.th.html +135 -109
  28. package/docs/loop.html +181 -181
  29. package/docs/loop.th.html +227 -227
  30. package/docs/mcp.html +247 -247
  31. package/docs/mcp.th.html +207 -207
  32. package/docs/models.html +110 -111
  33. package/docs/models.th.html +61 -61
  34. package/docs/peer.html +236 -236
  35. package/docs/peer.th.html +280 -280
  36. package/docs/permission-model.html +102 -102
  37. package/docs/permission-model.th.html +67 -67
  38. package/docs/plugins.html +102 -102
  39. package/docs/plugins.th.html +79 -79
  40. package/docs/providers.html +126 -126
  41. package/docs/providers.th.html +80 -80
  42. package/docs/quick-start.html +93 -93
  43. package/docs/quick-start.th.html +1 -1
  44. package/docs/research-memory.html +82 -82
  45. package/docs/research-memory.th.html +72 -72
  46. package/docs/skills.html +117 -117
  47. package/docs/skills.th.html +90 -90
  48. package/docs/tools.html +170 -170
  49. package/docs/tools.th.html +84 -84
  50. package/docs/troubleshooting.html +106 -106
  51. package/docs/troubleshooting.th.html +85 -85
  52. package/package.json +162 -164
package/docs/mcp.th.html CHANGED
@@ -1,207 +1,207 @@
1
- <!DOCTYPE html>
2
- <html lang="th">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>MCP — Clew Code</title>
7
- <meta name="description" content="Model Context Protocol (MCP) — เชื่อมต่อเครื่องมือภายนอก, ทรัพยากร, และบริการ ผ่าน stdio, SSE, และ OAuth">
8
- <link rel="preconnect" href="https://fonts.googleapis.com">
9
- <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
10
- <link href="https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600;700&family=Noto+Sans+Thai:wght@400;500;600;700&display=swap" rel="stylesheet">
11
- <link rel="stylesheet" href="css/styles.css">
12
- <link rel="icon" type="image/svg+xml" href="./assets/clew.svg">
13
- </head>
14
- <body>
15
- <header class="header"></header>
16
- <div class="app">
17
- <aside class="sidebar" id="sidebar"></aside>
18
- <div class="sidebar-overlay" id="sidebarOverlay"></div>
19
- <div class="content-wrap">
20
- <main class="content">
21
- <div class="breadcrumbs"><a href="index.th.html">หน้าแรก</a><span class="sep">/</span><span>MCP</span></div>
22
- <h1>Model Context Protocol (MCP)</h1>
23
- <p class="section-subtitle">เชื่อมต่อ Clew กับเครื่องมือภายนอก, แหล่งข้อมูล, และบริการผ่าน MCP — มาตรฐานเปิดสำหรับ AI-tool integration</p>
24
-
25
- <p>MCP อยู่ใน <code>src/services/mcp/</code> — Clew ค้นหาเซิร์ฟเวอร์ MCP จาก <strong>settings.json</strong>, <strong>CLI flags</strong>, และ <strong>plugin manifests</strong> แล้วรวมเครื่องมือเข้าสู่ runtime</p>
26
-
27
- <h2>สถาปัตยกรรม</h2>
28
- <pre><code> ┌──────────────────────────────────────────────────────────────────────────┐
29
- │ MCP — MODEL CONTEXT PROTOCOL │
30
- └──────────────────────────────────────────────────────────────────────────┘
31
-
32
- ┌──────────────────────────┐
33
- │ Settings / CLI Config │
34
- │ src/services/mcp/config │
35
- └────────────┬─────────────┘
36
- │
37
- â–¼
38
- ┌──────────────────────────┐
39
- │ MCPConnectionManager │
40
- │ จัดการ lifecycle │
41
- │ ของเซิร์ฟเวอร์ MCP ทั้งหมด │
42
- └────────────┬─────────────┘
43
- │
44
- ┌───────────────────┼───────────────────┐
45
- â–¼ â–¼ â–¼
46
- ┌──────────────┐ ┌──────────────┐ ┌──────────────┐
47
- │ Stdio MCP │ │ SSE MCP │ │Direct Connect│
48
- │ (subprocess) │ │ (remote) │ │ (in-process) │
49
- │ npx/node/etc │ │ HTTP + SSE │ │ │
50
- └──────┬───────┘ └──────┬───────┘ └──────┬───────┘
51
- │ │ │
52
- └──────────────────┼───────────────────┘
53
- │
54
- â–¼
55
- ┌──────────────────────┐
56
- │ Client (JSON-RPC) │
57
- │ tools/list │
58
- │ tools/call │
59
- │ resources/list │
60
- └──────────┬───────────┘
61
- │
62
- â–¼
63
- ┌──────────────────────┐
64
- │ assembleToolPool │
65
- │ (MCP + built-in │
66
- │ tools รวมกัน) │
67
- └──────────┬───────────┘
68
- │
69
- â–¼
70
- ┌──────────────────────┐
71
- │ Query Engine │
72
- │ Model เห็น tools │
73
- │ ทั้งหมดใน pool │
74
- └──────────────────────┘</code></pre>
75
-
76
- <h2>วิธีการทำงาน</h2>
77
-
78
- <h3>การค้นหาเซิร์ฟเวอร์</h3>
79
- <p>MCP servers ถูกค้นหาจาก 3 แหล่งเมื่อเริ่มต้น:</p>
80
- <ol>
81
- <li><strong><code>settings.json</code></strong> — คีย์ <code>mcpServers</code> กำหนด command, args, env</li>
82
- <li><strong>CLI <code>--mcp-config</code></strong> — ไฟล์หรือ inline JSON</li>
83
- <li><strong>Plugins</strong> — manifest ของ plugin สามารถประกาศ MCP server ได้; เริ่มเมื่อ plugin โหลด, หยุดเมื่อ unload</li>
84
- </ol>
85
-
86
- <h3>ประเภทการเชื่อมต่อ</h3>
87
- <table>
88
- <tr><th>ประเภท</th><th>Transport</th><th>วิธีการ</th></tr>
89
- <tr>
90
- <td><strong>Stdio</strong></td>
91
- <td>stdin/stdout</td>
92
- <td>Clew spawn subprocess (เช่น <code>npx @modelcontextprotocol/server-filesystem</code>) และสื่อสารผ่าน JSON-RPC ทาง stdin/stdout</td>
93
- </tr>
94
- <tr>
95
- <td><strong>SSE</strong></td>
96
- <td>HTTP + SSE</td>
97
- <td>เชื่อมต่อ remote MCP server ผ่าน HTTP ใช้ SSE สำหรับ server→client, HTTP POST สำหรับ client→server รองรับ OAuth</td>
98
- </tr>
99
- <tr>
100
- <td><strong>Direct Connect</strong></td>
101
- <td>In-process</td>
102
- <td>รัน MCP server ใน process เดียวกัน ใช้ InProcessTransport — ไม่มี network, ไม่มี subprocess ใช้ใน plugin-bundled servers</td>
103
- </tr>
104
- </table>
105
-
106
- <h3>Tool Lifecycle</h3>
107
- <pre><code> 1. CONNECT ──► MCPConnectionManager เชื่อมต่อ server
108
- │
109
- â–¼
110
- 2. DISCOVER ──► เรียก tools/list (รองรับ paginated)
111
- │
112
- â–¼
113
- 3. MERGE ──► assembleToolPool() รวม MCP tools
114
- │ กับ built-in tools (sort + dedup)
115
- â–¼
116
- 4. PRESENT ──► Model เห็น MCP tools เป็น native tools
117
- │ (permission gating, hooks, logging)
118
- â–¼
119
- 5. EXECUTE ──► Model เรียก tool → toolExecution.ts
120
- │ route ไปยัง server ที่ถูกต้อง
121
- â–¼
122
- 6. RESPOND ──► ผลลัพธ์กลับไปหา model</code></pre>
123
-
124
- <h3>การยืนยันตัวตน (Authentication)</h3>
125
- <ul>
126
- <li><strong>OAuth 2.0</strong> — redirect flow สำหรับ remote MCP servers เปิด local HTTP port เพื่อรับ callback</li>
127
- <li><strong>Bearer token</strong> — static API token ใน <code>Authorization</code> header</li>
128
- <li><strong>XAA token</strong> — auth provider token สำหรับ Claude-specific servers</li>
129
- <li><strong>Credential vault</strong> — credentials ที่เก็บไว้ใน vault ถูก inject อัตโนมัติ</li>
130
- </ul>
131
-
132
- <h2>คำสั่ง MCP</h2>
133
- <table>
134
- <tr><th>คำสั่ง</th><th>คำอธิบาย</th></tr>
135
- <tr><td><code>/mcp</code></td><td>เปิดเมนูจัดการ MCP — list servers, add, remove, reconnect</td></tr>
136
- <tr><td><code>/mcp list</code></td><td>แสดงเซิร์ฟเวอร์ MCP ทั้งหมด พร้อม tools, resources, prompts</td></tr>
137
- <tr><td><code>/mcp add &lt;name&gt; &lt;command&gt; [args...]</code></td><td>เพิ่ม stdio MCP server ใหม่</td></tr>
138
- <tr><td><code>/mcp remove &lt;name&gt;</code></td><td>ลบ MCP server</td></tr>
139
- <tr><td><code>/mcp reconnect &lt;name&gt;</code></td><td>เชื่อมต่อ MCP server ใหม่</td></tr>
140
- </table>
141
-
142
- <h2>รูปแบบ Config (settings.json)</h2>
143
- <div class="code-block-wrap">
144
- <div class="code-block-header"><span>json</span></div>
145
- <pre><code>{
146
- "mcpServers": {
147
- "filesystem": {
148
- "command": "npx",
149
- "args": ["-y", "@modelcontextprotocol/server-filesystem", "/workspace"],
150
- "env": {}
151
- },
152
- "database": {
153
- "command": "node",
154
- "args": ["./mcp/db-server.js"],
155
- "env": {
156
- "DB_URL": "postgresql://localhost:5432/mydb"
157
- }
158
- },
159
- "remote-api": {
160
- "url": "https://mcp.example.com",
161
- "headers": {
162
- "Authorization": "Bearer sk-..."
163
- }
164
- }
165
- }
166
- }</code></pre>
167
- </div>
168
-
169
- <h2>Plugin-Bundled MCP Servers</h2>
170
- <p>Plugin สามารถประกาศ MCP server ใน manifest เมื่อ plugin โหลด Clew จะสร้าง DirectConnect session ให้อัตโนมัติ — ไม่ต้อง subprocess ไม่ต้อง network — server จะพร้อมใช้งานทันที</p>
171
-
172
- <h2>เครื่องมือ Built-in ที่ใช้ MCP</h2>
173
- <table>
174
- <tr><th>Tool</th><th>MCP ใช้ทำอะไร</th></tr>
175
- <tr><td><code>ListMcpResources</code></td><td>แสดง resources จาก MCP servers ทั้งหมด (resources/list)</td></tr>
176
- <tr><td><code>ReadMcpResource</code></td><td>อ่าน resource ตาม URI จาก MCP server (resources/read)</td></tr>
177
- </table>
178
-
179
- <h2>ไฟล์สำคัญ</h2>
180
- <table>
181
- <tr><th>ไฟล์</th><th>หน้าที่</th></tr>
182
- <tr><td><code>src/services/mcp/MCPConnectionManager.tsx</code></td><td>จัดการ lifecycle ของเซิร์ฟเวอร์ MCP</td></tr>
183
- <tr><td><code>src/services/mcp/config.ts</code></td><td>โหลด config จาก settings.json และ CLI flags</td></tr>
184
- <tr><td><code>src/services/mcp/client.ts</code></td><td>JSON-RPC client</td></tr>
185
- <tr><td><code>src/services/mcp/auth.ts</code></td><td>OAuth + Bearer token authentication</td></tr>
186
- <tr><td><code>src/services/mcp/oauthPort.ts</code></td><td>Local HTTP server สำหรับ OAuth callback</td></tr>
187
- <tr><td><code>src/services/mcp/types.ts</code></td><td>Type definitions</td></tr>
188
- <tr><td><code>src/services/mcp/InProcessTransport.ts</code></td><td>In-process transport สำหรับ DirectConnect</td></tr>
189
- <tr><td><code>src/services/mcp/officialRegistry.ts</code></td><td>ทะเบียน MCP server ทางการ</td></tr>
190
- <tr><td><code>src/tools.ts</code></td><td>assembleToolPool() รวม MCP tools</td></tr>
191
- </table>
192
-
193
- <footer class="footer">
194
- <span>Clew Code — โอเพนซอร์ส</span>
195
- <div class="footer-links">
196
- <a href="https://github.com/ClewCode/ClewCode">GitHub</a>
197
- <a href="https://github.com/ClewCode/ClewCode/issues">ปัญหา</a>
198
- </div>
199
- </footer>
200
- </main>
201
- <nav class="toc-sidebar"></nav>
202
- </div>
203
- </div>
204
- <script src="js/main.js"></script>
205
- </body>
206
- </html>
207
-
1
+ <!DOCTYPE html>
2
+ <html lang="th">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>MCP — Clew Code</title>
7
+ <meta name="description" content="Model Context Protocol (MCP) — เชื่อมต่อเครื่องมือภายนอก, ทรัพยากร, และบริการ ผ่าน stdio, SSE, และ OAuth">
8
+ <link rel="preconnect" href="https://fonts.googleapis.com">
9
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
10
+ <link href="https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600;700&family=Noto+Sans+Thai:wght@400;500;600;700&display=swap" rel="stylesheet">
11
+ <link rel="stylesheet" href="css/styles.css">
12
+ <link rel="icon" type="image/svg+xml" href="./assets/clew.svg">
13
+ </head>
14
+ <body>
15
+ <header class="header"></header>
16
+ <div class="app">
17
+ <aside class="sidebar" id="sidebar"></aside>
18
+ <div class="sidebar-overlay" id="sidebarOverlay"></div>
19
+ <div class="content-wrap">
20
+ <main class="content">
21
+ <div class="breadcrumbs"><a href="index.th.html">หน้าแรก</a><span class="sep">/</span><span>MCP</span></div>
22
+ <h1>Model Context Protocol (MCP)</h1>
23
+ <p class="section-subtitle">เชื่อมต่อ Clew กับเครื่องมือภายนอก, แหล่งข้อมูล, และบริการผ่าน MCP — มาตรฐานเปิดสำหรับ AI-tool integration</p>
24
+
25
+ <p>MCP อยู่ใน <code>src/services/mcp/</code> — Clew ค้นหาเซิร์ฟเวอร์ MCP จาก <strong>settings.json</strong>, <strong>CLI flags</strong>, และ <strong>plugin manifests</strong> แล้วรวมเครื่องมือเข้าสู่ runtime</p>
26
+
27
+ <h2>สถาปัตยกรรม</h2>
28
+ <pre><code> ┌──────────────────────────────────────────────────────────────────────────┐
29
+ │ MCP — MODEL CONTEXT PROTOCOL │
30
+ └──────────────────────────────────────────────────────────────────────────┘
31
+
32
+ ┌──────────────────────────┐
33
+ │ Settings / CLI Config │
34
+ │ src/services/mcp/config │
35
+ └────────────┬─────────────┘
36
+ │
37
+ â–¼
38
+ ┌──────────────────────────┐
39
+ │ MCPConnectionManager │
40
+ │ จัดการ lifecycle │
41
+ │ ของเซิร์ฟเวอร์ MCP ทั้งหมด │
42
+ └────────────┬─────────────┘
43
+ │
44
+ ┌───────────────────┼───────────────────┐
45
+ â–¼ â–¼ â–¼
46
+ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐
47
+ │ Stdio MCP │ │ SSE MCP │ │Direct Connect│
48
+ │ (subprocess) │ │ (remote) │ │ (in-process) │
49
+ │ npx/node/etc │ │ HTTP + SSE │ │ │
50
+ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘
51
+ │ │ │
52
+ └──────────────────┼───────────────────┘
53
+ │
54
+ â–¼
55
+ ┌──────────────────────┐
56
+ │ Client (JSON-RPC) │
57
+ │ tools/list │
58
+ │ tools/call │
59
+ │ resources/list │
60
+ └──────────┬───────────┘
61
+ │
62
+ â–¼
63
+ ┌──────────────────────┐
64
+ │ assembleToolPool │
65
+ │ (MCP + built-in │
66
+ │ tools รวมกัน) │
67
+ └──────────┬───────────┘
68
+ │
69
+ â–¼
70
+ ┌──────────────────────┐
71
+ │ Query Engine │
72
+ │ Model เห็น tools │
73
+ │ ทั้งหมดใน pool │
74
+ └──────────────────────┘</code></pre>
75
+
76
+ <h2>วิธีการทำงาน</h2>
77
+
78
+ <h3>การค้นหาเซิร์ฟเวอร์</h3>
79
+ <p>MCP servers ถูกค้นหาจาก 3 แหล่งเมื่อเริ่มต้น:</p>
80
+ <ol>
81
+ <li><strong><code>settings.json</code></strong> — คีย์ <code>mcpServers</code> กำหนด command, args, env</li>
82
+ <li><strong>CLI <code>--mcp-config</code></strong> — ไฟล์หรือ inline JSON</li>
83
+ <li><strong>Plugins</strong> — manifest ของ plugin สามารถประกาศ MCP server ได้; เริ่มเมื่อ plugin โหลด, หยุดเมื่อ unload</li>
84
+ </ol>
85
+
86
+ <h3>ประเภทการเชื่อมต่อ</h3>
87
+ <table>
88
+ <tr><th>ประเภท</th><th>Transport</th><th>วิธีการ</th></tr>
89
+ <tr>
90
+ <td><strong>Stdio</strong></td>
91
+ <td>stdin/stdout</td>
92
+ <td>Clew spawn subprocess (เช่น <code>npx @modelcontextprotocol/server-filesystem</code>) และสื่อสารผ่าน JSON-RPC ทาง stdin/stdout</td>
93
+ </tr>
94
+ <tr>
95
+ <td><strong>SSE</strong></td>
96
+ <td>HTTP + SSE</td>
97
+ <td>เชื่อมต่อ remote MCP server ผ่าน HTTP ใช้ SSE สำหรับ server→client, HTTP POST สำหรับ client→server รองรับ OAuth</td>
98
+ </tr>
99
+ <tr>
100
+ <td><strong>Direct Connect</strong></td>
101
+ <td>In-process</td>
102
+ <td>รัน MCP server ใน process เดียวกัน ใช้ InProcessTransport — ไม่มี network, ไม่มี subprocess ใช้ใน plugin-bundled servers</td>
103
+ </tr>
104
+ </table>
105
+
106
+ <h3>Tool Lifecycle</h3>
107
+ <pre><code> 1. CONNECT ──► MCPConnectionManager เชื่อมต่อ server
108
+ │
109
+ â–¼
110
+ 2. DISCOVER ──► เรียก tools/list (รองรับ paginated)
111
+ │
112
+ â–¼
113
+ 3. MERGE ──► assembleToolPool() รวม MCP tools
114
+ │ กับ built-in tools (sort + dedup)
115
+ â–¼
116
+ 4. PRESENT ──► Model เห็น MCP tools เป็น native tools
117
+ │ (permission gating, hooks, logging)
118
+ â–¼
119
+ 5. EXECUTE ──► Model เรียก tool → toolExecution.ts
120
+ │ route ไปยัง server ที่ถูกต้อง
121
+ â–¼
122
+ 6. RESPOND ──► ผลลัพธ์กลับไปหา model</code></pre>
123
+
124
+ <h3>การยืนยันตัวตน (Authentication)</h3>
125
+ <ul>
126
+ <li><strong>OAuth 2.0</strong> — redirect flow สำหรับ remote MCP servers เปิด local HTTP port เพื่อรับ callback</li>
127
+ <li><strong>Bearer token</strong> — static API token ใน <code>Authorization</code> header</li>
128
+ <li><strong>XAA token</strong> — auth provider token สำหรับ Claude-specific servers</li>
129
+ <li><strong>Credential vault</strong> — credentials ที่เก็บไว้ใน vault ถูก inject อัตโนมัติ</li>
130
+ </ul>
131
+
132
+ <h2>คำสั่ง MCP</h2>
133
+ <table>
134
+ <tr><th>คำสั่ง</th><th>คำอธิบาย</th></tr>
135
+ <tr><td><code>/mcp</code></td><td>เปิดเมนูจัดการ MCP — list servers, add, remove, reconnect</td></tr>
136
+ <tr><td><code>/mcp list</code></td><td>แสดงเซิร์ฟเวอร์ MCP ทั้งหมด พร้อม tools, resources, prompts</td></tr>
137
+ <tr><td><code>/mcp add &lt;name&gt; &lt;command&gt; [args...]</code></td><td>เพิ่ม stdio MCP server ใหม่</td></tr>
138
+ <tr><td><code>/mcp remove &lt;name&gt;</code></td><td>ลบ MCP server</td></tr>
139
+ <tr><td><code>/mcp reconnect &lt;name&gt;</code></td><td>เชื่อมต่อ MCP server ใหม่</td></tr>
140
+ </table>
141
+
142
+ <h2>รูปแบบ Config (settings.json)</h2>
143
+ <div class="code-block-wrap">
144
+ <div class="code-block-header"><span>json</span></div>
145
+ <pre><code>{
146
+ "mcpServers": {
147
+ "filesystem": {
148
+ "command": "npx",
149
+ "args": ["-y", "@modelcontextprotocol/server-filesystem", "/workspace"],
150
+ "env": {}
151
+ },
152
+ "database": {
153
+ "command": "node",
154
+ "args": ["./mcp/db-server.js"],
155
+ "env": {
156
+ "DB_URL": "postgresql://localhost:5432/mydb"
157
+ }
158
+ },
159
+ "remote-api": {
160
+ "url": "https://mcp.example.com",
161
+ "headers": {
162
+ "Authorization": "Bearer sk-..."
163
+ }
164
+ }
165
+ }
166
+ }</code></pre>
167
+ </div>
168
+
169
+ <h2>Plugin-Bundled MCP Servers</h2>
170
+ <p>Plugin สามารถประกาศ MCP server ใน manifest เมื่อ plugin โหลด Clew จะสร้าง DirectConnect session ให้อัตโนมัติ — ไม่ต้อง subprocess ไม่ต้อง network — server จะพร้อมใช้งานทันที</p>
171
+
172
+ <h2>เครื่องมือ Built-in ที่ใช้ MCP</h2>
173
+ <table>
174
+ <tr><th>Tool</th><th>MCP ใช้ทำอะไร</th></tr>
175
+ <tr><td><code>ListMcpResources</code></td><td>แสดง resources จาก MCP servers ทั้งหมด (resources/list)</td></tr>
176
+ <tr><td><code>ReadMcpResource</code></td><td>อ่าน resource ตาม URI จาก MCP server (resources/read)</td></tr>
177
+ </table>
178
+
179
+ <h2>ไฟล์สำคัญ</h2>
180
+ <table>
181
+ <tr><th>ไฟล์</th><th>หน้าที่</th></tr>
182
+ <tr><td><code>src/services/mcp/MCPConnectionManager.tsx</code></td><td>จัดการ lifecycle ของเซิร์ฟเวอร์ MCP</td></tr>
183
+ <tr><td><code>src/services/mcp/config.ts</code></td><td>โหลด config จาก settings.json และ CLI flags</td></tr>
184
+ <tr><td><code>src/services/mcp/client.ts</code></td><td>JSON-RPC client</td></tr>
185
+ <tr><td><code>src/services/mcp/auth.ts</code></td><td>OAuth + Bearer token authentication</td></tr>
186
+ <tr><td><code>src/services/mcp/oauthPort.ts</code></td><td>Local HTTP server สำหรับ OAuth callback</td></tr>
187
+ <tr><td><code>src/services/mcp/types.ts</code></td><td>Type definitions</td></tr>
188
+ <tr><td><code>src/services/mcp/InProcessTransport.ts</code></td><td>In-process transport สำหรับ DirectConnect</td></tr>
189
+ <tr><td><code>src/services/mcp/officialRegistry.ts</code></td><td>ทะเบียน MCP server ทางการ</td></tr>
190
+ <tr><td><code>src/tools.ts</code></td><td>assembleToolPool() รวม MCP tools</td></tr>
191
+ </table>
192
+
193
+ <footer class="footer">
194
+ <span>Clew Code — โอเพนซอร์ส</span>
195
+ <div class="footer-links">
196
+ <a href="https://github.com/ClewCode/ClewCode">GitHub</a>
197
+ <a href="https://github.com/ClewCode/ClewCode/issues">ปัญหา</a>
198
+ </div>
199
+ </footer>
200
+ </main>
201
+ <nav class="toc-sidebar"></nav>
202
+ </div>
203
+ </div>
204
+ <script src="js/main.js"></script>
205
+ </body>
206
+ </html>
207
+