| Products | Versions |
|---|---|
| TIBCO Platform - Control Plane | 1.20.0 and above |
The TIBCO Platform MCP Hub is the central management console in TIBCO Control Plane 1.20.0 for deploying and observing Model Context Protocol (MCP) infrastructure. When Large Language Models (LLMs) or autonomous AI agents connect to TIBCO BusinessWorks™, TIBCO Flogo®, or REST/WSDL backend APIs, the MCP Gateway intercepts all JSON-RPC 2.0 requests.
A Plugin is a modular policy control—such as input validation, PII masking, rate limiting, permission checks, or audit logging—that runs at specific stages of a request (e.g., BeforePrompt, BeforeTool, AfterTool, BeforeResource, AfterResource). Administrators assemble draft policies on a Virtual Server's governance canvas and push them to the MCP Gateway for real-time enforcement.
| Plugin Category | Total Plugins | Primary Governance Function |
| Security Plugins | 14 | Shields Virtual Servers from prompt injection, SQL attacks, harmful content, secret leaks, malware, and data exfiltration. |
| Data Transform Plugins | 9 | Reshapes payloads, normalizes inputs, converts HTML to Markdown, repairs JSON, and translates timezones. |
| Reliability Plugins | 7 | Throttles call volume, caches idempotent tool results, manages retries, caps output size, and trips circuit breakers. |
| Privacy & Compliance Plugins | 4 | Redacts PII, enforces web scraping/robots licensing terms, and injects privacy notices or license headers. |
| Validation Plugins | 3 | Validates tool arguments and responses against JSON schemas, static parameters, and live citations. |
| Observability Plugins | 3 | Customizes Open Telemetry span attributes, sends HTTP webhooks, and exports operational metrics/traces. |
| Encoding & Format Plugins | 2 | Formats code, trims whitespace, pretty-prints JSON, and encodes specialized data streams. |
| Auth & Request Plugins | 2 | Extracts JWT claims during authentication and enforces fine-grained Role-Based Access Control (RBAC). |
===
| # | Plugin Name | Category | Execution Stage (Runs) | Short Summary & Primary Use Case |
| 1 | UnifiedPDPPlugin | Security | BeforeTool, BeforePrompt | Evaluates calls against policy engines (native, MAC, OPA, Cedar) for centralized policy decision-making. |
| 2 | DenyListPlugin | Security | BeforePrompt, BeforeTool | Deny-list filter that blocks requests containing banned words, terms, or regex patterns. |
| 3 | SQLSanitizer | Security | BeforePrompt, BeforeTool | Detects risky SQL in prompts/arguments; strips SQL comments or blocks execution to stop SQL injection. |
| 4 | HarmfulContentDetector | Security | BeforePrompt, AfterTool | Detects harmful content categories (self-harm, violence, hate speech) in prompts and tool outputs. |
| 5 | ContentModeration | Security | BeforePrompt, AfterTool | Runs AI-based moderation using external providers (IBM Watson, IBM Granite Guardian, OpenAI). |
| 6 | SecretsDetection | Security | BeforePrompt, AfterTool, AfterResource | Detects keys, tokens, and credentials in inputs/outputs to redact or block them from context windows. |
| 7 | EncodedExfilDetector | Security | BeforePrompt, AfterTool, AfterResource | Identifies suspicious encoded data-exfiltration patterns hidden inside payload parameters. |
| 8 | URLReputationPlugin | Security | BeforeResource | Checks resource URLs against domain blocklists to prevent fetching from malicious web hosts. |
| 9 | VirusTotalURLCheckerPlugin | Security | BeforeResource, AfterResource, AfterPrompt, AfterTool | Checks URLs, domains, IPs, and local files against VirusTotal v3 for threat intelligence and malware scans. |
| 10 | FileTypeAllowlistPlugin | Security | BeforeResource, AfterResource | Restricts fetched web resources to a configured list of known-safe file types and extensions. |
| 11 | SafeHTMLSanitizer | Security | AfterResource | Strips XSS vectors from fetched HTML, offering optional conversion to plain text. |
| 12 | CodeSafetyLinterPlugin | Security | AfterTool | Scans code generated in tool outputs for unsafe execution patterns prior to returning to the client. |
| 13 | VaultPlugin | Security | BeforeTool | Generates short-lived OAuth2 bearer tokens from vault-stored secrets for backend calls. |
| 14 | ResourceFilterExample | Security | BeforeResource, AfterResource, AfterPrompt, AfterTool | Example filter validating content size and protocol rules; serves as a template for custom resource filters. |
| 15 | ArgumentNormalizer | Data Transform | BeforePrompt, BeforeTool | Standardizes Unicode, casing, dates, numbers, and whitespace to ensure consistent tool arguments. |
| 16 | ReplaceBadWordsPlugin | Data Transform | BeforePrompt, AfterTool | Performs configurable find-and-replace for bad words or profanity in tool payloads. |
| 17 | HTMLToMarkdownPlugin | Data Transform | AfterResource | Converts raw HTML retrieved from web resource fetches into clean Markdown for LLM consumption. |
| 18 | MarkdownCleanerPlugin | Data Transform | AfterPrompt, AfterResource | Tidies Markdown formatting syntax and removes inconsistencies in prompt or resource text. |
| 19 | JSONRepairPlugin | Data Transform | AfterTool | Automatically repairs slightly malformed JSON in tool outputs to ensure valid downstream parsing. |
| 20 | Summarizer | Data Transform | AfterTool, AfterResource | Uses an LLM to summarize long text content, replacing lengthy tool/resource outputs with concise text. |
| 21 | TimezoneTranslator | Data Transform | BeforeTool, AfterTool | Converts ISO timestamps between server UTC and user local timezones in arguments and results. |
| 22 | ALTKJsonProcessor | Data Transform | AfterTool | Uses ALTK JSON queries to extract specific fields from massive JSON tool responses. |
| 23 | HeaderInjector | Data Transform | BeforeResource | Injects configured HTTP headers into outbound resource-fetch requests. |
| 24 | RateLimiterPlugin | Reliability | BeforePrompt, BeforeTool | Throttles and limits requests per tool, per user, or per tenant to curb abuse and manage costs. |
| 25 | CachedToolResultPlugin | Reliability | BeforeTool, AfterTool | Caches idempotent tool results in memory using argument keys to return instant responses. |
| 26 | RetryWithBackoffPlugin | Reliability | AfterTool | Retries failed tool calls using exponential backoff, jitter, and status code triggers (e.g., 429, 500, 503). |
| 27 | OutputLengthGuardPlugin | Reliability | AfterTool | Enforces min/max character or token length limits; truncates or blocks oversized tool responses. |
| 28 | CircuitBreaker | Reliability | BeforeTool, AfterTool | Trips a per-tool breaker when error rates exceed thresholds to prevent cascading backend failures. |
| 29 | Watchdog | Reliability | BeforeTool, AfterTool | Enforces maximum execution duration per tool call; warns or blocks requests that hang or exceed SLAs. |
| 30 | ResponseCacheByPrompt | Reliability | BeforeTool, AfterTool | Advisory cache reusing tool results when new call inputs meet cosine similarity thresholds on fields. |
| 31 | PIIFilterPlugin | Privacy & Compliance | BeforePrompt, AfterTool, AfterResource | Detects and masks PII (SSNs, emails, payment card numbers) for GDPR, HIPAA, and PCI-DSS compliance. |
| 32 | RobotsLicenseGuard | Privacy & Compliance | BeforeResource, AfterResource | Inspects robots.txt and licensing terms on fetched web content to honor publisher AI opt-out rules. |
| 33 | PrivacyNoticeInjector | Privacy & Compliance | AfterPrompt | Injects configurable privacy notice text into prompts following resource fetches. |
| 34 | LicenseHeaderInjector | Privacy & Compliance | AfterTool, AfterResource | Injects legal license headers into tool outputs and fetched content using appropriate comment syntax. |
| 35 | SchemaGuardPlugin | Validation | BeforeTool, AfterTool | Validates tool arguments and results against JSON schemas to catch malformed structures. |
| 36 | SPARCStaticValidator | Validation | BeforeTool | Statically checks argument types, required parameters, and allowed enum values before tool execution. |
| 37 | CitationValidator | Validation | AfterResource, AfterTool | Validates HTTP status codes and keywords of links/citations in outputs to catch broken references. |
| 38 | SpanAttributeCustomizer | Observability | BeforeTool, BeforeResource, AfterResource | Customizes OpenTelemetry span attributes on gateway traces (e.g., adding user or tenant IDs). |
| 39 | WebhookNotification | Observability | BeforeTool, AfterTool, AfterPrompt, AfterResource | Sends HTTP webhook notifications on policy violations, tool errors, or rate-limit breaches. |
| 40 | ToolsTelemetryExporter | Observability | BeforeTool, AfterTool, AfterPrompt, AfterResource | Exports execution metrics, traces, and audit logs to external monitoring stacks (Prometheus, Elastic). |
| 41 | CodeFormatter | Encoding & Format | AfterTool, AfterResource | Normalizes code indentation, trims trailing whitespace, and pretty-prints JSON outputs. |
| 42 | ToonEncoder | Encoding & Format | AfterTool, AfterResource | Encodes binary streams or specialized payload formats into structures optimized for LLMs. |
| 43 | JwtClaimsExtractionPlugin | Auth & Request | Request Authentication Stage | Extracts caller identity claims from OAuth JWT bearer access tokens during initial authentication. |
| 44 | PermissionPlugin | Auth & Request | Permission Check Stage | Enforces |
When attached to a Virtual Server, plugins execute across 6 distinct modes that dictate blocking authority and payload modification:
| Mode | Blocks Request? | Modifies Payload? | Ordering & Pipeline Behavior |
Block | Yes | Yes | Serial & chained. Primary mode for policy enforcement. |
Transform | No | Yes | Serial & chained. Reshapes payloads or redacts sensitive data. |
Audit | No | No | Serial. Logs violations and discards payload modifications. |
Parallel | Yes | No | Runs in parallel with other |
Async | No | No | Background side-effect; executes after all other modes for telemetry. |
Off | No | No | Plugin is disabled for the target scope. |
Mode Execution Order: Regardless of assigned priority numbers (1–1000), modes always execute in this exact sequence:
Block$\rightarrow$Transform$\rightarrow$Audit$\rightarrow$Parallel$\rightarrow$Async.
If a plugin encounters an internal runtime error, its behavior is controlled by one of three options:
fail (Default): Halts the request and returns an error. Caution: Keep fail enabled on security and privacy plugins (e.g., PII masking or permission checks) so an outage cannot silently let unmonitored traffic pass.
ignore: Logs the error and continues request execution without enforcing the plugin's check.
disable: Logs the error, automatically disables the failing plugin, and allows the request to continue.
Follow these step-by-step procedures to configure plugins, define tool overrides, push policies, and manage client access tokens in TIBCO MCP Hub:
In TIBCO Control Plane, open MCP Hub and select an online MCP Gateway from the dashboard.
Open the Virtual Servers tab and click Configure (or select Setup governance from the row actions menu).
On the governance canvas, set the Govern switch to Tool calls, Prompt fetches, or Resource fetches.
Choose a starter policy preset or build a custom policy:
Secure baseline: Adds JwtClaimsExtractionPlugin, RateLimiterPlugin, SchemaGuardPlugin, PIIFilterPlugin, ToolsTelemetryExporter.
Observability only: Adds JwtClaimsExtractionPlugin, ToolsTelemetryExporter, SpanAttributeCustomizer, WebhookNotification.
Strict compliance: Adds UnifiedPDPPlugin, RateLimiterPlugin, SecretsDetection, PIIFilterPlugin, ContentModeration, OutputLengthGuardPlugin.
To add individual plugins, click Add Plugin to open the Plugin Catalog, search or filter by category, and click Add.

In the plugin editor, set the Execution Mode (Block, Transform, Audit, Parallel, Async, Off).
Set the Priority value (1–1000) to order plugins within the same mode.
Set the Error Handling policy (fail, ignore, or disable).
To override policy for a specific sensitive tool:
Keep the Govern switch on Tool calls.
On the Scope bar, switch from All tools (defaults) to a specific tool using Browse all.
Add or edit plugins specific to that tool scope.
Plugins added or edited in MCP Hub are held in Draft state.
On the gateway details page, click Push Changes to Gateway (or Retry Push if a previous push failed).
Review the preview of pending changes and click Push to Gateway.
Verify that the Virtual Server's plugin count updates on the dashboard.
Open the gateway's Tokens tab and click Issue Token.
Enter a Name (lowercase letters and hyphens) and select the target Virtual Server.
(Optional) Enter allowed CIDR ranges in IP Restrictions (e.g., 192.168.1.0/24).
Select explicit Permissions:
tools.read: Discover and list Virtual Server tools.
tools.execute: Invoke/run Virtual Server tools.
servers.use: Automatically added to reach the Virtual Server endpoint.
Specify an Expiration duration (minimum 1 day).
Click Create Token and copy the secret key (displayed only once).
Configure AI clients to send the token in the Authorization header as a bearer credential:
Bash
export MCP_TOKEN=<your-token>
curl -H "Authorization: Bearer $MCP_TOKEN" \
https://<your-gateway-host>/servers/<virtual-server-id>/mcp
The TIBCO Platform MCP Hub in TIBCO Control Plane 1.20.0 provides a catalog of 40+ governance plugins across 8 functional categories to secure Model Context Protocol (MCP) tool execution. Attached to Virtual Servers or individual Virtual Tools on an MCP Gateway, these plugins enforce zero-trust security, real-time data transformation, traffic throttling, privacy redaction, schema validation, Open Telemetry exporting, payload formatting, and OAuth RBAC authorization.
40+ Built-In Guardrails: Enforces runtime policies across Security (14), Data Transform (9), Reliability (7), Privacy & Compliance (4), Validation (3), Observability (3), Encoding & Format (2), and Auth & Request (2).
6 Pipeline Execution Modes: Controls blocking and payload modification in strict sequence: Block , Transform Audit, Parallel, Async (or Off).
3 Error Handling Behaviors: Defines runtime outage responses via fail (halt & reject), ignore (log & bypass), or disable (log & auto-disable).
Scoped Token Control: Authenticates AI agents using static bearer tokens locked by Virtual Server, expiration duration, allowed IP CIDR ranges, and explicit MCP permissions.