aspro-mcp
aspro-mcp
一个 Model Context Protocol 服务器,将 Aspro.Cloud REST API 暴露给 LLM 客户端(Claude Desktop、Claude Code 等)。该服务器附带了打包好的 OpenAPI 规范,因此模型可以自行发现模块、实体和方法并安全地调用它们。
特性
自描述。 模型通过
aspro_list_modules→aspro_list_entities→aspro_list_methods→aspro_describe浏览 API,然后才进行aspro_call——无需记忆端点。子字符串搜索 涵盖模块 / 实体 / 方法 / 路径 / 描述 / 标签。
默认使用 form-urlencoded POST(Aspro 预期的内容类型),支持数组和嵌套对象处理。
路径参数替换,适用于
/get/{id}、/update/{id}、/delete/{id}等。租户配置,通过
ASPRO_COMPANY(子域名)或完整的ASPRO_BASE_URL进行配置。
Related MCP server: Aspro Cloud MCP
安装
git clone https://github.com/bssth/aspro-mcp.git
cd aspro-mcp
npm install
npm run build需要 Node.js ≥ 18。
配置
复制示例环境变量文件并填写:
cp .env.example .envASPRO_COMPANY=your_company # the {company} part of https://{company}.aspro.cloud
ASPRO_API_KEY=your_api_key_here # passed as ?api_key=... on every request
# ASPRO_BASE_URL=... # optional; overrides the URL built from ASPRO_COMPANY
# ASPRO_TIMEOUT_MS=30000 # optional; default 30s在您的 Aspro.Cloud 账户的 设置 → 集成 → API 中获取 API 密钥。
连接到客户端
Claude Desktop / Claude Code
将服务器添加到您的 MCP 配置中:
{
"mcpServers": {
"aspro": {
"command": "node",
"args": ["/absolute/path/to/aspro-mcp/dist/index.js"]
}
}
}无论客户端在哪个工作目录下启动,服务器都会从项目根目录读取其 .env 文件。
其他 MCP 客户端
任何通过 stdio 使用 MCP 通信的客户端都可以运行 node dist/index.js(或 npm start)。
暴露的工具
工具 | 功能 |
| 列出顶级模块( |
| 列出模块内的实体以及每个实体上可用的方法。 |
| 列出模块的操作(HTTP 方法 + 路径 + 简短描述),可选择按实体过滤。 |
| 在模块 / 实体 / 方法 / 路径 / 描述 / 标签中进行子字符串搜索。 |
| 获取单个操作的完整架构:查询参数 / 路径参数、带有类型和描述的请求体字段。 |
| 执行调用。返回 |
推荐的流程是 search/list_* → describe → call。
开发
npm run dev # tsc --watch
npm run build # tsc
npm run smoke # offline: exercises the spec indexer and URL builder冒烟测试不涉及网络请求——它检查打包的 OpenAPI 规范是否可解析、操作是否可描述,以及 URL 构建器是否生成了格式正确的 URL。
项目布局
src/
index.ts MCP server (tool registration + entry point)
config.ts .env loading and validation
client.ts HTTP client (URL building, form-urlencoded POSTs, timeouts)
spec.ts OpenAPI indexer (modules / entities / methods / search / describe)
smoke.ts offline smoke test
spec/
openapi.json bundled Aspro.Cloud OpenAPI spec安全说明
API 密钥从环境变量中读取,并作为
?api_key=...附加到每个请求中。切勿提交.env文件。服务器没有白名单——一旦配置,它就可以调用规范中描述的任何端点(包括像
/delete/{id}这样的破坏性操作)。请使用具有最小必要权限的专用 API 密钥。将工具输出视为不可信:Aspro 实体(自定义字段值、描述等)可能包含用户提供的内容。
贡献
欢迎提交 Issue 和 PR。提交前请运行 npm run build && npm run smoke。
许可证
MIT — 参见 LICENSE。
aspro-mcp 是一个非官方的第三方连接器,与 Aspro.Cloud 无关联。
Available Tools
7 toolsaspro_callARead-only
Read data from Aspro.Cloud — the list and get methods only. Run aspro_describe first to learn the parameter shape. Pass the entity id via id, query-string args via query. Returns { status, ok, url, data }. Use aspro_write for create/update/delete.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Path id, when the operation path contains {id}. | |
| body | No | Form-urlencoded body fields for POST operations. | |
| query | No | Query string parameters. Do not include api_key — it is added automatically. | |
| entity | Yes | ||
| method | Yes | ||
| module | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reveals that only list and get methods are supported, that api_key is automatically added, and the exact return structure { status, ok, url, data }. It also indicates parameter shapes are entity-specific and require aspro_describe first, going beyond the readOnlyHint and openWorldHint annotations with concrete behavioral details.
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?
The description consists of five short, purpose-driven sentences with no redundancy. It front-loads the core purpose and each subsequent sentence adds a necessary operational detail, making it highly concise and well-structured.
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?
With no output schema, the description provides the return shape, which is vital. It also gives parameter-passing conventions, the prerequisite of running aspro_describe, and contrasts with aspro_write. For a generic read tool with sibling tools, this is complete enough for correct invocation.
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 description explains how to use id and query ('Pass the entity id via `id`, query-string args via `query`') and warns not to include api_key. It directs users to aspro_describe for the full parameter shape, which compensates for the schema's 50% coverage. However, it leaves module/entity/method semantics implicit and does not mention body, though the list/get restriction makes body usage less relevant.
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 opens with 'Read data from Aspro.Cloud' and immediately specifies 'the `list` and `get` methods only,' clearly defining the tool's scope. It also distinguishes it from aspro_write by stating 'Use aspro_write for create/update/delete,' providing explicit differentiation from the write sibling.
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 explicit when-to-use (reading via list/get), when-not-to-use (use aspro_write for writes), and a prerequisite (run aspro_describe first to learn parameter shapes). It also names an alternative tool for write operations, which is clear guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
aspro_describeARead-only
Return the full schema for one operation: HTTP method, path, whether it mutates data, request-body fields and the fields present in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| entity | Yes | ||
| method | Yes | Method segment, e.g. 'list', 'get', 'create', 'update', 'delete'. | |
| module | Yes | ||
| include_raw_response_schema | No | Include the untrimmed OpenAPI response schema. Verbose; off by default. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already communicates that the tool is safe and read-only. The description adds useful context about the content of the response (e.g., 'whether it mutates data' as part of the operation schema) but does not disclose additional behavioral traits such as authentication needs or performance characteristics.
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?
The description is a single, front-loaded sentence that efficiently conveys the tool's function and the key components of the returned schema. No wasted words.
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 describe tool with no output schema, the description adequately covers what will be returned. It includes the essential details (HTTP method, path, mutation flag, request/response fields). However, it could be more complete by mentioning how module/entity/method are specified, but the schema fills in required parameters.
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 input schema provides descriptions for 'method' and 'include_raw_response_schema' but not for 'module' and 'entity' (50% coverage). The description clarifies the overall purpose but does not explain individual parameters in depth. It relies partly on the schema to communicate parameter meaning.
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's purpose: 'Return the full schema for one operation' with specific details (HTTP method, path, mutation, request-body, response fields). This distinguishes it from sibling tools like aspro_list_methods and aspro_call by focusing on schema introspection for a single operation.
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 'for one operation' provides clear context that this tool is used when detailed schema information for a single operation is needed, rather than listing all modules/entities/methods. However, it does not explicitly mention when not to use it or name alternative tools, so it falls 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.
aspro_list_entitiesARead-only
List entities inside a given module along with the methods available on each entity.
| Name | Required | Description | Default |
|---|---|---|---|
| module | Yes | Module name, e.g. 'crm', 'fin', 'task'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and openWorldHint=false, so safety and closed-world behavior are covered. The description adds that the result includes methods per entity, which is useful. However, it does not clarify whether the listing is exhaustive, paginated, or what the exact response structure is, so behavioral disclosure is only partial.
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?
The description is a single, dense sentence that conveys the core purpose and return value without any filler. Every word contributes meaning, and it is front-loaded with the action and resource.
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 simple list tool with one parameter and a read-only annotation, the description is largely sufficient: it states what is listed and that methods are included. There is no output schema, but the description gives a reasonable idea of the return content. Missing details like sorting or filtering are not essential for this tool's simplicity.
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 input schema has 100% coverage for the single 'module' parameter with a clear description and examples. The tool description adds no further semantic detail beyond the schema, so the baseline score of 3 is appropriate.
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 uses a specific verb ('List') and resource ('entities inside a given module') and mentions the additional inclusion of methods on each entity. This clearly distinguishes it from sibling tools like aspro_list_modules (which lists modules) and aspro_list_methods (which likely lists methods in isolation), making the purpose unmistakable.
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 implies usage when you know a module name and want to explore its entities, but it provides no explicit guidance on when to use this tool versus aspro_list_methods or aspro_search. No alternative tools or exclusions are mentioned, so the usage context is only inferred from the sibling names and the parameter requirement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
aspro_list_methodsARead-only
List operations (HTTP method + path + short description) for a given module and optional entity.
| Name | Required | Description | Default |
|---|---|---|---|
| entity | No | Entity name. Omit to list operations across all entities of the module. | |
| module | Yes | Module name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already indicates a safe read operation. The description adds context about the return payload: each operation includes HTTP method, path, and short description. It also clarifies the 'optional entity' filtering behavior. No additional behavioral traits such as pagination or rate limits are disclosed, but that is not essential here.
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?
The description is a single sentence, front-loaded with the core action ('List operations'), and every word contributes meaning. No fluff or redundancy.
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?
Given the tool's simplicity, two parameters, and the presence of the readOnlyHint annotation, the description adequately communicates the tool's purpose, input scope, and return content (HTTP method, path, short description). It does not need to explain an output schema since none exists, and the context is clear enough for an agent to select and invoke the tool correctly.
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 input schema already provides descriptions for both 'module' and 'entity', with 100% coverage. The description merely echoes the terms 'module' and 'optional entity' without adding extra semantics, so it adds minimal value over the schema, resulting in a baseline score of 3.
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 uses a specific verb ('List') and resource ('operations') with clear modifiers ('for a given module and optional entity'). It distinguishes itself from sibling tools like aspro_list_modules and aspro_list_entities by focusing on operations.
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?
It specifies the context of use: given a module and optionally an entity. It implies the user should first select a module (via aspro_list_modules) and optionally an entity, but does not explicitly state when to prefer this over aspro_search or aspro_describe. This is clear context without explicit exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
aspro_list_modulesARead-only
List all top-level Aspro.Cloud API modules (crm, fin, agile, task, etc.) with entity and operation counts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, so the read-only safety is known. The description adds valuable context by specifying it returns entity and operation counts, and that it lists top-level modules. No contradiction with annotations; the added detail exceeds the bare operation.
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?
The description is a single, front-loaded sentence that packs the purpose, scope, and output details without redundant words. Every word earns its place, making it highly concise and well-structured.
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, read-only listing tool with no output schema, the description is complete: it states what is listed, the scope (top-level modules), and the output content (entity and operation counts). No missing elements are apparent for this simple tool.
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 the description need not explain parameter meanings. The schema confirms no properties, and the description focuses on output, which is appropriate. Baseline of 4 applies for no-parameter tools.
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 all top-level Aspro.Cloud API modules with counts, using a specific verb and resource. It explicitly names examples (crm, fin, agile, task) and distinguishes from sibling tools like list_entities and list_methods by focusing on module-level scope.
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 provides clear context for when to use this tool—when an overview of top-level modules is needed. However, it does not explicitly mention when not to use it or name alternatives such as list_entities, so it stops short of full explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
aspro_searchARead-only
Search operations by keyword across module/entity/method/path/description/tags. Handles Russian inflection and multi-word queries ('создать задачу', 'сделки').
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 30). | |
| query | Yes | Keywords to search for, case-insensitive. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description adds behavioral context: it searches across specific fields and handles Russian inflection and multi-word queries. This gives the agent a better understanding of how queries are processed and what results to expect, without contradicting the annotation.
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?
The description is two concise sentences, front-loaded with the primary purpose and followed by a useful behavioral note. No redundant or wasted words.
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?
Given the simple two-parameter schema and read-only annotation, the description covers the essential aspects: purpose, search target, and unique query handling. It does not describe return format or pagination, but these are less critical for a keyword-search tool and the schema covers limit.
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 schema already describes query as 'case-insensitive' and limit with max/default, but the description enriches the query semantics by mentioning Russian inflection and multi-word query support, adding meaning that the schema does not provide.
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's function: 'Search operations by keyword across module/entity/method/path/description/tags.' It uses a specific verb ('Search') and identifies the resource ('operations') and search scope, which distinguishes it from sibling list tools like aspro_list_modules or aspro_describe.
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 implies usage: use when you need to find operations by keyword. It does not explicitly contrast with alternatives or list exclusions, but the clear focus on keyword-based search provides sufficient context for when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
aspro_writeADestructive
Create, update or DELETE data in Aspro.Cloud. Destructive — the change is applied to the live account and cannot be undone from here. Run aspro_describe first. Pass the entity id via id and body fields via body. Note that delete is served over HTTP GET.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Path id, when the operation path contains {id}. | |
| body | No | Form-urlencoded body fields for POST operations. | |
| query | No | Query string parameters. Do not include api_key — it is added automatically. | |
| entity | Yes | ||
| method | Yes | ||
| module | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations' destructiveHint=true, the description adds specifics: changes are applied to the live account and cannot be undone, and delete is served over HTTP GET. This gives the agent crucial behavioral expectations not derivable from schema or annotations.
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?
Four sentences, front-loaded with the main action, then warning, usage, and the GET quirk. No fluff – each sentence provides actionable information.
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?
The description covers purpose, destructive warning, workflow (aspro_describe), and a surprising HTTP GET behavior. While module/entity/method semantics are left to aspro_describe, the tool is generic and the instruction to run describe first is a viable handoff. Given no output schema, it does not explain return values, but that's acceptable for a write tool.
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 covers id, body, and query descriptions (50% coverage). The description reinforces id as entity id and body as body fields, but module, entity, and method remain undocumented. It points to aspro_describe for context, partially compensating, but the description adds limited new meaning beyond the schema.
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 writes (create/update/delete) data in Aspro.Cloud, distinguishing it from read-only siblings like aspro_list_* and aspro_search. It also emphasizes the destructive nature, which is a key distinguishing trait.
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?
It explicitly instructs to run aspro_describe first, setting up a workflow. The destructive warning implies caution, and the mention of create/update/delete implies it's for mutations, separating it from read tools. However, it doesn't explicitly name read-only alternatives or say when not to use.
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.
3 tool updates
v0.2.0- Changed
aspro_describe1 field changed- added
Input schema / properties / include_raw_response_schemaAdded value: +{ + "description": "Include the untrimmed OpenAPI response schema. Verbose; off by default.", + "type": "boolean" +}
- Changed
aspro_search1 field changed- changed
Input schema / properties / query / descriptionPrevious value: -"Substring to search for, case-insensitive."New value: +"Keywords to search for, case-insensitive."
- Added
aspro_write
6 tool updates
v0.1.1- First observed
aspro_call - First observed
aspro_describe - First observed
aspro_list_entities - First observed
aspro_list_methods - First observed
aspro_list_modules - First observed
aspro_search
TDQS
Scored across 7 tools
Each tool has a clearly distinct role: discovery (modules, entities, methods), search, schema description, read execution, and write execution. There is no overlap in purpose, so an agent can easily select the right tool for each step.
All tool names follow the aspro_ prefix with a descriptive verb: aspro_list_modules, aspro_list_entities, aspro_list_methods, aspro_search, aspro_describe, aspro_call, aspro_write. The pattern is consistent and predictable, making it easy to infer functionality from the name.
Seven tools is well-scoped for an API exploration and interaction server. Each tool earns its place, covering the full workflow from discovery to execution without unnecessary redundancy or bloat.
The tool surface covers the complete API interaction lifecycle: exploring modules and entities, listing methods, searching, describing schemas, reading data, and writing data. No obvious gaps are apparent for the stated purpose of working with Aspro.Cloud.
Maintenance
Related MCP Connectors
Any REST/SOAP/GraphQL/OData/SQL API as MCP tools for Claude & ChatGPT. 385 connectors: SAP, ERP.
Discover, compare, route, and execute machine-accessible capabilities for AI agents.
AI-callable tools for API mocking, testing, monitoring, security, and automation.
Turn any task into the right API calls: discover, evaluate, and integrate public APIs.
Related MCP Servers
- FlicenseBqualityDmaintenanceExposes Zoho CRM v6 REST API as structured tools for LLM agents via MCP, enabling CRUD operations, search, COQL queries, and more.113-
- FlicenseBqualityDmaintenanceEnables AI assistants to manage CRM deals and tasks on Aspro Cloud, including CRUD operations on deals, tasks, users, pipelines, and workflows.16-
- FlicenseNot gradedqualityDmaintenanceEnables language models to interact with Bitrix24 CRM, providing tools to manage deals, leads, contacts, tasks, activities, users, files, chat messages, and live chat sessions.9 npm1-
- AlicenseAqualityBmaintenanceExposes OpenAPI/Swagger API documentation as MCP tools, enabling AI agents to search, inspect, and call API endpoints through natural language.511 npmMIT