Skip to main content
Glama

ISO-toolset MCP

A vendor-neutral MCP gateway for starting, discovering, calling, and stopping security-vendor MCP runtimes without requiring every analyst to install each vendor integration or handle its credentials.

Status: v0.1 reference implementation. The local MCP gateway is runnable. The AWS template establishes the scale-to-zero control-plane skeleton. Okta, production authorization and the Fargate request/result worker are explicit integration boundaries, not completed features. The unmodified Cortex MCP package is included under Palo Alto Networks' separate vendor license.

What an analyst sees

Claude Code connects to one MCP server and sees five stable tools:

cortex-start
cortex-status
cortex-help
cortex-call
cortex-stop

The downstream call path is:

Claude Code
  -> ISO-toolset MCP gateway
  -> private Cortex MCP runtime
  -> Cortex HTTPS API
  -> sanitized MCP result back to Claude Code

cortex-call is an ISO-toolset broker tool, not an official Cortex tool. It takes a live downstream tool name and arguments, validates them against the schema discovered from Cortex, forwards the MCP call, and preserves useful errors without leaking sensitive runtime details.

Related MCP server: mcpstead

Local development

Requirements: Python 3.11+ and a Cortex MCP server running with Streamable HTTP. The vendor ZIP is available at vendor/cortex/cortex-mcp-1.0.5.zip; review its separate license and README before building or running it.

python -m venv .venv
. .venv/bin/activate
python -m pip install -e '.[dev]'
export CORTEX_MCP_URL='http://127.0.0.1:8080/api/v1/stream/mcp'
iso-toolset

The default transport is stdio, suitable for a local MCP host. To expose the development Streamable HTTP endpoint:

export ISO_TOOLSET_TRANSPORT=streamable-http
iso-toolset

The endpoint is:

http://127.0.0.1:8000/ISO-toolset/v1/mcp

This local mode attaches to an existing Cortex process. Therefore cortex-stop closes the logical ISO-toolset session but does not terminate a process it does not own.

Error behavior

Known argument errors are returned before the downstream call:

{
  "ok": false,
  "error": {
    "code": "INVALID_TOOL_ARGUMENTS",
    "message": "Invalid arguments for 'get_assets' at $: 'asset_type' is required",
    "retryable": true,
    "details": {"path": "$", "validator": "required"}
  }
}

Claude can correct the parameters and retry. Downstream errors are sanitized, tagged, and returned rather than collapsed into a generic failure.

AWS scale-to-zero direction

infra/template.yaml declares:

  • a custom EventBridge bus and runtime-command rule;

  • encrypted SQS control and dead-letter queues;

  • a DynamoDB session table with TTL;

  • an ECS cluster and ephemeral Fargate task definition;

  • an outbound-only runtime security group;

  • a control Lambda that calls RunTask and StopTask;

  • least-scope starting IAM roles and CloudWatch logs.

CloudFormation creates the reusable infrastructure. A normal cortex-start does not run CloudFormation; it publishes a runtime command that ultimately calls ECS RunTask. A normal cortex-stop calls ECS StopTask.

Read the architecture and the threat model before deploying anything.

Deliberately not included

  • A prebuilt Cortex container image. Build the included, checksum-pinned vendor archive only after reviewing its license, then store the resulting image in a private ECR repository.

  • API keys, example secrets, tenant URLs, or organization identifiers.

  • A claim that the reference AWS template is production-ready.

  • GPU sweeps, EC2 shutdown automation, notifications, or write-capable tools.

Tests

python -m pip install -e '.[dev]'
ruff check .
pytest -q

License

The ISO-toolset source is MIT licensed. The Cortex MCP ZIP is not: it remains under the Palo Alto Networks license included inside the archive and at vendor/cortex/LICENSE. See third-party notices.

Available Tools

5 tools
cortex-callC

Validate and forward one call to an allowed tool on Cortex MCP.

Inputs: tool_name (required), session_id (required), tool_arguments (required). Returns: object

cortex-helpC

Return live Cortex tool schemas plus agent-ready safety context.

Inputs: session_id (required). Returns: object

cortex-startA

Start or attach to the configured Cortex MCP runtime and discover its tools.

Inputs: no named parameters. Returns: object

cortex-statusC

Return the current state of a Cortex runtime session.

Inputs: session_id (required). Returns: object

cortex-stopC

Stop a Cortex session; attached mode leaves an externally owned process running.

Inputs: session_id (required). Returns: object

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.2/5.0

    Scored across 5 tools

    Disambiguation4/5

    Each tool targets a distinct lifecycle action: start, stop, status, help, and call. The only mild overlap is between cortex-start (which discovers tools on attach) and cortex-help (which returns live tool schemas), but descriptions clarify the difference well enough for correct selection.

    Naming Consistency5/5

    All five tools share a consistent cortex-<verb/noun> prefix-and-action pattern (start, status, help, call, stop). The convention is predictable and readable throughout.

    Tool Count5/5

    Five tools is well-scoped for a runtime proxy: session lifecycle plus a single call-forwarding entry point. There are no redundant or filler tools.

    Completeness4/5

    Start/status/help/call/stop cover the full session lifecycle and invocation path, which is the stated domain. Minor gaps remain, such as no dedicated tool-listing operation separate from start/help and no explicit configuration or restart operation.

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      MCP Gateway that aggregates multiple upstream MCP servers into a single endpoint with persistent connections, tool registry, and authentication.
      84 npm
      2
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Provides a security and context-control layer that multiplexes multiple MCP servers behind a single endpoint, scanning tool definitions and results, enforcing authorization, rate limiting, and audit logging, and dynamically retrieving tools to manage context window usage.
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables deploying standalone MCP connectors, discovering them through a validated catalog, and running an optional trusted polyglot runtime for the DX Heroes MCP Gateway.
      Apache 2.0