MCP server for DCI

17 views
Skip to first unread message

Andreas Söderlund

unread,
Mar 21, 2026, 3:00:49 PM (3 days ago) Mar 21
to object-composition
I've whipped up a MCP server for DCI based on some LLM instructions I started to write a while ago. It's quite simple - it returns core DCI instructions (language agnostic), and language-specific ones with some optional examples for better guidance.

I've tested it by letting AI generate a mental model of a railway signal/switch system, and then using the MCP server by asking it to generate DCI Contexts based on that. Never mind the accuracy, but I think the code it generated is quite pleasant and readable: https://gist.github.com/ciscoheat/4e07e19cec4f454bd4116c815aea29f7

The server is published on npm and easy to use, described in the readme: https://github.com/ciscoheat/dci-mcp

Now I'm waiting for you to contribute with more languages, more concise and accurate core instructions, etc. Check out the docs folder and open up a PR!

Lund Soltoft

unread,
Mar 21, 2026, 5:19:19 PM (3 days ago) Mar 21
to object-co...@googlegroups.com
Related but different. I’ve am currently running an experiment with a group of CS students where we are using the a DCI inspired wayside creating documentation and the. Impulse them into binaries. There’s nothing new about AI writing code the new things is the documentation structure matching architecture artifacts. 

So far it looks really promising. We’ve done some simple programs (money transfer of course but also a terminal base snake game) and some more complex like tracking various geo-spatial events (flights, lightning Wikipedia edit) and a netbank. 

I have not gone deep on testing yet but the Sunday has a 100% hit rate once it “compiles” and it’s been possible to evolve the architecture of the systems which is where I think vibe-cosing suffers the most. We still have a lot of ground to cover but I’m starting to be fairly confident that DCI can be the secret source for AI coding. 


Mvh
Rune

Den 21. mar. 2026 kl. 20.00 skrev Andreas Söderlund <gaz...@gmail.com>:

I've whipped up a MCP server for DCI based on some LLM instructions I started to write a while ago. It's quite simple - it returns core DCI instructions (language agnostic), and language-specific ones with some optional examples for better guidance.

I've tested it by letting AI generate a mental model of a railway signal/switch system, and then using the MCP server by asking it to generate DCI Contexts based on that. Never mind the accuracy, but I think the code it generated is quite pleasant and readable: https://gist.github.com/ciscoheat/4e07e19cec4f454bd4116c815aea29f7

The server is published on npm and easy to use, described in the readme: https://github.com/ciscoheat/dci-mcp

Now I'm waiting for you to contribute with more languages, more concise and accurate core instructions, etc. Check out the docs folder and open up a PR!

--
You received this message because you are subscribed to the Google Groups "object-composition" group.
To unsubscribe from this group and stop receiving emails from it, send an email to object-composit...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/object-composition/55b520a4-caeb-418b-a7a5-95525ce5c28an%40googlegroups.com.

Matthew Browne

unread,
Mar 22, 2026, 4:04:51 PM (2 days ago) Mar 22
to object-co...@googlegroups.com, Lund Soltoft

Very cool on both counts!

I think there's definitely potential in using the concepts of roles and contexts as a specification language that's accessible to non-programmers as well (and I think Trygve would have loved that).

@Andreas, for the JS/TS output of the MCP server, what do you think about the idea of using symbols, like this?

https://github.com/mbrowne/dci-examples/blob/main/js-symbols/transfer-money/TransferMoney.js

When writing code manually, it's slightly annoying to write the symbols, but if AI is generating the code that's not an issue. The underscore naming prefix is fine, but I think using symbols makes it look more like calling methods on objects, and symbols avoid name clashes between contexts. I think the code is readable either way, I just wanted to offer this as an alternative to consider.

James Coplien

unread,
Mar 23, 2026, 7:20:33 AM (yesterday) Mar 23
to object-co...@googlegroups.com
I don’t find this valuable.

The architecture worth documenting is that which cannot be derived from the code. This is what patterns are all about. Deep in the culture of patterns one finds elements that relate to culture and tacit issues that most certainly elude any examination of the artefact. It’s kind of like trying to figure out the ingredients of a cake after it’s been baked. The creator knew what the original parts were and how they interact, and they still do in the product, but not in a way that is traceable unless you are already told what you are tracing.

So (some) patterns are worth documenting. Other structural relationships and dependencies beg a good system browser. There are more questions that a programmer can and does ask about a piece of code than you could ever produce documentation for, but the answers lie there in the code base itself. At this level, the code is the design, and developer intelligence plays a big role in interpreting the bits into understanding. The required knowledge base for an LLM to be able to do this probably encompasses a large fraction of total human knowledge.

Reply all
Reply to author
Forward
0 new messages