Skip to content

MCP vs API: does your SaaS need an MCP server?

Justin Ahinon

Not every SaaS needs one, and an MCP server does not replace your API. Your API is how a developer's code calls your product. An MCP server is a thin layer on top of it that lets AI clients such as ChatGPT and Claude find your actions and call them from a chat, with no integration code from your customer. On WhatIsThatBook, my MCP server file is under 200 lines and calls the same search module as the website.

Whether you need one comes down to six questions. They are in the decision table further down.

MCP vs API in one table

Your API

An MCP server

Who calls it

Code that a developer wrote

An AI client, such as ChatGPT or Claude, when a user's request needs your tool

How the caller learns what it can do

A developer reads your docs

The client asks your server for its list of tools. The model reads each tool's name, description and input rules

Who writes the integration

Each customer or partner, one integration at a time

You, once. A user adds your server URL to their AI client, if their account allows it

What you must add

Nothing new

Tool descriptions written for a model, input limits, rate limits, origin checks

What stays the same

Your logic and your data

Your logic and your data. On my apps, the website and the MCP route call the same search code

On my two apps, the MCP server is one more route: /mcp.

What an API gives you, and what an MCP server adds

Your API lets developers build on your product. Someone reads your docs, writes code and deploys it. If a customer wants your product inside ChatGPT, someone has to write that connection. Usually nobody does.

An MCP server hands the documentation to the AI client itself, and the user writes no code. That changes who you write for. An API reference is for a developer. A tool description is for a model: what the tool does, what it can't do, and how sure the result is. On my book app, each candidate says whether a real catalogue record confirmed it or the model only suggested it. A model presents both with the same confidence unless the data tells it otherwise.

Example: the search I already had

WhatIsThatBook had one search. A visitor describes a book they half remember, and the site finds candidates. Some visitors already came from ChatGPT: they asked an assistant first, then clicked through to my site to finish the job.

So over October 8 and 9, I added an MCP server to both apps and connected them to ChatGPT. The searches worked on the first live check.

Most of that work was not MCP. About 450 lines moved out of the website's search function into a shared module that both the website and the MCP route call. After that, the MCP server file stayed under 200 lines in each app. A second search, written only for AI clients, would have drifted from the first one within a month.

The MCP path also skips what only makes sense on the website. On the book app, a description someone types into ChatGPT does not become a public page on my site.

Does your SaaS need an MCP server? A decision table

Answer each row for your product.

Question

Yes: an MCP server fits

No: your API is enough for now

Do your users already ask ChatGPT or Claude about the job your product does?

They ask an assistant first, then come to your site to finish

They start and finish inside your app

Is there one action that fits in a chat message?

Search, look up a record, check a status

The value is a screen: an editor, a board, a chart people drag

Does that action live behind an API or a service layer?

Your website already calls it, so the MCP route can call it too

The logic sits in UI code. Move it out first. That was most of my work

Can you cap what one call costs you?

You can set a rate limit, a size limit and a timeout

One call can cost more than you can absorb, and you can't cap it

Is the action read-only, or safe to repeat?

Search and lookups

It writes, pays or deletes, and you have no confirmation step yet

Can the action work without the user's account?

Public data, like a catalogue search. Both of my servers work this way

It needs the user's own data. MCP defines an optional OAuth-based sign-in for remote servers. I haven't built one, so this row has no proof from me

If the first two rows are no, stop here. Your API is enough.

What an MCP server costs to build and to run

Build. My numbers: two apps, two days, under 200 lines of MCP server code in each. The search existed, and the official TypeScript SDK handled the protocol. That is the best case: my own code, and a search that already worked.

The code was not where the time went. Next time, I'd budget more time for the privacy page, the quota, and the directory review. Adding the server to your own ChatGPT account takes a minute. A listing in the ChatGPT or Claude directory is a separate submission and review.

For a codebase I don't know yet, I sell it as one two-week sprint at $6,000, with the scope agreed in writing.

Run. Each tool call is a call to your product, and it costs what your product costs. A book search on my app makes one model call, about $0.002 at list price. An MCP endpoint without sign-in is a free, public API to that cost. So my book endpoint checks a quota before any paid work: 20 searches per IP per UTC hour, and 500 per UTC day across all MCP clients. If the quota service is down, the search is refused. AI calls stop after 45 seconds.

The protocol asks for the same: a server must validate tool inputs, rate limit tool calls, and check the origin of each request.

When an API is enough

  • Your buyers are developers who build on your API. They already have what they need.

  • Your product is a screen, not an action. A chat can't drag a card across a board.

  • Your users never mention an assistant. Ask five of them before you build.

  • Your main action writes, pays or deletes, and you haven't designed how a person confirms it. The MCP spec gives that check to the AI client: it should let the person deny a tool call. "Should" is not "must", so don't count on it.

  • You can't put a limit on what one call costs you.

In these cases, spend the sprint on the product.

FAQ

What is an MCP server?

An endpoint that AI clients such as ChatGPT and Claude call through the Model Context Protocol. It lists tools, and the model calls one when a user's request needs it.

Is MCP a replacement for an API?

No. A tool usually calls your API, or the same code your API calls. Mine calls the same search module as the website.

What are examples of MCP servers?

WhatIsThatBook and WhatIsThatMovie each have a search tool at /mcp. Anyone with the URL can call it, with no sign-in. Neither is listed in the ChatGPT or Claude directory. ThreadCast, my open-source tool to share Claude Code and Codex sessions as web pages, runs a local MCP server behind its plugins.

Do I need a custom MCP server?

If the first two rows of the decision table are yes, and the action is read-only, it is worth one sprint.

If the table says yes

I build it as a custom MCP server sprint: one two-week sprint, $6,000, for TypeScript codebases. Send me your API docs, or the search you want AI clients to use.

The technical long version, with the code, the limits and the ChatGPT connection steps, is on my personal site: Adding an MCP server to an existing SvelteKit search app.

MCP changes fast. The protocol statements in this post match the specification dated July 28, 2026.