MCP — не документация и не API‑замена, а протокол‑контракт: GGSEL нужен тонкий доменный сервер поверх существующих сервисов

Asked (verbatim):

«Сделай пожалуйста объяснение. Я довольного много работаю с ИИ, агентами и так далее. Но до сих пор не понимаю, что такое MCP, это же не просто официальная документация от какого-то проекта, а нечто большее? Типо ИИ-API? Как сделать свой MCP, контекст - я аналитик в ggsel и у нас 2 проблемы 1. Нет MCP по проекту анализа конкурентов (екомлог, парсим оффера, метчим к sku - даем прайс индекс продажи) 2. Высокая операционная нагрузка на департамент аналитики в связи с ручной работой и отсутствия возможности делегирования задач ИИ (собрать витрину в кликхаус, сделать дашборд или его черновик через html и так далее)»

Это объяснение и проектный план опираются на 6 отобранных первоисточников с шести независимых хостов — спецификация MCP, анонс Linux Foundation/AAIF и официальные материалы ClickHouse, dbt и Grafana (проверено 2026‑09‑25; ни одна ссылка не поддерживает больше половины утверждений, набор не single‑sourced). Коротко: MCP — открытый протокол‑контракт между AI‑приложением и внешними данными/действиями, «USB‑C/ODBC для AI‑инструментов». Anthropic открыла его в ноябре 2024, сейчас проект передан Linux Foundation в Agentic AI Foundation. LLM решает, что сделать; host держит агентный цикл; MCP client внутри host держит соединение; MCP server публикует строго описанные capabilities и вызывает ваши существующие API и БД. API — бизнес‑функции системы, MCP‑сервер — стандартизированный AI‑адаптер над ними: он не должен дублировать парсер, matcher или расчёт price index.

Целевая архитектура MCP для GGSEL: кто с кем говорит и где граница доверия

read‑only путь (гранты read‑only пользователя) изменения только через approval / PR / CI MCP‑соединение (JSON‑RPC: stdio или Streamable HTTP) пунктирная рамка — trust boundary: у модели нет прямых паролей от БД
MCP создан и открыт Anthropic в ноябре 2024 года и передан Linux Foundation как якорный проект Agentic AI Foundation — более 10 000 опубликованных MCP‑серверов; это нейтральный открытый стандарт, а не документация одного вендора — linuxfoundation.org
Авторизация в MCP — это OAuth 2.1: сервер валидирует access‑токены и их audience, токены только в заголовке Authorization и никогда в URL, для stdio креды берутся из окружения — безопасность задаёт спецификация плюс ваши гранты, а не «магия» протокола — modelcontextprotocol.io
Официальный mcp-clickhouse даёт run_select_query, list_databases и list_tables, уважает readonly‑настройки сервера и включает write‑режим только явно, с защитой от DROP/TRUNCATE — быстрый read‑only слой для задачи 2 не нужно писать самим — github.com · clickhouse.com
Семантический и dashboard‑слои тоже уже есть: dbt MCP отдаёт governed‑метрики Semantic Layer и lineage через OAuth с consent‑экраном, Grafana MCP управляет дашбордами и алертами через service‑account‑токен и RBAC — свой сервер нужен только для домена конкурентного анализа — docs.getdbt.com · grafana.com

Три сущности MCP‑сервера — и чего протокол не делает

Tools

Действия с типизированным JSON‑входом и выходом: get_price_index(sku, period), find_sku_candidates(offer_id). Host делает discovery, модель выбирает tool, сервер вызывает существующий API/БД и возвращает структурированный результат.

Resources

Управляемый контекст, который читается, а не вызывается: схемы витрин, словарь метрик, определения price index, правила матчинга, пороги confidence, runbook. Модель получает эталонные определения вместо галлюцинаций.

Prompts

Шаблоны повторяемых сценариев: «разбери low‑confidence очередь матчей», «собери черновик витрины». Фиксируют рабочий процесс команды, а не одноразовые формулировки.

Честная граница: MCP даёт discovery и единый способ вызова — и только. Качество рассуждений, права доступа, оркестрацию, бизнес‑логику и безопасность он сам по себе не обеспечивает: это задаётся грантами, approvals, CI и вашим кодом. Tool‑описания и результаты — недоверенный текст (prompt injection), обращайтесь с ними соответственно.

Задача 1 · Competitor Intelligence MCP: тонкий сервер, не «MCP ко всему»

Read tools (ядро, 5–8 на старт)

  • search_competitor_offers(filters)
  • get_offer_details(offer_id)
  • find_sku_candidates(offer_id)
  • explain_sku_match(offer_id, sku_id)
  • get_match_quality(filters)
  • get_price_index(sku/category/period)
  • get_sales_price_index(…)
  • get_coverage_and_freshness(…)
  • list_anomalies(…)

Write / actions — отдельно

  • enqueue_parse(url/source)
  • request_rematch(offer_id)
  • approve_match(…)

Идемпотентны, отделены от read‑инструментов и требуют явного подтверждения человека.

Resources

  • Определения price index и sales‑weighted index
  • Каталог SKU
  • Схема витрин и lineage
  • Версии правил матчинга и пороги confidence
  • Freshness SLA

Принцип: детерминированный matcher и расчёт индекса остаются источником истины. LLM объясняет матчи, строит кандидатов и разбирает low‑confidence очередь — но не меняет эталонный SKU незаметно.

Задача 2 · Композиция готовых серверов вместо одного гигантского MCP

Read‑only слой данныхОфициальный github.com mcp‑clickhouse: list_databases / list_tables / run_select_query. По умолчанию read‑only; реальные границы всё равно задают гранты отдельного read‑only пользователя.
Семантический слойdbt MCP (docs.getdbt.com), если GGSEL использует dbt; иначе собственные resources/tools со словарём метрик, grain, dimensions, joins и владельцами.
Dashboard слойОфициальный Grafana MCP (grafana.com), если BI — Grafana; для другого BI — тонкий адаптер над его API. Для HTML‑черновика — tool generate_dashboard_draft(spec), возвращающий артефакт/preview; публикация — отдельным approve/publish шагом.
Свой MCP нужен дляконкурентного домена, семантики GGSEL и workflow PR/approvals — этого готовые серверы не знают.

Безопасный workflow создания витрины

discover_schema
→
formulate_plan
→
generate SQL / model files
→
EXPLAIN / estimate + проверки grain, joins, PII, cost
→
ветка + PR
→
CI / tests
→
human approval
→
deploy service account

Концептуальный каркас своего сервера (FastMCP, адаптер — не бизнес‑логика)

from fastmcp import FastMCP from pydantic import BaseModel mcp = FastMCP("ggsel-competitor-intel") @mcp.resource("resource://metrics/price_index") def price_index_definition() -> str: return METRIC_DICT["price_index"] # эталонное определение, версия, владелец class PriceIndexQuery(BaseModel): sku_id: str period: str # "2026-08", ISO-месяц class PriceIndexResult(BaseModel): sku_id: str; period: str; price_index: float freshness: str; source: str; rules_version: str @mcp.tool() def get_price_index(q: PriceIndexQuery) -> PriceIndexResult: # вызываем СУЩЕСТВУЮЩИЙ сервис/репозиторий; никаких SQL-строк от пользователя row = price_index_service.get(q.sku_id, q.period) return PriceIndexResult(**row) # результат + freshness/source/version # локальный прототип: mcp.run(transport="stdio") # общий корпоративный сервер: mcp.run(transport="streamable-http") # + OAuth 2.1

Два режима доставки: stdio — локальный прототип, креды из окружения; Streamable HTTP — общий корпоративный сервер с OAuth 2.1. Код иллюстрирует адаптер: расчёт живёт в сервисе, MCP лишь типизирует вход/выход и добавляет freshness, source и версию правил.

Реалистичный roadmap на 8 недель

Недели 1–2Инвентаризация 15–20 типовых запросов к аналитике, каталог данных и метрик, read‑only ClickHouse pilot (официальный сервер), threat model.
Недели 3–4Competitor MCP с 5–8 read tools, golden dataset, evals для matching и price index.
Недели 5–6Workflow черновика витрины и dashboard/HTML draft через Git PR; никакого prod‑write.
Недели 7–8RBAC/OAuth, approvals, аудит, cost limits; пилот с 3–5 аналитиками и измерение эффекта.

Критерии успеха: доля запросов, закрытых без участия аналитика; медианное время до ответа/черновика; analyst‑hours saved; SQL/test pass rate; precision/recall матчинга; coverage и freshness price index; стоимость запросов; число заблокированных опасных действий; доля действий с полным audit trail. Успех — не «мы подняли MCP», а безопасное сокращение lead time и ручной нагрузки при сохранении доверия к метрикам.

Анти‑паттерны

Первоисточники: спецификация, governance и три официальных сервера

Что этоВозможности / архитектураКонтролиИсточник
The Model Context Protocol provides authorization capabilities at the transport level, enabling MCP clients to make requ…
Authorization
In the authorization architecture, a protected MCP server acts as an OAuth 2.1 resource server accepting and responding to protected resource requests using access tokens; the MCP client acts as an OAuth 2.1 client making protected resource requests on behalf of a resource owner; and the authorization server interacts with the user (if necessary) and issues access tokens for use at the MCP server, and may be hosted with the resource server or as a separate entity.Authorization is OPTIONAL for MCP implementations; access tokens MUST NOT be included in the URI query string and MUST be sent in the Authorization request header on every HTTP request; MCP servers MUST validate access tokens and that they were issued specifically for them as the intended audience; invalid or expired tokens MUST receive an HTTP 401 response; MCP clients MUST keep refresh tokens confidential in transit and storage; and implementations MUST follow normative security requirements covering token audience binding and validation, token theft, communication security, authorization code protection, mix-up and confused deputy attacks, open redirection, and Client ID Metadata Document security.modelcontextprotocol.io
Model Context Protocol (MCP) is the universal standard protocol for connecting AI models to tools, data and applications…
Linux Foundation Announces the Formation of the Agentic AI Foundation (AAIF), Anchored by New Project Contributions Including Model Context Protocol (MCP), goose and AGENTS.md
Model Context Protocol (MCP), created and open sourced by Anthropic in November 2024, has been donated to the Linux Foundation as a founding project of the Agentic AI Foundation (AAIF), where it is governed as an open source standard under neutral, community-driven open governance.—linuxfoundation.org
ClickHouse (and its ClickHouse MCP server)
MCP and Data Warehouses: everything you need to know | Engineering | ClickHouse Resource Hub | ClickHouse
Natural-language querying of warehouse data by business teams without SQL or BI tool training, agentic analytics via chat/Slack bots, and custom dashboard builders with automatic chart generation from MCP query resultsRead-only access with read-only credentials and disabled INSERT/UPDATE/DELETE, query timeouts and resource limits, strict data isolation with row-level security, dedicated compute isolation, and observability via ClickStack (OpenTelemetry-based distributed tracing of MCP server execution)clickhouse.com
mcp-clickhouse
mcp-clickhouse/CHANGELOG.md at main · ClickHouse/mcp-clickhouse
MCP server exposing ClickHouse tools — run_select_query, list_databases, list_tables (with paginated output, row counts, and parameterized views support) — plus local ClickHouse queries via chDB, enabling SQL querying and database/metadata explorationAuthentication controls (FastMCP OAuth/OIDC auth providers, static token, basic authentication, CLICKHOUSE_ROLE), optional write access mode with built-in DROP and TRUNCATE protection, respect for server readonly settings, and a hardened unauthenticated /health endpoint that avoids leaking version or connection error detailsgithub.com
dbt MCP server
The dbt MCP server comes to Claude: governed context, one sign-in away
Lets Claude answer natural-language questions over governed dbt data and metadata: model discovery and lineage, governed metrics from the dbt Semantic Layer, exploratory SQL generation and execution, job run operations via the Administrative API, column-level lineage, and product documentation search — supporting workflows like business reviews, incident triage with observability tools, and safe change managementOAuth sign-in with a consent screen where users approve the scopes to grant Claude, governed context from certified Semantic Layer definitions, and token-based authentication for clients that do not support OAuthdocs.getdbt.com
Grafana MCP server (open source)
Open source Grafana MCP server | Grafana documentation
Gives AI assistants and LLM clients access to a Grafana instance: query metrics and logs, search and manage dashboards, manage alert rules, work with Grafana Incident and Sift, generate deeplinks to Grafana resources, and use tools for datasources (Prometheus, Loki and others), alerting, incidents, and OnCallAuthentication via service account token (or OAuth 2.1 for the Grafana Cloud option), configurable enabled tools, RBAC with tools reference covering permissions and scopes, TLS support, and observabilitygrafana.com

Данные: 6 отобранных строк‑источников по 6 независимым хостам (спецификация MCP, Linux Foundation/AAIF, ClickHouse, GitHub‑проект ClickHouse, dbt, Grafana), проверено 2026‑09‑25; каждая строка — краткое изложение возможностей, контролей и транспорта соответствующего официального материала. Архитектурная схема и план — авторская интерпретация под контекст GGSEL; длинные тексты источников сокращены для ширины таблицы.

This report was generated automatically by Keenable SELECT at a user's request, from publicly available web sources linked herein. Keenable does not review, verify, or endorse its contents and makes no representation as to accuracy, completeness, or timeliness; AI-based extraction may contain errors. Nothing in this report is investment, legal, financial, or other professional advice. All trademarks and referenced content remain the property of their respective owners; no affiliation or endorsement is implied. To report an error, rights concern, or request removal: legal@keenable.ai.

Keenable SELECTAsk your own question
Made with Keenable SELECT