@bitrix24/mcp-docs 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/dist/__tests__/methods.test.d.ts +1 -0
  2. package/dist/__tests__/methods.test.js +54 -0
  3. package/dist/__tests__/methods.test.js.map +1 -0
  4. package/dist/__tests__/placements.test.d.ts +1 -0
  5. package/dist/__tests__/placements.test.js +36 -0
  6. package/dist/__tests__/placements.test.js.map +1 -0
  7. package/dist/__tests__/references.test.d.ts +1 -0
  8. package/dist/__tests__/references.test.js +42 -0
  9. package/dist/__tests__/references.test.js.map +1 -0
  10. package/dist/__tests__/scopes.test.d.ts +1 -0
  11. package/dist/__tests__/scopes.test.js +32 -0
  12. package/dist/__tests__/scopes.test.js.map +1 -0
  13. package/dist/__tests__/search.test.d.ts +1 -0
  14. package/dist/__tests__/search.test.js +43 -0
  15. package/dist/__tests__/search.test.js.map +1 -0
  16. package/dist/data/app-types.json +64 -0
  17. package/dist/data/categories.json +32 -0
  18. package/dist/data/methods.json +370 -0
  19. package/dist/data/placements.json +252 -0
  20. package/dist/data/scopes.json +177 -0
  21. package/dist/index.d.ts +4 -0
  22. package/dist/index.js +77 -0
  23. package/dist/index.js.map +1 -0
  24. package/dist/resources/guides.d.ts +6 -0
  25. package/dist/resources/guides.js +26 -0
  26. package/dist/resources/guides.js.map +1 -0
  27. package/dist/tools/methods.d.ts +33 -0
  28. package/dist/tools/methods.js +24 -0
  29. package/dist/tools/methods.js.map +1 -0
  30. package/dist/tools/placements.d.ts +29 -0
  31. package/dist/tools/placements.js +18 -0
  32. package/dist/tools/placements.js.map +1 -0
  33. package/dist/tools/references.d.ts +12 -0
  34. package/dist/tools/references.js +9 -0
  35. package/dist/tools/references.js.map +1 -0
  36. package/dist/tools/scopes.d.ts +15 -0
  37. package/dist/tools/scopes.js +12 -0
  38. package/dist/tools/scopes.js.map +1 -0
  39. package/dist/tools/search.d.ts +18 -0
  40. package/dist/tools/search.js +47 -0
  41. package/dist/tools/search.js.map +1 -0
  42. package/package.json +35 -0
@@ -0,0 +1,177 @@
1
+ [
2
+ {
3
+ "scope": "crm",
4
+ "description": "Full access to CRM entities: deals, leads, contacts, companies, quotes, smart invoices, and CRM activities. Allows reading, creating, updating, and deleting CRM records and their associated fields.",
5
+ "module": "crm"
6
+ },
7
+ {
8
+ "scope": "task",
9
+ "description": "Access to task management: create, read, update, and delete tasks, task comments, and task fields. Includes access to task checklists and time tracking entries.",
10
+ "module": "tasks"
11
+ },
12
+ {
13
+ "scope": "tasks",
14
+ "description": "Alias for the task scope. Provides the same access to task management: create, read, update, and delete tasks, comments, and task-related entities.",
15
+ "module": "tasks"
16
+ },
17
+ {
18
+ "scope": "im",
19
+ "description": "Access to instant messaging: send messages to chats and users, read chat history, manage chat participants, and create notifications within Bitrix24 messenger.",
20
+ "module": "im"
21
+ },
22
+ {
23
+ "scope": "imbot",
24
+ "description": "Access to create and manage chatbots (IM bots). Allows registering bots, handling bot commands, sending messages from bots, and managing bot event subscriptions.",
25
+ "module": "im"
26
+ },
27
+ {
28
+ "scope": "imopenlines",
29
+ "description": "Access to Open Lines (omnichannel messaging). Allows integrating external messaging channels (WhatsApp, Telegram, etc.) with Bitrix24 Open Lines, managing conversations and operators.",
30
+ "module": "im"
31
+ },
32
+ {
33
+ "scope": "call",
34
+ "description": "Access to call tracking and VoIP integration. Allows registering incoming and outgoing calls, attaching call recordings, and linking calls to CRM entities.",
35
+ "module": "telephony"
36
+ },
37
+ {
38
+ "scope": "telephony",
39
+ "description": "Full access to telephony features: manage phone numbers, configure SIP connectors, access call logs, and integrate external PBX systems with Bitrix24 telephony.",
40
+ "module": "telephony"
41
+ },
42
+ {
43
+ "scope": "bizproc",
44
+ "description": "Access to business processes and automation. Allows starting and managing workflow instances, registering custom activities for business process templates, and reading business process definitions.",
45
+ "module": "bizproc"
46
+ },
47
+ {
48
+ "scope": "calendar",
49
+ "description": "Access to the calendar module: read and write calendar events, manage event attendees, access user and group calendars, and subscribe to calendar event notifications.",
50
+ "module": "calendar"
51
+ },
52
+ {
53
+ "scope": "timeman",
54
+ "description": "Access to time management features: read and write time tracking records, manage work schedules, access work time reports, and integrate with external time tracking systems.",
55
+ "module": "timeman"
56
+ },
57
+ {
58
+ "scope": "catalog",
59
+ "description": "Access to the product catalog: manage products, product sections, SKU variants, price types, and product properties. Used for e-commerce and inventory integrations.",
60
+ "module": "catalog"
61
+ },
62
+ {
63
+ "scope": "sale",
64
+ "description": "Access to the online store and sales module: manage orders, order items, order statuses, payment integrations, delivery configurations, and customer data in the store.",
65
+ "module": "sale"
66
+ },
67
+ {
68
+ "scope": "lists",
69
+ "description": "Access to universal lists (custom list entities in Bitrix24). Allows creating and managing list types, adding/editing/deleting list items, and configuring list fields.",
70
+ "module": "lists"
71
+ },
72
+ {
73
+ "scope": "disk",
74
+ "description": "Access to the Bitrix24 Drive (file storage): upload, download, move, copy, and delete files and folders. Manage file versions, sharing permissions, and access file metadata.",
75
+ "module": "disk"
76
+ },
77
+ {
78
+ "scope": "entity",
79
+ "description": "Access to the generic data storage entity (storage entity). Allows creating custom data storage containers and managing their items, similar to a key-value store with structured data.",
80
+ "module": "entity"
81
+ },
82
+ {
83
+ "scope": "user",
84
+ "description": "Full access to user management: read detailed user profiles, update user fields, manage user invitations, and access the full user directory including sensitive fields.",
85
+ "module": "user"
86
+ },
87
+ {
88
+ "scope": "user_basic",
89
+ "description": "Read-only access to basic user information: name, photo, and online status. Suitable for applications that need to display user avatars or check presence without accessing private data.",
90
+ "module": "user"
91
+ },
92
+ {
93
+ "scope": "user_brief",
94
+ "description": "Read-only access to a brief user profile: name, department, position, and work contact details. A middle-ground between user_basic and the full user scope.",
95
+ "module": "user"
96
+ },
97
+ {
98
+ "scope": "user.userfield",
99
+ "description": "Access to manage custom user fields (user fields). Allows creating, editing, and deleting custom fields attached to the user entity in Bitrix24.",
100
+ "module": "user"
101
+ },
102
+ {
103
+ "scope": "department",
104
+ "description": "Access to the company structure (departments/organisational chart). Allows reading and writing department data, managing department members, and navigating the org hierarchy.",
105
+ "module": "intranet"
106
+ },
107
+ {
108
+ "scope": "landing",
109
+ "description": "Access to the Bitrix24 Sites & Landing Pages module. Allows creating and managing landing pages, sites, blocks, and forms built with the Bitrix24 site builder.",
110
+ "module": "landing"
111
+ },
112
+ {
113
+ "scope": "documentgenerator",
114
+ "description": "Access to the Document Generator module. Allows creating documents from templates, filling template placeholders with entity data (e.g. from CRM deals), and managing document templates.",
115
+ "module": "documentgenerator"
116
+ },
117
+ {
118
+ "scope": "sign.b2e",
119
+ "description": "Access to the Bitrix24 Sign B2E (business-to-employee) electronic signature module. Allows initiating and tracking e-signature workflows for internal HR documents.",
120
+ "module": "sign"
121
+ },
122
+ {
123
+ "scope": "sonet_group",
124
+ "description": "Access to social network groups (workgroups and projects). Allows creating and managing groups, adding members, and reading group activity feeds.",
125
+ "module": "socialnetwork"
126
+ },
127
+ {
128
+ "scope": "log",
129
+ "description": "Access to the company activity feed (live feed/log). Allows reading and posting messages to the Bitrix24 activity feed and managing comments on feed posts.",
130
+ "module": "log"
131
+ },
132
+ {
133
+ "scope": "vote",
134
+ "description": "Access to the polling and voting module. Allows creating, reading, and managing votes and polls within Bitrix24.",
135
+ "module": "vote"
136
+ },
137
+ {
138
+ "scope": "ai_admin",
139
+ "description": "Administrative access to Bitrix24 AI features and CoPilot configuration. Allows managing AI provider settings, prompts, and AI-powered feature configuration.",
140
+ "module": "ai"
141
+ },
142
+ {
143
+ "scope": "biconnector",
144
+ "description": "Access to the BI Connector module for business intelligence integrations. Allows configuring data sources and exporting Bitrix24 data to external BI tools.",
145
+ "module": "biconnector"
146
+ },
147
+ {
148
+ "scope": "booking",
149
+ "description": "Access to the Booking module (online scheduling). Allows managing booking resources, time slots, reservations, and booking form configurations.",
150
+ "module": "booking"
151
+ },
152
+ {
153
+ "scope": "delivery",
154
+ "description": "Access to delivery services configuration in the online store. Allows registering and managing delivery service handlers and shipping methods.",
155
+ "module": "sale"
156
+ },
157
+ {
158
+ "scope": "pay_system",
159
+ "description": "Access to payment system integrations. Allows registering custom payment handlers, managing payment system settings, and processing payment callbacks in the online store.",
160
+ "module": "sale"
161
+ },
162
+ {
163
+ "scope": "main",
164
+ "description": "Access to core Bitrix24 platform features: application placement management, event subscriptions, option storage, and basic portal information. Required for most applications.",
165
+ "module": "main"
166
+ },
167
+ {
168
+ "scope": "placement",
169
+ "description": "Access to the placement API: bind and unbind application handlers to UI extension points (placements) within Bitrix24, and list currently bound placements.",
170
+ "module": "main"
171
+ },
172
+ {
173
+ "scope": "userfieldtype",
174
+ "description": "Access to register and manage custom user field types. Allows applications to define new field types that can be added to CRM entities, tasks, and other objects in Bitrix24.",
175
+ "module": "main"
176
+ }
177
+ ]
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env node
2
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
3
+ declare const server: McpServer;
4
+ export { server };
package/dist/index.js ADDED
@@ -0,0 +1,77 @@
1
+ #!/usr/bin/env node
2
+ // packages/mcp-bitrix24-docs/src/index.ts
3
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
4
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
5
+ import { ResourceTemplate } from '@modelcontextprotocol/sdk/server/mcp.js';
6
+ import { searchDocs, searchDocsSchema } from './tools/search.js';
7
+ import { getPlacements, getPlacementDetail, getPlacementsSchema, getPlacementDetailSchema } from './tools/placements.js';
8
+ import { getScopes, getScopesSchema } from './tools/scopes.js';
9
+ import { getRestMethods, getMethodDetail, getRestMethodsSchema, getMethodDetailSchema } from './tools/methods.js';
10
+ import { getAppTypes, getCategories } from './tools/references.js';
11
+ import { getGuide, GUIDES } from './resources/guides.js';
12
+ const server = new McpServer({
13
+ name: 'bitrix24-docs',
14
+ version: '0.1.0',
15
+ });
16
+ // Tools
17
+ server.tool('search_docs', 'Full-text search across Bitrix24 docs', searchDocsSchema.shape, async (params) => {
18
+ const results = searchDocs(params.query, params.limit);
19
+ return { content: [{ type: 'text', text: JSON.stringify(results, null, 2) }] };
20
+ });
21
+ server.tool('get_placements', 'List available Bitrix24 UI placements', getPlacementsSchema.shape, async (params) => {
22
+ const results = getPlacements(params.module);
23
+ return { content: [{ type: 'text', text: JSON.stringify(results, null, 2) }] };
24
+ });
25
+ server.tool('get_placement_detail', 'Get full details for a specific UI placement', getPlacementDetailSchema.shape, async (params) => {
26
+ const result = getPlacementDetail(params.placement);
27
+ if (!result) {
28
+ return { content: [{ type: 'text', text: `Placement "${params.placement}" not found.` }] };
29
+ }
30
+ return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
31
+ });
32
+ server.tool('get_scopes', 'List Bitrix24 REST API permission scopes', getScopesSchema.shape, async (params) => {
33
+ const results = getScopes(params.module);
34
+ return { content: [{ type: 'text', text: JSON.stringify(results, null, 2) }] };
35
+ });
36
+ server.tool('get_rest_methods', 'List Bitrix24 REST API methods', getRestMethodsSchema.shape, async (params) => {
37
+ const results = getRestMethods(params.scope, params.query);
38
+ return { content: [{ type: 'text', text: JSON.stringify(results, null, 2) }] };
39
+ });
40
+ server.tool('get_method_detail', 'Get full details for a specific REST API method', getMethodDetailSchema.shape, async (params) => {
41
+ const result = getMethodDetail(params.method);
42
+ if (!result) {
43
+ return { content: [{ type: 'text', text: `Method "${params.method}" not found.` }] };
44
+ }
45
+ return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
46
+ });
47
+ server.tool('get_app_types', 'List Bitrix24 application types', {}, async () => {
48
+ const results = getAppTypes();
49
+ return { content: [{ type: 'text', text: JSON.stringify(results, null, 2) }] };
50
+ });
51
+ server.tool('get_categories', 'List Bitrix24 application categories', {}, async () => {
52
+ const results = getCategories();
53
+ return { content: [{ type: 'text', text: JSON.stringify(results, null, 2) }] };
54
+ });
55
+ // Resources
56
+ for (const guide of GUIDES) {
57
+ server.resource(guide.name, new ResourceTemplate(guide.uri, { list: undefined }), async () => {
58
+ const content = getGuide(guide.name);
59
+ return {
60
+ contents: [
61
+ {
62
+ uri: guide.uri,
63
+ mimeType: 'text/markdown',
64
+ text: content ?? `Guide "${guide.name}" not found.`,
65
+ },
66
+ ],
67
+ };
68
+ });
69
+ }
70
+ async function main() {
71
+ const transport = new StdioServerTransport();
72
+ await server.connect(transport);
73
+ console.error('bitrix24-docs MCP server running on stdio');
74
+ }
75
+ main().catch(console.error);
76
+ export { server };
77
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,0CAA0C;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAA;AAE1E,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAChE,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AACxH,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AACjH,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAExD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;IAC3B,IAAI,EAAE,eAAe;IACrB,OAAO,EAAE,OAAO;CACjB,CAAC,CAAA;AAEF,QAAQ;AAER,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,uCAAuC,EAAE,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;IAC3G,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;IACtD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAA;AAChF,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,uCAAuC,EAAE,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;IACjH,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAC5C,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAA;AAChF,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,8CAA8C,EAAE,wBAAwB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;IACnI,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IACnD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,MAAM,CAAC,SAAS,cAAc,EAAE,CAAC,EAAE,CAAA;IAC5F,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAA;AAC/E,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,0CAA0C,EAAE,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;IAC5G,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACxC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAA;AAChF,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,gCAAgC,EAAE,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;IAC7G,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;IAC1D,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAA;AAChF,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,iDAAiD,EAAE,qBAAqB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;IAChI,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAC7C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,MAAM,CAAC,MAAM,cAAc,EAAE,CAAC,EAAE,CAAA;IACtF,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAA;AAC/E,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,iCAAiC,EAAE,EAAE,EAAE,KAAK,IAAI,EAAE;IAC7E,MAAM,OAAO,GAAG,WAAW,EAAE,CAAA;IAC7B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAA;AAChF,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,sCAAsC,EAAE,EAAE,EAAE,KAAK,IAAI,EAAE;IACnF,MAAM,OAAO,GAAG,aAAa,EAAE,CAAA;IAC/B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAA;AAChF,CAAC,CAAC,CAAA;AAEF,YAAY;AAEZ,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;IAC3B,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,gBAAgB,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,IAAI,EAAE;QAC3F,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACpC,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,GAAG,EAAE,KAAK,CAAC,GAAG;oBACd,QAAQ,EAAE,eAAe;oBACzB,IAAI,EAAE,OAAO,IAAI,UAAU,KAAK,CAAC,IAAI,cAAc;iBACpD;aACF;SACF,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAA;IAC5C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IAC/B,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAA;AAC5D,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAE3B,OAAO,EAAE,MAAM,EAAE,CAAA"}
@@ -0,0 +1,6 @@
1
+ export declare function getGuide(name: string): string | null;
2
+ export declare const GUIDES: {
3
+ uri: string;
4
+ name: string;
5
+ title: string;
6
+ }[];
@@ -0,0 +1,26 @@
1
+ import { readFileSync } from 'fs';
2
+ import { join, dirname } from 'path';
3
+ import { fileURLToPath } from 'url';
4
+ const __dirname = dirname(fileURLToPath(import.meta.url));
5
+ const guidesDir = join(__dirname, '..', 'data', 'guides');
6
+ export function getGuide(name) {
7
+ try {
8
+ return readFileSync(join(guidesDir, `${name}.md`), 'utf-8');
9
+ }
10
+ catch {
11
+ return null;
12
+ }
13
+ }
14
+ export const GUIDES = [
15
+ {
16
+ uri: 'bitrix24://guides/getting-started',
17
+ name: 'getting-started',
18
+ title: 'Getting Started with Bitrix24 App Development',
19
+ },
20
+ {
21
+ uri: 'bitrix24://guides/app-lifecycle',
22
+ name: 'app-lifecycle',
23
+ title: 'Application Lifecycle',
24
+ },
25
+ ];
26
+ //# sourceMappingURL=guides.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guides.js","sourceRoot":"","sources":["../../src/resources/guides.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AAEnC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AACzD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;AAEzD,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,KAAK,CAAC,EAAE,OAAO,CAAC,CAAA;IAC7D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB;QACE,GAAG,EAAE,mCAAmC;QACxC,IAAI,EAAE,iBAAiB;QACvB,KAAK,EAAE,+CAA+C;KACvD;IACD;QACE,GAAG,EAAE,iCAAiC;QACtC,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,uBAAuB;KAC/B;CACF,CAAA"}
@@ -0,0 +1,33 @@
1
+ import { z } from 'zod';
2
+ interface Method {
3
+ method: string;
4
+ description: string;
5
+ scope: string;
6
+ parameters: Array<{
7
+ name: string;
8
+ type: string;
9
+ description: string;
10
+ }>;
11
+ returns: string;
12
+ example: string;
13
+ }
14
+ export declare function getRestMethods(scope?: string, query?: string): Method[];
15
+ export declare function getMethodDetail(method: string): Method | null;
16
+ export declare const getRestMethodsSchema: z.ZodObject<{
17
+ scope: z.ZodOptional<z.ZodString>;
18
+ query: z.ZodOptional<z.ZodString>;
19
+ }, "strip", z.ZodTypeAny, {
20
+ scope?: string | undefined;
21
+ query?: string | undefined;
22
+ }, {
23
+ scope?: string | undefined;
24
+ query?: string | undefined;
25
+ }>;
26
+ export declare const getMethodDetailSchema: z.ZodObject<{
27
+ method: z.ZodString;
28
+ }, "strip", z.ZodTypeAny, {
29
+ method: string;
30
+ }, {
31
+ method: string;
32
+ }>;
33
+ export {};
@@ -0,0 +1,24 @@
1
+ import { z } from 'zod';
2
+ import data from '../data/methods.json' with { type: 'json' };
3
+ const methods = data;
4
+ export function getRestMethods(scope, query) {
5
+ let result = methods;
6
+ if (scope)
7
+ result = result.filter(m => m.scope === scope);
8
+ if (query) {
9
+ const q = query.toLowerCase();
10
+ result = result.filter(m => m.method.toLowerCase().includes(q) || m.description.toLowerCase().includes(q));
11
+ }
12
+ return result;
13
+ }
14
+ export function getMethodDetail(method) {
15
+ return methods.find(m => m.method === method) ?? null;
16
+ }
17
+ export const getRestMethodsSchema = z.object({
18
+ scope: z.string().optional().describe('Filter by scope (e.g. "crm")'),
19
+ query: z.string().optional().describe('Search in method names and descriptions'),
20
+ });
21
+ export const getMethodDetailSchema = z.object({
22
+ method: z.string().describe('Method name (e.g. "crm.deal.list")'),
23
+ });
24
+ //# sourceMappingURL=methods.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"methods.js","sourceRoot":"","sources":["../../src/tools/methods.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,IAAI,MAAM,sBAAsB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AAW7D,MAAM,OAAO,GAAG,IAAgB,CAAA;AAEhC,MAAM,UAAU,cAAc,CAAC,KAAc,EAAE,KAAc;IAC3D,IAAI,MAAM,GAAG,OAAO,CAAA;IACpB,IAAI,KAAK;QAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAA;IACzD,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAA;QAC7B,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5G,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,IAAI,CAAA;AACvD,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;IACrE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;CACjF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;CAClE,CAAC,CAAA"}
@@ -0,0 +1,29 @@
1
+ import { z } from 'zod';
2
+ interface Placement {
3
+ code: string;
4
+ title: string;
5
+ description: string;
6
+ module: string;
7
+ handler_params: Array<{
8
+ name: string;
9
+ type: string;
10
+ }>;
11
+ example: string;
12
+ }
13
+ export declare function getPlacements(module?: string): Placement[];
14
+ export declare function getPlacementDetail(code: string): Placement | null;
15
+ export declare const getPlacementsSchema: z.ZodObject<{
16
+ module: z.ZodOptional<z.ZodString>;
17
+ }, "strip", z.ZodTypeAny, {
18
+ module?: string | undefined;
19
+ }, {
20
+ module?: string | undefined;
21
+ }>;
22
+ export declare const getPlacementDetailSchema: z.ZodObject<{
23
+ placement: z.ZodString;
24
+ }, "strip", z.ZodTypeAny, {
25
+ placement: string;
26
+ }, {
27
+ placement: string;
28
+ }>;
29
+ export {};
@@ -0,0 +1,18 @@
1
+ import { z } from 'zod';
2
+ import data from '../data/placements.json' with { type: 'json' };
3
+ const placements = data;
4
+ export function getPlacements(module) {
5
+ if (!module)
6
+ return placements;
7
+ return placements.filter(p => p.module === module);
8
+ }
9
+ export function getPlacementDetail(code) {
10
+ return placements.find(p => p.code === code) ?? null;
11
+ }
12
+ export const getPlacementsSchema = z.object({
13
+ module: z.string().optional().describe('Filter by module (e.g. "crm", "tasks", "im")'),
14
+ });
15
+ export const getPlacementDetailSchema = z.object({
16
+ placement: z.string().describe('Placement code (e.g. "CRM_DEAL_DETAIL_TAB")'),
17
+ });
18
+ //# sourceMappingURL=placements.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"placements.js","sourceRoot":"","sources":["../../src/tools/placements.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,IAAI,MAAM,yBAAyB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AAWhE,MAAM,UAAU,GAAG,IAAmB,CAAA;AAEtC,MAAM,UAAU,aAAa,CAAC,MAAe;IAC3C,IAAI,CAAC,MAAM;QAAE,OAAO,UAAU,CAAA;IAC9B,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAA;AACpD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,CAAA;AACtD,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;CACvF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;CAC9E,CAAC,CAAA"}
@@ -0,0 +1,12 @@
1
+ export declare function getAppTypes(): {
2
+ type: string;
3
+ title: string;
4
+ description: string;
5
+ use_cases: string[];
6
+ requirements: string[];
7
+ }[];
8
+ export declare function getCategories(): {
9
+ code: string;
10
+ title: string;
11
+ description: string;
12
+ }[];
@@ -0,0 +1,9 @@
1
+ import appTypes from '../data/app-types.json' with { type: 'json' };
2
+ import categories from '../data/categories.json' with { type: 'json' };
3
+ export function getAppTypes() {
4
+ return appTypes;
5
+ }
6
+ export function getCategories() {
7
+ return categories;
8
+ }
9
+ //# sourceMappingURL=references.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"references.js","sourceRoot":"","sources":["../../src/tools/references.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,wBAAwB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AACnE,OAAO,UAAU,MAAM,yBAAyB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AAEtE,MAAM,UAAU,WAAW;IACzB,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,UAAU,CAAA;AACnB,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { z } from 'zod';
2
+ interface Scope {
3
+ scope: string;
4
+ description: string;
5
+ module: string;
6
+ }
7
+ export declare function getScopes(module?: string): Scope[];
8
+ export declare const getScopesSchema: z.ZodObject<{
9
+ module: z.ZodOptional<z.ZodString>;
10
+ }, "strip", z.ZodTypeAny, {
11
+ module?: string | undefined;
12
+ }, {
13
+ module?: string | undefined;
14
+ }>;
15
+ export {};
@@ -0,0 +1,12 @@
1
+ import { z } from 'zod';
2
+ import data from '../data/scopes.json' with { type: 'json' };
3
+ const scopes = data;
4
+ export function getScopes(module) {
5
+ if (!module)
6
+ return scopes;
7
+ return scopes.filter(s => s.module === module);
8
+ }
9
+ export const getScopesSchema = z.object({
10
+ module: z.string().optional().describe('Filter by module'),
11
+ });
12
+ //# sourceMappingURL=scopes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scopes.js","sourceRoot":"","sources":["../../src/tools/scopes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,IAAI,MAAM,qBAAqB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AAQ5D,MAAM,MAAM,GAAG,IAAe,CAAA;AAE9B,MAAM,UAAU,SAAS,CAAC,MAAe;IACvC,IAAI,CAAC,MAAM;QAAE,OAAO,MAAM,CAAA;IAC1B,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAA;AAChD,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;CAC3D,CAAC,CAAA"}
@@ -0,0 +1,18 @@
1
+ import { z } from 'zod';
2
+ export interface SearchResult {
3
+ title: string;
4
+ type: 'placement' | 'scope' | 'method' | 'category' | 'app_type';
5
+ summary: string;
6
+ ref: string;
7
+ }
8
+ export declare function searchDocs(query: string, limit?: number): SearchResult[];
9
+ export declare const searchDocsSchema: z.ZodObject<{
10
+ query: z.ZodString;
11
+ limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
12
+ }, "strip", z.ZodTypeAny, {
13
+ query: string;
14
+ limit: number;
15
+ }, {
16
+ query: string;
17
+ limit?: number | undefined;
18
+ }>;
@@ -0,0 +1,47 @@
1
+ import { z } from 'zod';
2
+ import placements from '../data/placements.json' with { type: 'json' };
3
+ import scopes from '../data/scopes.json' with { type: 'json' };
4
+ import methods from '../data/methods.json' with { type: 'json' };
5
+ import categories from '../data/categories.json' with { type: 'json' };
6
+ import appTypes from '../data/app-types.json' with { type: 'json' };
7
+ function matchScore(text, query) {
8
+ const lower = text.toLowerCase();
9
+ const terms = query.toLowerCase().split(/\s+/);
10
+ return terms.filter(term => lower.includes(term)).length;
11
+ }
12
+ export function searchDocs(query, limit = 10) {
13
+ const maxLimit = Math.min(limit, 50);
14
+ const results = [];
15
+ for (const p of placements) {
16
+ const score = matchScore(`${p.code} ${p.title} ${p.description} ${p.module}`, query);
17
+ if (score > 0)
18
+ results.push({ title: p.code, type: 'placement', summary: p.description, ref: `placement:${p.code}`, score });
19
+ }
20
+ for (const s of scopes) {
21
+ const score = matchScore(`${s.scope} ${s.description} ${s.module}`, query);
22
+ if (score > 0)
23
+ results.push({ title: s.scope, type: 'scope', summary: s.description, ref: `scope:${s.scope}`, score });
24
+ }
25
+ for (const m of methods) {
26
+ const score = matchScore(`${m.method} ${m.description} ${m.scope}`, query);
27
+ if (score > 0)
28
+ results.push({ title: m.method, type: 'method', summary: m.description, ref: `method:${m.method}`, score });
29
+ }
30
+ for (const c of categories) {
31
+ const score = matchScore(`${c.code} ${c.title}`, query);
32
+ if (score > 0)
33
+ results.push({ title: c.code, type: 'category', summary: c.title, ref: `category:${c.code}`, score });
34
+ }
35
+ for (const a of appTypes) {
36
+ const score = matchScore(`${a.type} ${a.title} ${a.description}`, query);
37
+ if (score > 0)
38
+ results.push({ title: a.type, type: 'app_type', summary: a.description, ref: `app_type:${a.type}`, score });
39
+ }
40
+ results.sort((a, b) => b.score - a.score);
41
+ return results.slice(0, maxLimit).map(({ score, ...rest }) => rest);
42
+ }
43
+ export const searchDocsSchema = z.object({
44
+ query: z.string().describe('Search query'),
45
+ limit: z.number().optional().default(10).describe('Max results (default 10, max 50)'),
46
+ });
47
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/tools/search.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "@bitrix24/mcp-docs",
3
+ "version": "0.1.0",
4
+ "type": "module",
5
+ "description": "MCP server for Bitrix24 REST API documentation — methods, scopes, placements, app types",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "bin": {
9
+ "mcp-bitrix24-docs": "./dist/index.js"
10
+ },
11
+ "files": [
12
+ "dist",
13
+ "README.md"
14
+ ],
15
+ "publishConfig": {
16
+ "access": "public"
17
+ },
18
+ "scripts": {
19
+ "dev": "tsx src/index.ts",
20
+ "build": "tsc",
21
+ "lint": "tsc --noEmit",
22
+ "test": "vitest run",
23
+ "prepublishOnly": "npm run build"
24
+ },
25
+ "dependencies": {
26
+ "@modelcontextprotocol/sdk": "^1.12.1",
27
+ "zod": "^3.24.0"
28
+ },
29
+ "devDependencies": {
30
+ "@types/node": "^25.5.0",
31
+ "tsx": "^4.19.0",
32
+ "typescript": "^5.7.0",
33
+ "vitest": "^3.0.0"
34
+ }
35
+ }