Reported issues for mcp-server
Pod holds 10 of 10 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.
Back to mcp-server.
Most discussed
fix: balance warning not surfaced in error-path tool responses (review finding — PR #381)
Problem
When a scrape/extract/screenshot/crawl API call returns a 4xx error (e.g., 402 Insufficient Balance), the balance warning suffix is not appended to the error response. The X-AlterLab-Balance-Warning header IS parsed on error responses, but formatErrorResult() is called directly without appending formatBalanceWarning(client.getLastBalanceWarning()).
Source: PR #381 — Feat: proactive balance warnings (#28) Agent: Security + Billing (dual finding) Confidence: POSSIBLE
Read the thread · 2026-07-07 · closed · outside contributor · 15 comments
fix: remove dead code in waitForKeypressOrTimeout() finally block (review finding — PR #377)
Problem
The finally block in waitForKeypressOrTimeout() in src/auth.ts contains an empty if body that is dead code.
Source: PR #377 — feat(auth): add 5-second countdown with keypress opt-out to first-run flow Agent: General Security (domain: quality) Confidence: POSSIBLE Severity: LOW
Pattern Metadata
Pattern: dead-code-finally
Files: src/auth.ts
Root cause: The finally block was added as a belt-and-suspenders guard but the actual cleanup is handle
Read the thread · 2026-07-07 · closed · outside contributor · 13 comments
fix: shell injection via exec() in openBrowser() (review finding — PR #371)
Problem
openBrowser() in src/auth.ts:120 was constructing a shell command string (exec(cmd)) using a URL returned by the device authorization server. On Linux and macOS, a malicious or compromised device server could return a URL containing shell metacharacters (e.g., backtick subshell $(id), semicolon, pipe) that escape the double-quote boundary and execute arbitrary shell commands on the user's machine.
Source: PR #371 — feat(auth): Add OAuth device flow for seamless CLI authe
Read the thread · 2026-07-07 · closed · outside contributor · 11 comments
Bug: only 5 of 23 tools returned by tools/list — search, map, crawl, batch, sessions missing
Problem
alterlab-mcp-server@1.7.0 registers 23 tools via server.tool() (confirmed by monkey-patching McpServer.prototype.tool — all 23 return OK), but tools/list only returns 5:
alterlab_scrapealterlab_extractalterlab_screenshotalterlab_estimate_costalterlab_check_balance
Missing tools (18): alterlab_search, alterlab_map, alterlab_crawl, alterlab_crawl_status, alterlab_crawl_cancel, alterlab_batch, alterlab_batch_status, `alterlab_list
Read the thread · 2026-07-07 · closed · outside contributor · 7 comments
fix: estimate tool formats description overstates cost prediction impact (review finding — PR #236)
Problem
The estimate tool's formats parameter description states it Affects cost prediction accuracy (src/tools/estimate.ts:24), but the /api/v1/scrape/estimate endpoint currently ignores the formats field in its cost calculation — it only uses url, cost_controls, and URL-pattern heuristics.
Source: PR #236 — Fix: add formats parameter to estimate tool (json_v2, rag, raw) Agent: General Security (security) Confidence: POSSIBLE Severity: LOW Review comment
Read the thread · 2026-06-03 · closed · outside contributor · 15 comments
Sync: CostEstimateRequest formats expanded — json_v2, rag, raw added (from #19982)
Ecosystem Sync
Source: RapierCraftStudios/AlterLab @ `staging` PR: RapierCraftStudios/AlterLab#19982 Merged: 2026-06-03
What changed
PR #19982 expanded the `formats` enum in `CostEstimateRequest` to include `json_v2`, `rag`, and `raw` (previously only `text`, `json`, `html`, `markdown`, `content`).
The MCP server's `estimate` tool (`src/tools/estimate.ts`) should accept these additional format value
Read the thread · 2026-06-03 · closed · outside contributor · 9 comments
Sync: Add extraction_model parameter to scrape, extract, and crawl tools (from #19988)
Ecosystem Sync
Source: RapierCraftStudios/AlterLab @ `staging` PR: RapierCraftStudios/AlterLab#19988 Merged: 2026-06-03
What changed
PR #19988 added `extraction_model` to `ScrapeRequest`, `ExtractRequest`, and `CrawlRequest` in the Node SDK. The MCP server's `scrape`, `extract`, and `crawl` tools need the same parameter.
Required changes
`src/tools/scrape.ts` — add to schema: ```ts extraction_mod
Read the thread · 2026-06-03 · closed · outside contributor · 8 comments
feat(sync): comprehensive API parity — all missing params, response fields, and endpoints
Problem
The MCP server tool schemas are significantly behind the AlterLab API surface. ~30 scrape params, ~16 crawl params, and 16+ API endpoints have no MCP tool coverage. This single issue supersedes all individual sync issues (#102–#211).
Scope
Scrape Tool — Missing Input Params
cost_controls (entire object):
cost_controls.force_tier(1/2/3/3.5/4) — bypass tier escalationcost_controls.max_tier(1/2/3/3.5/4) — cap maximum tiercost_controls.max_credits(float) —
Read the thread · 2026-05-29 · closed · outside contributor · 15 comments
Most recent
feat(sync): add block_images param and crawl export tool
Problem
The MCP server is missing two API capabilities that are live in production:
block_imagesparameter — available on scrape, crawl, and extract endpoints since SDK v2.3.1. Skips image downloads during browser rendering to reduce proxy bandwidth and speed up scrapes. Not exposed in the MCP scrape/crawl/extract tool schemas.GET /crawl/{id}/export— new endpoint (PR #21189, deployed June 18). Exports crawl results as CSV/JSON/NDJSON. No corresponding MCP tool exists.
Read the thread · 2026-06-22 · closed · outside contributor · 0 comments
Sync: Add beta feature management tools — list, enable, disable (from #19977)
Ecosystem Sync
Source: RapierCraftStudios/AlterLab @ `staging` PR: RapierCraftStudios/AlterLab#19977 Merged: 2026-06-03
What changed
PR #19977 added beta feature management methods to both the Node SDK and Python SDK:
- `listBetaFeatures()` — GET /api/v1/beta-features
- `listMyBetaFeatures()` — GET /api/v1/beta-features/my
- `enableBetaFeature(slug)` — POST /api/v1/beta-features/{slug}/enable
- `disableBetaFeature(sl
Read the thread · 2026-06-03 · closed · outside contributor · 7 comments
The remaining reports are on the project's issue tracker.