malinoto/tracepass-mcp-server

malinoto/tracepass-mcp-server

от malinoto
MCP сервер TracePass управляет продуктами, цифровыми паспортами (DPP) и событиями цепочки поставок для платформы EU Digital Product Passport. AI-ассистенты (Claude, Cursor) создают, обновляют и проверяют паспорта через инструменты, ресурсы и промпты.

TracePass MCP Server

Listed on Glama smithery badge

A Model Context Protocol server for TracePass — the EU Digital Product Passport platform. It lets AI assistants (Claude, Cursor, IDE agents) manage products, Digital Product Passports, economic-operator parties, and GS1 EPCIS 2.0 supply-chain events.

It speaks the full MCP protocol — tools, resources, resource templates, and prompts.

Two ways to use it

The same server core ships two ways:

  1. Hosted — point your MCP client at https://ai.tracepass.eu/mcp. Nothing to install; always current.
  2. Local (npm) — run tracepass-mcp-server via npx. The MCP client launches it as a subprocess and speaks MCP over stdio.

Authentication

The server accepts either of TracePass's two v1 auth methods on the same Authorization: Bearer … header — it forwards whatever you send to the API, which decides. Pick the one that fits how you're connecting:

API key OAuth 2.0
Best for A single user, scripts, server-to-server AI assistants / apps acting on a user's behalf
What you send A static tp_… key as a Bearer token A scoped access token obtained via the OAuth flow
Setup Mint at Developer → API Keys The user clicks Connect and approves scopes
Scope All-or-nothing (the whole workspace) Exactly the scopes the user granted; revocable
Works with Hosted and local (npx) Hosted endpoint only (needs a browser consent step)
Инструменты были проиндексированы:
tracepass_epcis

События цепочки поставок GS1 EPCIS 2.0. export, capture, capture_job и query доступны на любом тарифе, включая Free. Захваченные события списываются из лимита событий тарифа (10 в месяц на Free); при превышении capture возвращает сообщение о превышении или жёсткой блокировке. Действия (передаются через action, вместе с args): - export - args: { id }. Экспортирует события паспорта в виде документа EPCIS 2.0 JSON-LD. Только чтение. - export_by_serial - args: { serial, gtin? }. То же, что export, но адресуется по вашему собственному серийному номеру. Серийный номер уникален только В ПРЕДЕЛАХ GTIN - если он не уникален в вашем аккаунте, вызов возвращает 409 ambiguous_serial; передайте gtin (или используйте export по id). Только чтение. - capture - args: { events }. events - это EPCISDocument, одно событие или массив событий (JSON-LD). Возвращает 202 с captureJobId. - capture_job - args: { jobId }. Опрашивает асинхронную задачу захвата. Только чтение. - query - args: { params? }. params - это карта ключ/значение стандартных параметров запроса EPCIS (EQ_bizStep, GE_eventTime, MATCH_epc, …). Только чтение.

TracePass EPCIS 2.0

Параметры
  • actionenumобязательный

    EPCIS 2.0: экспортировать события паспорта (export | export_by_serial), захватывать новые события, опрашивать задание на захват или запрашивать события.

  • argsobject

    Аргументы для выбранного действия; обязательные поля зависят от action.

tracepass_passport_fieldsидемпотентный

Обновляет значения полей в Digital Product Passport. Каждое изменение записывается в журнал аудита паспорта вместе с учётными данными, под которыми оно сделано (API-ключ или подключённое приложение), и этим каналом MCP. source (необязательный) указывает, откуда пришло значение. Пропустите его или передайте "manual", когда пользователь дал вам значение или оно взято из его собственных записей: оно записывается с правами пользователя (одобряется для API-ключа или администратора; отправляется на проверку для подключённого приложения, действующего от имени редактора). Передайте "ai_suggested", когда вы сами нашли или вывели значение (веб-исследование, чтение документа): оно попадает в очередь проверки в панели управления, чтобы человек одобрил, и отклоняется для полей, которые может указывать только экономический оператор или которые должны быть измерены (например, battery stateOfHealth). Действия (передаются через action, вместе с args): - update - args: { id, fieldKey, value, source? }. Тип value соответствует dataType поля (string, number, boolean, array, object). - update_by_serial - args: { serial, fieldKey, value, gtin?, source? }. То же, что update, но адресуется по вашему собственному serial. Serial уникален только ВНУТРИ GTIN - если он не уникален в вашем аккаунте, вызов возвращает 409 ambiguous_serial; передайте gtin (или используйте update по id), чтобы точно определить.

Поля паспорта TracePass

Параметры
  • actionenumобязательный

    Обновляет одно поле паспорта, найденное по идентификатору паспорта (update) или по вашему серийному номеру (update_by_serial).

  • argsobject

    Аргументы для выбранного действия; обязательные поля зависят от action.

tracepass_passport_partiesидемпотентный

Управляет сторонами-экономическими операторами в паспорте: manufacturer, importer, authorisedRepresentative, distributor, recycler, producerResponsibilityOrg. Каждая сторона имеет юридическое наименование и хотя бы один идентификатор. Правила идентификаторов (EN 18219 §6.2-6.5): стороне требуется хотя бы один из gln, legacyOperatorId или operatorIdentifier. Если указаны и gln, и operatorIdentifier (схема gln), они должны совпадать; при несовпадении возвращается 400. operatorIdentifier со схемой gln также заполняет поле gln верхнего уровня; facilityIdentifier не заполняет его никогда. Типизированные идентификаторы (operatorIdentifier / facilityIdentifier) не задаются при AI-извлечении или импорте CSV. Схемы operatorIdentifier: • iso6523 - { scheme:"iso6523", icd:"<4 цифры>", value } - ICD 0199 = LEI (ISO 17442), 0088 = GLN, 0060 = DUNS. • gln - { scheme:"gln", gln:"<13 цифр>" } - также заполняет gln верхнего уровня. • did - { scheme:"did", did:"did:<method>:<id>" } - проверяется только синтаксически (EN 18219 §6.4.2(b)). • doi - { scheme:"doi", doi:"10.<registrant>/<suffix>" } - префикс doi:/https://doi.org/ принимается и отбрасывается. Схемы facilityIdentifier: те же четыре; вариант gln также принимает необязательный extension (сублокация GS1 SGLN). Действия (передаются через action, с args): - set - args: { id, role, legalName, gln?, country?, legacyOperatorId?, operatorIdentifier?, facilityIdentifier? }. Устанавливает или обновляет одну роль. - remove - args: { id, role }. Удаляет сторону для этой роли.

TracePass паспортные вечеринки

Параметры
  • actionenumобязательный

    Устанавливает (добавляет или заменяет) или удаляет сторону экономического оператора в паспорте по её роли.

  • argsobject

    Аргументы для выбранного действия; обязательные поля зависят от action.

tracepass_passports

Управляет цифровыми паспортами продуктов: создаёт, читает и выполняет действия жизненного цикла. ВАЖНО: create расходует слоты DPP и ТРЕБУЕТ ОПЛАТЫ. Создание сверх квоты влечёт плату за каждый паспорт; инструмент выдаёт сообщение в стиле 402 - повторно запускайте с args.confirmOverage=true только после того, как пользователь явно согласится. archive НЕОБРАТИМ (публичный QR навсегда возвращает 404); предпочитайте suspend, когда изменение можно отменить. СХЕМЫ ИДЕНТИФИКАТОРОВ (EN 18219): паспорта идентифицируются одной из пяти схем. Паспорта батарей (Battery Regulation Art. 77(3)) принимают ТОЛЬКО gs1 и iso15459. • gs1 - { scheme:"gs1", gtin, serialNumber } - GS1 GTIN + serial; gtin состоит из 8/12/13/14 цифр, хранится как GTIN-14. • iso15459 - { scheme:"iso15459", issuingAgencyCode, primaryId, serial? } - ISO/IEC 15459; сервер выводит raw (IAC + primaryId + serial). • iec61406 - { scheme:"iec61406", uri } - IEC 61406 Identification Link (https URI). Недействителен для батарей. • did - { scheme:"did", did, method } - W3C DID Core. Недействителен для батарей. • doi - { scheme:"doi", doi, granularity:"model"|"batch"|"item" } - ISO 26324 DOI, хранится в виде 10.<registrant>/<suffix> без префикса (любой префикс https://doi.org/ или doi: удаляется на входе; разрешается как https://doi.org/<doi>); granularity ОБЯЗАТЕЛЕН согласно EN 18219 §5.6.2(b). Недействителен для батарей. Старая пара gtin + serialNumber верхнего уровня всё ещё принимается как устаревший псевдоним для scheme:"gs1". Действия (передаются через action, с args): - list - args: { page?, limit? (≤100), productId?, status?, search? }. status ∈ draft|in_review|approved|published|suspended|expired|archived. Только чтение. - get - args: { id, format? (summary|full), lang? }. Только чтение. Ответ включает identifier, identifierKey и (для паспортов GS1) gs1. - get_by_serial - args: { serial, format?, lang?, gtin? }. Только чтение. Обращается к паспорту по вашему собственному serial. serial уникален только В ПРЕДЕЛАХ GTIN - если один и тот же serial существует под двумя GTIN в вашей учётной записи, вызов возвращает 409…

паспорта TracePass

Параметры
  • actionenumобязательный

    Какую операцию с паспортом запустить. Чтение: list | get | get_by_serial | compliance | registry_readiness | get_condition_flags | get_condition_flags_by_serial | get_qr | get_qr_by_serial | list_snapshots | get_snapshot | list_measurements(_by_serial) | latest_measurements(_by_serial). Запись: set_condition_flags | set_condition_flags_by_serial | capture_measurements(_by_serial) | create (BILLABLE). Жизненный цикл: suspend (обратимая) | archive (НЕОБРАТИМАЯ), у каждой есть вариант _by_serial.

  • argsobject

    Аргументы для выбранного действия; обязательные поля зависят от action (см. каждое из действий выше).

tracepass_products

Управляет каталогом продуктов TracePass. Продукт — это слой каталога: один продукт может иметь множество паспортов (один на сериализованную единицу). Продукты сами по себе не тарифицируются. Действия (передаются через action с аргументами args): - list: аргументы { page?, limit? (≤100), category?, status?, search? }. Только для чтения. - get: аргументы { id }. Только для чтения. - create: аргументы { name, model, category, description? }. category — одно из: battery, textile, electronics, construction, steel, detergents, paints-coatings, packaging, furniture, tyres, jewelry, toys, fmcg. - update: аргументы { id, name?, model?, description? }; необходимо передать хотя бы одно поле для изменения. - create_batch: аргументы { products: [ { name, model, category, description? }, … ] }, до 100. Частичный успех: ответ содержит статус по каждому элементу, так что одни элементы могут быть созданы, а другие — с ошибкой. Весь пакет потребляет N записей заранее; если это превышает дневной лимит, НЕ создается ничего (429). - archive: аргументы { id }. Мягко архивирует продукт. Блокируется с кодом 409, пока хотя бы один неархивированный паспорт ссылается на него — сначала заархивируйте эти паспорта. Это обратимо и НЕ является удалением.

Продукты TracePass

Параметры
  • actionenumобязательный

    Какую операцию с продуктом выполнить: list | get | create | create_batch | update | archive.

  • argsobject

    Аргументы для выбранного действия; обязательные поля зависят от action (см. каждое из действий выше).

tracepass_scope

Проверьте, что говорит законодательство ЕС для типа продукта, соответствующего заданным фактам: нужен ли ему Digital Product Passport, с какого времени, на каком уровне, по какому акту и статье, и обязанности каждой роли. Также прочитайте отчёт о области применения по всему каталогу компании и запустите обновление каталога. ЖЁСТКИЕ ПРАВИЛА - всегда применяйте их к ответам по области применения: - Ответы сообщают, что говорит закон для типов продуктов, соответствующих заданным фактам. Это не юридическая консультация; никогда не пишите 'вы должны' - используйте формулировки для типа продукта ('LMT batteries need a passport from 18 February 2027, Battery Regulation Art. 77(1)'). - Ссылайтесь на статью, которую даёт ответ, для каждого вердикта и обязанности. Регламент без статьи - не ссылка. Ответ not_covered не опирается ни на какую статью: скажите, что наши правила не покрывают этот продукт, и назовите ближайший акт, который он приводит, но никогда не ссылайтесь на этот акт как на основание. - Дата с точностью 'quarter', 'month' или 'year' - это план, НИКОГДА не дедлайн и не дата начала. Пишите 'planned for Q2 2027 (planned, not law yet)', никогда 'from', 'by' или 'deadline'. - Передавайте not_covered и needs_input как результаты, которыми они являются, а не как ошибки. not_covered = продукт выходит за рамки этих правил области применения. needs_input = остаются без ответа блокирующие вопросы - передайте вопросы из ask[] пользователю, прежде чем выносить вердикт. - Пункты в списке planned акта ещё не являются законом: всегда помечайте их 'Planned, not law yet' (labelText), с их wording. - ruleStatus: 'needs_recheck' означает, что закон, лежащий в основе акта, изменился, и наши правила для него перепроверяются (с recheckSince): скажите об этом в ответе. Действия (передавайте через action, с args): - check — args: { category?, facts?, role?, placedOnMarket?, lifecycleEvent?, contains?, productId?, passportId?, locale? }. Спрашивает, нужен ли типу продукта DPP. Доступно на любом плане, включая Free. Учитывается в лимите ответов по области применения для компании (~100/день, 30/мин при всплеске), НЕ в бюджете чтения/записи v1. 429 scope_answer_cap, когда дневной лимит исчерпан.…

Проверка области действия TracePass DPP

Параметры
  • actionenumобязательный

    Какую операцию scope запустить: check | catalogue_report | catalogue_run | catalogue_run_status.

  • argsobject

    Аргументы для выбранного действия; обязательные поля зависят от action (см. выше).

tracepass_templatesтолько чтениеидемпотентный

Обнаруживает схему полей регулирования для каждой категории DPP — что должен содержать СООТВЕТСТВУЮЩИЙ паспорт в соответствии с регулирующим регламентом ЕС. Справочные данные только для чтения. Используйте их для консультаций по требованиям перед созданием продуктов/паспортов и для проверки черновика на соответствие правилам. Действия (передаются через action с args): - list — args: {}. Выводит все 13 категорий с количеством полей, количеством обязательных полей и регулирующим регламентом (название + номер + даты вступления в силу/обязательного применения). - get — args: { category }. Полная схема полей для одной категории: ключ каждого поля, метка, тип данных, является ли оно ОБЯЗАТЕЛЬНЫМ, уровень доступа (public/restricted/authority), варианты enum, границы проверки и, где известно, статья/приложение регламента, которое его предписывает. category принимает одно из значений: battery, textile, electronics, construction, steel, detergents, paints-coatings, packaging, furniture, tyres, jewelry, toys, fmcg. BATTERY — обязательность зависит от категории, поэтому одного поля required недостаточно. Определяйте в таком порядке: 1. СНАЧАЛА ОПРЕДЕЛИТЕ ОБЛАСТЬ ПРИМЕНЕНИЯ. Только аккумуляторы EV, LMT и промышленные более 2 кВтч обязаны иметь паспорт (Статья 77(1), Reg (EU) 2023/1542). Для портативных, SLI или промышленных <=2 кВтч НИ ОДНО поле не является обязательным — не перечисляйте обязательные поля для них; сообщите, что аккумулятор не входит в область применения. 2. Затем используйте requiredBy[batteryCategory], где поле содержит эту карту (required | conditional | notApplicable). 3. Если ничего не подошло, используйте required. Карта индексируется ТОЛЬКО по трём категориям, входящим в область применения, поэтому пропуск шага 1 приводит к использованию required и создаёт обязательство, которое Регламент не налагает. Также обратите внимание, что EV и LMT сообщают о состоянии здоровья через ВЗАИМОИСКЛЮЧАЮЩИЕ наборы полей — аккумулятор EV должен оставлять пустым кластер remaining-capacity, а аккумулятор LMT должен оставлять пустым stateOfCertifiedEnergy, поэтому ни один аккумулятор никогда не заполняет все поля.

Шаблоны TracePass DPP (регуляторные схемы)

Параметры
  • actionenumобязательный

    Перечисляет все шаблоны категорий DPP или получает один шаблон по категории.

  • argsobject

    Аргументы для выбранного действия; category обязателен для get, игнорируется для list.

1.19.1основная
1.19.0
1.18.0
1.17.1
1.17.0
1.16.2
1.16.1
1.16.0
1.15.0
1.14.1
1.14.0
1.13.0
1.12.0
1.11.0
1.10.0
1.9.0
1.8.0
1.7.4
1.7.3
1.7.2
1.7.1
1.7.0
1.6.0
1.5.0
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.3.0
1.2.0
1.1.4
1.1.3
1.1.2
1.1.1
1.1.0
1.0.1
1.0.0

Выберите клиент, чтобы установить malinoto/tracepass-mcp-server:

Любой клиент

Конфиг добавления MCP сервера стандартный, обычно он не меняется вообще, поэтому подходит практически к любому ИИ клиенту, поддерживающему MCP.

{
  "mcpServers": {
    "malinoto-tracepass-mcp-server-kva24h5t9w": {
      "command": "npx",
      "args": [
        "-y",
        "tracepass-mcp-server"
      ],
      "env": {
        "TRACEPASS_API_KEY": "tp_YOUR_KEY"
      }
    }
  }
}
CursorCursor

Перейдите по ссылке и сервер автоматически будет добавлен в Cursor. Либо откройте/создайте файл ~/.cursor/mcp.json(%USERPROFILE%\.cursor\mcp.json на Windows) и добавьте конфиг сервера:

{
  "mcpServers": {
    "malinoto-tracepass-mcp-server-kva24h5t9w": {
      "command": "npx",
      "args": [
        "-y",
        "tracepass-mcp-server"
      ],
      "env": {
        "TRACEPASS_API_KEY": "tp_YOUR_KEY"
      }
    }
  }
}
VS Code

Создайте .vscode/mcp.json в проекте (ключ верхнего уровня — servers):

{
  "servers": {
    "malinoto-tracepass-mcp-server-kva24h5t9w": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "tracepass-mcp-server"
      ],
      "env": {
        "TRACEPASS_API_KEY": "tp_YOUR_KEY"
      }
    }
  }
}

Либо добавьте сервер через терминал:

code --add-mcp "{\"name\":\"malinoto-tracepass-mcp-server-kva24h5t9w\",\"type\":\"stdio\",\"command\":\"npx\",\"args\":[\"-y\",\"tracepass-mcp-server\"],\"env\":{\"TRACEPASS_API_KEY\":\"tp_YOUR_KEY\"}}"
ClaudeClaude Desktop

Откройте Settings → Developer → Edit Config — это откроет файл claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Впишите сервер и полностью перезапустите Claude Desktop:

{
  "mcpServers": {
    "malinoto-tracepass-mcp-server-kva24h5t9w": {
      "command": "npx",
      "args": [
        "-y",
        "tracepass-mcp-server"
      ],
      "env": {
        "TRACEPASS_API_KEY": "tp_YOUR_KEY"
      }
    }
  }
}
Claude CodeClaude Code

Добавьте сервер одной командой в терминале:

claude mcp add malinoto-tracepass-mcp-server-kva24h5t9w --env TRACEPASS_API_KEY=tp_YOUR_KEY -- npx -y tracepass-mcp-server

Либо через JSON-конфиг:

claude mcp add-json malinoto-tracepass-mcp-server-kva24h5t9w "{\"command\":\"npx\",\"args\":[\"-y\",\"tracepass-mcp-server\"],\"env\":{\"TRACEPASS_API_KEY\":\"tp_YOUR_KEY\"}}"
CodexCodex

Добавьте сервер командой в терминале:

codex mcp add malinoto-tracepass-mcp-server-kva24h5t9w --env TRACEPASS_API_KEY=tp_YOUR_KEY -- npx -y tracepass-mcp-server

Либо вручную в ~/.codex/config.toml(%USERPROFILE%\.codex\config.toml на Windows):

[mcp_servers.malinoto-tracepass-mcp-server-kva24h5t9w]
command = "npx"
args = ["-y", "tracepass-mcp-server"]

[mcp_servers.malinoto-tracepass-mcp-server-kva24h5t9w.env]
TRACEPASS_API_KEY = "tp_YOUR_KEY"
PerplexityPerplexity

MCP доступен подписчикам Perplexity Pro / Max / Enterprise. Локальные серверы — только в приложении для macOS.

  1. Откройте Настройки аккаунта → Connectors.
  2. Установите вспомогательное приложение PerplexityXPC (один раз).
  3. Нажмите Add Connector → вкладка Simple.
  4. В поле Server Name укажите malinoto/tracepass-mcp-server, а в поле команды запуска — строку ниже:
npx -y tracepass-mcp-server

Нажмите Save и дождитесь статуса Running.

WindsurfWindsurf

Откройте Windsurf Settings → Cascade → MCP Servers или отредактируйте файл ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "malinoto-tracepass-mcp-server-kva24h5t9w": {
      "command": "npx",
      "args": [
        "-y",
        "tracepass-mcp-server"
      ],
      "env": {
        "TRACEPASS_API_KEY": "tp_YOUR_KEY"
      }
    }
  }
}
ClineCline

В панели Cline нажмите иконку MCP Servers → Configure → Configure MCP Servers (или отредактируйте ~/.cline/mcp.json) и добавьте сервер:

{
  "mcpServers": {
    "malinoto-tracepass-mcp-server-kva24h5t9w": {
      "command": "npx",
      "args": [
        "-y",
        "tracepass-mcp-server"
      ],
      "env": {
        "TRACEPASS_API_KEY": "tp_YOUR_KEY"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}
Continue

Создайте файл в .continue/mcpServers/ (например malinoto-tracepass-mcp-server-kva24h5t9w.yaml) или добавьте блок в config.yaml. MCP работает только в режиме agent:

mcpServers:
  - name: malinoto-tracepass-mcp-server-kva24h5t9w
    command: npx
    args:
      - "-y"
      - "tracepass-mcp-server"
    env:
      TRACEPASS_API_KEY: tp_YOUR_KEY
Zed

Выполните agent: add context server или откройте настройки (zed: open settings file) и добавьте сервер в объект context_servers:

{
  "context_servers": {
    "malinoto-tracepass-mcp-server-kva24h5t9w": {
      "command": "npx",
      "args": [
        "-y",
        "tracepass-mcp-server"
      ],
      "env": {
        "TRACEPASS_API_KEY": "tp_YOUR_KEY"
      }
    }
  }
}

Похожие MCP-сервера

AgentModule/mcp

AgentModule/mcp

от agentmodule

MCP-сервер предоставляет агентам детерминированные правила и директивы EU AI Act для runtime-проверки compliance, собирает audit-прозрачные доказательства и помогает избегать штрафов. Полезен разра...

JavaScript⭐ 2
knowledgepa3/gia-mcp-server

knowledgepa3/gia-mcp-server

от knowledgepa3

MCP сервер GIA даёт AI-агентам enforceable governance: decision controls, compliance scoring и immutable audit-цепочку. 29 инструментов с human-in-the-loop гейтами и compliance mapping под NIST, EU AI Act. Для организаций с жёсткими требованиями безопасности.

TypeScript⭐ 5
ad0750/regintel-mcp

ad0750/regintel-mcp

от ad0750

MCP-сервер для доступа к регуляторным данным из 41 юрисдикции (GDPR, MiCA, DORA, SEC и др.). Позволяет искать регламенты, получать обязательства и штрафы, а также проверять соответствие деятельност...

Python⭐ 2
@czagents/cnb

@czagents/cnb

от martinhavel

MCP сервер для доступа к чешским и европейским госданным: ARES, ČNB, ADIS, санкции, банкротства. Встроенный агрегатор due diligence оценивает риски и строит цепочку собственников. Для комплаенса, KYC.

TypeScript⭐ 6
djtellado/nexus-legal-mcp

djtellado/nexus-legal-mcp

от djtellado

MCP-сервер Nexus Legal даёт Claude 11 юридических инструментов: анализ контрактов, Монте-Карло, cross-border сравнение по 31 стране, поиск прецедентов, доктрины, составление документов. Удобен юрис...

TypeScript⭐ 2
Vaquill-AI/canlii-mcp

Vaquill-AI/canlii-mcp

от vaquill-ai

MCP-сервер для доступа к канадской правовой информации CanLII. Ищите судебные дела, законодательство и цитирования через единый API. Пригодится юристам, исследователям и разработчикам ИИ.

TypeScript⭐ 7
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин