About Portfolio Cases Services Blog Contact 🎙 Talk to AI
EN DE RU
🎙 Talk to AI
November 6, 2026 · 5 min read

Your AI agent hits a wall without web access: why teams need one MCP gateway instead of 20 fragile integrations

I’m Denis Shokhirev, an Agentic AI Systems Architect based in Freiburg im Breisgau, Germany, and at DennisCraft AI Studio I ship production AI systems on Claude, Supabase, n8n, Doppler, and self-hosted Postgres. The moment an agent starts failing in production is often less dramatic than people expect: it can still talk fluently, but it can no longer reach the current web context, vendor docs, ticket state, order status, or internal tools it needs to do real work. That is the ceiling many teams

Denis Shokhirev
Denis Shokhirev
Agentic AI Systems Architect
Telegram LinkedIn

I’m Denis Shokhirev, an Agentic AI Systems Architect based in Freiburg im Breisgau, Germany, and at DennisCraft AI Studio I ship production AI systems on Claude, Supabase, n8n, Doppler, and self-hosted Postgres. The moment an agent starts failing in production is often less dramatic than people expect: it can still talk fluently, but it can no longer reach the current web context, vendor docs, ticket state, order status, or internal tools it needs to do real work.

That is the ceiling many teams hit. The model is not necessarily the bottleneck. The tool-access architecture is. If your agent needs separate logic for your CRM, ERP, support desk, internal docs, Postgres, and selected external websites, you do not have one agent system. You have a pile of fragile integrations with an LLM attached to the front.

Why “no web access” becomes a hard limit fast

In a demo, limited access looks safe. In production, limited access often means stale context. An agent that cannot fetch current information is forced to answer from old retrieval results, static prompts, or partial memory. That works until the task depends on what changed this morning.

Static context ages quickly

Your RAG index can hold product documentation, internal SOPs, and policy text. It cannot magically reflect a vendor status page update, a shipping event, a revised API field, or a support ticket edited 30 seconds ago unless you build the path to that data. For operations, finance, and support workflows, that difference matters more than prompt quality.

Direct connectors fail in different ways

One script uses a REST API. Another talks to Postgres. Another scrapes a docs page. Another triggers n8n. Each connector has its own auth, timeout behavior, retry semantics, rate limits, and error shape. At 3 integrations, teams manage it manually. At 20, nobody can explain the full failure surface.

Access control gets messy

OWASP Top 10 listed Broken Access Control as the number 1 category in 2021, affecting 94% of tested applications in their dataset (OWASP Top 10, 2021, https://owasp.org/Top10/). Agent systems amplify that risk because every new tool call is another permission boundary. If each boundary is implemented ad hoc, privilege creep is almost guaranteed.

Why one MCP gateway is better than 20 tool-specific integrations

The important idea is not branding. It is standardization. An MCP-style gateway gives the model one stable interface for tool access while the gateway handles routing, authentication, authorization, logging, and response normalization behind the scenes.

ApproachWhat it looks likeStrengthWeakness
Direct tool callsAgent code integrates every service separatelyFast to prototypeScattered auth, duplicate logic, poor auditability
Workflow-only setupMost actions routed through n8n flowsGood process automationStill needs a central policy layer
Single MCP gatewayOne access layer for all toolsCentral logs, ACLs, consistent tool contractsRequires deliberate upfront design

In practice, this changes the operating model. Adding a new data source no longer means teaching the agent a new set of low-level behaviors. You expose one new capability at the gateway, define who can use it, instrument it, and keep the model-side contract unchanged. That is how you avoid rewriting the agent every time your systems grow.

What this looks like in a production stack

A minimal setup is straightforward. Claude receives a task, requests a tool through a standard interface, the gateway checks policy, calls the target system, and returns normalized output. Your model sees a small, stable tool surface. Your engineering team keeps complexity where it belongs: in infrastructure, not in prompts.

Simple policy gate before execution

from typing import Dict

ALLOWED_TOOLS = {
    "support_agent": {"search_docs", "get_order_status"},
    "ops_agent": {"search_docs", "get_order_status", "update_ticket"},
}

def can_call(agent_role: str, tool_name: str) -> bool:
    return tool_name in ALLOWED_TOOLS.get(agent_role, set())

def execute_tool(agent_role: str, tool_name: str, args: Dict):
    if not can_call(agent_role, tool_name):
        raise PermissionError(f"{agent_role} cannot call {tool_name}")
    return {"tool": tool_name, "args": args, "status": "accepted"}

print(execute_tool("support_agent", "get_order_status", {"order_id": "A-441"}))

This is basic by design. But in many agent projects, even this layer is missing. Teams validate that the tool works and skip the harder question: should this agent be allowed to call it, under what conditions, and where is that event logged?

A thin HTTP gateway for internal tools

import express from "express";

const app = express();
app.use(express.json());

app.post("/tool/get_order_status", async (req, res) => {
  const { orderId } = req.body;
  if (!orderId) return res.status(400).json({ error: "missing orderId" });

  res.json({
    orderId,
    status: "in_transit",
    source: "postgres",
    checkedAt: new Date().toISOString()
  });
});

app.listen(3000, () => console.log("gateway on :3000"));

Even this small layer gives you one place to add audit logs, request redaction, rate limiting, and secret management through Doppler. It also gives you one error contract back to the model instead of a dozen incompatible ones.

Where web access is actually required

Not every agent needs open internet access. Many do need controlled web access. I usually separate the requirement into three buckets.

Selected external web access

Vendor docs, public regulatory pages, changelogs, service status pages, and pricing references. This should be allowlisted, cached where possible, and logged. The point is not open browsing. The point is current, bounded context.

Internal web and service access

Support portals, internal documentation, admin panels, customer workspaces, and workflow endpoints. This is often more important than public web access because it is where the agent gets operational truth.

No web access at all

This is fine for narrow tasks such as document classification, fixed-schema SQL analysis, or routing against a closed set of tickets. The mistake is turning that narrow constraint into a universal design principle.

What to check before you ship the gateway

Anthropic’s documentation on tool use emphasizes structured interfaces and clear contracts between models and external actions, which matches what production teams learn the hard way (Anthropic documentation, accessed 2026, https://docs.anthropic.com/). The gateway should be small, explicit, and easy to audit.

export TOOL_GATEWAY_URL=http://localhost:3000
export ALLOWLIST_DOMAIN=docs.example.com
export LOG_LEVEL=info

curl -X POST "$TOOL_GATEWAY_URL/tool/get_order_status" \
  -H "Content-Type: application/json" \
  -d '{"orderId":"A-441"}'

My short production checklist is consistent across projects:

  • least-privilege access per tool;
  • central audit trail for every tool call;
  • secrets outside application code;
  • normalized response shapes back to the model;
  • fallback behavior when a web source is unavailable.

If you already use n8n, keep it. I usually keep n8n for workflow orchestration and put the MCP gateway in front as the policy and access layer. Those are different responsibilities. Separating them keeps both simpler.

FAQ

Does an MCP gateway replace RAG?

No. RAG is for retrieving known content from a defined corpus. A gateway is for controlled access to live tools and current systems.

Can I avoid web access entirely?

Yes, for fully local tasks with no dependency on changing external state. Once the task requires current operational data, no-web quickly becomes a business limitation.

Why not just integrate every API directly?

Because it is fast only once. After that, maintenance cost grows through duplicated auth, inconsistent retries, scattered logging, and unclear permission boundaries.

Is this relevant only for large enterprises?

No. Mid-market teams feel this pain early because they have enough systems to create complexity, but not enough platform staff to absorb it cleanly.

What is the first migration step if my stack is already messy?

Move the 3 highest-value tools behind one gateway first. Do not try to centralize everything in one week; centralize the control point before you centralize the world.

Where is your agent stack hitting the real ceiling right now: missing live web context, uncontrolled tool permissions, or too many one-off integrations to maintain safely in production? I’d genuinely like to know.

I run a free 30-min stack audit for DACH founders building AI in regulated markets. DM me on LinkedIn or write to @ger_dennis_ai.

For your business

I build agents like this for businesses in Germany and the EU.

Tell me in two sentences what eats your team’s time – reply within 24 hours.

Custom AI agents (German page) →
Continue reading
Computer-use agents break on pixels: how to switch to stable UI refs via accessibility trees and stop fixing flaky desktop automation
A compromised Cursor marketplace extension tried to plant SSH backdoors: how to stop AI tooling from owning developer machines
Your agent breaks production not because it hallucinates, but because it cannot see the UI: why runtime perception for web and desktop is becoming mandatory
Your AI agent touched production? How to build replayable security triage and a provable audit trail before the first incident
All articles →
Where this is applied
Services — what we build
Talk to the voice agent
Case studies
Ready to build?

Turn your process into an AI system

Production quality. DACH B2B focus.

Start a project → ← All articles