Skip to content
Engineering10 min readPublished Last updated

What is an MCP server, and when does a business need one?

The Model Context Protocol (MCP) is an open standard for connecting AI applications to tools and data. An MCP server is the piece you write or run on your side: it decides which actions and which data an AI application may reach in your systems. Most businesses do not need to build one. A workflow with a model at one step, or a plain API call, does the job with less to secure. You need one when an agent has to choose among several actions over internal systems and you want that access defined, limited and logged in a single place. This article says how to tell which side you are on, and how to start without handing an agent the keys.

By Updated

In short

  • MCP is an open standard that lets an AI application discover and call tools, read resources and use prompt templates that a server offers. The server is where you decide what is allowed.
  • You probably do not need one if the steps are fixed. A Make or Zapier scenario, or a direct API call with a model at one step, is simpler to build, test and secure.
  • Build one when an agent must pick between several actions over your own data, when more than one AI application needs the same controlled access, or when you want a single place to scope, log and revoke it.
  • An MCP server does not make anything safe by itself. It is a new surface. The safety comes from narrow tools, per-user credentials, read-only first, a person approving writes, and an audit log.
  • The two real risks are tools that are too broad and prompt injection through tool results. Design for both: one tool per intent, no tool that sends, pays or deletes at the start, and treat everything a tool returns as untrusted text.
  • Start with one read-only server over one system, on staging or a copy, with three or four narrow tools and a log. Widen only on evidence.
01

What is an MCP server?

Anthropic's Claude Code documentation describes the Model Context Protocol as an open source standard for AI-tool integrations, and says MCP servers give Claude Code access to your tools, databases and APIs. In plain terms, it is an agreed way for an AI application to ask a server 'what can you do?' and then call it. The AI application is the client. The server is a small program that sits in front of your system and answers.

The reason it exists is repetition. Without a standard, every AI application needs its own custom connection to every system. With one, you write the connection to your system once, as a server, and any application that speaks the protocol can use it. Anthropic's documentation uses the example of connecting an issue tracker, a monitoring dashboard or a database so the assistant can read and act on that system directly instead of working from whatever you paste into a chat.

Two limits on what we say here. The protocol is still evolving and Claude Code's own documentation refers to protocol revisions and a newer client runtime, so check the current specification at modelcontextprotocol.io before you build. We could not read that site from our environment when writing this, so the protocol facts below rest on Anthropic's Claude Code and API documentation, linked under Sources. And we are not an Anthropic partner; nothing here is endorsed by Anthropic.

02

What does an MCP server expose?

Three kinds of thing. Claude Code's documentation refers to all three when it describes a server's capabilities: tools, prompts and resources, which a client discovers by asking the server to list them.

KindWhat it isBusiness exampleWhere the risk sits
ToolsActions the AI can choose to call, each with a name, a description and typed inputsfind_order(order_id), list_overdue_invoices(), create_draft_reply(ticket_id)Highest. A tool is an action. Its scope is the blast radius
ResourcesData the client can read and attach, addressed by a URI. Claude Code lets you reference them with @ mentionsA price list, a policy document, a customer record viewMedium. Reads leak data; they do not change it
PromptsReusable prompt templates the server offers to the user'Summarise this week's exceptions' with the right fields pre-filledLow, but they are still text that steers the model, so they deserve review
What a server can offer, and what that means for a business

In practice most business servers are mostly tools. That is also where the design effort belongs, because a tool's name, description and inputs are all the model knows about what it may do. Anthropic's tool-use documentation describes the mechanism: Claude decides when to call a tool from the request and the tool's description, and returns a structured call that your application executes. The model asks. Your code does the work, and your code is where the checks live.

A server can also change what it offers while a client is connected. Claude Code's documentation says a server can update its tools, prompts or resources and notify the client, which then refreshes. That is convenient for your own server and a reason not to connect servers you do not control.

03

Local or remote: where does the server run?

Claude Code's documentation describes two main shapes. A local server runs as a process on the machine of the person using the client, over the standard input and output (the 'stdio' transport). A remote server runs elsewhere and is reached over HTTP, which the documentation recommends for remote servers; an older SSE transport is described as deprecated.

Local (stdio)Remote (HTTP)
Runs onThe user's own machineA server you host, or a vendor hosts
CredentialsLive in that machine's environment, so every machine holds a copyLive on the server; users authenticate to it
Good forOne developer, local files, quick experiments, tools that need direct system accessShared business data, several users, central permissions and logs
Access controlWhatever the person's own account can do, unless you narrow itPer-user sign-in, per-tool permissions, revocable centrally
Main riskSecrets scattered across laptops; no central logA network-reachable service that must be authenticated and monitored properly
Local and remote servers compared

For a business, the rule of thumb is simple. Local is for a developer experimenting. Anything that touches shared business data should run as a remote server you control, so credentials sit in one place, access is per person and revocable, and there is one log. This is the same pattern we used on the fleet order automation, where the monday.com token is account-wide and reaches commission data, so it lives in exactly one service and the front end never sees it. An MCP server is that boundary with a protocol on the front: the broad credential stays behind it, and the model is only handed narrow tools.

04

When do you need one, and when is something simpler enough?

Start from the job, not the protocol. The question is whether a model has to choose its own actions among several systems, or whether you can write the steps down. Our article on AI agents for operations makes the same cut: most operations problems are workflows with one model-shaped step, and an agent buys unpredictability you then have to engineer back out.

The situationUseWhy
A fixed process: form to board, invoice to ledger, message to ownerA Make, Zapier or n8n scenario, or a small serviceThe steps are known. A model, if any, does one bounded step inside it. Nothing needs to discover tools
One application of yours calls a model, with two or three functions it may callOrdinary tool use in your own code, calling your own APIAnthropic's tool-use API already lets you define functions your application executes. A protocol adds a moving part
A system needs to hand data to another on an eventA webhook or API integrationThat is integration, not an agent. See our systems integration page
Staff want to ask an assistant questions across several internal systems and get a read-only answerAn MCP server over those systems, read-onlyThe path depends on what each lookup returns, and a person reads the result
More than one AI application (a coding assistant, a chat assistant, your own agent) needs the same accessAn MCP serverDefine the access once; every client inherits the same limits and the same log
You want the agent to change records, send messages or move money-adjacent dataAn MCP server plus proposals and a person approvingWrite tools are the risky ones. See the staged rollout below
You are connecting an assistant to a third-party SaaS that already offers a maintained serverTheir server, after reviewing what it can doCheck the scopes it asks for. Anthropic says it does not security-audit MCP servers
MCP server, API, automation platform or nothing

Some automation platforms and SaaS vendors now offer MCP connectors of their own. We have not compared them, and what they expose changes, so read the current documentation for any you consider and apply the checks in this article to it.

05

Authentication and permissions: who is calling, and what may they do?

Two separate questions, and an MCP server has to answer both. Authentication: who or what is this client? Authorisation: what is it allowed to do with each tool and each record? A server that answers the first and skips the second is a locked front door with every room open.

  • Use the sign-in the protocol and your client support. Claude Code's documentation says it supports OAuth 2.0 for remote servers and flags a server as needing authentication when it answers 401 or 403. It also accepts a static token in a request header for simpler cases. Prefer per-user sign-in over one shared secret, so you can tell people apart in the log and revoke one without breaking everyone.
  • Keep the broad credential inside the server. The server holds the key to the CRM or database. The model never sees it and cannot be talked into printing it, because it is not in the conversation.
  • Authorise per tool and per record, in the server, not in the tool description. A description that says 'only use for the user's own customers' is a request. A query that filters by the signed-in user's permissions is a rule.
  • Give each agent its own identity and its own narrow scope. An agent that triages inbound mail needs different access from one that reconciles payments. One credential for all of them means one compromised agent reaches everything.
  • Do not commit secrets. Claude Code's project file, .mcp.json, can be shared through version control and supports environment-variable expansion, so a token can be referenced instead of pasted.

On the client side, administrators have levers too. Claude Code's documentation describes three scopes for server configuration (local, project and user), an approval prompt for project-scoped servers in interactive sessions, and managed configuration to restrict which servers an organisation's users may run. It also notes that non-interactive runs and cloud sessions load project-scoped servers without that prompt. So review a repository's .mcp.json like code, because in an automated run nobody is asked.

06

Read-only first, then proposals, then approved writes

Split tools by consequence and widen in stages. The same rule sits behind our AI agents article: read tools are given freely, write tools either do not exist or create a proposal that waits for a person.

StageWhat the tools can doWhat you learn before moving on
1. Read-only on staging or a copyLook things up. Return small, structured resultsWhether the tool names and descriptions are enough for the model to pick the right one; what it asks for that you did not expect
2. Read-only on live data, narrow viewsThe same, against production, through views that already exclude sensitive fieldsWhat the log shows people actually asking for; whether access control holds for two different users
3. Write as a proposalCreate a draft, a suggested change or a queued task. Nothing takes effectHow often proposals are wrong, and whether reviewers read them or click through
4. Approved writes, reversible onlyA person approves a proposal and the server applies it, with an undoWhether the approval step carries weight and the audit trail answers 'who approved what'
Not on the listTools that send to customers, pay, delete, or change permissions on the model's say-soAdd only with a specific reason, a narrow scope and a person in the path
A staged rollout for an MCP server over business systems

That is also why shadow mode matters. On the fleet order automation, the allocation and SLA layer shipped behind a flag that logged what it would have done without doing it, and comparing that with the manual process for real orders is what made the cutover uneventful. A write tool on an MCP server can run the same way: record the proposed call, compare with what a person did, and enable the real write later.

Audit logging

Log every tool call with who or what called it, the tool, the arguments, a summary of the result, the time and whether it succeeded, in a store the agent cannot edit. On the trading ERP, every write appends a field-level entry to a table staff can insert into and read but never update or delete, so the trail cannot be rewritten through the API. Do the same for the server. If a figure is queried months later, you want to know what was asked and what came back, not what the model said it did.

07

What goes wrong: over-broad tools and poisoned results

Over-broad tools

The commonest mistake is a tool that is too general, because it was quick to write. A run_sql tool, a call_api tool that takes any URL, a tool that accepts a free-text 'action' parameter. Each one gives the model, and anyone who can influence the model, the full power of the credential behind it. Prefer one tool per intent with typed inputs: find_order, list_overdue_invoices, create_draft_reply. Validate the inputs on the server. Return only the fields the job needs, and keep results small, since Claude Code's documentation says it warns about, and by default limits, very large tool output.

Prompt injection through tool results

Whatever a tool returns goes into the model's context, and some of it is text written by outsiders: an email body, a supplier's PDF, a web page, a customer's note. If that text contains instructions, the model may follow them. Anthropic's Claude Code documentation warns that servers which fetch external content can expose you to prompt injection, and its security page says that while the protections reduce risk, no system is completely immune. Anthropic's guidance for applications recommends labelling untrusted content as such, keeping it out of the system prompt, limiting the model's access to sensitive data and actions, and testing with hostile inputs. Our companion article on securing AI agents covers those controls in detail.

For an MCP server the practical consequence is this. The more your tools can read untrusted content, and the more they can do, the more an injected instruction can achieve. A server that reads inbound email and can also send email, on the same credential, has both halves of the problem. Split them: a reading server with no send tool, and any outbound action behind a proposal and a person.

Servers you did not write

Anthropic's security page encourages writing your own servers or using providers you trust, and says Anthropic reviews connectors against listing criteria for its directory but does not security-audit or manage any MCP server. Treat a third-party server like a third-party dependency with access to your data: read what it can do, check the scopes it requests, and prefer one you can pin or host.

08

How to start small

  1. 01Pick one question people ask repeatedly across one system, such as 'where is this order and what is its status?'. Not 'connect everything'.
  2. 02Write the three or four tools that answer it, each doing one thing with typed inputs and small outputs. Write the description as if for a new colleague.
  3. 03Put the server in front of a staging copy or a read-only database role. The model never gets the underlying credential.
  4. 04Add per-user sign-in, an allowlist of who may connect, and the append-only log, before the first real query.
  5. 05Use it yourselves for a while. Read the log. Look for questions the tools cannot answer and tools being called with arguments you did not expect.
  6. 06Move to live data through narrow views only when the log looks the way you intended. Add proposals for writes after that, not before.
  7. 07Write down who owns the server, how to disable it quickly and how to rotate its credential.

A caution about our own track record. We have not published a case study of an MCP server running in production for a client, and we do not claim one. What we can point to is the pattern it relies on: the credential boundary and shadow mode on the fleet order automation, and the append-only audit trail and model-proposes, person-confirms design on the trading ERP, where Claude reads supplier invoices. Our Claude platform page describes operations agents with a short list of narrow tools, usually exposed through an MCP server over your own systems, as something we build; our AI integration page covers the wider work.

09

Deciding

If this is trueThen
You can write the steps downBuild a workflow. Put a model at the one step that needs it. No MCP server
One of your own applications needs two or three functions for a modelDefine them in your code with tool use. Add a server if more clients appear
Several AI applications need the same access to internal systemsBuild one remote MCP server with per-user sign-in and a log
The agent would change records or send messagesRead-only first, then proposals, then reversible approved writes
The tools can read outsiders' text and also actSplit reading from acting, and put a person on anything outbound
You are tempted by a general-purpose tool such as run_sqlWrite the narrow tools instead
A vendor offers a ready-made serverRead its scopes first, and treat it as a dependency with access to your data

Common questions

A small program that sits in front of a system and tells an AI application what it can do there, then does it when asked. MCP, the Model Context Protocol, is an open standard for that conversation, so one server can be used by any compatible AI application. The server is where you set what is allowed.

Sources

Statements about what a platform does are checked against the vendor’s own documentation as of 2026-10-10. Vendors change things, so check the current page before you rely on a limit or a price.

Drafted with AI assistance (Claude). Published under Saveez Irfan’s name, who is accountable for it. Editorial policy

Start here

Tell us about the process that keeps costing you.

A 15-minute call is usually enough to say whether this is an automation, an integration, or something that should be built, and whether we are the right people for it.

Book a 15-minute callsaveez@skofi.tech

What happens on the call

  • 15 minutes, no deck
  • We map the process on the call
  • A written scope, or an honest no
Book a call