codex gopls mcp
用于Codex的MCP服务器 gopls-支持Go代码导航。
该存储库从macOS工作站设置开始, gopls,Node.js和可选的GVM已经安装。Go路径是主要目标。坚实的支持仍然存在,但这是次要的。
它揭示了什么
lsp_hoverlsp_definitionlsp_referenceslsp_document_symbolslsp_workspace_symbolslsp_diagnostics
假设
- 操作系统:macOS
- 外壳:
zsh - Codex已安装并可用
node已安装go已安装gopls已安装- GVM是可选的,但此仓库对基于GVM的Go设置最友好
此存储库不为您提供运行时。它预计机器已经配备了所需的工具。
支持状态
当前的支持应保守解读:
- macOS:主要开发目标
- Linux:CI中验证的核心服务器路径
- Windows原生:核心服务器路径已在CI中验证,但辅助脚本仍面向Unix
- WSL:比今天的原生Windows更现实,因为辅助脚本是面向Unix的
重要限制:
- macOS或Linux上的Docker并不能真正替代原生Windows验证。对于Windows特定的行为,请使用真正的Windows VM或Windows CI运行器。
CI策略:
- smoke CI追踪最新稳定的Go版本
- 烟雾CI安装
gopls@latest - 预定的工作流会重新运行相同的矩阵,因此上游的Go或
gopls及早发现变化 - 除非另有说明,否则较旧的Go版本不是此存储库的兼容性目标
安装先决条件
1.安装Go
官方文件:
- https://go.dev/doc/install
- https://go.dev/dl/
在macOS上,最简单的路径通常是Go下载页面上的官方安装程序包。安装后,确认:
go version
which go2.安装 gopls
官方文件:
- https://pkg.go.dev/golang.org/x/tools/gopls
- https://go.dev/gopls/
安装方式:
go install golang.org/x/tools/gopls@latest然后确认:
gopls version
which gopls3.安装Node.js
官方文件:
- https://nodejs.org/en/download
使用官方macOS安装程序或您首选的Node版本管理器安装Node.js。然后确认:
node -v
which node4.安装GVM(可选)
官方项目:
- https://github.com/moovweb/gvm
如果你想通过GVM进行版本感知的Go切换,请先阅读上游要求。README项目记录了额外的macOS先决条件,如Xcode命令行工具和Mercurial。
来自上游README的典型macOS准备:
xcode-select --install
brew update
brew install mercurial安装GVM:
zsh < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)然后重新加载shell并确认:
gvm version如果您希望GVM管理较新的Go版本,请按照上游README中的版本引导说明进行操作。这些步骤会随着时间的推移而变化,最好直接从源头上采取:
- https://github.com/moovweb/gvm#installing
Go Resolution的工作原理
对于Go存储库,服务器会尝试匹配存储库的工具链,而不是强制使用一个全局版本。
它按以下顺序在最近的repo根中查找版本提示:
go.workgo.mod.go-version.tool-versions
如果存在匹配的GVM工具链,它更喜欢 GOROOT 和 GOPATH如果没有,它将回退到计算机上已经可用的Go环境。
可写构建状态在以下情况下被隔离 /tmp,而模块缓存更喜欢匹配的GVM pkg/mod 如果可用,则 gopls 可以重用已经存在的依赖关系。
快速开始
在中注册MCP服务器 stdio 模式:
codex mcp add lsp \
-- node /absolute/path/to/codex-gopls-mcp/server.js守护程序模式
HTTP入口点:
node ./server.js --http辅助脚本:
- 开始:
./start-daemon.sh - 停止:
./stop-daemon.sh - 状态:
./status-daemon.sh - 配置代码段:
./lsp-daemon-config.toml
Codex配置示例:
[mcp_servers.lsp]
url = "http://127.0.0.1:3245/mcp"可选的Solidity支持
Solidity支持是可选的。
如果需要,请安装 nomicfoundation-solidity-language-server 上 PATH 或通过 SOLIDITY_LS_BIN.
备注
- 辅助脚本解析自己的目录,因此可以在任何地方克隆存储库。
activate-global-lsp.sh从安装捆绑技能./skills/use-lsp-when-coding/SKILL.md默认情况下。你可以用以下命令覆盖它SKILL_SOURCE.- 此存储库中的默认值反映了一个macOS工作站设置。如果您的机器不同,请首选覆盖环境变量,而不是修补服务器。
- 如果本地未安装所需的Go版本,则结果取决于回退环境
gopls可以用那台机器。 - 此存储库遵循当前
gopls释放而不是固定一个较旧的长寿命gopls为CI构建。
捆绑技能
此存储库包括Go和Solidity代码导航的Codex技能:
./skills/use-lsp-when-coding/SKILL.md
如果你跑 ./activate-global-lsp.sh,该技能被复制到:
$HOME/.codex/skills/use-lsp-when-coding/SKILL.md来源
- 转到安装文档:https://go.dev/doc/install
- 前往下载:https://go.dev/dl/
gopls文档:https://pkg.go.dev/golang.org/x/tools/goplsgopls网站:https://go.dev/gopls/- Node.js下载:https://nodejs.org/en/download
- GVM上游自述:https://github.com/moovweb/gvm
- GitHub操作文档:https://docs.github.com/github/automating-your-workflow-with-github-actions
- Docker文档:https://docs.docker.com/
