skip to content
A logo Linell asked a nice AI to create. Linell Bonnette

Creating and Deploy an MCP Server with Smithery

A quick review of creating and deploying an MCP server using Smithery, a gateway for discovering and connecting to MCP servers.

Introduction

I am a fan of the model context protocol, or MCP, concept. Essentially, it’s an AI-first way of interacting with your data. I’ve written more than once about MCP, some of which you can see here:

Content tagged with "MCP Content"

4 items (2 posts, 1 links, 1 projects)

One of the biggest hurdles to both using and implementing MCP servers has been making it easy for people to discover and to use. Any instructions that involve “use a text editor to modify a JSON file” aren’t going to help the average user.

Smithery is bills itself as “Your Agent’s Gateway to the World”.

It allows you to easily create and deploy MCP servers, and even more importantly in my opinion, it allows you to easily connect to and use them. Instead of a complicated set of instructions, you can vaguely click a button and copy/paste a command to get things working. At the moment it does still involve using a terminal, at least for Claude Desktop, but it’s absolutely a step in the right direction.

Although, it is worth noting that when I actually tried to use the server that I created, I ran right back into my familiar error:

ReferenceError: TransformStream is not defined
at Object.<anonymous> (/Users/linell/.npm/_npx/0496d3f111c50e47/node_modules/@smithery/cli/dist/index.js:80723:44)
at Module._compile (node:internal/modules/cjs/loader:1198:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1252:10)
at Module.load (node:internal/modules/cjs/loader:1076:32)
at Function.Module._load (node:internal/modules/cjs/loader:911:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
at node:internal/main/run_main_module:22:47

That’s not a Smithery problem though, it’s all me. As far as they’re concerned, the installation seems flawless:

Terminal window
? Would you like to help improve Smithery by sending anonymized usage data?
For information on Smithery's data policy, please visit:
https://smithery.ai/docs/data-policy Yes
✔ Successfully resolved @Linell/grimoire-mcp
Installing remote server. Please ensure you trust the server author, especially when sharing sensitive data.
For information on Smithery's data policy, please visit: https://smithery.ai/docs/data-policy
@Linell/grimoire-mcp successfully installed for claude
? Would you like to restart the claude app to apply changes? Yes
Restarting claude app...
Claude has been restarted.
grimoire git:(main)

The Smithery Experience

The process of creating the MCP server using Smithery is actually very simple using their TypeScript setup. It’s super easy to get started and everything required to make a real application is already familiar because it’s just a TypeScript project. The project that I created is grimoire-mcp, a D&D 5E spellbook server.

I did create a project using Python, baseball-mcp, that I tried to deploy. Unfortunatley something about the build process fails every single time I attempt to deploy it to Smithery. Everything seems to be working fine for me locally, and it fails immediately upon deployment, so I’m not sure what the problem is, sadly. I actually created the TypeScript project primarily to confirm that Smithery was correctly working, to vaguely confirm that the Python project’s failure was an issue on my end.

Overall, the creation process is simple and straightforward enough, whether using the TypesScript SDK or a custom deployment, that I have nothing but good things to say. The deployment process seems ridiculously easy for TypeScript, and I’m pretty sure I’m just goofing up the Python deployment somehow. The place where the Smithery experience really shone was in the development and testing process, though. Traditionally I’ve done my MCP development testing using either the MCP Inspector, which is a great tool but does require a lot of manual work, or lots of restarting Claude Desktop and poking into its logs to see how things are working.

Smithery provides a wonderful playground that lets you easily see exactly how your server is working. Check out this screenshot:

Smithery MCP Testing

This feature alone is worth using Smithery, so everything else is just lagniappe.

I think that as this platform matures, especially as the installation process becomes more and more seamless for end users, it will become a very powerful tool for both developers and for end users. I’m looking forward to seeing what this becomes, and I’ll definitely be using it for my own projects in the future.