Skip to content

feat: add Brave and Tavily MCP presets - #1976

Merged
ErlichLiu merged 4 commits into
mainfrom
feat-search-mcp-presets
Sep 3, 2026
Merged

feat: add Brave and Tavily MCP presets#1976
ErlichLiu merged 4 commits into
mainfrom
feat-search-mcp-presets

Conversation

@ErlichLiu

Copy link
Copy Markdown
Collaborator

Summary

  • add Brave Search and Tavily Search presets to the MCP connection catalog
  • store API keys securely and provide official Console links
  • keep enable/disable optimistic, stable in ordering, and non-destructive
  • wait for enabled MCP handshake/tool discovery before injecting tools

Performance

  • low risk: changes affect the low-frequency MCP settings catalog and one-time MCP connection validation; no streaming message or long-list hot path was added
  • optimistic renderer state avoids blocking the settings interaction while validation runs in the main process
  • rapid toggles ignore stale validation results

Validation

  • 7 focused tests passed
  • Electron TypeScript typecheck passed
  • git diff --check passed

Made with Proma · GitHub

Review follow-ups for the search MCP presets:

- Required MCP tool discovery now enters a 2-minute failure cooldown
  after a failed handshake: subsequent turns fall back to the 500ms
  optional bootstrap race while the reconnect continues in background,
  and a successful reconnect exits the cooldown immediately. This keeps
  the preset goal (a freshly connected MCP is usable in the next turn)
  without letting an offline server or dead credential tax every message
  with the full connect/listTools timeout.
- Strip a user-pasted auth prefix (e.g. "Bearer ") before saving a
  credential so a Tavily key cannot be stored as "Bearer Bearer ...".
- Bind stdio API-key credentials to the command+args they were saved
  for, and refuse to inject the key when the server config no longer
  matches (e.g. mcp.json edited on disk to point the same server name
  at a different command).
- Restore the catalog preset equality test and add behavior tests for
  the cooldown (hanging server timeout, same-port recovery), replacing
  the removed source-string smoke tests.

Performance: main-process only; one O(1) map lookup per required server
per turn, no new timers/subscriptions/IPC listeners; renderer change is
a one-shot input normalization on save.

Made-with: Proma
@ErlichLiu
ErlichLiu merged commit bbf577a into main Sep 3, 2026
@ErlichLiu
ErlichLiu deleted the feat-search-mcp-presets branch September 3, 2026 10:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant