Skip to content

MCP Server Data Retention Policies Compared: Which Platforms Keep Your Data? (2026)

Compare MCP server data retention policies across Merge, Composio, StackOne, and Truto. Learn which platforms store your customers' data at rest and which offer true zero-retention architecture.

Nachi Raman Nachi Raman · · 22 min read
MCP Server Data Retention Policies Compared: Which Platforms Keep Your Data? (2026)

If you are a product manager or engineering leader evaluating platforms to host MCP servers for your AI agents, the most critical question is not about tool variety or connection speed. It is about data retention. If your AI agent connects to Salesforce, BambooHR, or Jira through an MCP server, the data flowing through that server is governed by that server provider's data retention policy - not yours.

Every record your agent reads or writes passes through a third-party layer. If the infrastructure routing that request stores a copy of those contacts on its own disks, they become a sub-processor of your customers' highly regulated enterprise data. Your SOC 2 scope immediately expands, your GDPR obligations multiply, and enterprise InfoSec teams will flag your application during procurement.

OpenAI explicitly states in its data controls documentation: "MCP servers (used with the remote MCP server tool) are third-party services, and data sent to an MCP server is subject to their data retention policies." The major LLM providers wash their hands of what happens after the tool call is dispatched. Vendor selection is entirely on your shoulders.

The timing matters. Gartner predicts that 50% of all enterprise cybersecurity incident response efforts will focus on incidents involving custom-built AI-driven applications by 2028. According to Gartner VP Analyst Christopher Mixter, "AI is evolving quickly, yet many tools - especially custom-built AI applications - are being deployed before they're fully tested. These systems are complex, dynamic and difficult to secure over time."

The compliance exposure is direct: Gartner further projects that manual AI compliance processes will expose 75% of regulated organizations to fines exceeding 5% of global revenue by the end of 2027. If you're building AI agents that touch employee records, customer PII, or financial data, the platform you route that data through becomes a sub-processor in your compliance chain.

The Hidden Compliance Cost of MCP Servers

The Model Context Protocol (MCP) solves a massive integration bottleneck. Instead of writing custom API connectors for every LLM framework, you deploy a single MCP server that exposes your SaaS product's capabilities to Claude, ChatGPT, Cursor, and custom LangChain agents.

However, connecting an AI reasoning engine to enterprise systems like HRIS, CRM, and accounting platforms introduces severe security vectors. When an AI agent triggers a tool call - for example, list_hubspot_contacts - that request travels from the LLM client, through the MCP server, to the upstream API, and back.

If the platform hosting your MCP server caches that payload to normalize the data or log the transaction, it is writing your customer's PII to a database you do not control. You are now responsible for auditing that vendor's encryption standards, data lifecycle policies, and breach notification protocols. For B2B SaaS companies selling to the mid-market and enterprise, this single architectural detail can stall a six-figure deal for months.

Here is the question your InfoSec team will ask during procurement review: does this MCP server platform store our customers' data? If the answer is "yes" - even if that data is encrypted - you've just added a new sub-processor to your SOC 2 scope, triggered GDPR data processing agreement requirements, and created a data residency question you'll need to answer for every enterprise customer.

How Traditional Integration Platforms Handle Data (And Why It Breaks AI Compliance)

To understand why many integration platforms store data, you have to look at their original architecture. Most integration platforms were designed long before AI agents existed. Legacy unified APIs and embedded iPaaS platforms were designed for asynchronous ETL workflows, not real-time AI agent execution. Their architecture assumes that storing and caching third-party data is the right approach - it makes normalization easier, reduces upstream API calls, and simplifies pagination.

The Sync-and-Cache Architecture

Traditional unified APIs like Merge operate on a sync-and-cache model. To provide a standardized common data model across 50 different CRMs, these platforms cannot simply proxy requests on the fly. Instead, they periodically poll the upstream APIs (Salesforce, Workday, HubSpot, etc.), download the raw data, transform it into their standardized schema, and store it in their own massive multi-tenant databases. When you query their API, you are reading from their database, not the source system.

This architecture was practical when the use case was a backend integration feeding a dashboard. But when an AI agent pulls employee salary data through this layer, that salary data now sits in a third-party database you don't control.

Agent Execution Layers

Newer platforms built specifically for AI agents, such as Composio, position themselves as agent-first execution and authentication layers. They offer pre-built tool packs that agents can call directly. However, managing stateful agent execution, logging complex multi-step workflows, and handling authentication often requires persistent storage.

Warning

The "Encrypted at Rest" Trap When evaluating integration vendors for AI agents, do not confuse "encrypted at rest" with "secure architecture." When a vendor says data is "encrypted at rest," they're confirming two things: (1) they store your data, and (2) they encrypt it while stored. Encryption is a baseline requirement for storing data. For strict enterprise compliance, the requirement is zero data retention - meaning the vendor should not store the payload at rest in the first place.

Under GDPR's storage limitation principle (Article 5(1)(e)), personal data must be kept no longer than necessary for the purposes for which it is processed. Organizations that retain personal data beyond its legitimate retention period are in direct violation - regardless of how securely the data is stored. Encryption doesn't exempt you from the storage limitation principle. It doesn't reduce your obligation to define retention periods, respond to deletion requests, or justify why a sub-processor holds copies of your customers' HR records.

Why this matters for AI agent architectures

AI agents are different from traditional integrations in a critical way: they make unpredictable, context-driven API calls. A traditional integration syncs the same data on a schedule. An AI agent might pull one employee record today, list all open deals tomorrow, and create a Jira ticket next week - all based on a conversation with a human user. If the MCP server platform stores every payload that passes through it, you're accumulating a growing, unpredictable dataset of your customers' most sensitive information in someone else's infrastructure.

MCP Server Data Retention Policies Compared (2026)

Let us look at the specific data retention postures of the prominent platforms used to host MCP servers and AI agent tools today, based on their own public documentation. For a broader look at how these platforms handle execution and rate limits, see our comparison of StackOne, Composio, and Truto.

Platform Default Data Storage Architecture Key Evidence
Merge Yes - stores data at rest Sync-and-cache "Data is encrypted at rest and in transit" (security page)
Composio Yes - stores data at rest Agent execution layer "Encryption at rest" (integration docs)
StackOne No - pass-through by default Real-time proxy "Never stores your customers' data by default"
Truto No - stateless pass-through In-memory processing Strict zero data retention by design

1. Merge: Sync-and-Cache by Default

Merge's security page states that "data is encrypted at rest and in transit, and PII is protected with an additional layer of application encryption." Their help documentation confirms: "Merge encrypts all data at rest and in-transit! All our data is stored in AWS, and is encrypted using the AES-256 encryption algorithm."

To Merge's credit, they explain the rationale: "Ultimately, every 3rd party API is unique. By storing customer data, Merge can obfuscate most of these differences behind our API." They also offer Merge Destinations as a premium add-on: "a streaming-only option that still provides all of Merge's syncing and normalization benefits, without data ever resting on Merge infrastructure."

The default behavior matters here. If your security team reviews Merge's standard offering, they'll see a platform that stores third-party data in databases - with encryption, yes, but with storage. The zero-storage option exists, but it's a premium feature, not the default posture. Passing sensitive enterprise data through their default layer expands your compliance scope.

2. Composio: Data Stored as Part of Managed Execution

Composio positions itself as an agent-first execution and authentication layer. Their documentation describes a production-ready platform as needing "a secure credential vault with encryption at rest, automated token lifecycle management (refresh, rotation, and revocation), detailed audit logs for every action, and verifiable compliance with standards like SOC 2 and GDPR."

The phrase "encryption at rest" inherently confirms that data is persisted - you don't encrypt data at rest if there's no data at rest. Similar to Merge, passing sensitive enterprise data through their execution layer creates a compliance footprint for any application that routes traffic through them.

3. StackOne: Real-Time Proxy, No Storage by Default

StackOne markets itself as "real-time by design" and claims it "never stores your customers' data by default. SOC 2 Type II certified, GDPR and HIPAA compliant. StackOne proxies every request in real-time." Their architecture page further states: "No customer data is persisted by default - nothing to breach, nothing to leak."

A nuance worth noting: StackOne offers a "no-storage-by-default" architecture, but for synthetic events, "tokens and logs may still be stored depending on config." This means the zero-storage posture has configuration-dependent exceptions that you should clarify during procurement. Because they act as a pass-through by default, they do not retain the sensitive data your agents process, simplifying security reviews.

4. Truto: Stateless Pass-Through Architecture

Truto takes a zero data retention approach by design, not as a premium tier. The platform operates as a stateless pass-through proxy with dynamic tool generation. Truto processes API payloads entirely in-memory and never writes customer data to disk.

This extends to Truto's MCP server implementation. When an AI agent calls a tool - say, list_all_hub_spot_contacts - the request flows through Truto's MCP endpoint, hits the HubSpot API with the correct OAuth credentials, transforms the response according to the tool's schema, and returns the result to the agent. At no point does the contact data persist in Truto's infrastructure. The only data Truto stores is authentication credentials (OAuth tokens) and configuration metadata - not your customers' business data. Your SOC 2 and GDPR boundaries remain exactly where they are today.

The Pass-Through Architecture: Zero Data Retention in Practice

Building a true zero data retention MCP server requires a completely different engineering approach. You cannot rely on cron jobs, background workers, or staging databases. Every operation must happen in real-time, in memory, during the lifecycle of a single HTTP request.

What does a zero-retention MCP server actually look like at the architectural level? Here is how a stateless pass-through architecture operates when an AI agent makes an MCP tool call.

sequenceDiagram
    participant Agent as AI Agent<br>(Claude, ChatGPT)
    participant MCP as MCP Server<br>(Pass-Through)
    participant SaaS as Upstream API<br>(Salesforce, Workday)

    Agent->>MCP: JSON-RPC tools/call (list_employees)
    MCP->>MCP: Validate token, load config<br>(in-memory)
    MCP->>SaaS: GET /api/employees<br>(Inject OAuth token)
    SaaS-->>MCP: Raw JSON response
    MCP->>MCP: JSONata Transformation<br>(in-memory, no disk write)
    MCP-->>Agent: Formatted MCP result payload
    Note over MCP: Zero data persisted.<br>Memory buffer freed after response.

The key properties of this architecture include:

In-Memory Payload Transformation

When a tool like create_a_jira_issue is invoked, the platform receives the flat JSON-RPC arguments. Instead of writing this request to a queue backed by a database, a pass-through system splits the arguments into query and body parameters purely in memory.

Platforms like Truto use JSONata - a lightweight query and transformation language - to map the agent's standardized input into the specific schema required by the provider. The request is dispatched to the upstream API, the response is caught in a memory buffer, transformed back into the desired format, and streamed directly to the client. Once the HTTP connection closes, the memory is freed. Nothing is written to a durable database.

Dynamic Tool Generation

Another major difference is how MCP tools are actually created. Platforms that store data often rely on pre-built, hardcoded tool packs stored in a database.

Pass-through platforms generate tools dynamically. In Truto, when an MCP client sends a tools/list request, the platform reads the integration's OpenAPI documentation and configuration schemas on the fly. It generates descriptive, snake_case tool names, extracts JSON Schema definitions for query and body parameters, and injects pagination instructions directly into the tool descriptions.

No tools are cached. If an environment-level override updates a tool description to give the LLM better context, that change is reflected instantly on the next request. This documentation-driven approach ensures the MCP server acts purely as a real-time reflection of the underlying API.

Transparent Rate Limit Handling for AI Agents

One of the most misunderstood aspects of integration architecture is how to handle rate limits (HTTP 429 errors). Traditional integration platforms often attempt to "help" by absorbing rate limit errors. They catch the 429, hold the connection open, and apply exponential backoff and retries under the hood.

For standard ETL jobs, this is fine. For AI agents, this is an architectural disaster.

LLMs require deterministic, fast responses. If your infrastructure holds a connection open for 45 seconds while it retries a Salesforce endpoint, the LLM client will likely time out. Worse, the AI agent loses all context about why the tool failed. It cannot reason about the delay because the infrastructure hid the error. No request queuing means no temporary storage of request payloads waiting for retry.

Truto takes a radically different approach: it does not retry, throttle, or apply backoff on rate limit errors. When an upstream API returns a 429, Truto passes that error directly back to the caller immediately. However, it normalizes the chaotic, provider-specific rate limit headers into standardized IETF RateLimit headers.

HTTP/1.1 429 Too Many Requests
ratelimit-limit: 100
ratelimit-remaining: 0
ratelimit-reset: 60

By passing these standardized headers back directly, you give the AI agent's reasoning engine full visibility. The agent can read the ratelimit-reset value and intelligently decide to either sleep for 60 seconds or switch to a different task entirely. The caller remains in total control of the retry logic, and no requests are arbitrarily queued in a third-party database.

No Sync Jobs or Cache Layers

There is no background process pulling data from upstream APIs into a local database. Every request is a live, real-time call to the provider. Responses aren't cached between requests. If the agent asks for the same employee list twice, it hits the upstream API twice.

This design has trade-offs. You give up the ability to serve stale data when an upstream API is down. You give up the performance benefit of a warm cache. Every request adds the latency of a round-trip to the upstream provider. For many enterprise compliance teams, those trade-offs are acceptable - even preferable - because they eliminate an entire class of data-at-rest risk.

What Zero Data Retention Means in Practice: Timings and Guarantees

"Zero data retention" is only useful if you can point to concrete guarantees about what happens to a payload at each stage of its lifecycle. Here is what a pass-through MCP server actually does with a request from the moment it hits the endpoint.

Request lifecycle timings:

  • T+0ms: JSON-RPC request arrives at the MCP endpoint. The token is hashed in memory and looked up against the credential store.
  • T+low tens of ms: The platform loads MCP server config (allowed methods, tag filters, expiry) and the linked integrated account, then reads the integration's OpenAPI schema to assemble the tool definition on the fly. No tool definitions are precomputed or cached across requests.
  • T+request: The transformed request is dispatched to the upstream API with the OAuth access token injected. The response streams back into a memory buffer.
  • T+response: JSONata transformation runs against the in-memory buffer. The result is written to the outbound HTTP response.
  • T+connection close: The memory buffer is released. No file handle, no queue entry, no database write, no async job carrying the payload forward.

What Truto actually persists (and what it does not):

Data type Stored? Why
Request bodies and response payloads No Processed in memory only
Customer PII from upstream APIs No Never written to disk
OAuth access and refresh tokens Yes (encrypted) Required to make upstream API calls
MCP token hash Yes (HMAC only) Required to authenticate incoming JSON-RPC requests
Integration config and tool metadata Yes Small metadata: which resources, which schemas, which tags
Request logs (metadata, no bodies) Yes Debugging, rate limit tracing, incident response

Automated MCP token expiry. MCP server URLs can be created with a hard TTL. Truto validates that expires_at is at least 60 seconds in the future to prevent accidentally-dead tokens, then schedules cleanup so both the credential entry and its reverse-lookup index are removed at expiration. When the scheduled cleanup fires, the platform deletes the metadata row and the credential lookup entries so token lookups fail immediately after the deadline. Setting expires_at back to null cancels the cleanup and makes the server permanent again.

OAuth token handling. Upstream OAuth access tokens are stored encrypted and refreshed shortly before expiry using the stored refresh token. Access tokens are never returned to MCP clients and are never written to logs in plaintext.

Raw MCP tokens are never persisted. When you create an MCP server, the raw token is returned once in the API response. Truto stores only an HMAC hash of that token. Even if the credential store were compromised, the raw tokens could not be reconstructed. This matters for procurement conversations where the customer asks "what happens if your secrets store is breached?"

Log Retention: What We Keep, Why, and How Long

Zero data retention does not mean zero observability. If your AI agent hits a bug at 3 AM, someone needs to be able to trace the request. The trick is to log enough to debug, without becoming a shadow copy of your customer's CRM.

Truto's default logging captures request metadata, not payload bodies. A typical log line looks like this:

{
  "request_id": "req_abc123",
  "integrated_account_id": "acc_xyz789",
  "integration": "hubspot",
  "resource": "contacts",
  "method": "list",
  "http_status": 200,
  "upstream_latency_ms": 412,
  "ratelimit_remaining": 97,
  "timestamp": "2026-01-14T09:12:44Z"
}

Notice what is not there: no contact names, no email addresses, no request body, no response body. Just enough to answer "what call was made, when, and did it succeed?"

Default log retention windows are contractual, not architectural - they are negotiated in your Data Processing Agreement rather than hard-coded. Typical postures we see across enterprise customers:

  • Operational logs (metadata only): short rolling window sufficient for incident response and rate-limit debugging, typically measured in days to a few weeks.
  • Audit logs (who created, updated, or deleted an MCP server): longer window because SOC 2 CC7.2 requires evidence of authorization changes over time.
  • Error traces: retained slightly longer than success logs to support root-cause analysis, but still without payload bodies.

What enterprise customers can request:

  • Stricter retention ceilings tied to a specific regulator's guidance.
  • Customer-managed log destinations - Truto streams metadata into the customer's SIEM (Datadog, Splunk, Elastic) so the customer owns the retention window end-to-end.
  • Field-level redaction for specific header values or IDs that a customer considers sensitive metadata.

If a customer wants zero logs at all, that is also possible for specific integrated accounts, at the cost of losing supportability for that traffic.

How Truto Handles Deletion and DPA/Erasure Requests

The upside of a pass-through architecture is that most GDPR Article 17 ("right to erasure") requests do not apply to Truto, because Truto never held the data subject's personal data in the first place. Payload bodies are transient. There is no user record to delete.

The subset that does apply is metadata:

  • MCP server deletion: DELETE /integrated-account/:id/mcp/:mcpTokenId removes the database row and both credential lookup entries synchronously. Any in-flight scheduled cleanup for that token is canceled.
  • Integrated account deletion: Deleting the integrated account cascades to every MCP server attached to it. All OAuth credentials, tokens, and configuration entries are removed in the same transaction. Cascade rules are enforced at the database level so orphaned records cannot survive.
  • Environment or team deletion: Removes all downstream integrated accounts and their MCP servers.

Sample DPA wording you can adapt for your own agreements between your company and your enterprise customer, describing Truto as a sub-processor:

"Processor acts as a real-time proxy between Controller's application and third-party APIs designated by Controller. Processor does not persist API response payloads, request bodies, or personal data contained therein at rest. Processor stores only (a) OAuth credentials required to authenticate upstream API calls, (b) integration configuration metadata, and (c) request logs limited to non-payload metadata (endpoint, HTTP status code, timestamp, request identifier, and integrated account identifier). Upon written request from Controller, Processor shall delete stored OAuth credentials and configuration metadata within [X] business days and confirm deletion in writing."

Sample erasure response language for a customer whose end-user has filed an Article 17 request against your product:

"Truto processes API traffic between our platform and third-party services on a pass-through basis and does not store the data subject's personal data at rest. No user-specific records exist in Truto's systems for erasure. Authentication credentials linked to the connected account can be revoked on request; please provide the integrated account identifier."

That second paragraph is usually enough to close out an erasure ticket for the sub-processor portion of the chain. The primary erasure obligation stays with the upstream SaaS (Salesforce, HubSpot, etc.) that actually holds the data.

Data Residency and Hosting Options for EU/GDPR Customers

For customers with EU personal data, the two questions InfoSec will ask are (1) where does the data physically pass through, and (2) can we require a specific region?

Truto's default posture is that payload bodies never rest anywhere - EU, US, or otherwise - because they exist only in-memory during a single HTTP request. That reduces the residency question to metadata: OAuth tokens, MCP token hashes, and configuration.

What enterprise customers can request:

  • Region-pinned metadata storage. Customers with strict EU residency requirements can request that credential and configuration storage be pinned to EU regions, so no metadata leaves the EU boundary.
  • Customer-managed encryption keys (KMS). For sensitive credentials, some enterprise contracts include a KMS-backed encryption option where the encryption key is held in a customer-controlled key management service. Key revocation renders stored credentials unusable, giving the customer a direct kill-switch independent of Truto's operations.
  • Dedicated deployments. For heavily regulated buyers (health, finance), a dedicated single-tenant deployment scoped to a specific region can be arranged so no metadata is co-mingled with other tenants.
  • Sub-processor disclosure and change notification. Truto publishes its sub-processor list, and material changes trigger notification under the DPA so customers can object before a new sub-processor takes effect.

Example customer scenarios we see:

  • A UK-headquartered HR-tech vendor selling to EU employers required EU-only metadata storage and quarterly sub-processor attestations. Because payload bodies never rest, the residency conversation narrowed to OAuth credentials and MCP token hashes only, which sits inside the requested EU boundary.
  • A US fintech required a customer-managed KMS key for OAuth credential encryption so the customer's InfoSec team could rotate or revoke the key independently. In practice this means the customer holds a functional off-switch for their own connected accounts.
  • A healthcare SaaS wanted zero logs for a specific integrated account handling PHI. Truto disabled operational logging for that account and documented the trade-off (no support visibility for that account's requests) in an addendum.

Why Your Enterprise Customers Demand Zero Data Retention

Selling AI features to enterprise customers is difficult. Selling AI features that require duplicating their sensitive data into an unverified startup's database is nearly impossible.

If you're building AI agent integrations for a product that sells to enterprise, your customers' InfoSec teams will evaluate your sub-processors during procurement. Here's what that looks like in practice:

The security questionnaire. Every enterprise deal over a certain ACV triggers a vendor security review. The questionnaire will ask: "Does your product transmit customer data to third parties? Do those third parties store data at rest? What are their retention policies?" If your architecture relies on a sync-and-cache unified API, you have to explain why a copy of their employee directory or customer list resides on a third-party server just so your AI agent can read it. You need to document it, justify it, and potentially negotiate a Data Processing Agreement (DPA) between your customer, you, and the MCP server vendor.

SOC 2 scope creep. Under SOC 2, the right scope "includes all systems that store, process, or transmit customer data." A sub-processor that stores your customers' data at rest falls squarely within that scope. Your auditor will want to see their SOC 2 report, their data handling procedures, and evidence that your DPA is enforceable.

GDPR sub-processor obligations. Under GDPR, you're liable as the data controller for any processing activities carried out by external service providers. "This is why it's critical - and legally required - to have comprehensive contracts in place before any data processing by third parties begins." Every sub-processor that stores EU personal data extends your data mapping obligations and your exposure to Article 17 deletion requests.

The deal-killer scenario. An enterprise prospect's CISO asks during the final stages of procurement: "Your AI agent reads our employee data from BambooHR. Where does that data go?" If the answer involves a third-party MCP server that caches payloads in a US-based cloud, and the prospect's employees are in the EU, you've just triggered a data residency conversation that can stall or kill the deal entirely.

Adopting a stateless, zero-data-retention architecture bypasses this friction entirely. You can confidently state that your MCP server infrastructure acts only as a secure, in-memory proxy. It routes the request, injects the OAuth tokens, maps the schema, and forgets the data the millisecond the transaction completes. There's no retention policy to negotiate because there's nothing to retain. The security questionnaire answer becomes: "Data passes through the MCP server in-memory and is discarded after the response is sent." That's a much shorter conversation with an InfoSec team.

Evaluation Checklist: What to Ask Your MCP Server Vendor

Before you sign with any MCP server platform, get clear answers to these questions:

  1. Does your platform store API response payloads at rest? "Encrypted at rest" is not the same as "not stored." Push past the marketing language.
  2. What data do you persist? Even zero-retention platforms store some metadata - OAuth tokens, configuration, API logs. Understand exactly what's stored and where.
  3. Can I point to a documented zero-retention architecture for my customers' security reviews? You need something your sales team can hand to a prospect's CISO.
  4. How do you handle rate limits? If the platform queues or retries requests, request payloads may be temporarily stored. Understand the mechanism.
  5. Is zero data retention the default, or a premium add-on? A feature that exists but isn't enabled by default means your team needs to remember to configure it - and mistakes happen.
  6. What happens during an outage? If the upstream API is down, does the platform serve stale cached data? If so, that cache is stored data.

Common Procurement Questions (Sample Answers)

Here are the exact questions we see on enterprise security questionnaires, along with sample answers you can lift into your own responses when you route AI agent traffic through a pass-through MCP server.

Q: Does the platform store customer data at rest? A: No. API request and response payloads are processed entirely in memory during a single HTTP request and released when the connection closes. Only OAuth credentials, integration configuration, and non-payload request metadata are persisted.

Q: What sub-processors will receive our data? A: Payload data is transmitted only to the upstream SaaS provider the customer designates (e.g., Salesforce, HubSpot, BambooHR) and returned to the customer's application. Truto does not forward payload contents to any additional sub-processor. A current sub-processor list covering the credential store and hosting infrastructure is available under NDA.

Q: How are OAuth tokens protected? A: Access and refresh tokens are stored encrypted. MCP server tokens are stored only as HMAC hashes; raw tokens are shown to the creator once in the create-server response and are never persisted in plaintext or written to logs. Tokens can be issued with a hard TTL, and expired tokens are removed via scheduled cleanup at their expires_at deadline.

Q: What logs are retained and for how long? A: Metadata-only logs (endpoint, HTTP status, latency, request ID, integrated account ID) are retained for a contractual window defined in the DPA. Payload bodies are not logged. Retention windows can be tightened, streamed to a customer-owned SIEM, or disabled entirely for specific accounts on request.

Q: How do you handle a GDPR Article 17 erasure request? A: Because payload data is never stored at rest, no data subject records exist in Truto's systems for erasure. On request, Truto will delete the associated integrated account, OAuth credentials, and MCP server configuration within the DPA-defined window and confirm in writing.

Q: Can you support EU-only data residency? A: Yes, on request. Metadata (credentials and configuration) can be pinned to EU regions. Payload bodies do not rest anywhere by default. Customer-managed KMS keys and dedicated single-tenant deployments are available for stricter requirements.

Q: What happens if we terminate the contract? A: OAuth credentials, MCP server configuration, and metadata are deleted from all systems within the DPA-defined offboarding window. Payload bodies were never stored, so no historical customer data exists to purge.

Q: How do you handle rate limits and retries? Do you store the request payload while retrying? A: Truto does not queue, retry, or buffer requests server-side on rate limit errors. HTTP 429 responses are passed through immediately with standardized IETF RateLimit headers so the AI agent's own reasoning loop decides when to retry. No request payload is stored in a retry queue.

Q: What is the blast radius if your credential store is breached? A: MCP tokens are stored only as HMAC hashes; the raw values cannot be reconstructed from the store. OAuth tokens are encrypted at the field level, and customers can additionally require a customer-managed KMS key so revocation is under their control. No customer payload data is present in the store to leak.

Pick the Architecture That Matches Your Compliance Requirements

The right MCP server platform depends on your compliance posture. If you're selling to SMBs with minimal security review requirements, a sync-and-cache architecture might be fine - the normalization benefits outweigh the compliance overhead. But if you're selling to enterprise customers in regulated industries - healthcare, finance, HR tech - a pass-through, zero-retention architecture isn't a nice-to-have. It is a strategic requirement for moving upmarket.

The best MCP server platforms for enterprise are converging on this reality. StackOne and Truto both default to zero data storage. Merge offers it as a premium feature. The direction is clear: enterprise buyers want their sensitive data to pass through, not pile up.

Truto's approach - stateless pass-through, dynamic tool generation, and transparent rate limit headers instead of hidden retry queues - is built for teams that need to clear enterprise security reviews without adding compliance overhead. If your AI agents need to connect to SaaS data without expanding your SOC 2 boundary, that's the architecture to evaluate.

FAQ

Do MCP servers store my data?
It depends on the platform. Some MCP server providers (like Merge) sync and cache data at rest by default. Others (like Truto and StackOne) use pass-through architectures that process data in-memory without persisting it. OpenAI explicitly states that data sent to third-party MCP servers is governed by those servers' retention policies.
What does encrypted at rest mean for integration platforms?
Encrypted at rest means data is stored and encrypted while stored. It does not mean data isn't retained. Under GDPR and SOC 2, the fact that data is stored at all creates compliance obligations - encryption reduces breach impact but doesn't eliminate retention, sub-processor, or deletion obligations.
How does a zero data retention architecture work?
Zero data retention platforms operate as real-time proxies. They receive a request, map the schema in memory using tools like JSONata, fetch data from the upstream API, and stream the response directly to the client without writing to a persistent database.
Why is absorbing rate limits bad for AI agents?
If an infrastructure layer absorbs a 429 error and silently retries with backoff, the LLM client will likely time out. Agents need rate limit errors returned immediately with reset headers so they can reason about the delay and switch tasks.
Why do enterprise customers care about MCP server data retention?
Enterprise InfoSec teams evaluate sub-processors during procurement. An MCP server that stores data at rest expands your SOC 2 audit scope, triggers GDPR Data Processing Agreement requirements, and creates data residency questions that can stall or kill deals.

More from our Blog