Every quarter or so, I sit down and update the backend configuration that runs our tour business. Changes touch our reservation management system and two separate online travel agency integrations. It's routine — a regular part of the operating cadence, not a special project.
This round was more complex than usual. All three systems contain the same basic concepts — schedules, prices, availability — but each one requires you to configure its slice of the end-to-end configuration in a completely different way. I understood what I wanted to do. I did not fully understand how to do it correctly, in the right order, across all three systems. So I asked AI to read each system's documentation and hand me back one unified method of procedure covering every change, sequenced correctly, across all three systems.
That's when it got complicated: it turns out not everyone thinks you should be able to do this.
Trying to use automation to discover and use their help documentation, I encountered three different philosophies implemented in three completely different ways. One quietly disabled a documentation API that its own platform ships open by default, on top of a headless-browser-detection layer, on top of an incidental login redirect that only appears when there's no existing session. A second left everything wide open — same underlying help-desk software as the first, opposite configuration choice, zero friction. The third wasn't gated by the vendor at all; it was a client-side app that renders nothing without a live login, and separately, my own AI browser tooling refused to even visit the domain — its own safety policy, not the vendor's, categorically declining regardless of what the site would have allowed.
They each made an independent choice about how tightly to lock down their own documentation, and the accumulated effect is that a shared integration partner — a tour operator running all three, doing completely legitimate configuration work — has to solve three unrelated puzzles just to read the manual.
When I put my operations hat on, I want every vendor to behave like Microsoft. They're easy to criticize on any given day, but they run an open MCP server over the entirety of their Azure and Learn documentation — genuinely open, no special access required: https://learn.microsoft.com/api/mcp, with setup instructions at https://github.com/microsoftdocs/mcp. You can point an AI at it, ask real questions, and weave the answers directly into documents that span a multi-vendor environment. They make this easy on purpose.
The vendors I integrate for the tour business are not participating in that future yet. No AI-aware interface for operations work. Barely any support for sales use cases either. The most "AI-aware" part of their infrastructure is their security posture — which, on inspection, is really just an expression of denial that any of this is happening.
I will never use any of these platforms in a standalone way: their utility is only really unlocked in an integrated environment. Yet somehow their integrations are bespoke, built as if industry standards don't exist. There are no APIs to support configuration. No sandbox to test changes safely. No telemetry to confirm anything actually worked. Confusing configuration screens sit on backend UX that is, to put it gently, not entirely modern.
Maybe somebody, somewhere, thinks all of that opacity is a moat. In the short term, maybe it is.
After a couple of hours of determined vibe-coding — it was truly exhausting, and I ran out of office peanuts before I finished — I now have a private MCP server that stores all three vendors' documentation (manually accessed by me, as needed), answers my questions about how to do complicated cross-system tasks, and writes click-by-click instructions covering the full end-to-end sequence across all three.
The AI vendors are shipping controllable browsers now. Within a few months, maybe a couple of years, I expect to be able to ask the AI to just go ahead and click through all of it for me.
Turns out that moat isn't very deep. And it's already draining.