ai newsDi., 27. Okt.
EilmeldungUK Politician Jess Asato Got Deepfaked. Now She’s Taking xAI to Court

No MCP? No problem. How I got Instinct AI to call a flight API

Instinct is an AI assistant you text on WhatsApp, iMessage or SMS. It works through the accounts you connect: Gmail, Calendar, Drive and Sheets, Notion, Slack, GitHub and a few more. I wanted to see what happens when you need something outside that list. When I asked whether I could plug in my own

dev.toDienstag 13:34 · 27.10.4 Min. Lesezeit
Bild: dev.to

Instinct is an AI assistant you text on WhatsApp, iMessage or SMS. It works through the accounts you connect: Gmail, Calendar, Drive and Sheets, Notion, Slack, GitHub and a few more.

I wanted to see what happens when you need something outside that list. When I asked whether I could plug in my own MCP server (MCP is the usual way to give an AI assistant new tools), it said:

I can't confirm that one. I don't have a way to plug in a custom MCP server today, so I won't promise it.

Fair enough. But it can edit a Google Sheet. So the question for this experiment was: can a shared spreadsheet work as a go-between for Instinct and an API it doesn't know about? I picked flight booking through Duffel, in test mode (a fake airline, no real money), because it involves money, so I'd need limits and approvals too.

Short answer: yes, it works, with some lag and a few rough edges. Here's how it fits together, and what I found.

Me (WhatsApp) | v Instinct AI <---------> Google Sheet <---------> bridge writes rows, checks every 2s, reads results writes results | v Swytchcode (holds keys, checks rules) / | \ Duffel Resend Slack flights email approvals Enter fullscreen mode Exit fullscreen mode Instinct writes a row in a Google Sheet. The sheet has a "How to use" tab that tells it which columns to fill, like search, LON, NYC, 2026-10-30, morning, economy, 500. A small Python script (the bridge) checks the sheet every 2 seconds and makes the API calls: a flight search, the latest price, then the booking.

The calls go through Swytchcode, which holds the API keys and checks each call against a rules file before it goes out. I work on Swytchcode, so part of the point was to see how it holds up in a setup like this. The bridge writes the result back into the row, and Instinct reads it out.

The rules I set:

Here's the whole thing, from the first WhatsApp message to the confirmation email:

Me: Find me a flight from London to New York on Friday under $500.

Instinct: Trips returned three nonstop options for Friday, October 30: Iberia $215.62, Duffel Airways $222.21, American Airlines $225.24.

Instinct tells me to approve it in Slack. A Slack message arrives with the flight, the passenger and the price. I tap Approve, and a couple of minutes later Instinct replies with the booking reference and the confirmation email lands in my inbox.

When I asked for a business-class seat over $300, the rule refused it and Instinct passed on the reason.

Instinct was good at the spreadsheet part. It followed the "How to use" tab closely, and once pointed out, unprompted, that the results didn't match the "morning" I'd asked for.

But it's not live. Instinct reads the result when it next looks at the sheet. Sometimes that was right away, sometimes only when I asked "did it go through?" A sheet is a workaround, not an integration.

It got confused by two sheets with the same name. I had an old "Trips" sheet, and Instinct kept using it. Giving it the sheet's URL fixed that.

Approvals are slow. After I tap Approve, the booking goes through at Swytchcode's next check, which runs every 2 minutes. So the bridge tells Instinct the time to expect it.

After an approval, the bridge never sees the reply. Swytchcode makes the approved call itself, later. So the bridge tags each booking and looks it up in Duffel afterwards. A code review also caught a case I'd missed: if a call times out, you don't know whether the booking happened, so the bridge now checks before saying "not booked", instead of inviting a second booking.

Duffel's test mode ignores the departure time, so the bridge filters by time itself.

Setup isn't quick yet. For now you need your own Google OAuth client and your own Slack bot. Steps are in the README.

Since I work on it, I tried to be honest about this part. The short version:

git clone https://github.com/swytchcodehq/swytchcode-examples cd swytchcode-examples/instinct-book-my-trip/instinct-bridge./setup.sh Enter fullscreen mode Exit fullscreen mode It needs Docker, and walks you through the keys and sign-ins. If you don't have Instinct, docker compose run --rm bridge python check.py runs the same flow without it, and any assistant that can edit a Google Sheet can drive it.

As an experiment, it answered my question: a spreadsheet is enough to get an assistant like Instinct talking to an API it has no connector for, and keeping the keys and rules outside the assistant made me comfortable letting it near a booking API. For everyday use, the lag and the setup are the weak spots. Assistants that support MCP can skip the sheet entirely, and that's what I want to try next.

Disclosure: I work on Swytchcode. This is a pattern built on top of Instinct AI, not an Instinct feature, and I have no affiliation with Instinct AI.

Quelle: dev.to (dev.to). Original öffnen