Skip to content

Message Content and the MCP

Return message content on the Model Context Protocol (MCP) page decides whether the MCP server ever returns content that can hold patient data: message bodies, log text, cache values and sample messages. It is off by default. While it is off, the tools still return everything else, so a model can see what happened without seeing what the messages said.

What the switch covers

Content While off While on
Channel log entries (read_channel_log) Time, level, node and message id The entry's text as well
Engine log files (read_engine_log) Each entry's time, level, logger and channel The file's text, in parts
Channel cache (read_channel_cache) Each key, its type and description, and the count The values as well
Shared cache (read_shared_cache) Each key, namespace and scope The values as well
Message search (search_messages) Matches by queue, date range and message id, with no text; conditions on a node's value or the error text are refused Every condition, and each match's snippet
Message bodies (get_message_content) Refused The message, its response or its source, in parts
Sample messages (get_sample) Only a sample added through the MCP server; a sample added in the console is refused Every sample, in parts
Test runs (test_step, get_test_result) Only a sample added through the MCP server can be tested; each step returns the node it ran, the condition result, the next node and its error without message text, but no message or log text The message after each step, the messages it spawned and its log text as well

Channel reads never include channel cache values, the body of a sample message or script variable values, whatever the switch says; get_object returns a placeholder in their place (see MCP Read Tools).

How content reads are audited

While the switch is on, every call to one of these tools writes its entry in the MCP audit log before it runs, and is refused if that entry cannot be written, so content never leaves QIE unrecorded. get_message_content and get_sample write it first whatever the switch says, since get_sample can return a sample added through the MCP server while the switch is off. Each call that returns content also writes a CONTENT_READ entry saying what kind of content it was and where it came from: which channel, which message, or which log file. See MCP Audit Log.

Turning it on

Turn the switch on only where people who use the MCP are allowed to see the messages, and where the MCP clients in use keep conversations in a place your organization approves. Anything a tool returns becomes part of the model's conversation and is handled by the MCP client and its AI provider.

The switch also governs calls that reach the engine through its Remote Management Hub. While it is on, the content those calls return passes through the Hub on its way to the AI assistant (see MCP Calls Through the Hub).