Show HN: I made a MCP Server too (sort of)
The past week or so there’s been quite a few posts about some new MCP Server (Model Context Protocol). I want to join in on the fun and show a mcp server that I made.
It really started last Wednesday. During the day I realized that I really needed a webdav server on my slightly over-engineered home setup. I’m pretty sure it was to store Homeassistant backups.
I hadn’t heard about Webdav for ages – but how hard can it be to spin up a server. Adding a config, restarting nginx and it worked. I could upload files from my phone and so on.
I connected HA to the server – worked too – ran a backup – but it didn’t upload? After an hour+ of circling around, I found that nginx’s webdav module only supports a subset of the protocol.
Of course Homeassistant used some of that other part of the protocol too. Down the hole again. I found a golang project with Dockerfile. Less than ~30 min later it was all running.
It had only taken 2 hours-ish in total. What else to do.. Webdav is actually kind of cool, fileshare, port 443, extension of http.
The night before I had been reading about “codename goose” and remembered something, model-context-protocol from anthropic months ago. I read more repos and docs until 2am while my girlfriend slept on the couch.
An idea came to mind, what about a mcp webdav server so models can do CRUD through webdav, potentially even auto-create websites. I remembered Claude Desktop had built-in mcp servers that just needed enabling.
A few months ago I subscribed to Claude Pro – hadn’t used it much, but kept the subscription. It was better at coding than alternatives when I needed to write in unfamiliar languages.
I’ve been writing code for 25+ years. Every time I’ve asked for code from AI models – no joy – like an over-confident junior dev repeating the same mistakes.
I enabled dev settings, added filesystem, sequential thinking, and fetch mcp’s to Claude Desktop.
Then I created a project, mcp-webdav-server. Brief description, short prompt: Fetch mcp docs, analyze and suggest architecture for a mcp webdav server.
After a few permission prompts, Claude wrote a readme, then code and scripts.
It was done in minutes – with code, docs and all. I skimmed through, ran npm install, then npm run build. 5 build errors. I pasted errors back. Files updated. It built.
In that moment I felt something – I listed things to improve. Claude refactored and made a changelog. A few iterations and done.
I added the server to claude config – it worked. Claude could create, update, download and delete files. I fixed some name clashes with the filesystem mcp.
I packaged the code, tested again with basic authentication. It authenticated each request, so I asked for a fix. In minutes it implemented a connection pool.
Pushed the package. Updated claude config to use npx, it worked.
Since then I’ve changed how I work. I do things every day that would have taken me ages just over a week ago.
Yesterday, full ntopng setup, a mitm proxy for Tuya devices – no luck – they’re secure now. I was disappointed to jump down that rabbit hole without warning. But I had asked Claude to hold my hand while jumping.
Learning has become really fast. Claude might soon jump down rabbit holes without wanting to hold hands. I wonder if I’ll be left standing or if I’ll find something else to do.
Check out “my” mcp webdav server on Github – it works and is really well documented.
Comments URL: https://news.ycombinator.com/item?id=43478579
Points: 1
# Comments: 0