I just finished a new version of my postgresql mcp server, deprecating the old Python version for Typescript. I also added a bunch of new features like OAuth, HTTPS Streaming, tool and resource annotations, smart tool-filtering, automated server instructions delivery, etc. That all went pretty smoothly. But adding code mode was a pretty massive task, compounded by having 203 tools. I believe I tested and debugged/optimized each of the 20 tool groups over 20 times each, maybe twice that. Perhaps, half the passes were about optimizing results for token efficiency rather than fixing the basic capability/feature. It has been said that code mode is more reliable than direct tool calls. Perhaps so. But that is only the case with massive developer investment in implementing it properly. I would estimate it makes creating a given MCP server at least 50x more difficult, at least with a very large, complex server like my new postgresql server. If implemented half-assed, it will be far less reliable.
I will probably add code mode to my memory-journal-mcp server at some point because there are only 33 tools and they are far less open-ended, consisting of more clearly defined commands/objectives. I am curious to see how much easier that will be. But, I am not planning to implement it in my mysql mcp server (191 tools), at least at this point. It’s just a very big time investment. Perhaps I will change my mind. The 70-95% token savings obviously makes it tempting. I am more likely to add it to my new sqlite mcp server, which is under development. It will likely end up with ~120 tools so would likely be a bit less of a quagmire. Anyway, my point is that code mode token savings are awesome for the users but a great burden on developers. Be sure you want it badly enough to justify the time and work needed. Also, lazy tool loading is being added to MCP soon. Other improvements may come along as well which might make code mode less important. I had another reason for wanting it in the postgresql server- to prepare for another project/use of it but I will save that discussion for when it it nearer. I don’t mean to spam but feel like not including a link to the referenced projects would be remiss. So, here you go: