คอนฟิก VS Code MCP: ใช้ servers แทน mcpServers
คุณคัดลอกคอนฟิก MCP ที่ใช้งานได้จาก Claude หรือ Cursor วางลงใน VS Code รีสตาร์ต แล้วไม่มีอะไรเกิดขึ้น ไม่มีข้อผิดพลาด ไม่มีคำเตือน ไม่มีเซิร์ฟเวอร์ในรายการ ไฟล์เป็น JSON ที่ถูกต้องและ VS Code พอใจกับมันดี ปัญหาคือคำเดียว และเป็นคำนอกสุด
- VS Code ห่อเซิร์ฟเวอร์ MCP ไว้ใต้ servers ส่วน Claude, Cursor และตัวอื่นส่วนใหญ่ใช้ mcpServers
- คีย์ผิดไม่ทำให้เกิดข้อผิดพลาดใด ๆ เลย ซึ่งเป็นเหตุผลที่เรื่องนี้ทำให้คนเสียเวลาไปชั่วโมงหนึ่ง
- นิยามเซิร์ฟเวอร์ด้านในเหมือนกันทุกไคลเอนต์ มีแค่ตัวห่อที่ต่าง
ความต่าง เทียบกันทีละข้อ
เซิร์ฟเวอร์เดียวกัน คำสั่งเดียวกัน อาร์กิวเมนต์เดียวกัน สิ่งเดียวที่เปลี่ยนคือคีย์ตัวห่อ
| ไคลเอนต์ | ไฟล์คอนฟิก | คีย์ตัวห่อ |
|---|---|---|
| GitHub Copilot ใน VS Code | .vscode/mcp.json | servers |
| Cursor | ~/.cursor/mcp.json | mcpServers |
| Claude Desktop | claude_desktop_config.json | mcpServers |
| ไคลเอนต์อื่นส่วนใหญ่ที่ใช้คอนฟิกไฟล์ | ต่างกันไป | mcpServers |
สิ่งที่ VS Code ต้องการ
ใน .vscode/mcp.json ที่รากของเวิร์กสเปซของคุณ ใช้ตัวเชื่อมต่อของ MyLinedChart เป็นตัวอย่าง:
{ "servers": { "mylinedchart": { "command": "npx", "args": ["-y", "@mylinedchart/mcp-chart-context"] } } }
แทนที่ด้วยคำสั่งและอาร์กิวเมนต์ของเซิร์ฟเวอร์ของคุณเอง รูปร่างของออบเจกต์ด้านในไม่เปลี่ยนระหว่างไคลเอนต์
สิ่งที่ตัวอื่นทั้งหมดต้องการ
เซิร์ฟเวอร์เดียวกันสำหรับ Claude หรือ Cursor:
{ "mcpServers": { "mylinedchart": { "command": "npx", "args": ["-y", "@mylinedchart/mcp-chart-context"] } } }
ถ้าคุณเปิดทั้งสองเอดิเตอร์ ก็ต้องมีทั้งสองไฟล์จริง ๆ เอดิเตอร์ทั้งสองใช้คอนฟิกไฟล์เดียวร่วมกันไม่ได้
ทำไมจึงล้มเหลวโดยไม่มีข้อผิดพลาด
VS Code อ่านไฟล์ พบ JSON ที่ถูกต้อง และมองหาคีย์ servers ไฟล์ไม่มีคีย์ servers VS Code จึงพบเซิร์ฟเวอร์ศูนย์ตัวให้เริ่ม การมีเซิร์ฟเวอร์ศูนย์ตัวไม่ใช่เงื่อนไขข้อผิดพลาด ในมุมมองของ VS Code คุณยังไม่ได้ตั้งค่าอะไร ซึ่งเป็นเรื่องที่ทำได้ถูกต้องตามกฎ
จึงไม่มีเส้นหยักสีแดง ไม่มีการแจ้งเตือน และไม่มีรายการในล็อกใดบอกว่าคีย์ผิด ความล้มเหลวดูเหมือนเซิร์ฟเวอร์ล่มตอนเริ่มทุกประการ ซึ่งเป็นเหตุผลที่คนไปดีบักเซิร์ฟเวอร์
- ไฟล์เป็น JSON ที่ถูกต้อง จึงไม่มีข้อผิดพลาดการแยกวิเคราะห์ปรากฏ
- คีย์ระดับบนสุดที่ไม่รู้จักถูกเพิกเฉยแทนที่จะถูกปฏิเสธ
- การมีเซิร์ฟเวอร์ที่ตั้งค่าศูนย์ตัวเป็นสถานะปกติ VS Code จึงไม่รายงานความผิดปกติ
วิธียืนยันว่าคุณเจอปัญหาแบบไหน
ก่อนสมมติว่าเซิร์ฟเวอร์เสีย ให้พิสูจน์ก่อนว่า VS Code เคยพยายามเริ่มมันหรือไม่
- ตรวจคีย์ตัวห่อก่อน การตรวจนี้ใช้เวลาห้าวินาทีและเป็นคำตอบเกือบทุกครั้ง
- รันคำสั่งของเซิร์ฟเวอร์ด้วยมือในเทอร์มินัล ถ้าเซิร์ฟเวอร์เริ่มได้ ปัญหาอยู่ที่อื่น
- มองหาเซิร์ฟเวอร์ในรายการเซิร์ฟเวอร์ MCP ของ VS Code ไม่มีหมายถึงไม่เคยตั้งค่า มีแต่ล้มเหลวหมายถึงข้อผิดพลาดตอนเริ่มจริง
- ถ้าคุณติดตั้งผ่านลิงก์คลิกเดียวแทนการทำด้วยมือ ปัญหากลุ่มนี้ทั้งหมดไม่เกี่ยว
สองกับดักที่เกี่ยวข้อง
ระหว่างที่คุณอยู่ตรงนี้ มีอีกสองเรื่องที่ล้มเหลวเงียบ ๆ แบบเดียวกัน
อย่างแรก ลิงก์ติดตั้ง MCP แบบคลิกเดียวพาข้อมูลของมันมาเป็น JSON ที่เข้ารหัส URL แบบธรรมดา ตัวแยกวิเคราะห์ URL ยอมรับ Base64 แล้วไม่ทำอะไรเงียบ ๆ ซึ่งเป็นความล้มเหลวที่แย่ที่สุด คือปุ่มที่ดูเหมือนทำงานแล้ว
อย่างที่สอง ชื่อเซิร์ฟเวอร์เดินทางอยู่ภายในข้อมูลสำหรับ VS Code แทนที่จะเป็นพารามิเตอร์คิวรีแยกอย่างที่ Cursor ทำ ลิงก์ที่สร้างตามรูปร่างของ Cursor จะติดตั้งไม่ถูกต้องใน VS Code แม้จะเปิดได้
MyLinedChart เข้ามาช่วยตรงไหน
MyLinedChart มาพร้อมตัวเชื่อมต่อ MCP ที่ให้เอเจนต์ AI เห็นกราฟสดของคุณ ได้แก่ สัญลักษณ์ งานวาดของคุณ ค่าอินดิเคเตอร์ และแท่งบนหน้าจอ ตัวเชื่อมต่อทำงานบนเครื่องของคุณและข้อมูลไม่ผ่านเซิร์ฟเวอร์ของเรา
แอปมีปุ่ม Add to VS Code แบบคลิกเดียวที่เขียนคีย์ที่ถูกต้องให้คุณ ซึ่งเป็นเหตุผลที่ควรใช้มันแทนการแก้ด้วยมือ การตั้งค่าและไคลเอนต์อื่น: /resources/articles/ibkr-chart-data-github-copilot-vs-code
ขั้นตอนถัดไป
แก้คีย์ รีสตาร์ต VS Code แล้วเซิร์ฟเวอร์จะปรากฏ ถ้าเซิร์ฟเวอร์ยังไม่ปรากฏ ตอนนี้คุณรู้แล้วว่าปัญหาคือเซิร์ฟเวอร์ ไม่ใช่คอนฟิก ซึ่งเป็นรายการที่สั้นกว่ามากที่ต้องไล่ดู
เชื่อมต่อ AI ของคุณที่ /mcp
คำถามที่พบบ่อย
- ทำไม VS Code ใช้ servers แทน mcpServers
- คีย์ servers เป็นการเลือกชื่อในรูปแบบคอนฟิก MCP ของ VS Code เอง ซึ่งเลือกอย่างเป็นอิสระจากธรรมเนียมที่ Claude Desktop วางไว้ ไม่มีแบบไหนถูกกว่า ความต่างกลายเป็นปัญหาก็เพราะทั้งสองดูเหมือนใช้แทนกันได้ และหนึ่งในนั้นล้มเหลวโดยไม่บอก
- VS Code จะเตือนไหมถ้าฉันใช้คีย์ผิด
- ไม่ และนั่นคือความยากทั้งหมด ไฟล์เป็น JSON ที่ถูกต้อง คีย์ระดับบนสุดที่ไม่รู้จักถูกเพิกเฉยแทนที่จะถูกปฏิเสธ และการมีเซิร์ฟเวอร์ที่ตั้งค่าศูนย์ตัวเป็นสถานะปกติ ไม่มีอะไรในเรื่องนี้ดูเหมือนความผิดปกติ
- ใช้คอนฟิกไฟล์เดียวสำหรับทั้ง VS Code และ Cursor ได้ไหม
- ไม่ได้ ทั้งสองอ่านพาธต่างกันและคาดหวังคีย์ตัวห่อต่างกัน จึงต้องมีทั้งสองไฟล์ นิยามเซิร์ฟเวอร์ด้านในเหมือนกัน จึงเป็นการคัดลอกที่เปลี่ยนคำเดียว
- เรื่องนี้ใช้กับ Copilot บน Windows ด้วยไหม
- ไม่ Copilot ในที่นี้คือ GitHub Copilot ภายใน VS Code ซึ่งรองรับเซิร์ฟเวอร์ MCP ผู้ช่วยบนแถบงาน Windows เป็นผลิตภัณฑ์แยกที่ใช้ชื่อเดียวกันและไม่ใช้ไฟล์คอนฟิกเหล่านี้
ลองใช้ MyLinedChart
MyLinedChart เก็บงานวาด โน้ต และค่าอินดิเคเตอร์ของคุณเป็นข้อมูลที่ส่งออก ตรวจทาน และนำกลับมาใช้ซ้ำได้
สำรวจ MyLinedChart