Skip to main content

MCP (Real-time Data Gateway)

Where to check connection status

In AI Admin Console › MCP Gateway › Servers there is a PlantPulse Platform row (kind «Platform»). There you can see the status · tool count · last discovery, and use Rediscover to refetch the tool list. This row is wired through PP_API_URL · PP_API_TOKEN in the installation env, so its name and address cannot be edited nor can it be removed from the screen (it can only be disabled), and the platform tools are all on from the start → MCP Gateway

Before 2026.10 re-release (2026-10-20), this row was in Tool Servers (MCP) (/admin/mcp) in the Copilot Admin Console. That screen has been removed.

Overview​

PlantPulse Integration MCP is an MCP (Model Context Protocol) data gateway that gives AI access to all real-time data in the PlantPulse IIoT platform.

Through read-only data tools, it provides AI with all plant operation data — factory hierarchy, sensor data, alarms, OEE, work orders, energy, system status, and more. Ontology (knowledge graph) tools are also included in this integration MCP.

info

MCP (Model Context Protocol) is a standard integration protocol between AI models and data sources, proposed by Anthropic.

warning

2026-07 Reorganization: The Integration MCP is now served via the /api/v5/mcp endpoint (api_key authentication) on the PlantPulse platform's server-web. The former standalone services plantpulse-mcp-server (:50000) and plantpulse-ontology (:8888) have been archived, and the ontology tools have been absorbed into the Integration MCP. The MCP Gateway dynamically discovers tools via tools/list and passes them to Copilot (Ask) (2026.10 re-release (2026-10-20) — before that, Copilot discovered them directly).


Data It Can Handle​

Factory Structure​

Queries the full Site → Zone → Line → Equipment → Tag hierarchy. If you only need the hierarchy, use the asset tree; if you need the configuration overview down to per-equipment tag counts, use the ontology; for impact propagation, use the relationship graph.

When asking by name, search_domains resolves the ID first — it searches 14 domains, including sites, equipment, tags, orders, and users, by partial match on name, ID, or description.

Real-time Values and History​

  • Batch retrieval of current tag values (up to 100 at a time)
  • Tag history over a period
  • Snapshot of all tags for a piece of equipment — get current status at the equipment level without specifying tags one by one

Alarms​

  • Alarm list retrieval (filtered by period, severity)
  • Alarm root-cause diagnostic bundle — bundles related tags and state changes for a single alarm
  • Alarm acknowledgment — the tool exists but does not execute from chat (see "Approval Gate" below)

Production Metrics (OEE / RAM / EMS)​

Queried on a per-equipment basis.

What you needTool
One line per order (which order had the problem)get_asset_kpi
The whole period as one line (how was this week)get_asset_stats
Details of a single orderget_order_metrics
Ratios come back as 0–1

Ratio values like OEE are in the 0–1 range, not percentages. A value shown as 85% on screen is 0.85 in the tool response.

Collection Status​

Queries edge gateway status and health history, and the list of OPC collection connections. Questions like "data isn't coming in" are usually answered here.

Equipment Documents​

Queries the list of documents attached to equipment. Searching document content is handled by RAG, not MCP.


Tools Provided (22)​

The complete set of tools provided by the Integration MCP. Adding or removing tools would break the platform's contract tests, so this list is the actual list.

Time​

ToolReturns
get_current_timeCurrent server time — the reference for resolving relative time ("yesterday", "last week")

Structure — What's Where​

ToolReturns
search_domainsEntity search (name → ID resolution)
get_asset_treeAsset hierarchy tree
get_ontologySite ontology overview (structure + per-equipment tag counts)
query_ontologyAsset relationship graph traversal (impact propagation)
query_sparqlOntology SPARQL query
get_asset_documentsList of equipment attachments
When asking by name, call search_domains first

Most tools take an ID. Since users refer to things by name — e.g., "the injector on Daejeon Line 3" — the AI resolves the ID via search_domains before calling the main tool. If the answer comes back "equipment not found," it's usually because the name differs from the platform's registered name.

Connection — Is Collection Alive​

ToolReturns
get_edge_statusEdge gateway status
get_edge_health_historyEdge health history (daily segments)
list_connectionsList of OPC collection connections

Data — Tags​

ToolReturns
get_tag_valuesCurrent tag value
get_tag_historyTag history over a period

Data — Alarms​

ToolReturns
list_alarmsAlarm list
get_alarm_contextAlarm root-cause diagnostic bundle
ack_alarmAlarm acknowledgment

Data — Equipment​

ToolReturns
get_asset_snapshotSnapshot of all tags for equipment
get_asset_timelineEquipment event timeline
get_asset_statsEquipment business statistics over a period

Production​

ToolReturns
list_ordersWork order list
get_order_metricsWork order details/KPIs
get_asset_kpiEquipment per-order KPIs (OEE / EMS / RAM)

Rollup​

ToolReturns
get_healthAsset hierarchy health rollup
One tool is not read-only

Of the 22 tools, only ack_alarm changes platform state — it acknowledges alarms. The remaining 21 are all read-only. There is no tool for controlling equipment or changing settings.

Approval Gate — Tools That Change State Don't Run From Chat​

Copilot separates AI-callable tools into query tools and mutation tools. The Platform Integration MCP reports for each tool whether it is "query-only," and ack_alarm is reported as a mutation tool.

Mutation tools do not execute without approval (the default). However, Ask has no button to approve such tools on the spot. So even if you say "acknowledge this alarm" in chat, the alarm is not acknowledged, and:

  • Expanding the tool row above the answer ("Used N tools · Ns") shows that call as failed
  • The AI relays the denial it receives: "This tool cannot be executed directly from chat … open the incident in the proposal screen and run it via the action button."

There is a separate path for alarm/incident actions that a human clicks, in the incident detail view under Proposals. This is separate from this gate. The action card below an Ask answer (a draft in another system) is also a different path from this gate → Ask — Action Cards

SettingMeaningDefault
copilot.agent.tools.approval.enabled (CO_AGENT_TOOL_APPROVAL_ENABLED)Approval gate for mutation toolstrue
copilot.agent.tools.readonly (CO_AGENT_TOOLS_READONLY)Name list (glob) treating tools that don't self-report as query toolsquery verbs such as get_* · list_* · search_*
Every tool call is logged

Even with the gate off, every tool call is recorded in the ledger (agent_tool_call_log) — who, when, which tool, with what arguments (secrets masked), and the result (success · error · denial). This record cannot be turned off → Database Model


Key Settings​

Since the Integration MCP is provided by the platform server-web, Copilot (copliot-web) manages only the client-side connection settings.

ItemDescriptionDefault
platform.api.url (CO_PLATFORM_API_URL)Platform server-web base URL — the Integration MCP also uses this(set at installation)
platform.api.token (CO_PLATFORM_API_TOKEN)Platform api_key authentication token(set at installation)
mcp.tools.enabled (CO_MCP_TOOLS_ENABLED)Whether Integration MCP tools are enabledtrue

The old names mcp.api.url · mcp.api.token no longer exist — supplying them has no effect. If the URL or token is empty, platform tools are omitted from chat.

The environment variable prefix changed from CH_ → CO_ in 2026.10. The old CH_* names are no longer read → Environment Configuration

info

The endpoint is <platform.api.url>/api/v5/mcp, and communication uses JSON-RPC 2.0 (tools/list·tools/call). Server-side policies such as pagination and alarm query period follow the platform server-web settings.


Characteristics​

Complete Data Coverage​

Provides every data domain needed for plant operations through a single MCP. Supports hierarchical queries from raw sensor data up to KPI aggregates.

Narrow Write Scope​

All data query tools are read-only, and the only one that changes state is alarm acknowledgment (ack_alarm). There is no means to control equipment or change settings at all, so AI can be integrated without risk of interfering with the process.

MCP Standard Protocol​

Complies with the Anthropic MCP standard. Supports JSON-RPC 2.0-based HTTP POST communication and JSON Schema-based input validation.

Server Time Zone Basis​

Time is interpreted according to the platform server's time zone. get_current_time also returns the time zone name (e.g., Asia/Seoul), and the _iso suffix field provides a human-readable time format.