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