DEV Community

Pallat Anchaleechamaikorn
Pallat Anchaleechamaikorn

Posted on

gopls MCP in vscode

พอดีไปเจอ blog นี้ How to use gopls MCP with VS Code เห็นว่าน่าสนใจเลยเอามาทดลองทำดู เลยอยากมาอธิบายซ้ำอีกรอบ

ก่อนอื่นเลย gopls อ่านว่า "Go please" เป็น Language Server ที่พัฒนาโดย Go team มีหน้าที่เป็นตัวช่วย IDE ให้ช่วยตรวจสอบโค้ดที่เขียนด้วย Go ซึ่งถ้าเราใช้ vscode เวลาที่เราติดตั้ง Go extension มันก็จะขอให้เราติดตั้ง gopls ด้วย โดยในเวอร์ชั่นที่ v0.20.0 ก็ได้รวมเอา MCP server เข้ามา ซึ่งสามารถไปอ่าน doc ได้ที่ Gopls: Model Context Protocol support

ทีนี้เราก็จะมาทำให้ feature นี้สามารถทำงานบน vscode ได้ด้วย โดยขั้นตอนแรก จะต้องทำให้เครื่องเรามี gopls ตัวล่าสุดเสียก่อน โดยที่ถ้าเราจะติดตั้งเองก็สามารถทำได้ด้วยคำสั่ง

go install golang.org/x/tools/gopls@latest
Enter fullscreen mode Exit fullscreen mode

หรือไปสั่งใน vscode ก็ได้ ด้วยการเปิด command palette (command + shift + p) เลือก Go: Install/Update Tools เลือก gopls@latest

Go: Install/Update Tools

gopls@latest

จากนั้นเราจะไปเพิ่ม flag ให้กับ gopls ใน vscode settings กัน โดยให้เราไปเปิด Settings แล้วเลือกเป็นแบบแก้ json file ตรงๆ

    "go.useLanguageServer": true,
    "go.languageServerFlags": [
        "-mcp.listen=localhost:8092"
    ],
Enter fullscreen mode Exit fullscreen mode

เราเพิ่ม flag นี้ "-mcp.listen=localhost:8092" เข้าไป

ขั้นตอนต่อมาเราก็ต้องไปเพิ่ม MCP Server ด้วยการไปที่ command palette (command + shift + p) อีกครั้ง แล้วเลือก MCP: Add Server... เลือก HTTP (HTTP or Server-Sent Events) แล้วใส่ URL ของ mcp เข้าไปแบบนี้ http://localhost:8092

จากนั้นไปทดลองใช้งานกันได้เลย ด้วยการทดลองเขียนโค้ด

func main() {
    for i := 0; i < 5; i++ {
        fmt.Println(i)
    }
}
Enter fullscreen mode Exit fullscreen mode

แล้วไปเปิด Chat แล้วเราก็บอกให้มันวิเคราะห์ไฟล์นี้ให้หน่อย เช่น

"Run diagnostics on this file"
"diagnose this file"
หรือ "ตรวจไฟล์นี้"

โดยผมทดลองด้วย model หลายตัว ตัวที่แนะนำได้เหมือนตัวอย่างมากสุดผมใช้ Gemini 2.5 Pro (ลองเมื่อวันที่ 8 Sep 2025 นะครับ)
มันจะวิเคราะห์ให้และแนะนำให้แก้ไขตามนี้

result

ที่ต้นทางของบทความนี้เขาทำ instruction ให้ github ไว้ด้วย ถ้าใครสนใจลองไปตามดูที่ต้นทางได้นะครับ หวังว่าจะเป็นประโยชน์

Top comments (0)