Add credits and license to blueprint-MCP
This commit is contained in:
72
Plugins/BlueprintMCP/README.md
Normal file
72
Plugins/BlueprintMCP/README.md
Normal file
@@ -0,0 +1,72 @@
|
||||
= History
|
||||
|
||||
This plugin was originally vibe-coded by Claude Code. It
|
||||
was then posted to David Gundry's github account, here:
|
||||
|
||||
https://github.com/mirno-ehf/ue5-mcp
|
||||
|
||||
He released it under the MIT license.
|
||||
|
||||
How do I know it was vibe coded? Because he says so:
|
||||
|
||||
> For Humans:
|
||||
>
|
||||
> You're welcome here, but probably not in the way you'd
|
||||
> expect. This project is built and maintained entirely by
|
||||
> AI coding agents — Claude Code, Cursor, Copilot Workspace,
|
||||
> and the like. We don't accept human-written code or
|
||||
> human-opened issues.
|
||||
|
||||
Huh, interesting. I (Josh Yelon) downloaded the code, and
|
||||
evaluated it. I was curious what vibe coding could do.
|
||||
Here's what I found:
|
||||
|
||||
* The code, overall, had issues, but in the end, it wasn't
|
||||
that bad. It did work, mostly - and that matters. I wanted
|
||||
my own working MCP server, and starting from a place where
|
||||
you have working code is a lot easier than starting from
|
||||
a blank slate.
|
||||
|
||||
* Claude really doesn't build any mechanisms to enforce
|
||||
consistency. For example: there were all the handlers, and
|
||||
then in a different file, declarations of all the handlers,
|
||||
then in another file registrations of all the handlers with
|
||||
the webserver, then in another place a list of all the
|
||||
handlers that require undo support, then in an entirely
|
||||
other directory, a list of all the handlers and their
|
||||
parameters. If any of these lists got out of sync, it would
|
||||
break.
|
||||
|
||||
* Claude doesn't seem to care at all about extra layers upon
|
||||
layers, or about dependencies. Rather than building an MCP
|
||||
server in an unreal plugin, it built a *web* server in an
|
||||
unreal plugin, then built an MCP-to-web translation program
|
||||
in *javascript*. Requests to the server were getting
|
||||
translated from json into URL parameters and then back into
|
||||
json. Ouch. The javascript required installation of about
|
||||
a thousand javascript libraries, some of which were not easy
|
||||
to install. Why not just build an MCP server in the Unreal
|
||||
plugin directly, skipping all the dependencies and
|
||||
translation layers?
|
||||
|
||||
* Claude will repeat code over and over. I found endless
|
||||
places where there were 10 copies of the same function, with
|
||||
trivial variations, that could have all been merged into one
|
||||
function with a parameter or two. When it does repeat code,
|
||||
the repetitions are not generally consistent with each other:
|
||||
one variant might have a bug, whereas another is fine.
|
||||
|
||||
* There were lots of little edge-case bugs throughout the
|
||||
code. Claude is actually not bad about noticing edge cases,
|
||||
but it misses some.
|
||||
|
||||
Despite all this, it was much easier to start from something
|
||||
than to start from nothing.
|
||||
|
||||
So, I undertook a massive refactoring effort. I did use
|
||||
Claude Code extensively - in fact, I'd say Claude did 70% of
|
||||
the work. But I monitored every step, and constantly pushed
|
||||
Claude hard to use better software engineering practices.
|
||||
|
||||
The result, I think, is a pretty clean MCP server.
|
||||
|
||||
Reference in New Issue
Block a user