<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Zihin.ai Blog]]></title><description><![CDATA[Zihin.ai Blog]]></description><link>https://zihinai.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Mon, 09 Nov 2026 13:11:25 GMT</lastBuildDate><atom:link href="https://zihinai.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[MCP Bridge: turning legacy systems into tools an AI agent can use]]></title><description><![CDATA[How the MCP Bridge turns ERPs, databases and legacy APIs into AI agent tools over MCP, with an outbound-only on-premise connection.]]></description><link>https://zihinai.hashnode.dev/mcp-bridge-turning-legacy-systems-into-tools-an-ai-agent-can-use</link><guid isPermaLink="true">https://zihinai.hashnode.dev/mcp-bridge-turning-legacy-systems-into-tools-an-ai-agent-can-use</guid><category><![CDATA[mcp]]></category><category><![CDATA[Artificial Intelligence]]></category><category><![CDATA[integration]]></category><dc:creator><![CDATA[Ronan Oliveira]]></dc:creator><pubDate>Thu, 05 Nov 2026 22:55:23 GMT</pubDate><content:encoded><![CDATA[<p>The question that separates an AI demo from an agent in production is simple: <strong>does it reach the systems where the work actually happens?</strong> An assistant that only chats is a toy. An agent that reads the order in the ERP, checks stock in the database and replies in the customer's channel is operations.</p>
<p>The problem is that those systems were almost never built for an AI to talk to them. That's where the <strong>Model Context Protocol (MCP)</strong> comes in — and the way Zihin puts it into production with the <strong>MCP Bridge</strong>.</p>
<h2>What MCP solves</h2>
<p>MCP is an open standard for exposing <em>tools</em> to a language model in a structured way: each capability becomes a function with a name, a description and typed parameters. The agent doesn't "guess" how to use your system — it gets a contract.</p>
<blockquote>
<p><strong>Tip:</strong> Think of MCP as the "USB-C" of agent tools: a standard connector between the model and any system, instead of a custom integration for every case.</p>
</blockquote>
<h2>From legacy to MCP, without a rewrite</h2>
<p>The declarative MCP Bridge maps existing resources to MCP tools without requiring any change to the source system. In practice, three paths cover most cases:</p>
<ul>
<li><strong>via API</strong> — a REST/GraphQL endpoint becomes a tool with a schema derived from its contract.</li>
<li><strong>via Database</strong> — parameterized queries become safe tools, with an allowlist of operations.</li>
<li><strong>via native MCP</strong> — MCP servers you already expose plug straight into the runtime.</li>
</ul>
<p>The mapping is declarative. You describe <em>what</em> to expose; the Bridge takes care of <em>how</em> to present it to the agent:</p>
<pre><code class="language-yaml">tool: consultar_pedido
source: erp.orders
input:
  pedido_id: string
returns: json
</code></pre>
<h2>The part that usually gets stuck: on-premise</h2>
<p>Much of the critical data isn't in the public cloud — it's behind the firewall. The <strong>Tunnel</strong> establishes outbound connectivity from your environment to the runtime, without opening inbound ports or setting up a VPN. The agent reaches the on-premise legacy system; your network stays closed to the world.</p>
<blockquote>
<p><strong>Warning:</strong> Reach without control is risk. Every tool exposed through the Bridge follows the policies of its scope (tenant → agent → user) — the topic of the next post in this series.</p>
</blockquote>
<p>Connecting is the first pillar: <strong>Reach</strong>. It's what takes AI off the slide and puts it where the work is actually done. Want to see it in your own setup? <a href="https://www.zihin.ai/en/contact?topico=diagnostico">Book a diagnostic</a>.</p>
<hr />
<p><em>Originally published in Portuguese on the <a href="https://www.zihin.ai/blog/mcp-bridge-conectividade">Zihin blog</a>. I work at Zihin, which connects AI agents to a company's systems and processes, with permissions, human approvals and cost tracking.</em></p>
]]></content:encoded></item><item><title><![CDATA[From policy PDF to runtime: enforcing AI governance on every agent call]]></title><description><![CDATA[How contextual security policies with scope inheritance turn AI governance into rules enforced at runtime, with recorded evidence.]]></description><link>https://zihinai.hashnode.dev/from-policy-pdf-to-runtime-enforcing-ai-governance-on-every-agent-call</link><guid isPermaLink="true">https://zihinai.hashnode.dev/from-policy-pdf-to-runtime-enforcing-ai-governance-on-every-agent-call</guid><category><![CDATA[Artificial Intelligence]]></category><category><![CDATA[Security]]></category><category><![CDATA[Governance]]></category><dc:creator><![CDATA[Ronan Oliveira]]></dc:creator><pubDate>Thu, 05 Nov 2026 22:53:31 GMT</pubDate><content:encoded><![CDATA[<p>There's a gap between <em>having</em> an AI usage policy and <em>enforcing</em> it. The document says "the support agent doesn't access financial data". But who guarantees that on call #4,385, at 2 a.m., when nobody is watching?</p>
<p>Governance that lives in a PDF is intent. Governance that lives in the <strong>runtime</strong> is operations.</p>
<h2>What a contextual policy (CSP) is</h2>
<p>A Contextual Security Policy ties a permission decision to the <em>context</em> of the execution, not just to the identity of the caller. Five axes cover most real-world needs:</p>
<ul>
<li><strong>Origin</strong> — which channel or application the request came from.</li>
<li><strong>Schedule</strong> — time windows in which certain actions are allowed.</li>
<li><strong>Data</strong> — which fields the agent can read or write.</li>
<li><strong>Behavior</strong> — limits on volume, frequency and escalation.</li>
<li><strong>Custom</strong> — rules specific to your domain.</li>
</ul>
<blockquote>
<p><strong>Note:</strong> The policy isn't a front-end filter or a reminder in the prompt. It's a check executed in the runtime, before the tool runs — the agent simply can't cross the line.</p>
</blockquote>
<h2>Scope inheritance: tenant → agent → user</h2>
<p>What makes this workable at scale is <strong>inheritance</strong>. You define the most restrictive policy at the top (tenant), and each level below can tighten — never loosen — what it inherited:</p>
<pre><code class="language-text">tenant   → the organization's compliance baseline
  agent  → what this agent can do
   user  → what this user can trigger on the agent
</code></pre>
<p>So a data-protection rule (LGPD, Brazil's privacy law) defined once on the tenant applies to every agent and user, with no need to paste it into each configuration. Less surface for human error — and human error is what causes most <em>over-access</em>.</p>
<h2>Without evidence, there was no governance</h2>
<p>Enforcing the rule is half the job. The other half is <strong>proving</strong> it was enforced. Every policy decision is recorded and can be reconstructed in the session replay: who asked, what the policy decided, and why.</p>
<blockquote>
<p><strong>Tip:</strong> An audit shouldn't be a weeks-long project. With full replay, answering "has the agent ever accessed this data?" is a query, not an excavation.</p>
</blockquote>
<p>Governing is the second pillar — the inseparable partner of <strong>Reach</strong>. It's no use for the agent to reach everything if it doesn't respect limits wherever it lands. Put the two together and AI stops being a compliance risk and becomes an auditable asset. <a href="https://www.zihin.ai/en/contact?topico=diagnostico">Talk to us</a>.</p>
<hr />
<p><em>Originally published in Portuguese on the <a href="https://www.zihin.ai/blog/politicas-contextuais-runtime">Zihin blog</a>. I work at Zihin, which connects AI agents to a company's systems and processes, with permissions, human approvals and cost tracking.</em></p>
]]></content:encoded></item><item><title><![CDATA[Connecting existing systems to AI agents with MCP: 3 strategies we run in production]]></title><description><![CDATA[Three production-tested ways to connect existing systems to AI agents via MCP: Swagger proxy, read-only server and Clean Architecture.]]></description><link>https://zihinai.hashnode.dev/connecting-existing-systems-to-ai-agents-with-mcp-3-strategies-we-run-in-production</link><guid isPermaLink="true">https://zihinai.hashnode.dev/connecting-existing-systems-to-ai-agents-with-mcp-3-strategies-we-run-in-production</guid><category><![CDATA[mcp]]></category><category><![CDATA[Artificial Intelligence]]></category><category><![CDATA[software architecture]]></category><dc:creator><![CDATA[Ronan Oliveira]]></dc:creator><pubDate>Thu, 05 Nov 2026 22:51:21 GMT</pubDate><content:encoded><![CDATA[<p><em>By <strong>Isabele Santos</strong>, co-written with <strong>Fernando Junior</strong>.</em></p>
<p>Today we use three possible paths, which let us make good use of what MCP offers. MCP (Model Context Protocol) is an open protocol created by Anthropic and now adopted by the main players in the market. In practice, that has made it the "USB-C" of enterprise AI: instead of building a handcrafted connector for every model–system pair, you build an MCP server once and any compatible client can connect to it.</p>
<p>The protocol exposes three primitives: <strong>Resources</strong> (data the model can read for context), <strong>Prompts</strong> (reusable templates for standardized flows) and <strong>Tools</strong> (functions the model can invoke to take real actions — fetching a record, firing an event, changing a status).</p>
<p>We've implemented three strategies in production over the last year, and that has been cutting costs and headaches. Which raises the question: what does it cost, today, <em>not</em> to implement this protocol? The MIT study (Project NANDA) showed that about 95% of enterprise generative AI pilots deliver no measurable P&amp;L impact — pointing to enterprise integration failures as the core problem, not model quality. That's against an estimated US$30–40 billion invested in GenAI, with 95% of organizations getting zero return. In most cases, the bottleneck is the difficulty of maintaining many separate integrations, which cost time and money besides being inefficient. It becomes clear that one of today's bottlenecks in enterprise AI is integrating models with systems, not the quality of the models themselves. (<a href="https://fortune.com/2025/08/18/mit-report-95-percent-generative-ai-pilots-at-companies-failing-cfo/">Source: "The GenAI Divide: State of AI in Business 2025", MIT Project NANDA, via Fortune</a>)</p>
<blockquote>
<p><strong>Note:</strong> The study attributes the failure to the "learning gap" and to integration with real workflows.</p>
</blockquote>
<p>So how did our team choose to get around this problem? Precisely by applying three strategies, which vary in isolation and effort, presented by <strong>Fernando Junior, our Development Lead</strong>, based on what we run in production.</p>
<p><em>— Isabele Santos</em></p>
<hr />
<h2>Strategy 1 — Proxy + Swagger</h2>
<p><strong>Data flow:</strong> LLM → MCP Server (acting as a proxy) → existing HTTP REST API.</p>
<p><strong>Automation:</strong> the server reads Swagger/OpenAPI files natively and generates the LLM "tools" 100% automatically.</p>
<p><strong>Zero cost on the legacy side:</strong> no change needed in the original backend code.</p>
<p><strong>Ideal scenario:</strong> perfect for fast prototyping, integrating external APIs or plugging in legacy systems where code changes are complex.</p>
<p>The limit of this approach: the quality of the generated tools is the quality of your OpenAPI documentation. Poorly described APIs produce tools the model uses poorly. It's the right strategy to get started in days — not to be a product's final destination.</p>
<h2>Strategy 2 — Simple Project (Read-Only)</h2>
<p><strong>Lean micro-server:</strong> we build simplified projects in which the MCP Server skips the deep, complex layers of a typical web application. It focuses exclusively on exposing Tools with strict, predefined SQL scripts, eliminating the complexity of HTTP routing.</p>
<p><strong>Safe execution (read):</strong> every instruction made available to the AI is guaranteed to be limited to read-only operations on the database. This approach creates a fast, efficient foundation for reporting, context validation and conversational BI with no structural risk.</p>
<p><em>— Fernando Junior</em></p>
<hr />
<p>This is the structural answer to the question every manager asks: "what if the AI deletes my database?". Here the guarantee isn't an instruction in the prompt asking the AI to behave — it's architecture. The model only has access to predefined, read-only queries, and nothing else exists for it. Security by construction, not by trust.</p>
<p><em>— Isabele Santos</em></p>
<hr />
<h2>Strategy 3 — Integrated via Clean Architecture</h2>
<p><strong>Multiple entry points:</strong> our modern architecture lets the same business rule be triggered both through a traditional HTTP Controller and through the new MCP channel.</p>
<p><strong>MCP adapter:</strong> the MCP Tool Handler is written as just a new adapter in the interface layer of our Clean Architecture, encapsulating the protocol's complexity.</p>
<p><strong>Unchanged rules:</strong> the motto is "New door, same house". Our Use Cases and Core Domain stay completely unchanged, safe and reused with no duplicated logic.</p>
<p><strong>MCP doesn't break what already exists:</strong> MCP acts as just one more side entrance, running in parallel with the existing controllers. We keep the Separation of Concerns principle intact, isolating human clients from AI agents. Clean Architecture lets us guarantee that the business rule (Use Cases) can't tell the difference between a conventional HTTP call and an execution generated by the LLM.</p>
<h2>After implementation: what we learned running MCP in production</h2>
<p>Putting an MCP server online is the easy part. What sustains operations comes afterwards — and three fronts deserve attention because they're exactly what separates those who have operated it from those who have only read the docs:</p>
<p><strong>1. Security starts at the connection, not in the prompt.</strong> In our implementation, strict client identification happens when the connection to the server is initialized, via an API Key sent in an HTTP header. And authorization is dynamic: the data exposed — and even which Tools are listed — is filtered according to the permissions of the connected agent. A BI agent doesn't see the same tools as an operations agent; it doesn't even know they exist. The natural roadmap for this layer is full adoption of OAuth 2.0 and JWTs, the market standard.</p>
<p><strong>2. Validate the server in isolation before plugging in the LLM.</strong> The best workflow practice we've adopted: test Tools and Resources locally with the <strong>MCP Inspector</strong> (the official debugging UI, which starts with a single npm command) before attaching the server to any LLM client. The Inspector lets you run each Tool with a click, fill in the input payload, analyze the output array and — crucially — inspect the raw JSON-RPC traffic in the History tab. Debugging the protocol together with model behavior means adding up two uncertainties; separating them saves hours.</p>
<p><strong>3. Errors are part of the contract.</strong> MCP's return format includes the <code>isError: true</code> flag for recoverable failures — and that changes the game: the model interprets the failure and can fix its own arguments and try again, with no human intervention. Designing good error messages stopped being cosmetic; it became part of the interface with the agent.</p>
<p><em>— Fernando Junior</em></p>
<hr />
<p>The most valuable side effect of all this is portability. An MCP server built today works tomorrow in any ecosystem that adopts the protocol, from Claude Desktop to IDEs like Cursor and VS Code, and even our own applications. Integration investment is no longer thrown away every time you switch model vendors.</p>
<p>The MIT diagnosis doesn't say generative AI failed. It says <em>integration</em> failed. And integration is an engineering problem with a known solution: a single standard instead of dozens of handcrafted connectors. The three strategies we've presented aren't theory; they're the three steps we use in production, from a prototype in days (Proxy + Swagger) to safe data access (Read-Only) to the long-term product (Clean Architecture). The decision rule is simple: the more mature and critical the system, the more structural the integration should be.</p>
<p>Whoever builds this foundation now isn't betting on a vendor — they're building the door through which any AI agent will enter their operation. That's exactly the foundation we brought into <a href="https://www.zihin.ai/en/product">Zihin</a>: the platform speaks MCP from day one, with a remote server ready to connect your systems to agents without a handcrafted integration project — with <a href="https://www.zihin.ai/en/security">governance and security</a> from the connection onward. If your team is stuck in the pilot phase, the problem probably isn't the model, it's the bridge. <a href="https://www.zihin.ai/en/contact?topico=diagnostico">Book a diagnostic</a> and see in practice how to plug your data and actions into governed AI agents.</p>
<p><em>— Isabele Santos</em></p>
<hr />
<h2>Q&amp;A</h2>
<blockquote>
<p><strong>Tip:</strong> <strong>Where do I start implementing MCP in my company?</strong>
With the lowest-risk strategy: an MCP proxy over an existing, well-documented API (Swagger/OpenAPI), or a read-only micro-server over a reporting database. Both deliver value in days, without touching legacy code, and serve as a learning step before structural integrations.</p>
</blockquote>
<blockquote>
<p><strong>Note:</strong> <strong>Does MCP only work with Claude?</strong>
No. MCP was born at Anthropic, but it's an open protocol adopted by the main AI ecosystems in the market. An MCP server built today works with any compatible client — models, IDEs and your own applications.</p>
</blockquote>
<blockquote>
<p><strong>Warning:</strong> <strong>Is it safe to give an AI access to the database?</strong>
It depends on how the access is built. With a read-only MCP server exposing only predefined queries, the AI structurally can't change anything — the limitation lives in the architecture, not in behavioral instructions. For writes, the path is to expose specific Use Cases with per-agent authorization, never direct database access.</p>
</blockquote>
<blockquote>
<p><strong>Note:</strong> <strong>Do I need to rewrite my systems to use MCP?</strong>
No. The three strategies in this article exist precisely to avoid that: a proxy over existing APIs (zero change), a parallel micro-server (zero change) or a new adapter in the interface layer (minimal, isolated change). The business rule stays intact.</p>
</blockquote>
<hr />
<h2>Sources</h2>
<ul>
<li><a href="https://fortune.com/2025/08/18/mit-report-95-percent-generative-ai-pilots-at-companies-failing-cfo/">The GenAI Divide: State of AI in Business 2025 — MIT Project NANDA (Fortune coverage)</a></li>
</ul>
<hr />
<p><em>Originally published in Portuguese on the <a href="https://www.zihin.ai/blog/estrategias-conectar-sistemas-agentes-ia-mcp">Zihin blog</a>. I work at Zihin, which connects AI agents to a company's systems and processes, with permissions, human approvals and cost tracking.</em></p>
]]></content:encoded></item><item><title><![CDATA[Why we stopped letting AI agents connect directly to the database]]></title><description><![CDATA[How an AI agent uses ERP data safely: a read-only replica in your network, contract-based queries and an outbound-only connection, no credential exposed.]]></description><link>https://zihinai.hashnode.dev/why-we-stopped-letting-ai-agents-connect-directly-to-the-database</link><guid isPermaLink="true">https://zihinai.hashnode.dev/why-we-stopped-letting-ai-agents-connect-directly-to-the-database</guid><category><![CDATA[Artificial Intelligence]]></category><category><![CDATA[mcp]]></category><category><![CDATA[Security]]></category><category><![CDATA[software architecture]]></category><dc:creator><![CDATA[Ronan Oliveira]]></dc:creator><pubDate>Thu, 05 Nov 2026 22:48:02 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6aed0468b8b7cb1349748a06/734eafa3-a05f-4f54-bca4-9a838cee6c56.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The request usually sounds like this: "the agent needs to query the ERP". And the first reaction from whoever runs IT is the right one: nobody wants to hand a production database username and password to software that decides on its own which query to run. The risk isn't theoretical — it's a malformed query at peak time, a sensitive field exposed in a reply, a credential leaking into a log.</p>
<p>This guide is for the IT director who needs to say "yes" to the agent without saying "yes" to direct access. It explains why Zihin removed direct database connections and which path data takes instead.</p>
<h2>Why we took direct database access away from the agent</h2>
<p>On October 4, 2026, version 2.2.2 of Zihin's MCP package shipped alongside the removal of the direct database connection tools — the <code>db_config</code> type and the <code>db_event</code> trigger. Since then, data integrations go through API tools or MCP servers, such as the MCP Bridge. The change is recorded in the <a href="https://www.zihin.ai/en/changelog">product changelog</a>.</p>
<p>The decision starts from a simple observation: giving an agent a connection string to the production database creates three problems that no prompt layer can solve.</p>
<ul>
<li><strong>The credential leaves your network.</strong> Even in an encrypted vault, it exists outside the perimeter and has to be protected by one more party.</li>
<li><strong>The agent decides the query.</strong> A generic SQL tool trusts the model to write the right query, on the right table, with the right filter. In production, that's a bet.</li>
<li><strong>Load on the system of record.</strong> Exploratory queries compete with the ERP for the same database that closes payroll and issues invoices.</li>
</ul>
<blockquote>
<p><strong>Note:</strong> Removing a feature is an expensive decision for a product. We did it because direct database access was the point where the customer's security architecture stopped applying. The path that replaces it isn't more limited — it's more predictable.</p>
</blockquote>
<h2>How an AI agent accesses ERP data safely: three pieces</h2>
<p>The current design separates who holds the data, who queries it and who carries the answer. There are three components, each with a clear job.</p>
<h3>1. Zihin Replay: a read-only copy, inside your network</h3>
<p>Replay keeps a read-only copy of the agreed tables in a Postgres database inside your network. You decide which tables go in. Oracle and SQL Server are copied via change data capture; systems like Sienge, via API. The production database never receives a query from the agent — ever.</p>
<p>The practical result: the ERP keeps serving operations, and the copy serves the AI's questions. If a query is heavy, it's the replica that feels it, not billing.</p>
<h3>2. MCP Bridge: contract-based queries, not free-form SQL</h3>
<p>On top of that copy, the MCP Bridge publishes read-only queries with contracts specific to the business domain: "open orders by supplier", "stock balance by item", "bills coming due". The agent gets a list of tools with a defined name, description and parameters. It chooses which one to call and with which arguments — it doesn't write the query.</p>
<p>That changes the security conversation. Instead of asking "what can the agent do in the database?", the answer is the list of contracts you approved. Nothing outside it exists for the agent. For Protheus, the Bridge is documented in production; SAP and Oracle EBS are planned. See the details at <a href="https://www.zihin.ai/en/integrations">/integrations</a>.</p>
<h3>3. Zihin Tunnel: outbound-only connection, over port 443</h3>
<p>That leaves transport. The Tunnel opens an outbound connection from your network to the platform over port 443 — the same one your browser uses. No inbound ports, no VPN, no firewall changes. Credentials for internal systems are resolved inside your network and never leave it.</p>
<pre><code class="language-text">ERP / production database
   └─ Replay  → read-only copy (Postgres, inside your network)
        └─ MCP Bridge → contract-based queries, read-only
             └─ Tunnel → outbound connection, 443, no open port
                  └─ the agent gets the answer, never the credential
</code></pre>
<h2>What the IT director gets from this design</h2>
<p>Whoever evaluates the architecture usually asks four questions. In this model, the answers are short.</p>
<ul>
<li><strong>Where does the database credential live?</strong> In your network. The agent never receives it.</li>
<li><strong>Can the agent write to the ERP through this path?</strong> No. Replay and MCP Bridge are read-only. Writes are never automatic in any integration: they require a dedicated tool, with permissions and policies, and can require human approval before running.</li>
<li><strong>Do I need to open a port on the firewall?</strong> No. The connection is outbound, over 443.</li>
<li><strong>How do I know what was queried?</strong> Every execution is recorded, with its tool calls and policy decisions, and can be reviewed by the team. <a href="https://www.zihin.ai/en/product">Zihin Watch</a> monitors operations and produces reports according to its configuration.</li>
</ul>
<blockquote>
<p><strong>Tip:</strong> Start with an inventory of questions, not an inventory of tables. List the five queries your team runs against the ERP every day and turn each one into a Bridge contract. That's less surface than replicating the whole database — and it already covers most real usage.</p>
</blockquote>
<h3>Governance over what gets read</h3>
<p>Read-only solves data integrity, but on its own it doesn't solve confidentiality. That's where contextual security policies (CSP) come in: rules enforced on every execution, not suggested to the model. A data policy restricts sensitive fields and entities; a schedule policy defines when the agent can operate; an origin policy limits where it can be triggered from. They inherit from the broadest scope to the most specific — define them once for the company and refine them per team, agent or user.</p>
<p>Combined with the platform's RBAC (what people and API keys can do) and the credential vault encrypted with AES-256-GCM, the whole set is described in plain language at <a href="https://www.zihin.ai/en/security">/security</a>.</p>
<p>A note of honesty: the availability and deployment scope of Replay, MCP Bridge and Tunnel depend on your infrastructure, your data agreement and your access requirements. Check with the sales team what applies to your case — the answer is in the <a href="https://www.zihin.ai/en/faq">deployment FAQ</a>.</p>
<h2>Summary to take to the meeting</h2>
<p>Letting an AI agent access a database safely doesn't mean giving it a well-configured database user. It means not giving it database access at all — but a read-only copy, through queries you approved, over a connection your network initiates. Zihin removed the direct connection because it was the weakest link in the design. What remains is a path where the credential never leaves your network, the ERP doesn't feel the load, and every read is on record.</p>
<p>If your IT team is holding back AI adoption at exactly this point, it's worth mapping the flow with real data from your ERP. <a href="https://www.zihin.ai/en/contact?topico=diagnostico">Book a diagnostic</a>.</p>
<h2>Sources</h2>
<ul>
<li>Zihin.ai, product changelog — MCP 2.2.2 and removal of <code>db_config</code> / <code>db_event</code> (Oct 4, 2026): <a href="https://www.zihin.ai/en/changelog">/changelog</a></li>
<li>Zihin.ai, Integrations — Replay and MCP Bridge for ERPs: <a href="https://www.zihin.ai/en/integrations">/integrations</a></li>
<li>Zihin.ai, Security — Tunnel, vault and contextual policies: <a href="https://www.zihin.ai/en/security">/security</a></li>
<li>Zihin.ai, FAQ — Deployment and data: <a href="https://www.zihin.ai/en/faq">/faq</a></li>
</ul>
<hr />
<p><em>Originally published in Portuguese on the <a href="https://www.zihin.ai/blog/dados-para-agentes-sem-acesso-direto-ao-banco">Zihin blog</a>. I work at Zihin, which connects AI agents to a company's systems and processes, with permissions, human approvals and cost tracking.</em></p>
]]></content:encoded></item></channel></rss>