What I liked most is that Cortex keeps API docs, SDKs, and MCP tools in the same workflow instead of treating them as separate projects. I changed the API spec a few times and could regenerate everything from the same config, which made the whole process feel much simpler.
The TypeScript output worked well in my tests, and having a usable MCP server generated alongside the SDKs was especially convenient. It feels useful for teams that want to keep several developer-facing outputs in sync without maintaining each one by hand.
A few things still felt a bit rough around the edges. MCP auth was the main one for me — I expected the bearer auth from my OpenAPI spec to carry over, but it didn’t, so internal APIs need a bit of extra setup.
I also hit a couple of Python packaging issues, and a simple cortex generate --check for CI would be really handy.
Nothing major, but fixing these would make the workflow feel a lot smoother for real projects.
I didn’t do a direct comparison with tools like Fern, Stainless, or OpenAPI Generator. My usual setup would be to use separate tools for SDK generation and documentation, then build the MCP layer separately.
What made Cortex interesting to me was having those pieces connected through one config and one generation workflow, rather than managing each output on its own.
@nick_csu Love the idea of keeping one source of truth for both developers and AI agents. Really smart approach 👏
@nick_csu generating a both type of MCP and SDKs tools the same requirement is really interesting, it seems like a smart way to avoid maintaining distinict docs for developers and agent.
how much setup are needed to go from an existing OpenAPI spec to a eork on MCP server??
@nick_csu this is super cool, i was looking for something like this exactly...
@nick_csu the idea of interactive API docs sounds sweet, for me, the way i'd use this is via mcp, being a SWE myself, and i find this solution useful personally, gonna try it out, thanks!
@therayess Thanks! I'm glad you think the MCP approach is useful. Let me know how you find it when you try it out!
we run a small mcp server, 28 tools, and the part that took longest was not the types. it was the descriptions.
two of ours read "fetch before prospecting to skip duplicates" and "stored as DRAFT, not sent". neither of those is in any schema. the first is an ordering rule, the second is there so the agent doesnt tell you it sent something that is only queued.
a spec gives you the shape of every call and nothing about which of two similar endpoints is the right one. for the sdk thats fine, the developer reads the page. for the agent that one string is the whole basis of the decision.
so when you generate the mcp server, what goes into the tool description? the summary field from the spec, or something else?







Thanks for the reviews you provided; they're really helpful. It might help a lot if you could open these as separate issues on https://github.com/cortex-docs/cortex/issues so we can track and fix them