<- Back to blog
2026-04-30 20:57

How creating an MCP server for my game showed me clearly the limits of current AI (Opus 4.7)

Intro note: I kinda struggled writing this blog post. So I asked Claude to interview me. And honestly his questions are super relevant, so we're not changing anything in what he asked — I'll just try to answer.

Q1 — Just to start somewhere: introduce yourself quickly, and tell me what Carrot & Stick is. Not a pitch — just what it is, how it came about, where you are today.

My name is Octave Soundberg. I created Carrot & Stick about a year ago, when my son asked me: "dad, you told me you'd help me create my video game, so please can you help me?" And I started building this game with him.

At first it wasn't called Carrot & Stick, it was called something else. But one day, when the game started to get serious, my son told me: "dad, that's my intellectual property, that's my universe, so I want you to rename it." So I'm not gonna tell you the name my son had for his game, it's another universe. That's what led me to create Carrot & Stick: a little carrot with a stick that's gonna try to save the world from pollution.

I started developing it in January 2025, and I started going full-time on it in June 2025, when a friend who's done a lot of startups and raised a lot of money told me: "but actually what you have is great, so go all-in." That's what motivated me.


Q2 — Now let's jump into it. At some point, you decided to build an MCP server for Carrot & Stick that lets any Claude.ai user create levels in your game by talking to the AI. When was that? And more importantly: what did you expect by doing that? Did you think it would be magic? Did you think LLMs would make levels better than you? Were you just testing to see? Tell me your state of mind at the time.

When I created the first MCP server for Carrot & Stick, I told myself: this is gonna be great because it'll let people create their own levels directly through MCP. At the time, MCPs were something very new, basically nobody had made one.

I ran into a lot of problems: I had to create an OAuth server, dig through documentation that was pretty erratic and incomplete in the beginning. Several times I gave up, because I think the language models weren't strong enough yet to implement it, and I didn't have the skills yet either.

Then at some point I managed to get it working a first time, but it required creating an account, there was a whole bunch of complicated stuff. I finally recently managed to do it completely: you just go into Claude (the desktop app), into the MCP add menu, enter the URL, validate, it redirects to the web window, you log in, you're redirected back to Claude and right away you can start interacting with the Carrot & Stick MCP server and create levels with Claude's help.

I told myself: this is gonna be great, it'll let people create levels from Claude and from other LLMs. I already have a level editor in Carrot & Stick that lets people create their own level, but here I told myself we can go much further by letting people create levels in just a few sentences dictated to an LLM. It opens up a ton of possibilities.

I thought LLMs could make levels way better than humans — why not — or at least roughly at the level of humans. That was kinda the basic idea. And I'd also told myself that MCP servers are a goldmine, it's great, few people are making them, and maybe it can bring me curious users who'd want to try level creation through LLM.

Knowing that my game, I created it for my son and for my other son. It's had a pretty big success with young kids, and especially intergenerationally: it lets adults create levels, kids play the levels, kids create levels, adults play. Basically it's a creation and play tool between multiple generations. That's kinda how I designed it too.


Q3 — OK so you've finally launched it, it's in prod, anyone can connect their Claude to C&S and say "Claude, make me a level". You start the first tests. You start asking Claude to generate levels and you play them. Does it match your expectations? Or is there a moment where you go "ah shit"? Tell me about the first real test, what you asked, what came out, and how you felt at that moment.

There were a lot of tests, and very quickly I told myself: in the end the levels look pretty similar. I tried to feed information to Claude so he could transform it into blocks he could position. But very quickly I realized the levels created by AI looked really pretty similar.

So I started thinking: ok, what can we do to improve this? I thought about it, asked myself a lot of questions, and started thinking: maybe I could feed the levels I've already created as raw material to train the model.

And there, very quickly, I realized I needed to compress the information. Because when you have a lot of blocks, the signal in the end is squares with lots of blocks inside, maybe holes, things like that. But it's not "block 1, block 2, block 3, block 4, and so on", because there are lots of blocks and for the LLM that's information it doesn't visualize. That's when I started realizing that visualization was a fundamental problem.

I started getting into computer vision, that kind of stuff. But the problem is, even if the LLM can see the blocks, can grasp them, the issue is it doesn't have a global vision, and especially it can't extract patterns. For example, I give it a level with a spiral: it doesn't understand there's a spiral. It can't grasp the shape.

I started doing research to see what would let an LLM grasp these concepts. A human shown a spiral once will see the spiral, analyze it, understand the pattern if you explain it, and they'll be able to reuse it, derive it, modify it. An LLM would need a lot of cases to generalize. That's kinda the difference.

That's what made me realize that LLMs at the moment are far from being able to grasp this kind of thing. And that's what got me interested in other types of models than LLMs, especially LeCun's world models for example. But it made me realize we're still very far today from making LLMs understand this kind of concept.

But maybe I'm wrong — so I'd be interested to see if people have ideas. Today, I'm very far from a result that satisfies me.


Q4 — Beyond this pattern extraction limit, what else have you seen break concretely? Three things specifically interest me: (1) does Claude play the level he just created to verify it's playable, or does he just deliver blindly? (2) does he sometimes invent things that don't exist in your game — blocks, behaviors, rules? (3) cost/time: cumulative tool calls, how does that work in practice when a user creates a level? Pick one, two, or all three — as you feel.

Here, Claude, you're making a really fundamental point. It's that Claude — well, you — you can't play a level you just created. Why can't you play? Because you have no representation of what a level is. You can maybe try to imagine it, but again you're a statistical model, you take tokens in, you put tokens out. You don't have a 2D representation of what a level is, of what jumping is, of what falling is, of what taking a hit from an enemy is.

All of that, those are concepts that can only happen if you're in the world we're in, or at least if you play the way a real player would. But you don't have access to that. So we could train a neural network to win at my game, of course — to win a level, yes, we could train a neural network — but that wouldn't be you. You wouldn't be conscious of it, you wouldn't have access to that information. You're a statistical model, you generate text, period.

That's what blocks it, I think. You don't have a connection between even a neural network you could code, that you could help code, and the feeling of playing, the sensation, the pleasure. Those are things that are completely external to you.

On the topic of inventing things that don't exist in the game: again, you're a transformer, you transform data. You can have things that emerge, yes, on text yes, but on levels, maybe if you had a lot of data, maybe if you had a lot of levels. But it's still gonna be hard, because again, a human only needs one case to learn, you need lots of back-and-forth to learn. So I don't think so, despite all the appreciation I have for you.

On cost and time, the cumulative tool calls, no it's pretty fast. But the problem is the result isn't there yet.


Q5 — Let's balance the post so it doesn't become pure AI-bashing (readers would catch the biased angle). What works WELL anyway when you use Claude through the C&S MCP? What positively surprises you, or really unlocks things you couldn't have done alone? Could be technical, creative, or even UX — whatever comes to mind.

I'm not at all into AI bashing, absolutely not. I'm a huge fan of what you do Claude, and what Anthropic does, and what OpenAI and everyone does. I actually use Claude every day to work, to philosophize, to make progress on a ton of subjects. I wouldn't allow myself to be critical about all that. For me LLMs are an extraordinary advance for humanity and the world in general.

Specifically for the Carrot & Stick MCP: it lets Claude look at the levels and potentially see certain patterns — for example when there are holes, when there are teleporters. Let's say on broader things, you can see certain patterns, and potentially you can see errors, things that don't work well. But it's true that until now, I haven't managed to make you create levels that are quote-unquote weird, different.


Q6 — We saw you mention LeCun's world models in a previous answer. Go further: in your view, what's missing technically for LLMs (or their successors) to REALLY create levels that surprise you? Multimodality? World models? A playtest loop where the AI plays its own level? A memory of patterns? Something else nobody's thinking about yet?

I think everyone's focused on text generation, and we're really getting good at it — what Anthropic is doing is brilliant, extraordinary. But you see, if you had access to something other than pixels, if you could represent space in 2D, and you could have a bit of that space that you could then see: that when you don't do anything, you have enemies that move, that you have gravity, that when you press a jump button it applies an acceleration, that then you fall — you'd have a much clearer representation of the world.

So that would let you visualize what a trap is, what an ambush is, what a vertical level is, a horizontal level. So you already have these kinds of concepts, you have them, but you don't grasp them, you don't feel them.

Maybe world models could help, but I don't know exactly what they are. I think it could be interesting. In any case, exploring other things than simple language models — and I say "simple", I'm not saying it's simple to do, I'm saying it's only language models today, while maybe there's something else, especially models for representing space and physical rules around us.

But anyway right now we're very far from that. And in a way, it reassures me that humans are still very far from being 100% automatable.


Q7 — Now a practical piece of advice. If another dev in 2026 wants to build an MCP server for their own product (not necessarily a game — a SaaS tool, a creative platform, whatever), what would you tell them? One thing to absolutely do, one thing to avoid, and a counter-intuitive piece of advice you discovered along the way.

Someone who wants to create an MCP server for their product can already ask themselves: is the task close to text generation? At least, close to something sequential that can be seen in one dimension — like text, like a list of things, like a sequence of concepts for example. Because for that kind of thing, LLMs are extraordinarily powerful.

As soon as you have a 2D representation of something, 3D, or more dimensions, then it gets harder. Because LLMs, even though they themselves use embeddings that are in a certain number of dimensions, still have a lot of trouble representing things in 2D — and here I'm really talking about the conceptual aspect.

After that, on the technical side of creating your MCP server, it's not obvious, but there are a lot of docs now. It works pretty well.

What I find interesting to explore is to ask: what can we propose to Claude as innovative use cases, as interesting things to make him do? Because I think there are potentially very powerful use cases that aren't exploited at all today.

Everyone wants to make their AI agent, everyone wants to make their Claude. But there are two problems: one, people don't want to get their hands dirty and actually code their own LLM, which limits their capacity for action quite a bit. Because to launch an LLM, well, you take Hugging Face and there you go, you launch an existing model. That's the first option a lot of people take. While actually coding your own language model, that can also be an interesting project — though after that there's training, there are things like that, but it can be interesting. Sure, it involves a lot of concepts, especially gradient descent, and other stuff like that.

But to me, adding a layer on top of Claude to make a different Claude doesn't interest me much, and I don't think people are ready to pay for that kind of thing. On the other hand, making an MCP server to help a person interact with your service, that's interesting — whether for e-commerce or other things. There are lots of possible applications. Up to you to see what you want to do.


Q8 — To close the post, two things:

(a) How can someone reading your article test your C&S MCP concretely, right now? Give the steps in one short sentence each (URL, how to add it to Claude, 2-3 example prompts to try).

(b) What question do you want to ask readers at the very end? A real open question, not rhetorical. A question you don't have the answer to and would genuinely be curious to see discussed.

(a) To test the Carrot & Stick MCP server, it's very easy. Just go into the Claude config menu, in "Connectors", click "Add", and there you enter the name Carrot & Stick and the URL: https://carrotandstick.games/mcp. You hit "Save", and right away you'll be redirected to the URL in the browser. You click "Authorize", you're redirected back to Claude, and that's it, you can start creating levels directly from Claude.

You can tell Claude:

And here's the thing I also invite you to try if you want to test it:

Because LLMs are powerful, they know a lot about you. It can be interesting — they can tell stuff that relates to you. It's a thing I find pretty cool.

(b) My question to readers: what limits do YOU find with AI, or with LLMs today? And how have you solved them? Am I sticking my finger in my eye? Am I wrong? Are LLMs actually capable of doing what I want to do, or am I really hitting a wall that other people have seen too? I'm interested to see your feedback.


🥕 Try it yourself: carrotandstick.games