Skip to main content

What are you looking for?

Explore our services and discover how we can help you achieve your goals

MCP server integration: the server that stands between an agent and your systems

A Model Context Protocol (MCP) server turns a business system into something an AI agent can safely call: it exposes a fixed set of tools and resources, enforces authentication and scopes, versions its own contract, and logs every call, so an agent gains capability without gaining a database connection.

Submit a project Scope an AI Workflow Blueprint

Reviewed by David Nguyen (CEO) · Updated 2 Oct 2026 · 12 min read

star

OutsourcingVN is operated by Netbase JSC, which builds and integrates agent and MCP-based systems, so this guide comes from a supplier with an interest in your project. It assumes you have already decided which tools an agent may call and when a person must confirm an action — the AI agent tool permissions guide covers that decision — and now need to build the server that exposes those tools. Where the server's evaluation, red-teaming and release gates need to run as a standing discipline rather than a one-off build, the quality, security and AI assurance service builds and runs them.

Contents

Why wrap a system in a server instead of calling it directly?

An agent can reach a business system three ways: direct API calls written into the agent itself, a shared library of custom tool-calling code, or a server that exposes a fixed, versioned set of tools and resources over MCP. Direct API calls mean the agent calls the system's own API and decides for itself what to call; custom code wraps that call in a shared library but still runs inside the agent. Both couple every agent to the system's interface and repeat the same authentication and validation logic everywhere — tight coupling a server removes by doing that work once, behind one contract, for any compliant agent to reuse. None of this decides whether the job needs an autonomous agent at all — the AI agent or workflow automation guide covers that question — or whether connecting agents here is worth a bounded experiment first, which the emerging technology adoption guide frames.

Where does an MCP server sit between agents and your systems?

Four approaches sit on a line from tight coupling to governed reuse.

Field Direct API calls Custom tool-calling code Local MCP server Hosted MCP server
Where the code lives Inside each agent Inside each agent, duplicated per agent On your infrastructure, next to the system Run by you or a partner, reachable over HTTP
Where credentials sit The agent's own process holds the credentials The agent's own process holds the credentials The server holds scoped credentials, hidden from the agent The server holds scoped credentials behind OAuth 2.1
Who authors a new integration Whoever edits the agent's code Whoever edits the agent's code Whoever writes a new tool on the server Whoever writes a new tool on the server
Governance and reuse None; every agent repeats the same logic Limited; the logic is duplicated per agent One contract many agents reuse, and one place to audit The same contract, reachable from multiple clients or teams

On the left, an agent's own code decides everything: direct API calls reach the business system with no server between them, and custom tool-calling code is still just the agent's code, calling its own API. On the right, a local MCP server adds your own layer between agent and system, reachable through its API, built around the contract described below; that stays yours if it is self-hosted, and adding a new tool means you add a tool to the server, not to every agent that calls it. On a hosted server, you or a partner hold the server code and run it; the data behind it stays yours regardless of who hosts the process. Netbase security practices include secure code review and version control, role-based access control, MFA for admin dashboards, contributors under NDA, and NDAs and DPAs on request, which apply to a server Netbase builds the same way they apply to any other backend. What a buyer gains moving right is governance: one audited contract instead of logic repeated and drifting across every agent.

Diagram of four ways an agent reaches a business system, from direct API calls and custom tool-calling code inside the agent to a local or hosted MCP server holding its own versioned contract, on a coupling to governance axis (opens the full-size diagram in a new tab)
Diagram of four ways an agent reaches a business system, from direct API calls and custom tool-calling code inside the agent to a local or hosted MCP server holding its own versioned contract, on a coupling to governance axis

What should a server expose, and what should it keep hidden?

MCP distinguishes tools, which an agent invokes to take an action or fetch a computed result, from resources, which a server exposes for a client to read, such as a document, a schema or a reference list. The specification expects applications to make clear which tools are exposed and to confirm a sensitive operation before it runs; the AI agent tool permissions guide covers deciding which operations count as sensitive. A server should expose the narrowest tool that does the job — "look up an order by number", not "run this query" — and keep anything the agent does not need, such as administrative endpoints or another tool's credentials, out of its surface entirely rather than gated only by a prompt instruction.

How do you define the contract: authentication, scopes and versioning?

A tool's definition is a contract: its name, a description, and an input and output schema a client can validate against on every call. MCP's authorization specification builds this on OAuth 2.1 for HTTP transports: the server acts as an OAuth resource server, a client requests a token scoped to that one server, and the server must accept only tokens issued for itself rather than forwarding a token it received on to another API. Scopes should match the tool list, not a blanket grant — a tool that reads order status needs a narrower scope than one that creates a return. Version the contract the way any API is versioned: a breaking schema change is a new version or a new tool name, not a silent edit that breaks every agent already calling the old shape. A local, STDIO-based server instead reads its credentials from the environment it runs in, so deciding which credentials that environment can see is itself part of the contract.

What should run on every call: logging and testing?

  1. Validate the input against the schema

    Reject a malformed call before it reaches the business system, with a clear error the client can act on.

  2. Check the token's scope

    Confirm the caller's token authorises this specific tool, not just that a token is present.

  3. Log the call

    Record the tool name, the caller, the inputs, the output and the latency, the same evidence a red-team case or an incident needs later.

  4. Treat every tool description as untrusted

    The specification requires clients to consider tool annotations untrusted unless they come from a trusted server, so a server's own claim that a tool is safe is not a control to rely on.

  5. Rate-limit and sanitise the output

    Cap how often a tool can be called and validate what it returns, so a slow or compromised backend cannot exhaust the agent's budget.

Treat a new or changed tool as a change to test, not just ship: the AI workflow evaluation and testing guide covers scoring its behaviour against a rubric, the AI assurance and red teaming guide covers planting hostile tool results and a malicious tool description before launch, and the LLM observability and monitoring guide covers watching the server's calls once it is live.

A worked scenario: exposing an order system to a support agent

A retailer wants a support agent to look up orders and start a return through an order management system that currently has no API, only an internal admin screen. The scenario is illustrative and describes no client.

The team builds a small MCP server in front of the order system with two tools: get_order_status, scoped to read-only access on the caller's own token, and create_return_request, scoped separately and requiring the agent to show the order number, reason and amount first. The server validates both inputs against a schema, logs every call with the caller's identity, and rejects any call whose token lacks the matching scope. When the order system's API later changes its field names, the contract is versioned: the old tool keeps working against a compatibility shim while agents migrate on their own schedule, rather than every caller breaking the same day.

What has Netbase delivered with agent-connected integrations?

For a client (not named), Netbase built a WhatsApp Business AI chatbot with intent and conversation-flow handling, an LLM API (GPT-4 in the stack) and CRM synchronisation for lead capture, customer data and workflow automation. That CRM synchronisation is the closest published example of what an MCP server formalises: a model-driven assistant reaching into a business system to read and write real records. Netbase has delivered anonymised client AI projects including retrieval-based knowledge assistants, document AI and MLOps pipelines, and works with commercial and open-source AI models chosen per project (model-agnostic); no vendor partnership is implied. Netbase applies the ISO/IEC 42001 AI management system framework to its own AI delivery practice. Delivery runs remote-first from Hanoi in Agile increments with weekly reviews, using AI-assisted engineering under human review, whether the milestone is a chatbot or a server exposing tools to an agent.

Which questions should you ask an MCP integration supplier?

  • Which systems get a server, and which stay off-limits?

    A named list, with reasoning for anything excluded

  • What is each tool's scope, and who issues the tokens?

    A scope per tool, never a single blanket credential

  • How do you version a tool's contract?

    A plan for a breaking schema change that does not break every caller the same day

  • How do you treat a tool you did not write?

    A review before connection, with its description treated as untrusted

  • What gets logged, and for how long?

    Caller, inputs, output and latency, retained long enough to investigate a dispute

  • How is a new or changed tool tested before it ships?

    An evaluation run, a red-team pass and a monitoring plan, not a manual check

What failure modes should you watch for?

  • One token for every tool. Signal: a single credential can call anything the server exposes. Fix: scope tokens to the tool, not the server.
  • A schema change ships without a version. Signal: every calling agent breaks the same day. Fix: version the contract and keep the old shape working during migration.
  • Tool descriptions trusted at face value. Signal: a server's own claim that a tool is read-only is never checked. Fix: treat every description as untrusted until reviewed.
  • No logging on the server itself. Signal: a disputed action traces to the agent's chat log but not to the call the server made. Fix: log the call, the caller and the scope on the server.
  • A local server inherits its host's full access. Signal: credentials in the environment reach further than any tool needs. Fix: scope the environment the server runs in, not only the tokens it issues.

How this guide is sourced

The contract and security requirements come from the Model Context Protocol specification's tools, resources and authorization pages, each dated under Sources, and OWASP's supply-chain entry, which applies to a connected third-party server the same way it applies to any other external component. No specific agent application, host or client product is named or endorsed. Statements about Netbase come from attested company facts listed under Sources. The order-system scenario is illustrative. The related published record is the WhatsApp chatbot's CRM synchronisation; MCP server work is offered as a scoped engagement.

Plan the next step for your project

Common questions

No. The agent decides which tool to call and when; the server is a separate process that exposes the tools and resources and enforces their contract regardless of which agent calls it.

No. It defines how tools are discovered, called and described, and expects human confirmation on sensitive operations, but the server still has to validate inputs, check scopes and log calls itself.

Yes, and that reuse is the main governance benefit: one audited contract instead of the same integration logic written again inside every agent that needs it.

Deprecate it with a clear notice period rather than deleting it outright, so any caller still depending on it is not broken without warning.

A local, STDIO-based server reading credentials from its own environment suits a single team; a hosted server behind OAuth 2.1 suits multiple teams or agents that need the same tools.

Bring the system you want an agent to reach

A first conversation goes furthest with the system you want an agent to reach, the tools it would need, and who should hold the credentials. Submit a project with that scope, or start with an AI Workflow Blueprint if the tool list is not yet decided. OutsourcingVN is Netbase's own outsourcing-services platform.

AI workflow blueprint: decide where automation belongs before you build AI workflow blueprint: decide where automation belongs before you build

A paid two-to-four-week project that ends in a scope you can approve, change or stop.

Learn More
line

Tell us what you want to build or automate.

Submit a project