Hi!
After a full year and bit since the last version, nimlangserver 1.14.0 has been released!
https://github.com/nim-lang/langserver/releases/tag/v1.14.0
This version delivers multiple fixes including NeoVim 0.12 compatibility fix and documentation improvements and one major feature—MCP mode.
On top of being an LSP server, nimlangserver is now an MCP server.
MCP is the protocol AI agents use to get code insights, much like LSP is for IDEs and editors. With MCP mode added, nimlangserver can now provide symbol navigation, diagnostics, and type resolution to Claude Code, VS Code, Gemini CLI, OpenCode, and other AI tools.
Using the provided MCP tools, AI agents get more accurate results, e.g. can find symbol references even if they use various spellings or are generated during compilation.
To use the MCP server in your Nim project, copy the matching config and SKILL.md from the repo to your project root. Read more.
Using Nimble:
nimble install -g nimlangserver
Or download
How to get nimble install the latest tagged version?
$ nimlangserver -v
1.12.0
$ nimble install nimlangserver
Info: using .../.nimble/pkgs2/nim-2.0.8-83c1d893cb997417565b7208e3cbebb8f93222cb/bin/nim for compilation
$ nimlangserver -v
1.12.0
Same with the -g switch.
Hmmm, that's strange. 1.14.0 is tagged and published: https://nimpkgs.org/#/pkg/nimlangserver
Maybe you're in a project that has the version pinned? What's in your .nimble file?
Also, what is your Nimble version?
It's good that the workaround with setting the version explicitly works but it's a bug nonetheless, the package should update to the latest version with nimble install -g nimlangserver.
Could you please try installing latest Nimble (0.22.3 at the time of writing) following these instructions and then trying to install nimlangserver?
First I tried to update nimble with itself. I had v0.22.2. nimble install [email protected] didn't work, the older version (0.22.2) remained. The I tried with curl -sSL https://nim-lang.github.io/nimble/install.sh | sh , and it updated the nimble binary to v0.22.3.
I removed nimlangserver (numble uninstall nimlangserver) and installed v1.12.0: nimble install [email protected] . Then, I tried to update it with nimble install nimlangserver , but nothing happened. I also tried with the -g switch. It didn't update it to v1.14.0.
With nimble install [email protected] I could install the new version.
I made a simple Python script to facilitate the manual update until nimble gets a patch. Here it is: https://gist.github.com/jabbalaci/18285a138017f5ecf8801f1707c849bc . I tried it under Linux only.
Usage and sample output:
$ ./nimpkg.py
...
atlas: local version: 0.12.5 == latest_tag: 0.12.5 [OK]
c2nim: local version: 0.9.19 == latest_tag: 0.9.19 [OK]
inim: local version: 1.0.0 == latest_tag: 1.0.0 [OK]
moe: local version: 0.5.0 != latest_tag: 0.4.0 [XXX]
nimbang: local version: 0.4.4 == latest_tag: 0.4.4 [OK]
nimble: local version: 0.22.3 == latest_tag: 0.22.3 [OK]
nimlangserver: local version: 1.12.0 != latest_tag: 1.14.0 [XXX]
nph: local version: 0.7.0 == latest_tag: 0.7.0 [OK]
testutils: local version: 0.8.1 == latest_tag: 0.8.1 [OK]
zigcc: local version: 3.0.0 != latest_tag: ??? [XXX]
---
* nimble install [email protected]
* nimble install [email protected]
It also prints a lot of debug info before this report. The script doesn't call the update commands. You decide at the end which packages you want to update.
I made a simple Python script
BOO PYTHON!
@rarino Have you tried this with a fresh nimbleDir (~/.nimble) or even just removing ~/.nimble/pkgcache ? I can't recreate this behavior with nimble 0.22.2 or 0.22.3.