Skip to content

MCP Track A Phase 1: harden outbound token-based MCP actions #1014

Description

@Bionic711

Summary

Implement Track A Phase 1 from #1013: baseline hardening for outbound MCP actions, with emphasis on Splunk/token-based streamable_http servers.

Scope

  • Add a Splunk-friendly MCP preset/profile.
  • Add safe custom_headers support in MCP additionalFields.
  • Validate custom header names with a strict allowlist.
  • Redact custom header values in logs, API responses, UI summaries, and test artifacts.
  • Merge custom headers with auth headers in McpPluginFactory._build_headers, with auth headers winning by default.
  • Improve endpoint and transport validation for streamable_http, sse, and websocket.
  • Preserve the restriction that stdio is only available for admin-managed global actions.
  • Add optional retry count/backoff settings for discovery and tool calls without changing existing defaults unexpectedly.
  • Classify DNS/connect, TLS, authentication, MCP initialization, discovery, timeout, and tool execution failures.
  • Extend schema/UI validation as needed.
  • Add focused functional and UI tests.
  • Bump application/single_app/config.py version when code changes are made.

Acceptance Criteria

  • Existing MCP action manifests remain backward compatible.
  • Splunk/token-based streamable_http MCP setup is easier and safer to configure.
  • Custom headers are validated, merged, and redacted consistently.
  • Endpoint/transport validation rejects unsupported or malformed values.
  • Retry/timeout settings are bounded and preserve current default behavior.
  • Discovery and tool-call failures return actionable, redacted error categories.
  • Tests cover bearer header construction, custom header validation/redaction, discovery secret hydration, invalid/expired token error shapes, tool allowlist behavior, and manifest normalization.
  • UI tests cover updated MCP modal behavior.
  • Route policy tests are run if route files change.

Notes

Parent: #1013
Planning doc: docs/explanation/features/MCP_PLUGIN_ROBUSTNESS_PLAN.md
Priority: P1
Size: L

Metadata

Metadata

Assignees

Labels

enhancementNew feature or requestsecurity_improvementThis issue results in an improvement to security

Type

No type

Fields

No fields configured for issues without a type.

Projects

Status
Pending Evaluation

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions