Skip to main content
Glama

jaicp-mcp

MCP-сервер для работы AI-агентов с JAICP и Tovie Platform

Release Node.js MCP License: MIT

Русский · English

jaicp-mcp подключает MCP-клиенты — Cursor, Claude Code, Codex CLI и другие — к HTTP API JAICP и Tovie Platform.

Сервер строит запросы по официальным OpenAPI, проверяет параметры до обращения к сети и защищает mutating-операции. Один и тот же контракт содержит 160 операций для обоих облаков.

IMPORTANT

Это неофициальный проект. Он не является продуктом Just AI или Tovie AI.

Возможности

  • семь API: проекты, каналы, аналитика, асинхронные отчёты, текстовые рассылки, CAILA и Dialer;

  • автоматическая подстановка required/default-параметров из OpenAPI;

  • JSON, form-urlencoded, multipart-файлы из base64 и бинарные ответы;

  • защита мутаций через confirm и глобальный режим JAICP_READ_ONLY;

  • таймауты, запрет redirect, лимит ответа и редакция типичных секретов;

  • одинаковый контракт для JAICP и Tovie Platform — меняются только хост и токены;

  • полностью автономные тесты без запросов к реальным API.

Related MCP server: Open API MCP Server

Быстрый старт

1. Установите сервер

Требуются Git и Node.js 20 или новее.

git clone https://github.com/CryLeech/jaicp-mcp.git
cd jaicp-mcp
npm ci
cp .env.example .env

В PowerShell последняя команда выглядит так:

Copy-Item .env.example .env

2. Добавьте токен

Откройте .env и укажите как минимум unified-токен из раздела JAICP/Tovie «Доступ к API»:

JAICP_HOST=https://app.jaicp.com
JAICP_UNIFIED_TOKEN=your-unified-token
JAICP_PROJECT_SHORT_NAME=your-project-short-name

Для Tovie Platform используйте JAICP_HOST=https://platform.tovie.ai и токен, выпущенный этим облаком.

CAUTION

Не добавляйте.env в Git и не помещайте токены в конфигурацию MCP-клиента.

3. Подключите MCP-клиент

Добавьте сервер в ~/.cursor/mcp.json или .cursor/mcp.json, заменив путь на абсолютный:

{
  "mcpServers": {
    "jaicp": {
      "type": "stdio",
      "command": "node",
      "args": ["/absolute/path/to/jaicp-mcp/src/server.mjs"]
    }
  }
}

После перезапуска Cursor сервер предоставит три инструмента: jaicp_specs, jaicp_operations и jaicp_call.

claude mcp add --transport stdio jaicp -- node /absolute/path/to/jaicp-mcp/src/server.mjs

Подробнее: Claude Code MCP.

[mcp_servers.jaicp]
command = "node"
args = ["/absolute/path/to/jaicp-mcp/src/server.mjs"]
cwd = "/absolute/path/to/jaicp-mcp"

Подробнее: Codex MCP.

Примеры запросов

После подключения можно обращаться к API обычным языком:

  • «Покажи список проектов JAICP».

  • «Найди операции для получения статистики сессий».

  • «Покажи текстовые рассылки проекта my-project».

  • «Экспортируй интенты CAILA».

Перед вызовом сервер найдёт точную OpenAPI-операцию, проверит обязательные параметры и определит, изменяет ли она данные.

Инструменты

jaicp_specs

Показывает подключённые API, хост, версию сервера и наличие нужных токенов. Значения токенов не возвращаются.

jaicp_operations

Ищет операции одной спеки по operationId, пути, тегу или описанию. Возвращает required/default-параметры, форматы тела и ответа, а также признак мутации.

jaicp_call

Выполняет операцию по spec + operationId. При совпадающих operationId принимает точный OpenAPI path для дизамбигуации.

{
  "spec": "project",
  "operationId": "getByProjectShortName",
  "pathParams": {
    "projectShortName": "my-project"
  }
}

Поддерживаемые API

Vendored-копии YAML находятся в vendor/specs/. npm run check-specs сравнивает их с файлами обоих облаков.

Конфигурация

Переменная

Назначение

По умолчанию

JAICP_HOST

Хост JAICP или Tovie Platform

https://app.jaicp.com

JAICP_UNIFIED_TOKEN

Проекты, каналы, reporter и рассылки

—

JAICP_PROJECT_SHORT_NAME

Проект для path/query, если он не указан в вызове

—

JAICP_NLP_TOKEN

CAILA / NLP Direct

—

JAICP_CALLS_TOKEN

Dialer

—

JAICP_READ_ONLY

Запретить любые мутации

false

JAICP_FETCH_TIMEOUT_MS

Таймаут HTTP-запроса

120000

JAICP_MAX_RESPONSE_BYTES

Максимальный размер ответа

2000000

JAICP_ENV

Путь к другому env-файлу

—

Сервер ищет конфигурацию в ~/.cursor/secrets/jaicp.env, затем в .env проекта. Явные переменные окружения имеют приоритет.

JAICP_PROJECT_SHORT_NAME подставляется и в query, и в {projectShortName} path.

Безопасность

WARNING

confirm: true защищает только от случайного вызова: этот флаг передаёт та же AI-модель. Для гарантированного запрета изменений используйте JAICP_READ_ONLY=true.

  • мутации определяются по HTTP-методу и x-security-authority;

  • Dialer addPhone* считается мутацией даже при использовании GET;

  • path-параметры с /, \, dot-segments и управляющими символами отклоняются;

  • автоматические HTTP-redirect запрещены;

  • multipart принимает base64, но не читает произвольные локальные пути;

  • сервер редактирует типичные токены, но не обещает удалять персональные данные;

  • reporter-выгрузки могут содержать персональные данные.

HTTP без TLS разрешён только для localhost. Для явного dev-исключения существует JAICP_ALLOW_INSECURE_HOST=1.

Форматы данных

  • JSON используется по умолчанию;

  • application/x-www-form-urlencoded поддерживается для Dialer;

  • multipart/form-data принимает { filename, mediaType, data }, где data — base64;

  • JSON и text-ответы возвращаются как текст MCP;

  • application/octet-stream возвращается как MCP embedded resource.

Разработка

npm test
npm run check
npm run check-specs
openspec validate --all --strict --no-interactive

Изменения проектируются через OpenSpec. Активные изменения находятся в openspec/changes/.

Лицензия

Исходный код распространяется по MIT. JAICP и связанные знаки принадлежат Just AI; Tovie AI Platform и связанные знаки — Tovie AI. Подробнее: NOTICE.md.

Available Tools

3 tools
jaicp_callB

Call a JAICP/Tovie OpenAPI operation by spec id + operationId. Writes need confirm=true unless JAICP_READ_ONLY.

Inputs: spec (required), operationId (required), body, path, +4 more.

jaicp_operationsA

List OpenAPI operations from one spec. Optional search over operationId, path, summary.

Inputs: spec (required), search.

jaicp_specsA

Official JAICP/Tovie OpenAPI specs this MCP was built from. No network.

Inputs: no named parameters.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.8/5.0

    Scored across 3 tools

    Disambiguation5/5

    The three tools occupy clearly separate roles: jaicp_specs exposes available API specifications, jaicp_operations lists operations within a spec, and jaicp_call invokes a specific operation. There is no meaningful semantic overlap between them.

    Naming Consistency4/5

    All tools share the jaicp_ prefix and use lowercase snake_case, making them predictable. The names are not strictly verb_noun — jaicp_specs and jaicp_operations are resource-style nouns while jaicp_call is a verb — but the convention is still clear.

    Tool Count5/5

    Three tools is the right size for a dynamic OpenAPI gateway: one for spec discovery, one for operation discovery, and one for execution. Each tool is essential and none is redundant.

    Completeness5/5

    This covers the full workflow for the domain: discover available specs, inspect and search operations, and call any operation. Since jaicp_call can target any operationId, the entire API surface is reachable without needing per-endpoint tools.

    Maintenance

    ActivityNo data
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables MCP clients to call any OpenAPI-defined API by automatically converting its operations into tools, with built-in support for authentication, rate limiting, and response handling.
      7
      Apache 2.0
    • F
      license
      Not graded
      quality
      B
      maintenance
      Enables AI agents to interact with any Slingr application via its generated OpenAPI documentation, exposing app endpoints and actions as MCP tools without app-specific code.
      -