Recently I decided to create an MCP server in Rust. I first tried to "vibe code" it, and this worked but poorly. The code was bloated and involved hundreds of lines of repetitive JSON declarations.
I started trying to maintain it, but eventually realized just replacing the code altogether might be better. I investigated alternatives. I found RMCP
, an official Rust MCP crate. You can add it with cargo add rmcp
. I determined that:
• It is easier to rewrite vibe-coded logic with RMCP
structs and methods, as the code that uses RMCP
is much shorter.
• Using schema attributes (schemars
) on both functions and structs used as parameters is important.
• Being clear and verbose in the description schema tags is important.
So in summary, vibe coding an MCP server in Rust can lead to a bloated mess of code. Meanwhile using the RMCP crate (currently with 23 million downloads) is elegant and reliable—and much less code. It might be a good idea to use a prompt requesting RMCP
while vibe coding.