jaicp-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@jaicp-mcpShow me my project's analytics for last week"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
jaicp-mcp 0.1.0
Первый публичный тест MCP-сервера к API JAICP.
В npm пакет не выкладываем: клонируйте репозиторий, поставьте зависимости и подключите в клиенте src/server.mjs.
Что нужно
Node.js 20+
Токен из раздела «Доступ к API» в JAICP — проекты, каналы, аналитика, текстовые рассылки (
JAICP_UNIFIED_TOKEN)Для CAILA Direct — отдельный токен (
JAICP_NLP_TOKEN)Для обзвонов Dialer — токен кампании (
JAICP_CALLS_TOKEN)
Без unified-токена не заработают каналы, проекты, reporter и рассылки. Без JAICP_NLP_TOKEN не заработает CAILA. Без JAICP_CALLS_TOKEN — Dialer.
Related MCP server: OpenAPI MCP Server
Установка
git clone <this-repo>
cd jaicp-mcp
npm install
cp .env.example .envТокены пишите в .env в корне клона. Этот файл в git не попадает.
Если переменные лежат в другом месте, укажите путь в JAICP_ENV.
JAICP_HOST=https://app.jaicp.com
JAICP_UNIFIED_TOKEN=
JAICP_PROJECT_SHORT_NAME=
JAICP_NLP_TOKEN=
JAICP_CALLS_TOKEN=Проверка, что OpenAPI читается (токен не нужен):
npm run opsКлиенты
Сервер — обычный процесс node src/server.mjs (stdio). Cursor, Claude Code и Codex так умеют, но конфиг у каждого свой. Отдельного HTTP-адреса в 0.1 нет.
В примерах замените /absolute/path/to/jaicp-mcp на путь к клону. На Windows, если node не в PATH, укажите полный путь к node.exe.
В конфиг клиента токены не кладите. Их читает сам сервер из .env.
Cursor (IDE и CLI)
Один файл на редактор и на Cursor CLI (agent): ~/.cursor/mcp.json или .cursor/mcp.json в проекте.
{
"mcpServers": {
"jaicp": {
"type": "stdio",
"command": "node",
"args": ["/absolute/path/to/jaicp-mcp/src/server.mjs"]
}
}
}В Cursor токены можно держать не в .env репозитория, а в ~/.cursor/secrets/jaicp.env — сервер смотрит туда первым.
Проверка: agent mcp list, затем agent mcp list-tools jaicp.
Документация: Cursor MCP, Cursor CLI MCP.
Claude Code
claude mcp add --transport stdio jaicp -- node /absolute/path/to/jaicp-mcp/src/server.mjsИли .mcp.json в корне проекта (его можно коммитить, .env нельзя):
{
"mcpServers": {
"jaicp": {
"command": "node",
"args": ["/absolute/path/to/jaicp-mcp/src/server.mjs"]
}
}
}Проверка: claude mcp list. Если сервер описан в .mcp.json, Claude при первом запуске в этой папке может спросить подтверждение.
Документация: Claude Code MCP.
Codex CLI
Codex не читает mcp.json. Нужна запись в ~/.codex/config.toml:
[mcp_servers.jaicp]
command = "node"
args = ["/absolute/path/to/jaicp-mcp/src/server.mjs"]
cwd = "/absolute/path/to/jaicp-mcp"cwd — чтобы сервер нашёл .env в клоне, даже если Codex запущен из другой папки.
То же через CLI: codex mcp add jaicp -- node /absolute/path/to/jaicp-mcp/src/server.mjs. Проверка: codex mcp list.
Документация: Codex MCP.
Инструменты
Инструмент | Что делает |
| Какие API подключены и какие токены заданы (да/нет, без значений) |
| Список операций одной спеки, можно сузить через |
| Вызов: |
Создание, изменение и удаление — только с confirm: true. То же для Dialer addPhone.
Спеки
Копии YAML лежат в vendor/specs/. Обычная установка их не обновляет.
Какой токен куда
Спеки | Переменная |
bot-channel, project, reporter, async, text-campaign |
|
caila |
|
calls |
|
JAICP_PROJECT_SHORT_NAME сам попадает в query, если у операции есть такой параметр.
Безопасность
Токены в чат не копируйте
Сервер вырезает секреты из ответов (в том числе CAILA
accessTokenи токен Telegram-бота в URL). На это лучше не рассчитывать как на единственную защитуВ выгрузках reporter могут быть персональные данные
Для тестов берите отдельный проект, не прод
Лицензия
MIT. JAICP, CAILA, Conversational Cloud и связанные товарные знаки принадлежат Just AI; этот репозиторий — неофициальный клиент к их публичному API. Про копии OpenAPI — в NOTICE.md.
Available Tools
3 toolsjaicp_callA
Call a JAICP OpenAPI operation by spec id + operationId. Writes need confirm=true.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| spec | Yes | ||
| query | No | ||
| confirm | No | Required true for create/update/delete and dialer addPhone GET | |
| headers | No | ||
| pathParams | No | ||
| operationId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden. It usefully discloses that write operations require confirmation, which signals a side-effect gate. However, it does not describe response behavior, error handling, authentication expectations, or the fact that the underlying operations may create, update, or delete data beyond the generic 'writes' label.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, no filler. The core invocation pattern is front-loaded, and the safety-relevant confirmation requirement is stated clearly. Every part of the description earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a dynamic API-call tool with 7 parameters, no annotations, and no output schema, yet the description is very minimal. It does not mention how to discover valid operationIds using jaicp_operations, what the return value looks like, whether responses are raw, or what happens on invalid specs. The sibling tools help, but the description itself leaves too much unsaid for an agent to invoke the right operation confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 14%, and the description compensates only for spec, operationId, and confirm. The meaningful parameters body, query, headers, and pathParams receive no semantic guidance, and there is no explanation of how they map to a given operation. The confirm statement also adds less detail than the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Call') and a specific resource ('JAICP OpenAPI operation by spec id + operationId'), which clearly distinguishes it from the sibling discovery tools jaicp_specs and jaicp_operations. It is immediately obvious what the tool does and how it differs from nearby tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool: once a spec and operationId are known, it executes that operation. It also adds an important condition for write operations ('Writes need confirm=true'). It does not explicitly name alternatives or provide a when-not-to-use rule, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jaicp_operationsA
List OpenAPI operations from one spec. Optional search over operationId, path, summary.
| Name | Required | Description | Default |
|---|---|---|---|
| spec | Yes | ||
| search | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. The verb 'List' conveys a read-only operation and the description names the search dimensions, but it does not disclose what happens when search is omitted, the output shape, ordering, or edge cases. This is adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The primary purpose is front-loaded and the optional search behavior is stated directly. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity two-parameter listing tool, the description is sufficient for an agent to select and invoke it correctly. The spec enum is in the schema, and the description explains the optional search behavior. The absence of an output schema is mitigated by the clear 'List operations' framing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds real meaning to the search parameter by specifying it can filter over operationId, path, and summary, which is not inferable from the schema. For 'spec', the schema's enum already documents valid values, while 'from one spec' clarifies its role.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists OpenAPI operations from a single spec and outlines searchable fields. It is specific about the verb and resource, but it does not explicitly contrast with the sibling tools (e.g., jaicp_specs for listing specs, jaicp_call for invoking an operation), so sibling differentiation is left implied rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'from one spec' gives a clear usage context: use this tool when you need operations belonging to a specific spec. However, there is no explicit guidance about when not to use it or which sibling tool should be chosen instead, such as jaicp_specs for finding available specs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jaicp_specsA
Official JAICP OpenAPI specs this MCP was built from. No network.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It usefully discloses that the tool makes no network calls and that the content is official specifications, which signals a read-only, offline operation. However, it does not describe the response format, size, or what an agent should expect back beyond the vague notion of 'specs'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences deliver the essential information with no filler. The authoritative provenance ('Official JAICP OpenAPI specs') and the key behavioral constraint ('No network') are both stated up front and compactly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter informational tool, the description is close to complete: it names what the tool provides and flags the offline nature. Without an output schema, a bit more detail about the returned representation would strengthen it, but the scope is small enough that an agent can reasonably infer what this tool is for.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so parameter-level explanation is unnecessary. The description does not need to add schema meaning, and the baseline of 4 for parameterless tools applies here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific resource ('official JAICP OpenAPI specs') and clearly indicates the tool provides the specification this MCP was built from. It does not use a strong verb like 'retrieve' or 'return', and it does not explicitly contrast with sibling tools, but the resource is clear enough for an agent to distinguish it from 'jaicp_operations' and 'jaicp_call'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus the sibling tools. 'No network' vaguely implies this is a safe/local source of information, but there is no explicit when-to-use or when-not-to-use statement, and no mention of alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
3 tool updates
v0.1.0- First observed
jaicp_call - First observed
jaicp_operations - First observed
jaicp_specs
TDQS
Each tool has a clearly distinct purpose: listing specs, searching operations within a spec, and invoking an operation. There is no overlap or ambiguity between them.
All names share the jaicp_ prefix and snake_case convention, but specs and operations are nouns while call is a verb. This is a minor stylistic deviation rather than a functional inconsistency.
Three tools form a tight, well-scoped set for a server whose purpose is to expose and call a specific API. Each tool serves a distinct stage in the workflow with no redundancy.
The surface covers the full lifecycle needed: discover available specs, browse/filter operations, and execute calls. There are no obvious dead ends or missing capabilities for the stated meta-API purpose.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
AI-callable tools for API mocking, testing, monitoring, security, and automation.
Zero-setup MCP gateway securely connecting AI to your tools with authentication and workflows
Build, validate, deploy — HTTP APIs, cron jobs, webhooks and MCP tools — from your AI client.
The OpenRouter for tools. One MCP connection gives any AI agent 254 hosted tools, pay per call.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceTurns any OpenAPI/Swagger API into MCP tools, enabling AI assistants to call REST API endpoints directly.2MIT
- FlicenseNot gradedqualityDmaintenanceDynamically exposes any OpenAPI/Swagger API as tools for AI assistants, automatically generating MCP tools from OpenAPI specs with authentication support.-
- AlicenseNot gradedqualityFmaintenanceProvides AI assistants with access to OpenAPI specifications, enabling API discovery, schema retrieval, and direct API execution with support for OAuth 2.0 and other authentication methods.251MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to discover, search, and call any REST API described by an OpenAPI or Swagger document. Supports multiple API endpoints with authentication and parameter handling.14MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/CryLeech/jaicp-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server