AI & Agents

How to Configure a Read-Only MCP Connection for ChatGPT

In a read-only MCP connection, tools that mutate, overwrite, or delete data are completely omitted from the tool schema exposed to ChatGPT, preventing any unauthorized modifications by design. Unlike system prompt instructions that degrade over long conversations, protocol-level schema omission strips write capabilities before tool discovery occurs. This guide explains how to configure read-only access for ChatGPT using directory plugins, remote endpoints, and workspace permissions.

Derek Labian 14 min read Updated
A read-only MCP connection exposes retrieval tools while omitting modifying operations from the advertised schema.

Why Prompt Instructions Cannot Guarantee Read-Only Safety

Instructing ChatGPT in a system prompt to avoid editing files creates an illusion of security that fails under real operating conditions. When an AI assistant processes multi-turn conversations, analyzes retrieved documents, or encounters prompt injections, probabilistic instruction following degrades, and the model attempts actions exposed in its tool manifest. The only architectural protection is protocol-level schema omission: removing write tools from the Model Context Protocol schema entirely so the model cannot invoke them.

In a read-only MCP connection, tools that mutate, overwrite, or delete data are completely omitted from the tool schema exposed to ChatGPT, preventing any unauthorized modifications by design.

In production deployments, teams often attempt to restrict an AI assistant by adding negative constraints to the custom instructions or chat system prompt. Instructions such as "You are an analytical assistant. You have read-only access. Never create, edit, overwrite, or delete any files in the workspace" appear effective during initial testing. However, system prompts rely entirely on probabilistic alignment. As a conversation expands across multiple turns, the original instructions compete with retrieved reference texts, user follow-up questions, and intermediate reasoning steps. When context windows fill, negative constraints are among the first behavioral boundaries to weaken.

The risk escalates when an assistant interacts with unvetted external data. If an assistant searches a shared drive, processes customer support tickets, or parses an uploaded document containing malicious text, it faces indirect prompt injection. A retrieved document containing hidden instructions, such as text directing the model to clear workspace logs or overwrite draft policies, can override custom instructions. If ChatGPT possesses file modification tools in its active schema, the model can execute those actions before a human reviewer intervenes.

Even in benign environments, non-deterministic reasoning routinely triggers unintended file operations. When ChatGPT analyzes complex technical materials or performs data synthesis, it often generates scratch files, creates local test variables, or attempts to cache intermediate findings. If write tools are present, the model invokes them as part of its exploratory problem-solving process. Relying on the model to self-police its execution against an unrestricted tool manifest leaves production documents vulnerable. Teams deploying storage for AI agents require deterministic access controls that separate data inspection from data modification at the protocol boundary. True security requires removing write capabilities before tool execution begins.

How Schema Omission Differs from Prompt Guardrails and Tool Refusals

Securing an external AI connection against unintended mutations requires choosing an enforcement layer. Teams typically evaluate three architectural patterns: client-side prompt constraints, server-side runtime refusal, and protocol-level schema omission.

Pattern 1: Advisory Prompt
ChatGPT Context (Full CRUD Schema) -> Prompt ("Do not write") -> Model may invoke write tools anyway

Pattern 2: Runtime Tool Refusal
ChatGPT Context (Full CRUD Schema) -> Model invokes write tool -> Server returns error -> Model enters retry loop

Pattern 3: Protocol Schema Omission
ChatGPT Context (Read-Only Schema) -> Write tools do not exist -> Model cannot generate write calls

Client-Side Prompt Constraints

Client-side prompt filtering keeps the complete Model Context Protocol tool manifest loaded in ChatGPT. The tool catalog includes actions for uploading files, updating content, renaming directories, and deleting storage objects. The system prompt instructs ChatGPT to ignore modifying actions. Because every tool remains active in the model namespace, the model retains the ability to construct function arguments for write operations whenever attention drifts.

Server-Side Runtime Refusal

Server-side runtime refusal advertises the full tool manifest to ChatGPT but configures the remote server backend to reject write operations with authorization errors, such as HTTP 403 Forbidden responses or custom JSON-RPC error codes. While this prevents files on disk from being modified, it creates an operational problem known as the refusal loop.

Large language models are trained to interpret tool execution failures as operational problems that can be solved with revised inputs. When ChatGPT receives an error stating that an update was refused or unauthorized, it rarely stops execution cleanly. Instead, the model attempts alternative syntax, rewrites parameters, modifies file paths, or cycles through alternative write tools in an effort to satisfy the user request. These retry loops consume context tokens, burn through conversation limits, and often lead to corrupted conversational state.

Protocol-Level Schema Omission

Protocol-level schema omission eliminates both vulnerabilities during the initial protocol handshake. When ChatGPT connects to a remote MCP endpoint, the protocol performs tool discovery by requesting available capabilities. In a read-only connection, the server filters its tool catalog before returning the schema definition. Mutating tools are completely excluded from the payload.

Schema omission provides two decisive operational benefits:

  • Zero Refusal Errors: Because write, update, and delete tools do not exist in the schema, ChatGPT has no syntactic reference for them. The model cannot attempt forbidden operations because it is unaware that those capabilities exist.
  • Reclaimed Context Tokens: Exposing comprehensive management tools requires sending extensive JSON Schema definitions for every action, including nested property types, enum constraints, and operational descriptions. Stripping modifying tools from the advertised schema substantially reduces model token consumption compared to exposing full CRUD schemas, preserving context space on every conversational turn for retrieved document passages powered by workspace intelligence.
Architectural Layer Enforcement Point Failure Outcome Tool Refusal Risk Token Overhead
Client-Side Prompt Model Attention Accidental writes occur None (writes execute) High (Full CRUD schema)
Runtime Refusal Server Backend Recursive retry loops High (Repeated error responses) High (Full CRUD schema)
Schema Omission Protocol Handshake Clean structural safety Zero (Tools absent from schema) Low (Retrieval schema only)

How to Configure a Read-Only MCP Connection for ChatGPT

Connecting ChatGPT to Fast.io using a read-only configuration establishes an authenticated bridge over Streamable HTTP. You can configure the integration through the directory plugin or by setting up a custom remote server.

Option 1: Installing the Fastio Plugin (Preferred)

The simplest deployment method uses the pre-built Fastio plugin in the ChatGPT plugin directory:

  1. Open your browser and go to the plugin directory at chatgpt.com/plugins.
  2. Search for Fastio in the directory catalog and select Install plugin.
  3. A browser window opens directing you to Fast.io to complete OAuth authentication.
  4. On the Review Permissions screen, select Read Only and choose which organizations and workspaces the connection can access.
  5. Complete the sign-in. In any ChatGPT conversation, invoke the connection by mentioning @Fastio.

Option 2: Adding a Custom MCP Server via Developer Mode

If your organization requires a direct custom server connection, you can register Fast.io as a custom remote endpoint:

  1. In ChatGPT, open Settings and go to Security and login.
  2. Locate Developer mode and toggle it on. In enterprise environments, availability depends on workspace administrative policy.
  3. Return to chatgpt.com/plugins and click the plus (+) button to add a custom server.
  4. Enter Fastio as the server name.
  5. In the server URL field, paste the remote Streamable HTTP address: https://mcp.fast.io/mcp/operations.
  6. Select Create and proceed to the browser authentication prompt.

Configuring the Read-Only Permission Boundary

During OAuth authentication, Fast.io presents a Review Permissions screen. This interface establishes the operational boundary for the connection:

  • Select Read Only: Choose Read Only instead of Read & Write. This tells the MCP server to filter out modifying tools from the advertised toolset.
  • Select Target Workspaces: Check only the specific organizations and workspaces containing documents relevant to your ChatGPT research. Do not grant blanket access across all team repositories.

When a Read Only connection is authorized, tools that change data are not offered at all. There is no 403, no insufficient_scope error, and no step-up flow.

Inspecting the Advertised Read-Only Schema

On https://mcp.fast.io/mcp/tools, Fast.io pairs a read tool with a separate _manage tool for changes in each area. Detailed configuration options can be reviewed at mcp.fast.io/docs, while tool definitions are documented in mcp.fast.io/skill.md. The main pairs are:

  • storage: Query files, read metadata, inspect lock status, and fetch text content.
  • storage_manage: Create folders, add files, move, rename and delete items, and acquire and release advisory locks.
  • workspace: Query workspace details, list member directories, and view storage structures.
  • workspace_manage: Update workspace settings, archive or delete workspaces, and create or update notes.
  • share: Search active shares and inspect share link settings.
  • share_manage: Generate durable shares, configure recipient permissions, and revoke share links.

ChatGPT connects to https://mcp.fast.io/mcp/operations, which presents one tool for each operation instead of these pairs. Over a Read Only session, the operations that change workspace data are not listed, so ChatGPT has no write operation to call.

Fastio features

Connect ChatGPT to Safe Read-Only Workspaces

Query indexed company documents in ChatGPT using verified read-only MCP connections that eliminate mutation risks and refusal loops. Monthly plans start with a 14-day free trial, which requires a credit card.

Container-Based Permissions and Retrieval Boundaries

Protocol-level schema omission ensures ChatGPT cannot issue write requests. However, secure data retrieval also requires controlling what information the assistant is allowed to read. Fast.io enforces a container-based access model that determines exactly what files are exposed to search and retrieval queries.

Permissions at the Workspace Boundary

Permissions in Fast.io workspaces are structured strictly per organization, workspace, and share by member role. Workspace roles include owner, admin, member, guest, and view. Organization roles include owner, admin, and member.

There are no folder-level or file-level permissions within a workspace; every workspace member can access all files in that workspace according to their assigned role. Consequently, the workspace serves as the fundamental retrieval boundary. When configuring an AI assistant connection, access cannot be limited to a single subfolder inside a workspace. If a project contains confidential files that should remain inaccessible to ChatGPT, those files must be placed in a separate workspace or in a dedicated share.

Workspace join settings default to allowing any member of the organization to join. When setting up a secure workspace intended for restricted AI research, update the join settings to require explicit invitations so that membership remains restricted to named users and authorized connections. Beyond full-text search, teams can organize files into structured tables using Metadata Views, which automatically extracts typed attributes from documents without moving files across workspaces.

Permission-Aware Search and Intelligence

Fast.io workspaces feature native hybrid search (combining full-text keyword indexing, semantic search, and metadata value filtering) and an Intelligence layer that indexes documents for summaries and chat with citations.

The retrieval boundary is strictly enforced at the container level:

  • Search and Intelligence queries answer only from the workspaces and shares the asking person or connected agent belongs to.
  • When ChatGPT submits a query through the MCP connection, Fast.io retrieves content exclusively from the workspaces selected during OAuth authorization.
  • An assistant cannot discover, index, or cite documents stored in workspaces where it has not been granted explicit membership.
  • If a share is queried, the assistant answers only from that specific share's files.

Cloud Sync Boundaries Across Connected Drives

Many organizations maintain source documentation across existing cloud storage providers. Cloud Sync connects Google Drive, Dropbox, Box, and OneDrive folders (including SharePoint document libraries through the OneDrive connector) to a Fast.io workspace, one-way or two-way, on a schedule or on demand. Cloud Sync is never continuous, live, or real-time.

When external folders sync into a Fast.io workspace, the synced files inherit the Fast.io workspace permissions. The sharing rules, link configurations, and access control lists of the source Google Drive or OneDrive environment do not carry over. What ChatGPT is permitted to retrieve is governed entirely by its Fast.io workspace membership, preventing accidental exposure caused by complex or misconfigured sharing settings on external drives.

Auditing Modifications with the Detailed Activity Log

Fast.io maintains a detailed activity log of changes across each organization. The log captures administrative and file modifications, including uploads, edits, moves, deletions, membership changes, permission updates, and share creation.

The activity log does not record read-only events, views, opens, or file downloads. It is not an access log. Instead, it provides an auditable trail showing who modified workspace structures, who updated access settings, and when changes took place. Because a read-only MCP connection cannot execute modifications, verifying that no unexpected administrative actions appear in the activity log confirms that the connection operated strictly within its read boundaries.

How to Verify Read-Only Safeguards and Audit Workspace Activity

After completing the initial setup, execute a structured testing procedure to verify that ChatGPT retrieves data correctly and that write protections hold under direct prompting.

1. Verify Retrieval Operations

Begin by testing discovery and document queries. In a ChatGPT conversation with the connection active, submit a request that requires reading workspace content:

@Fastio Search the Q4 Planning workspace for our cloud migration roadmap and summarize the milestones.

ChatGPT calls the connection's search operation, retrieves the relevant excerpts from indexed documents, and presents a structured summary with citations. Confirm that the model successfully accesses files in the authorized workspace.

2. Probe Write and Mutation Boundaries

Next, deliberately test the boundary by asking ChatGPT to modify workspace content:

@Fastio Create a new markdown file named migration_notes.md in the Q4 Planning workspace with this summary.

Observe the model response. Because the operations that write were excluded from the advertised schema, ChatGPT cannot issue a creation call. The model should tell you that it does not have tools to create or write files in Fast.io. The request halts cleanly without generating server error codes or triggering recursive retry loops.

3. Headless Agent Configuration

While interactive ChatGPT users authenticate through browser OAuth, automated pipelines and developer frameworks often connect headless agents to Fast.io. Headless agents use a scoped API key created for your Fast.io account, passed as a standard HTTP Authorization header:

Authorization: Bearer <your_scoped_api_key>

API keys inherit the exact scopes assigned during creation and operate under the permissions of the user who created them. To maintain a read-only boundary for headless agents, ensure the API key scope is limited strictly to read actions before deploying the agent script.

4. Revoking Connection Access

When an engagement ends or an AI connection is no longer required, revoke access immediately:

  1. In ChatGPT, open your installed plugins or apps menu and disconnect the Fastio connection.
  2. In Fast.io, open Settings and navigate to Devices & Agents.
  3. Select Connected Devices, locate the ChatGPT connection, and select Revoke.

Revoking the connection ends its access, so later tool requests from it fail.

Fast.io provides intelligent workspaces designed for teams collaborating alongside AI agents. Monthly plans start with a 14-day free trial, which requires a credit card. Teams can review plan tiers, storage allocations, and workspace limits on the Fast.io pricing page. For automated workflows and framework integrations, consult the agent onboarding documentation and the official Fast.io MCP documentation.

Sources

References used to verify factual claims in this guide.

  1. 1 Storyflow: Are AI Connectors Safe? Accessed

    A read-only connection limits an AI assistant to retrieving information without modifying project assets.

  2. 2 Peliqan: ChatGPT MCP Guide Accessed

    Connecting custom remote MCP servers on the web interface requires an eligible subscription tier.

Frequently Asked Questions

How do I make an MCP connection read-only in ChatGPT?

When connecting ChatGPT to Fast.io through OAuth, the Review Permissions screen prompts you to choose the connection scope. Select Read Only instead of Read & Write, and check the specific organizations and workspaces the connection is permitted to access. This instructs the Fast.io MCP server to omit all modifying tools from the tool schema sent to ChatGPT.

What happens if ChatGPT tries to modify a read-only MCP server?

Because write and edit tools are completely omitted from the advertised schema, ChatGPT has no syntactic mechanism to invoke them. If prompted to edit or delete a file, ChatGPT replies that it lacks tools to perform file modifications. It never triggers server-side error codes, permission denials, or recursive retry loops.

Why should AI tool connections omit write tools?

Omitting write tools prevents accidental data loss caused by context drift, speculative generation, or indirect prompt injection. In addition to structural safety, omitting mutating tool schemas reduces context window consumption on every conversational turn, preserving tokens for document retrieval and analysis.

Do Google Drive or OneDrive permissions carry over when synced to Fast.io?

Files synced from Google Drive, OneDrive, Dropbox, or Box inherit the permissions of the destination Fast.io workspace. Source drive sharing rules and access control lists do not carry over. ChatGPT accesses only the files within the workspaces it has been granted permission to reach.

Does Fast.io provide folder-level permissions for AI connections?

Fast.io permissions are set per organization, workspace, and share by member role, with no folder-level or file-level controls within a workspace. To restrict an AI connection from accessing specific documents, organize those documents into a separate workspace or share that excludes the agent.

Related Resources

Fastio features

Connect ChatGPT to Safe Read-Only Workspaces

Query indexed company documents in ChatGPT using verified read-only MCP connections that eliminate mutation risks and refusal loops. Monthly plans start with a 14-day free trial, which requires a credit card.