Do You Actually Need an MCP Server?
A practical guide to making existing software accessible to AI agents — and knowing when it's the right architecture.
The Question Companies Are Actually Asking
Most companies asking about MCP are asking the wrong first question. They ask "should we build an MCP server?" before asking "how should AI interact with the software we already have?"
That's worth pausing on, because most companies reading this already have the hard part done. There's a real API, a real database, and real business logic — permissions, validation, workflows that took years to get right. The software works. What's changed is that there's now pressure, from the market and from an engineering team already using AI coding tools day to day, to make that software "AI-ready."
The instinct is to look at the newest protocol and ask whether adopting it is the answer. That's backwards. The actual shift happening is architectural, not protocol-specific: AI is moving from being a feature bolted onto software to being another client of the platform — alongside your web app, your mobile app, and whatever already integrates with your API.
Once you frame it that way, the real question becomes concrete: how many AI clients need to talk to your software, what do they need to do, and how much standardization does that actually require? MCP is one possible answer to that question. It is not the question itself.
MCP is not the goal. Making your software safely usable by AI is the goal. MCP is one architectural approach that becomes increasingly valuable as the number of AI clients, agents, and tools your platform serves grows.
What Is MCP, Actually?
Strip away the framing and the Model Context Protocol (MCP) is a standardized way for AI applications and agents to discover and interact with tools and contextual resources exposed by a system. That's the whole idea. It's a protocol — a shared shape for "here's what you can do, here's what you can read" — not a new category of software architecture.
The conceptual chain looks like this:
An AI client or agent connects to an MCP server. The server exposes a set of tools — discrete, named operations with defined inputs and outputs — plus contextual resources the AI can read. Those tools aren't new capabilities invented for AI. They call the same APIs and the same business logic that already exist. The MCP server is a translation and discovery layer sitting above, or alongside, your existing API surface — not a replacement for it.
That last point matters more than anything else in this article: MCP does not automatically replace your existing APIs. Your API still enforces authorization, validation, and business rules. MCP just gives AI clients a standard way to find out what's callable and call it correctly, instead of every AI vendor and every internal team inventing its own integration format.
Three Ways AI Can Talk to Your Software
There isn't one correct architecture for AI-software interaction. There are at least three, and which one fits depends on how many AI clients you're serving and how much control you have over them.
One AI app you control, calling endpoints directly.
One agent, a defined and bounded set of functions.
Many clients, discovering an evolving set of tools.
| Scenario | Works well when | Starts to strain when |
|---|---|---|
| A. Direct API | You have one AI application, you built both sides, and the integration is small | A second team, a second AI client, or a third-party integrator shows up |
| B. Tool calling | A single agent needs a controlled, well-scoped set of actions against your platform | The tool list keeps growing, or more than one agent needs the same tools |
| C. MCP | Multiple independent AI clients or agents need standardized, discoverable access | Almost never — this is the scenario MCP exists for |
Scenario A is sufficient for a large share of companies right now. Scenario B is where most serious internal AI assistants actually live today — a defined tool list, one agent, full control on both sides. Scenario C is where standardization and discoverability start paying for themselves, because writing and maintaining a bespoke integration for every AI client that wants access stops being viable.
When You Do Not Need an MCP Server
Be honest with yourself here, because the fashionable answer and the correct answer are often different. You likely don't need MCP if most of the following are true:
- You have one internal AI assistant, not several independent ones
- It's a single, controlled AI application — not a range of third-party clients
- The set of operations it performs is small and largely deterministic
- Your company controls both the AI application and the backend it talks to
- No third-party AI clients need to connect to your platform
- Your existing APIs already cover what the AI needs to do
- Dynamic tool discovery wouldn't change anything — the agent already knows what's available
Take a concrete example: one internal AI assistant that needs to search projects, create tasks, and update task status. That's three or four well-defined operations against APIs you already run. Normal tool-calling — scenario B above — is simpler to build, simpler to secure, and simpler to debug than standing up a protocol server for an audience of one client.
Do not add MCP simply because it is fashionable. A protocol server adds a real piece of infrastructure to design, secure, version, and operate. That cost should be justified by an actual need for standardization and discovery — not by the fact that MCP is the term everyone is using this quarter.
When MCP Becomes Interesting
The architecture starts to earn its cost as the ecosystem around your platform grows — not at a fixed number of users or requests, but at a fixed shape of problem: more independent parties needing standardized access to a growing, changing set of capabilities.
In practice, MCP becomes worth considering when:
- More than one AI client needs access to your platform, not just one
- Multiple independent agents interact with the same system, possibly for different purposes
- Customers or partners want to connect their own AI agents to your platform
- The number of tools and capabilities you're exposing is growing, not fixed
- AI clients need to discover what's available rather than have it hardcoded
- Multiple teams inside your company are separately building AI integrations against the same backend
- You want to decouple your AI clients from the underlying systems they call, so either side can change independently
None of these is a hard threshold. There's no user count or request volume where MCP suddenly becomes correct. It's a judgment call about complexity, ecosystem, and direction — how many independent parties need to reach your platform, and how much that number is likely to grow.
A FinTech Example
Consider a conceptual FinTech platform with accounts, transactions, payments, customer records, risk scoring, reporting, and compliance workflows already built. A financial operations team wants an AI agent to help investigate unusual transaction activity, pull customer context during a support case, generate operational reports, analyze account activity for patterns, prepare payment workflows for review, and initiate operational actions that have already been approved through existing controls.
What makes this safe is what stays exactly where it already was. The agent doesn't get a shortcut around financial controls. Authorization checks, transaction limits, approval workflows, compliance rules, and audit logging all remain enforced inside the platform, exactly as they are for a human operator using the dashboard. The MCP server exposes tools that call the same guarded APIs — it doesn't grant the agent any capability the platform hasn't already decided to allow.
An AI agent in a financial system should never be able to do anything a properly-permissioned human operator couldn't also do through the existing product. If a tool can bypass a control, the problem is in the tool's implementation — not in MCP as a protocol.
This is also where the standardization argument for MCP is clearest. A financial ops platform reasonably expects several different AI surfaces over time — an internal support-desk agent, a fraud-review agent, a reporting assistant — all needing overlapping but not identical access to the same underlying operations. Building and maintaining a bespoke integration for each one is where MCP's discovery and standardization actually pay for themselves.
A HealthTech Example
Now consider a healthcare operations platform: appointment scheduling, provider availability, patient administration, billing, and workflow management, with relevant clinical context available where a user is authorized to see it. An operations team wants AI to find appointment availability across providers, prepare administrative summaries, identify follow-up workflows that are due, prepare referral paperwork, and generally assist the operational — not clinical — side of the practice.
This example calls for more caution than the FinTech one, and it's worth naming that directly. Nothing here implies unrestricted AI access to protected health information, and nothing here is a substitute for clinical judgment. The relevant architectural principles are the ones that already govern human staff access to this data:
- Least privilege — a scheduling agent gets scheduling tools, not billing tools or clinical record access it doesn't need
- Explicit authorization — every tool call checks the same permission model a human staff member would be checked against
- Auditability — every read and write is logged with the same fidelity as human-initiated actions
- Human approval on sensitive actions — administrative preparation, not autonomous execution, for anything touching patient care decisions
- Data access controls that don't change for AI — the AI client is bound by the same privacy rules as any other authenticated client
The MCP server, if one exists here, is doing the same job it did in the FinTech example: standardizing discovery and access for however many AI clients the operations team ends up running, while every actual permission and privacy rule stays enforced inside the platform, unchanged.
We've Been Applying This Architecture Ourselves
We didn't write this article from theory. We've been building toward this with our own internal planning tool — we've written before about how we made that platform operable by AI in the first place, well before MCP entered the picture. That earlier work is what made an MCP layer possible at all: you can't standardize discovery over an API that doesn't cleanly express business capabilities yet.
The evolution went roughly like this:
The planner already represented goals, milestones, tasks, and subtasks, with a full permission model across workspaces, goals, and tasks. What MCP added wasn't new capability — it was a standard way for AI agents to interact with that existing planning system directly, rather than only being able to answer questions about it.
To be specific, rather than vague: our MCP server currently exposes 33 tools, one per underlying REST endpoint, covering full create/read/update for goals, milestones, tasks, and subtasks; delete support for tasks and subtasks; complete member management across three independent permission tiers — workspace, goal, and task; and user search for resolving invites. It intentionally does not cover creating or deleting workspaces, or deleting goals or milestones directly — those operations don't exist as endpoints yet, so the MCP layer doesn't claim them either.
A few practical details worth naming, because they're the unglamorous part that actually makes a server like this trustworthy: it sits behind a bearer-token auth layer on every endpoint, it has automated test coverage — 12 tests at present — and it was built to mirror the deployment pattern of the existing production API, running under the same PM2/Docker setup rather than a separate, bespoke process. None of that is exciting. All of it is what separates a real MCP server from a demo.
Two features stand out because they reflect real product decisions, not generic CRUD: creating a milestone auto-derives a ticket-number prefix from its title if one isn't supplied, and renaming a milestone re-derives that code and cascades it to every child task's ticket number automatically. Moving a task between milestones re-derives its ticket number the same way. These aren't MCP features — they're planner business logic that the MCP tools call into, same as the web UI does.
Our Goal Planner is currently an internal engineering platform, not a commercially launched product. We use it to validate how AI agents can interact with real planning workflows under a real permission model — the capabilities described above are the actual current implementation, not a roadmap.
MCP Does Not Replace Good Software Architecture
It's worth being blunt about the failure mode this article is trying to prevent: treating an MCP server as a shortcut straight into the database. It should never be that. The chain that has to hold, in a system worth trusting, looks like this — AI agent, through MCP, through authorization, through business APIs, through business rules, through audit and events, into the database. Every link stays.
MCP adds a discovery and standardization layer at the top of that chain. It doesn't collapse anything underneath it. Business logic, permission checks, data validation, and auditability all remain the software's responsibility — not the protocol's, and not the AI model's. This matters everywhere, but it's non-negotiable in FinTech and HealthTech specifically, where the controls in question exist for regulatory and safety reasons, not just correctness.
An MCP tool is only as trustworthy as the API and business logic behind it. If a tool writes directly to a data store without going through your existing authorization and validation path, you haven't adopted MCP correctly — you've built a new, less-audited backdoor and given it a fashionable name.
Security and Governance
None of this is a full security architecture — that's a separate, longer document — but a handful of practices are worth stating plainly, because they're where MCP deployments most commonly go wrong:
- Authentication — every AI client is a real, identifiable caller, never an anonymous one
- Authorization — the same permission model that governs human users governs the AI client, with no exception path
- Least privilege at the tool level — a tool exposes exactly the operation it needs to, not a general-purpose escape hatch
- Audit logging — every tool call is recorded with the same fidelity as a human-initiated action
- Rate limiting — agents call APIs exhaustively and don't get tired; your limits should assume that
- Sensitive data controls — fields that are restricted for human users stay restricted for AI clients
- Human approval for high-risk operations — irreversible or high-consequence actions get a checkpoint, not full autonomy by default
None of this is unique to MCP. It's the same governance any API needs once a non-human, exhaustive caller is in the mix — MCP just makes that caller a more common, more standardized part of the picture.
A Practical Decision Framework
Use this as a starting point for the conversation, not a rulebook to apply mechanically:
| Situation | Likely approach |
|---|---|
| One AI application, a handful of operations | Direct API integration |
| Controlled internal AI assistant, you own both sides | APIs plus standard tool calling |
| Multiple AI clients need access to the same platform | Consider MCP |
| Multiple independent agents interact with your system | Strong MCP candidate |
| Customers want to connect their own AI agents | Strong MCP candidate |
| Large or fast-evolving tool ecosystem | Strong MCP candidate |
| Simple, deterministic, single-purpose integration | MCP may be unnecessary |
These are guidelines, not rigid rules. The right call also depends on your team's capacity to operate another piece of infrastructure, how quickly your tool surface is actually growing, and whether third-party AI access is a near-term reality or a hypothetical.
Conclusion: Do You Actually Need an MCP Server?
Sometimes. Sometimes not. That's the honest answer, and any article that gives you a different one is selling something.
The more useful question underneath it is: what role should AI actually play in your software architecture? If AI is only answering questions, you need very little — good documentation and maybe a read-only integration cover most of it. If AI is performing actions on your platform's behalf, your APIs and business logic start to matter a great deal, regardless of which protocol sits on top of them. And if many independent AI clients and agents need standardized, discoverable access to a tool surface that's actually growing, MCP becomes increasingly the right shape for that problem.
MCP should solve an architectural problem. It should not become an architectural goal.