MCP (Real-time Data Gateway)
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.
MCP (Model Context Protocol) is a standard integration protocol between AI models and data sources, proposed by Anthropic.
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 need | Tool |
|---|---|
| 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 order | get_order_metrics |
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
| Tool | Returns |
|---|---|
get_current_time | Current server time — the reference for resolving relative time ("yesterday", "last week") |
Structure — What's Where
| Tool | Returns |
|---|---|
search_domains | Entity search (name → ID resolution) |
get_asset_tree | Asset hierarchy tree |
get_ontology | Site ontology overview (structure + per-equipment tag counts) |
query_ontology | Asset relationship graph traversal (impact propagation) |
query_sparql | Ontology SPARQL query |
get_asset_documents | List of equipment attachments |
search_domains firstMost 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
| Tool | Returns |
|---|---|
get_edge_status | Edge gateway status |
get_edge_health_history | Edge health history (daily segments) |
list_connections | List of OPC collection connections |
Data — Tags
| Tool | Returns |
|---|---|
get_tag_values | Current tag value |
get_tag_history | Tag history over a period |
Data — Alarms
| Tool | Returns |
|---|---|
list_alarms | Alarm list |
get_alarm_context | Alarm root-cause diagnostic bundle |
ack_alarm | Alarm acknowledgment |
Data — Equipment
| Tool | Returns |
|---|---|
get_asset_snapshot | Snapshot of all tags for equipment |
get_asset_timeline | Equipment event timeline |
get_asset_stats | Equipment business statistics over a period |
Production
| Tool | Returns |
|---|---|
list_orders | Work order list |
get_order_metrics | Work order details/KPIs |
get_asset_kpi | Equipment per-order KPIs (OEE / EMS / RAM) |
Rollup
| Tool | Returns |
|---|---|
get_health | Asset hierarchy health rollup |
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
| Setting | Meaning | Default |
|---|---|---|
copilot.agent.tools.approval.enabled (CO_AGENT_TOOL_APPROVAL_ENABLED) | Approval gate for mutation tools | true |
copilot.agent.tools.readonly (CO_AGENT_TOOLS_READONLY) | Name list (glob) treating tools that don't self-report as query tools | query verbs such as get_* · list_* · search_* |
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.
| Item | Description | Default |
|---|---|---|
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 enabled | true |
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
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.