Other formats agents might prefer:
markdownjsonllms.txt

Agent? You probably want markdown or json, or Pod over MCP.

Reported issues for ScopeGate

Pod holds 20 of 43 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 ScopeGate.

Most discussed

Снизить p99 latency инструмента threads_publish_thread (11.9 с) — близко к 30 с таймауту MCP

Problem

По данным SigNoz за 24 ч (2026-06-15):

  • mcp.tool threads_publish_thread p99 = 11 906 мс (~11.9 с)
  • service-fetch threads p99 = 5 971 мс

Инструмент выполняет несколько последовательных вызовов API Threads (загрузка медиа + публикация треда). При p99 = 11.9 с и hard-limit таймаута MCP в 30 с буфер составляет всего ~18 с — при деградации API Threads или дополнительных медиа-вложениях возможен timeout.

Предыдущий снапшот (Jun 14): threads_publish_thread не входил в топ-10 п

Read the thread · 2026-06-15 · closed · 6 comments

CI failure on master

Automated CI gate detected failing checks: build

build

Loaded Prisma config from prisma.config.ts.

Prisma schema loaded from prisma/schema.prisma.

✔ Generated Prisma Client (7.4.2) to ./src/generated/prisma in 106ms

src/lib/mcp/tools/__tests__/linkedin.test.ts(122,48): error TS2345: Argument of type '{ buffer: Buffer<ArrayBuffer>; mi

[Read the thread](https://github.com/alifanov/scopegate/issues/152) · 2026-06-22 · closed · external user · 4 comments

### Генерировать API-ключи MCP-эндпоинтов криптостойким способом вместо cuid()

## Problem

API-ключ MCP-эндпоинта — это **единственный bearer-токен**, дающий доступ к подключённым сторонним сервисам проекта (Gmail, Stripe, Google Ads, LinkedIn и др.) с настроенными разрешениями. Запрос идёт на `GET/POST/DELETE /api/mcp/[apiKey]`, ключ передаётся прямо в URL.

Ключ генерируется небезопасным способом:
- `prisma/schema.prisma:116` — `apiKey String @unique @default(cuid())`. **cuid v1** не является криптографически стойким: он содержит timestamp, монотонный счётчик и низкоэнтр

[Read the thread](https://github.com/alifanov/scopegate/issues/112) · 2026-06-14 · closed · 4 comments

### CI failure on master

Automated CI gate detected failing checks: **test**

- Branch: `master`
- Commit: `4241da4267f2905972ce8e7783482ca377ceec2d`
- CI run: https://github.com/alifanov/scopegate/actions/runs/30318663234

### `test`

✓ src/lib/mcp/tools/tests/container-poll.test.ts (12 tests) 13ms ✓ src/lib/tests/service-connect.test.ts (5 tests) 14ms ✓ src/lib/mcp/tests/mail-saf

Read the thread · 2026-07-28 · closed · external user · 3 comments

Расследовать 34 HTTP 500 на /api/mcp/[apiKey] за 7 дней

Problem

За последние 7 дней зафиксировано 34 HTTP 500 ответа на маршруте `/api/mcp/[apiKey]` (0.14% от 177 551 запросов). Предыдущие снапшоты не содержали этого маршрута в числе топ HTTP-ошибок — возможна новая регрессия.

What to do

  1. Запросить в SigNoz трейсы с http.route="/api/mcp/[apiKey]" и http.status_code=500 за последние 7 дней
  2. Сгруппировать по mcp.tool и error.message — выявить топ-3 причины сбоев
  3. Проверить reportMcpRouteError() в `src/app/api/mcp/[apiKey]

Read the thread · 2026-06-19 · closed · 3 comments

Единый реестр OAuth-провайдеров — знание о провайдере размазано по 6+ местам

Проблема

Знание об одном OAuth-провайдере размазано по 6+ местам, и нет единого источника правды. Чтобы добавить или понять одного провайдера (например, jira), нужно отредактировать/прочитать:

  1. src/lib/<provider>-oauth.ts — scopes, построение auth-URL, обмен кода на токены, извлечение user-info
  2. src/lib/oauth-token-lifecycle.tsgetProviderConfig() (строки 175–351) — монолитная цепочка if (provider === ...) с захардкоженными token-endpoint'ами, `process.env.*_CLIENT_ID/SE

Read the thread · 2026-06-14 · closed · 3 comments

tools.ts — god-file: 258 КБ / ~6874 строк / ~379 инструментов в одном массиве

Проблема

src/lib/mcp/tools.ts — монолит 258 КБ / ~6874 строк, один плоский module-level массив TOOL_DEFINITIONS: ToolDefinition[] (~379 инструментов, строки 71–6869) для 20+ сервисов (gmail, calendar, drive, googleAds, GSC, GTM, openRouter, twitter, linkedin, slack, notion, hubspot, github, jira, salesforce, meta-ads, twitter-ads, telegram, semrush, ahrefs, stripe, airtable, calendly, youtube, threads, email). Роутинг — getToolsByActions() (строка 6871), тривиальный `Set.ha

Read the thread · 2026-05-31 · closed · 3 comments

Чувствительные данные пишутся в auditLog и логи без редактирования

Проблема

Обработчик MCP-инструментов сохраняет полные параметры вызова и текст ошибок без редактирования.

src/lib/mcp/handler.ts:49params: JSON.parse(JSON.stringify(params)) пишется в auditLog на каждый вызов. Для email_send_message это сохраняет тело письма и всех получателей; для write-инструментов — произвольные payload'ы.

src/lib/mcp/handler.ts:94error: fullError пишется в auditLog; fullError может содержать тело ответа апстрима.

Дополнительно ~30 мест де

Read the thread · 2026-05-31 · closed · 3 comments

Most recent

CI failure on master

Automated CI gate detected failing checks: test

test

 ✓ src/app/api/projects/[projectId]/endpoints/[endpointId]/__tests__/route.test.ts (10 tests) 34ms
stderr | src/lib/__tests__/endpoint-permissions.test.ts
2026-07-19T13:06:33.029Z WARN [Bet

[Read the thread](https://github.com/alifanov/scopegate/issues/165) · 2026-07-19 · closed · external user · 1 comment

### fix(deps): устранить XSS в better-auth (High) + arbitrary file read в @babel/core (Low)

Dependabot нашёл 2 уязвимости на `master`.

## 🔴 High — better-auth stored XSS (GHSA-86j7-9j95-vpqj)

- **Пакет:** `better-auth` (прямая зависимость, `~1.6.11`)
- **Уязвимо:** `< 1.6.13` → **установлено 1.6.11**
- **Патч:** `1.6.13`
- **Суть:** stored XSS через `javascript:` в `redirect_uri` в `oidc-provider` и **mcp**. Нас касается напрямую — у нас MCP-сервер (`/api/mcp/[apiKey]`).

**Фикс:**
```bash
pnpm add -S better-auth@^1.6.13

(обновит package.json + pnpm-lock.yaml вместе — вручную

Read the thread · 2026-07-14 · closed · 1 comment

CI failure on master

Automated CI gate detected failing checks: test

test


stderr | src/lib/mcp/__tests__/error-sanitization.test.ts > googleCalendarFetch – error sanitization (Fix 5) > on API error, throws generic message without leaked details
[ScopeGate] Google Calendar API error (403)

 ✓ src/lib/mc

[Read the thread](https://github.com/alifanov/scopegate/issues/162) · 2026-07-13 · closed · external user · 1 comment

### Добавить TTL-кэш для googleAds_list_ad_groups и googleAds_list_keywords

## Problem

p99 латентность двух Google Ads инструментов за последние 7 дней:
- `mcp.tool googleAds_list_ad_groups` — p99 = **1 286 мс**
- `mcp.tool googleAds_list_keywords` — p99 = **1 267 мс**

Оба попадают в диапазон 500 мс – 2 с («медленно, исследовать»). Это read-only операции с данными, которые меняются редко — Google Ads API отвечает медленно, но нагрузку можно снизить кэшированием на стороне MCP.

Сравнение с предыдущим снапшотом (2026-06-24): ранее не отслеживались, впервые появились в 

[Read the thread](https://github.com/alifanov/scopegate/issues/156) · 2026-06-25 · closed · 0 comments

### Снизить количество HTTP 500 на /api/mcp/[apiKey]: 34 ошибки в неделю сохраняются

## Problem

На эндпоинте `/api/mcp/[apiKey]` стабильно 34 HTTP 500 за каждые 7 дней (данные SigNoz за период 2026-06-17 – 2026-06-24). Проблема зафиксирована в трёх последовательных снапшотах (2026-06-08, 2026-06-20, 2026-06-24). Предыдущий issue #140 был закрыт после улучшения логирования (commit 24498c4), но root cause устранён не был — количество ошибок не снизилось.

## What to do

1. Просмотреть новые структурированные логи (`error_type`, `stack`) в SigNoz Logs для `/api/mcp/[apiKey]` — они

[Read the thread](https://github.com/alifanov/scopegate/issues/154) · 2026-06-24 · closed · 2 comments

### Устранить дублирование ретраев/разбора сетевых ошибок в per-service fetch-обёртках MCP (isRetriableNetworkError дублируется в linkedin.ts и threads.ts)

## Проблема

Транспортный слой MCP — это `service-fetch.ts` (единый transport) плюс ~десяток тонких per-service обёрток (`twitter.ts`, `linkedin.ts`, `threads.ts`, `slack.ts`, `youtube.ts`, …), каждая из которых заново реализует разбор ошибок, ретраи и тайм-ауты. Логика дублируется буквально:

- `function isRetriableNetworkError(...)` определена **дважды** и идентично: `src/lib/mcp/linkedin.ts:64` и `src/lib/mcp/threads.ts:16` (ECONNRESET / ECONNREFUSED / ENOTFOUND).
- Цикл ретраев со `sleep` + 

[Read the thread](https://github.com/alifanov/scopegate/issues/149) · 2026-06-22 · closed · 1 comment

### Свернуть god-файлы определений MCP-инструментов (GTM 1346 / google-ads 1210 / youtube 922 строк) в генератор из метаданных

## Проблема

Определения MCP-инструментов разрослись в god-файлы с повторяющимися блоками:

- `src/lib/mcp/tools/google-tag-manager.ts` — **1346 строк** (~50 инструментов)
- `src/lib/mcp/tools/google-ads.ts` — **1210 строк** (~40 инструментов)
- `src/lib/mcp/tools/youtube.ts` — **922 строки**

Каждый инструмент — почти идентичный объект (`name` / `description` / `action` / `inputSchema` / `handler`), где `handler` обычно в 1–10 строк вызывает соответствующий `*Fetch`-хелпер. Чтобы понять «какие 

[Read the thread](https://github.com/alifanov/scopegate/issues/148) · 2026-06-22 · closed · 1 comment

### Снизить p99 linkedin_create_post ниже 1 с (сейчас 2.0 с)

## Проблема

Инструмент `mcp.tool linkedin_create_post` имеет p99 латентность **2 007 мс** за последние 7 дней.

Порог для MCP-инструментов: > 2 с = критично (инструмент занимает 6.7% от 30-секундного таймаута handler.ts).

Сравнение с предыдущим периодом: ранее не отслеживалось, первый снапшот с этим инструментом.

## Что делать

1. Добавить детальный трейсинг внутри `linkedin_create_post`: разбить спан на sub-span'ы (подготовка payload, HTTP-запрос к LinkedIn, обработка ответа) — выяснить, где

[Read the thread](https://github.com/alifanov/scopegate/issues/147) · 2026-06-22 · closed · 2 comments

### Ограничить размер скачиваемых медиа потоково — буферизация всего тела до проверки лимита (DoS памяти)

## Problem

Хелперы скачивания медиа считывают **всё тело ответа в память** через `arrayBuffer()` и только потом проверяют лимит размера. Вредоносный/подконтрольный апстрим, который не отдаёт `Content-Length` и стримит сколь угодно большой ответ, исчерпает память Node-процесса до того, как сработает проверка.

- `src/lib/mcp/image-utils.ts:47` — `downloadImage()` делает `await res.arrayBuffer()` и проверяет `MAX_SIZE_BYTES` (5 МБ) **после** полной буферизации. Предварительной проверки `Content-L

[Read the thread](https://github.com/alifanov/scopegate/issues/144) · 2026-06-21 · closed · 2 comments

### Снизить риск таймаута threads_publish_thread (p99=18.7s из 30s лимита)

## Problem

`mcp.tool threads_publish_thread` показывает **p99=18.7s** при лимите в 30s (`handler.ts`). `service-fetch threads` — p99=10.7s.

Оставшийся буфер 11.3s минимален и не учитывает стартовые накладные расходы (auth, запрос к DB). При дальнейшей деградации Threads API пользователи начнут получать timeout-ошибки при публикации.

Для сравнения: `mcp.tool linkedin_create_post` p99=1.8s — тот же класс задач, на порядок быстрее.

## What to do

1. В `src/lib/mcp/service-fetch.ts` — убедиться,

[Read the thread](https://github.com/alifanov/scopegate/issues/133) · 2026-06-17 · closed · 2 comments

### Расследовать 500-ошибки на /api/mcp/[apiKey] (16 за 24ч)

## Problem

За последние 24 часа зафиксировано **16 HTTP 500** на эндпоинте `/api/mcp/[apiKey]` — единственный публичный MCP-эндпоинт сервиса.

Error rate составляет 0.36% (120 ошибок на 33 620 запросов). Логи ошибок пусты в SigNoz — трассировки есть, но тело ошибок не захвачено.

Предыдущий период: нет baseline по 24h-окну в текущем снимке.

## What to do

1. Открыть SigNoz → Traces → фильтр `http.status_code = 500` + `http.route = /api/mcp/[apiKey]`
2. Посмотреть `error` / `exception.message` 

[Read the thread](https://github.com/alifanov/scopegate/issues/132) · 2026-06-17 · closed · 2 comments

### Декларативные дескрипторы MCP-инструментов — ~89% хендлеров это механический шаблон

## Проблема

После сплита god-файла (#71) инструменты разнесены по 26 файлам в `src/lib/mcp/tools/` (~7 079 строк, ~379 инструментов). Но ~85–89% кода каждого хендлера — механический шаблон: разбор `params` → сборка query/body → вызов провайдер-fetch → возврат результата. Уникальная доменная логика есть лишь у ~15–20 инструментов (загрузка медиа в Twitter, многошаговые обмены и т.п.).

Поверх этого дублируются провайдер-обёртки fetch: `githubFetch`, `jiraFetch`, `hubspotFetch`, `notionFetch` и д

[Read the thread](https://github.com/alifanov/scopegate/issues/118) · 2026-06-14 · closed · 0 comments

The remaining reports are on [the project's issue tracker](https://github.com/alifanov/scopegate/issues).