fix(mcp): default the CTI Pipeline tool server to off - #32
Merged
Conversation
The CTI Pipeline server was ticked on for every new Plan and Execute session, spawning the pipeline subprocess and loading its tools even when the run never touched CTI. Ship it as an opt-in optional server instead: the sidebar checkbox starts unchecked, and the chat view still turns it on automatically when STIX files are selected.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
The CTI Pipeline MCP tool server was registered with
default_enabled: True, so every new Plan and Execute session started with its checkbox ticked. That spawned the pipeline subprocess and merged its tools into the planner's toolset even on runs that never touched CTI.It is now opt-in.
MCP_METADATAinmcp_server.pydeclaresdefault_enabled: False, and the two fallback registries that mirror that metadata (app/discovery/servers.py,app/workflows/plan_execute.py) match. The GUI seeds each workflow's default toggles fromdefault_enabled, so the sidebar checkbox now starts unchecked;caldera_corestays on as the required server.Nothing else about the server changes. It is still discovered, still listed under MCP Tool Servers, and the chat view still turns it on automatically when STIX files are selected for a Plan and Execute run. Saved per-workflow selections are untouched, so anyone who already had it ticked keeps it.
plan_execute.run()with noenabled_serversnow defaults to["caldera_core"]instead of["caldera_core", "cti_pipeline"], matching what the GUI sends.Type of change
How Has This Been Tested?
pytest tests/test_discovery_and_tool_merge.pyin a clean plugins root: both tests pass, confirming the metadata is still parsed without executing the module and that the registry keys are unchanged.discover_mcp_serversagainst a plugins root whosemcp_server.pycarries noMCP_METADATA, exercising the hardcoded fallback:{'caldera_core': True, 'cti_pipeline': False}.MCP_METADATAout ofmcp_server.pywithast.literal_evalthe way discovery does:cti_pipeline default_enabled = False.tests/suite before and after the change; the failing set is identical, all of it pre-existing and unrelated (missing optional deps and fixtures).tests/test_relation_extractor.pyimports a module that does not exist on main and fails collection either way.Checklist:
PLUGIN_MCP.mdalready documentsdefault_enabledas a per-server opt-in flag)