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:

Where Next?

Popular in Dev Env & Tools Top

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
AstonJ
Do we have any frequent travellers or digital nomads here? If so where have you been and do you have any tips to share? (Particularly in...
New
AndyL
With this week’s release, ElixirLS bundles an experimental MCP Server. (see CHANGELOG) Highlights Added Call hierarchy provider imple...
New
pinksynth
Hey everybody. I was wondering if anybody here has used Panic’s Nova editor. It came out recently and I saw there was no Elixir Formatte...
New
Onor.io
I apologize in advance if this has been suggested by others but here goes. Just today I was compiling some code and once again I’m prese...
New
Cervajz
Code at the speed of thought Zed is a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter. It’s also open...
New
New
Nezteb
I frequently switch between ElixirLS, Lexical, and Next LS in order to test each out and compare/contrast. I decided to create a brief fe...
New
AstonJ
Welcome to our thread for Mac users :smiley: Windows users please use this thread Linux users please use this thread For those who dis...
New
AstonJ
If you have any macOS tips or tricks, or a favourite way of using it, please share :icon_biggrin: For general chat about Macs, please us...
New

Other popular topics Top

aadeshere1
I have a another noob question about loop. Since elixir is immutable, while loop is not directly possible. total = 10 while total != 0 ...
New
mcarvalho
What is the difference between System.get_env and Application.get_env? For example, what are best practices to use one versus another.
New
chrismccord
Phoenix 1.4.0 released Phoenix 1.4 is out! This release ships with exciting new features, most notably with HTTP2 support, improved deve...
688 30877 112
New
johnnyicon
Hi all, I’ve just started learning Elixir and Phoenix Framework, so please pardon my n00bness at this stage. I’m trying to use Postgres...
New
jerry
Good day to you all. I have been struggling to get a query involving like and ilike to work. Can anyone assist me on this, please? pro...
New
jay1
Why is it that the mnesia database isn’t the most preferred database for use in Elixir/Phoenix?
New
nobody
Hi! In PHP: $_SERVER[‘SERVER_ADDR’] - in Elixir? Searched the docs for ip address and the web, no good results. Thanks!
New
jason.o
In the code below, if the create action is not set to accept “extra_key” as an input, it errors out with a message shown above. Is there ...
New
svb
Hi! Currently I want to submit a form by pressing the Enter key. However, since my input field is of type “textarea” this is just adds a...
New
lanycrost
Hi everyone! I need implement if…else if…else condition from my elixir code, and anymore of this control flow structures not work proper...
New

We're in Beta

About us Mission Statement