Conversation
Exposes the existing KeywordResearchService.removeSavedKeywords service as an MCP tool, mirroring remove_rank_tracking_keywords. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b4a08f309a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| .min(1) | ||
| .max(2000) | ||
| .describe( | ||
| "Saved-keyword row IDs to delete. Use the `id` values returned by list_saved_keywords.", |
There was a problem hiding this comment.
Expose the required saved-keyword IDs in text output
When an MCP client surfaces only text content, it cannot supply this parameter: list_saved_keywords renders keyword, metrics, and tags at src/server/mcp/tools/list-saved-keywords.ts:65-73, but leaves each row's id only in structuredContent. The repository explicitly supports text-only MCP clients, so following this instruction still leaves those clients unable to use the new removal flow; include the row ID in list_saved_keywords's text output or accept an identifier already shown there.
Useful? React with 👍 / 👎.
Text-only MCP clients had no way to get the id needed by remove_saved_keywords, since it only appeared in structuredContent.
…every-app#340) Production OOM triage: every 'Worker exceeded memory limit' burst hits unrelated cheap routes right after a deploy — the 128MB limit is per isolate, and the main worker's eagerly-evaluated module graph is what crowds it, not any single request. - Alias just-bash to a throwing stub (worker never uses it): removes just-bash + turndown + @mixmark-io/domino from the bundle. The chain was pulled in eagerly by @cloudflare/think via the SamChatAgent re-export in src/server.ts; SAM only uses its own MCP tools. - Disable Think's workspace bash tool on SamChatAgent so the stub is unreachable at runtime. - Dynamic-import page-analyzer (cheerio) in the site-audit crawl step so it evaluates only when an audit runs, not in every isolate. - Drop the turndown CJS alias workaround (every-app#339): turndown is no longer in the graph at all. Main eager server chunk: 14,434 kB -> 11,712 kB (-19%); cheerio's 503 kB now a lazy chunk.
Summary
KeywordResearchService.removeSavedKeywordsservice as an MCP tool,remove_saved_keywords.remove_rank_tracking_keywords. Does not call DataForSEO (no credit cost). Does not affect Rank Tracking.list_saved_keywordsnow includes each row'sidin its text output, not juststructuredContent, so text-only MCP clients can use the new removal flow.Test plan
pnpm run types:checkpasses