AndyL

AndyL

ElixirLS MCP Server

With this week’s release, ElixirLS bundles an experimental MCP Server. (see CHANGELOG)

Highlights

  • Added Call hierarchy provider implementing LSP textDocument/prepareCallHierarchy, callHierarchy/incomingCalls and callHierarchy/outgoingCalls
  • ElixirLS now bundles a number of experimental LLM oriented tools exposed as custom commands and a builtin MCP server. The tools focus on model friendly text interface instead of typical IDE oriented LSP API methods. Refer to README.md on how to connect to the MCP server. The tools include:
    • find_definition - Find and retrieve the source code of symbols.
    • get_environment - Retrieve environment at location with aliases, imports, requires and more.
    • get_docs - Aggregate and return comprehensive documentation
    • get_type_info - Extract typespecs and contracts.
    • find_implementations - Find all implementations of behaviours and protocols.
    • get_module_dependencies - Analyze module dependency relationships
  • Unofficial support for elixir 1.19

Thanks to @lukaszsamson for this new feature. I’m curious to hear user reports!

  • configuring to use with Claude Code, OpenCode, etc.
  • compare/contrast with Tidewave
  • integration with UsageRules or other coding aids
  • pro-tips, benefits, drawbacks, opportunities, concerns, etc.

Most Liked

cvkmohan

cvkmohan

Thanks. My experience is something similar. When I am using claude cli - firstly, it does not use the tools all that much - and - repeated nudging does not help much. In fact, if we are using plain claude cli - there will be zero difference between having any MCP or completely raw setup.

However, I have realized things change dramatically once we change the agent. Two examples that I can readily show:

  1. Zed Editor. When I am using the Zed editor - and - same claude sonnet 4 model - MCP calling, overall output quality dramatically improves. Everything else same. So, what Zed is giving as input to the LLM model is quite different from what claude cli gives to LLM. And that is making a lot of difference.
  2. OpenCode. When I am using the opencode cli - and - same claude sonnet 4 model - suppose I am using it for fixing failed tests. The way OpenCode approaches the problem is hugely different from how the same is done via claude cli. With opencode it will fix the code in the most optimal way in the fastest time with lower tokens. Nothing certain about claude cli.

Again both these tools (Zed, OpenCode) are using LSP or some semantic tool as part of the prompt. And it is showing its impact. How can it be enhanced is the question. That is where everyone is still in exploratory mode.
I can say with reasonable conviction that these graph databases, vector embeddings etc. are not that useful - atleast for code generation.

arcanemachine

arcanemachine

Shouldn’t this be an opt-in feature?

Personally, I just started playing with MCP very recently. I’m working with Ollama and Open Web UI. I tried getting Tidewave to work… I got to respond to my requests, but I couldn’t actually get anything useful out of it. It wouldn’t even eval my “hello world” function. :frowning:

arcanemachine

arcanemachine

The newest patch release makes MCP opt-in, not opt-out:

garrison

garrison

Interesting. Looks like it’s enabled by default so for those of us who want to turn it off elixirLS.mcpEnabled = false will take care of it.

I’m curious how many here are now using these agentic tools. Do we have a rough percentage?

sodapopcan

sodapopcan

Could always start a poll!

Where Next?

Popular in Dev Env & Tools Top

mveytsman
If you use vim, upgrade alchemist.vim to 2.8.0 as soon as possible!! There’s a bug that allows any website to take over your computer. ...
New
xiaoqiang
These past few days, I’ve tried switching from Neovim to Helix, and so far the experience has been great. Compared to neovim, which requi...
New
New
dewetblomerus
Setting up Cursor Background Agents to work with Elixir was a pain, which led me to publish a Docker image just for this and write a blog...
New
AstonJ
macOS had always used your Account Name as your Username (Case-Preserving) but from around Catalina onwards it started downcasing usernam...
New
blazejcm
Hi everyone! I’m wondering what the community would recommend as the best IDE toolchain (in VSCode) available today. I’m talking about s...
New
garrison
For those who are not aware, “AI agents” are, for the most part, commodity LLMs which are given access to “tools” and prompted to complet...
#ai
New
adamu
There is a thread about vim already, but I wanted to start one specifically about the language server. What configuration do people use ...
New
law
/an-aside Why is it not completing the module name too? Atom’s does. Also why does it not fill in the arguments with defaults that yo...
New
bitboxer
In the last couple of months I only played a little bit with elixir, haven’t had much time to actually build something with it. But now t...
New

Other popular topics Top

freewebwithme
Using vs code and installed ElixirLS: support and debugger. And I got an error popped up on start up says Failed to run ‘elixir’ comma...
New
yurko
Here are few pieces of (common) Linux knowledge that we use for reasonably small one server apps. We use Ubuntu but this should work for ...
New
Tee
can someone please explain to me how Enum.reduce works with maps
New
hariharasudhan94
I would like to know what is the best IDE for elixir development?
New
romenigld
I am trying to run a deploy with docker and I successfully runned with this command: docker build -t romenigld/blog-prod . but when I t...
New
script
If I have a string “1000 cfu/ml” . I want to remove the characters and / and space . So the string is like this "1000" What is the ...
New
danschultzer
None of the current solutions worked well for me, so I went ahead and built a user management system from scratch. This project took far...
548 27727 240
New
stefanluptak
Hello everybody, usually, I use a 29" ultra-wide monitor for VSCode which can easily accomodate explorer (files panel) + file with code ...
New
lucidguppy
I have a super simple question about elixir - how would I take a file like this foo bar baz and output a new file that enumerates th...
New
magnetic
Hey :wave:t3: Elixir community, I’ve been learning Elixir, and working on some side projects. My editor of choice is VSCode, and althoug...
New

We're in Beta

About us Mission Statement