@chkp/documentation-mcp 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.
package/.eslintrc.json ADDED
@@ -0,0 +1,18 @@
1
+ {
2
+ "extends": ["../../.eslintrc.json"],
3
+ "ignorePatterns": ["!**/*"],
4
+ "overrides": [
5
+ {
6
+ "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7
+ "rules": {}
8
+ },
9
+ {
10
+ "files": ["*.ts", "*.tsx"],
11
+ "rules": {}
12
+ },
13
+ {
14
+ "files": ["*.js", "*.jsx"],
15
+ "rules": {}
16
+ }
17
+ ]
18
+ }
package/CHANGELOG.md ADDED
@@ -0,0 +1,7 @@
1
+ # @chkp/documentation-mcp
2
+
3
+ ## 0.1.0
4
+
5
+ ### Minor Changes
6
+
7
+ - bd77252: Updated implementation and features, Updated configuration, Added 9 new file(s) (synced from internal repository)
package/README.md ADDED
@@ -0,0 +1,229 @@
1
+ # Check Point Documentation Tool MCP
2
+
3
+ ## What is MCP?
4
+
5
+ Model Context Protocol (MCP) servers expose a structured, machine-readable API for your enterprise data—designed for AI-powered automation, copilots, and decision engines. By delivering a clear, contextual slice of your security environment, MCP lets you query, analyze, and optimize complex systems without building custom SDKs or parsing raw exports.
6
+
7
+ ## Why MCP for Check Point Documentation Tool?
8
+
9
+ The Check Point Documentation Tool provides seamless access to Check Point Documentation Tool services through the Model Context Protocol. It enables AI assistants to interact with Check Point Documentation Tool, making it easier to get accurate answers about Check Point products, configurations, and best practices.
10
+
11
+ ## Use with other MCPs for Best Results
12
+ While the Documentation Tool works well on its own for documentation queries, it is designed to be used alongside other Check Point MCP servers (found in this repo) to provide comprehensive context about your security environment and correlate documentation with live system data.
13
+
14
+ ## Features
15
+
16
+ - Access to Check Point Documentation Tool services and knowledge base
17
+ - Search functionality for finding relevant documentation through Documentation Tool
18
+ - Real-time retrieval of Check Point product information via Documentation Tool
19
+ - Integration with AI assistants for contextual help and guidance
20
+
21
+ ## Example Use Cases
22
+
23
+ ### Documentation Lookup
24
+ "Find documentation about Check Point firewall rule configuration."
25
+ *→ Searches and returns relevant Check Point documentation about firewall rule setup and configuration best practices through Documentation Tool.*
26
+
27
+ ### Product Information
28
+ "What are the system requirements for Check Point R81.20?"
29
+ *→ Retrieves specific product documentation with system requirements and compatibility information.*
30
+
31
+ ### Troubleshooting Guidance
32
+ "How do I troubleshoot VPN connectivity issues in Check Point?"
33
+ *→ Returns step-by-step troubleshooting guides and diagnostic procedures from Check Point documentation.*
34
+
35
+ ---
36
+
37
+ ### ⚠️ Performance Notice
38
+ This server accesses Check Point documentation resources and may have rate limits. For best performance, use specific queries rather than broad searches.
39
+ ---
40
+
41
+ ## Configuration Options
42
+
43
+ This server supports configuration via command-line arguments or environment variables:
44
+
45
+ ### API Configuration
46
+
47
+ The Check Point Documentation Tool MCP server requires authentication credentials for accessing Check Point Documentation Tool services.
48
+
49
+ #### Acquiring Credentials
50
+
51
+ To obtain the required API credentials:
52
+
53
+ 1. **Login to Infinity Portal**: Navigate to your Check Point Infinity Portal
54
+ 2. **Access API Keys**: Go to the "API Keys" menu
55
+ 3. **Create New Key**: Click "New" → "New User API Key"
56
+ 4. **Save Credentials**: Copy the generated `CLIENT_ID` and `SECRET_KEY`
57
+
58
+ #### Environment Variables
59
+
60
+ Set the following environment variables:
61
+
62
+ - `CLIENT_ID`: Client ID for authentication with Check Point Documentation Tool (required)
63
+ - `SECRET_KEY`: Secret Key for authentication with Check Point Documentation Tool (required)
64
+ - `REGION`: Documentation Tool region - EU, US, STG, or Local (default: EU)
65
+
66
+ ---
67
+
68
+ ### On-Prem Example Configuration
69
+
70
+ For on-premises Check Point Documentation Tool deployment:
71
+
72
+ Set the following environment variables:
73
+
74
+ - `CLIENT_ID`: Your client ID for Documentation Tool authentication
75
+ - `SECRET_KEY`: Your secret key for Documentation Tool authentication
76
+ - `REGION`: Set to "Local" for on-premises deployment
77
+
78
+ ---
79
+
80
+ ## Client Configuration
81
+
82
+ ### Prerequisites
83
+
84
+ Download and install the latest version of [Node.js](https://nodejs.org/en/download/) if you don't already have it installed.
85
+ You can check your installed version by running:
86
+
87
+ ```bash
88
+ node -v # Should print "v18" or higher
89
+ nvm current # Should print "v18" or higher
90
+ ```
91
+
92
+ ### Supported Clients
93
+
94
+ This server has been tested with Claude Desktop, Cursor, GitHub Copilot, and Windsurf clients.
95
+ It is expected to work with any MCP client that supports the Model Context Protocol.
96
+
97
+ ### Basic Configuration Example
98
+
99
+ ```json
100
+ {
101
+ "mcpServers": {
102
+ "checkpoint-documentation-tool": {
103
+ "command": "npx",
104
+ "args": ["@chkp/documentation-mcp"],
105
+ "env": {
106
+ "CLIENT_ID": "YOUR_CLIENT_ID",
107
+ "SECRET_KEY": "YOUR_SECRET_KEY",
108
+ "REGION": "EU"
109
+ }
110
+ }
111
+ }
112
+ }
113
+ ```
114
+
115
+ ### Configuring the Claude Desktop App
116
+
117
+ #### For macOS:
118
+
119
+ ```bash
120
+ # Create the config file if it doesn't exist
121
+ touch "$HOME/Library/Application Support/Claude/claude_desktop_config.json"
122
+
123
+ # Open the config file in TextEdit
124
+ open -e "$HOME/Library/Application Support/Claude/claude_desktop_config.json"
125
+ ```
126
+
127
+ #### For Windows:
128
+
129
+ ```cmd
130
+ code %APPDATA%\Claude\claude_desktop_config.json
131
+ ```
132
+
133
+ Add the server configuration:
134
+
135
+ ```json
136
+ {
137
+ "mcpServers": {
138
+ "checkpoint-documentation-tool": {
139
+ "command": "npx",
140
+ "args": ["@chkp/documentation-mcp"],
141
+ "env": {
142
+ "CLIENT_ID": "YOUR_CLIENT_ID",
143
+ "SECRET_KEY": "YOUR_SECRET_KEY",
144
+ "REGION": "EU"
145
+ }
146
+ }
147
+ }
148
+ }
149
+ ```
150
+
151
+ ### VSCode
152
+
153
+ Enter VSCode settings and type "mcp" in the search bar.
154
+ You should see the option to edit the configuration file.
155
+ Add this configuration:
156
+
157
+ ```json
158
+ {
159
+ ...
160
+ "mcp": {
161
+ "inputs": [],
162
+ "servers": {
163
+ "checkpoint-documentation-tool": {
164
+ "command": "npx",
165
+ "args": [
166
+ "@chkp/documentation-mcp"
167
+ ],
168
+ "env": {
169
+ "CLIENT_ID": "YOUR_CLIENT_ID",
170
+ "SECRET_KEY": "YOUR_SECRET_KEY",
171
+ "REGION": "EU"
172
+ }
173
+ }
174
+ }
175
+ },
176
+ ...
177
+ }
178
+ ```
179
+
180
+ ### Windsurf
181
+
182
+ Enter Windsurf settings and type "mcp" in the search bar.
183
+ You should see the option to edit the configuration file.
184
+ Add the configuration as Claude Desktop App.
185
+
186
+ ### Cursor
187
+
188
+ Enter Cursor settings and click on "MCP Servers" in the left menu.
189
+ You should see the option to add a new MCP Server.
190
+ Add the configuration as Claude Desktop App.
191
+
192
+ ---
193
+
194
+ ## Development
195
+
196
+ ### Prerequisites
197
+
198
+ - Node.js 18+
199
+ - npm 10+
200
+
201
+ ### Setup
202
+
203
+ ```bash
204
+ # Install all dependencies
205
+ npm install
206
+ ```
207
+
208
+ ### Build
209
+
210
+ ```bash
211
+ # Build all packages
212
+ npm run build
213
+ ```
214
+
215
+ ### Running Locally
216
+
217
+ You can run the server locally for development using [MCP Inspector](https://modelcontextprotocol.io/docs/tools/inspector) or any compatible MCP client.
218
+
219
+ ```bash
220
+ node FULL_PATH_TO_SERVER/packages/copilot/dist/index.js --client-id "YOUR_CLIENT_ID" --secret-key "YOUR_SECRET_KEY" --region "EU"
221
+ ```
222
+
223
+ ---
224
+
225
+ ## ⚠️ Security Notice
226
+
227
+ 1. **Authentication keys and credentials are never shared with the model.** They are used only by the MCP server to authenticate with your Check Point management system.
228
+ 2. **Only use client implementations you trust.** Malicious or untrusted clients could misuse your credentials or access data improperly.
229
+ 3. **Management data is exposed to the model.** Ensure that you only use models and providers that comply with your organization’s policies for handling sensitive data and PII.
@@ -0,0 +1,30 @@
1
+ import { DocumentationToolSettings } from './settings';
2
+ type DocumentationToolAPIResponse = {
3
+ response: string;
4
+ };
5
+ export declare class DocumentationToolAPIManager {
6
+ private tokenService;
7
+ private axios;
8
+ private settings;
9
+ constructor(settings: DocumentationToolSettings);
10
+ /**
11
+ * Create a new DocumentationToolAPIManager instance from settings for Documentation Tool
12
+ * @param settings The complete settings object for this session
13
+ * @returns A new DocumentationToolAPIManager instance
14
+ */
15
+ static create(settings: DocumentationToolSettings): DocumentationToolAPIManager;
16
+ /**
17
+ * Get a valid auth token using the shared token service
18
+ */
19
+ getToken(): Promise<string>;
20
+ /**
21
+ * Get the base URL for API calls, handling local development if needed
22
+ */
23
+ getBaseUrl(): string;
24
+ callApi(method: string, uri: string, data: {
25
+ question: string;
26
+ product: string;
27
+ }): Promise<DocumentationToolAPIResponse>;
28
+ }
29
+ export {};
30
+ //# sourceMappingURL=documentation-api-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"documentation-api-manager.d.ts","sourceRoot":"","sources":["../src/documentation-api-manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAEvD,KAAK,4BAA4B,GAAG;IAChC,QAAQ,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,qBAAa,2BAA2B;IACpC,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,QAAQ,CAA4B;gBAEhC,QAAQ,EAAE,yBAAyB;IAS/C;;;;OAIG;IACH,MAAM,CAAC,MAAM,CACT,QAAQ,EAAE,yBAAyB,GACpC,2BAA2B;IAI9B;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;IAIjC;;OAEG;IACH,UAAU,IAAI,MAAM;IAOd,OAAO,CACT,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAC5C,OAAO,CAAC,4BAA4B,CAAC;CAmE3C"}
@@ -0,0 +1,75 @@
1
+ import axios from 'axios';
2
+ import { ExternalUserTokenManager } from '@chkp/quantum-infra';
3
+ export class DocumentationToolAPIManager {
4
+ constructor(settings) {
5
+ this.settings = settings;
6
+ this.tokenService = new ExternalUserTokenManager(settings);
7
+ this.axios = axios.create({
8
+ timeout: 30000,
9
+ validateStatus: () => true,
10
+ });
11
+ }
12
+ /**
13
+ * Create a new DocumentationToolAPIManager instance from settings for Documentation Tool
14
+ * @param settings The complete settings object for this session
15
+ * @returns A new DocumentationToolAPIManager instance
16
+ */
17
+ static create(settings) {
18
+ return new DocumentationToolAPIManager(settings);
19
+ }
20
+ /**
21
+ * Get a valid auth token using the shared token service
22
+ */
23
+ async getToken() {
24
+ return await this.tokenService.getToken();
25
+ }
26
+ /**
27
+ * Get the base URL for API calls, handling local development if needed
28
+ */
29
+ getBaseUrl() {
30
+ if (this.settings.region === 'LOCAL') {
31
+ return `http://localhost:${this.settings.devPort || '8006'}`;
32
+ }
33
+ return `${this.settings.getCloudInfraGateway()}/app/console-one`;
34
+ }
35
+ async callApi(method, uri, data) {
36
+ const token = await this.getToken();
37
+ const chatUrl = `${this.getBaseUrl()}/${uri}`;
38
+ const question = data.question;
39
+ const product = data.product;
40
+ const headers = {
41
+ Authorization: `Bearer ${token}`,
42
+ 'Content-Type': 'application/json',
43
+ };
44
+ const params = {
45
+ question: question,
46
+ product: product,
47
+ skip_llm: true,
48
+ };
49
+ try {
50
+ const response = await this.axios.post(chatUrl, params, {
51
+ headers,
52
+ });
53
+ if (response.status !== 200) {
54
+ // Log the error response body
55
+ console.error('Error response body:', JSON.stringify(response.data, null, 2));
56
+ throw new Error(`Chat request failed: ${response.statusText} (${response.status})`);
57
+ }
58
+ return {
59
+ response: response.data.response,
60
+ };
61
+ }
62
+ catch (error) {
63
+ // Log any axios exceptions
64
+ const axiosError = error;
65
+ console.error('Axios error:', axiosError.message);
66
+ if (axiosError.response) {
67
+ console.error('Error status:', axiosError.response.status);
68
+ console.error('Error headers:', JSON.stringify(axiosError.response.headers, null, 2));
69
+ console.error('Error data:', JSON.stringify(axiosError.response.data, null, 2));
70
+ }
71
+ throw error;
72
+ }
73
+ }
74
+ }
75
+ //# sourceMappingURL=documentation-api-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"documentation-api-manager.js","sourceRoot":"","sources":["../src/documentation-api-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env node
2
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
3
+ declare const server: McpServer;
4
+ export { server };
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAsBpE,QAAA,MAAM,MAAM,WAKV,CAAC;AAiHH,OAAO,EAAE,MAAM,EAAE,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,116 @@
1
+ #!/usr/bin/env node
2
+ import { z } from 'zod';
3
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
4
+ import { launchMCPServer, createServerModule, createApiRunner, } from '@chkp/mcp-utils';
5
+ import { readFileSync } from 'fs';
6
+ import { join, dirname } from 'path';
7
+ import { fileURLToPath } from 'url';
8
+ import { DocumentationToolAPIManager } from './documentation-api-manager.js';
9
+ import { DocumentationToolSettings } from './settings.js';
10
+ const pkg = JSON.parse(readFileSync(join(dirname(fileURLToPath(import.meta.url)), '../package.json'), 'utf-8'));
11
+ process.env.CP_MCP_MAIN_PKG = `${pkg.name} v${pkg.version}`;
12
+ // Create a new MCP server instance
13
+ const server = new McpServer({
14
+ name: 'checkpoint-documentation',
15
+ description: 'Comprehensive Check Point documentation assistant providing instant access to product information, technical specifications, configuration guidance, and feature documentation across the entire Check Point security portfolio.',
16
+ version: '1.0.0',
17
+ });
18
+ // Create a multi-user server module
19
+ const serverModule = createServerModule(server, DocumentationToolSettings, pkg, DocumentationToolAPIManager);
20
+ // Create an API runner function
21
+ const runApi = createApiRunner(serverModule);
22
+ server.tool('ask-checkpoint-docs', 'Ask Check Point documentation. Use this to get information about Check Point products and features.', {
23
+ text: z.string().describe(`The question to ask Check Point, in clear text with clear concise context and instructions.
24
+ The question should be about one of the Check Point products (e.g., Smart-1 Cloud, Harmony SASE, CloudGuard, Harmony Endpoint, etc.).
25
+ Include relevant technical details, product names, feature names, and specific use cases for the most accurate and helpful response.`),
26
+ product: z
27
+ .enum([
28
+ 's1c',
29
+ 'maas',
30
+ 'mobile',
31
+ 'endpoint',
32
+ 'edr',
33
+ 'xdr',
34
+ 'playblocks',
35
+ 'infinity-events',
36
+ 'cloudguard',
37
+ 'cloudguardnetwork',
38
+ 'cloudnetworksecurity',
39
+ 'rfp-copilot',
40
+ 'harmony-sase',
41
+ 'customer-support',
42
+ 'smp',
43
+ 'appsec',
44
+ 'sd-wan',
45
+ 'horizonmonitoring',
46
+ 'ndr',
47
+ ])
48
+ .optional()
49
+ .describe(`Select the specific Check Point product to target for focused documentation queries. This parameter helps narrow down search results to the most relevant product-specific information. Defaults to 's1c' (Smart-1 Cloud) if not specified. Choose from:
50
+
51
+ Cloud Management & Security:
52
+ - s1c: Smart-1 Cloud - Cloud-based security management platform for centralized policy management (DEFAULT)
53
+ - maas: Management as a Service - Cloud management platform for distributed deployments
54
+ - cloudguard: CloudGuard - Comprehensive cloud security and compliance platform
55
+ - cloudguardnetwork: CloudGuard Network - Cloud network security solutions
56
+ - cloudnetworksecurity: CloudGuard Network Security - Advanced cloud network protection
57
+ - appsec: CloudGuard WAF - Web Application Firewall and application security
58
+
59
+ Endpoint & Device Security:
60
+ - mobile: Harmony Mobile - Mobile device security and threat protection
61
+ - endpoint: Harmony Endpoint - Endpoint protection and threat prevention
62
+ - edr: Endpoint Detection and Response - Advanced endpoint threat detection and response
63
+ - xdr: Extended Detection and Response - Cross-platform threat detection and response
64
+
65
+ Network & Infrastructure:
66
+ - harmony-sase: Harmony SASE - Secure Access Service Edge platform
67
+ - sd-wan: Quantum SD-WAN - Software-defined wide area networking solutions
68
+ - horizonmonitoring: Horizon Monitoring - AI-powered network operations and monitoring
69
+ - ndr: Network Detection and Response - Advanced network threat detection
70
+
71
+ Automation & Intelligence:
72
+ - playblocks: Infinity Playblocks - Security automation and orchestration platform
73
+ - infinity-events: Infinity Events - Centralized security event management platform
74
+ - rfp-copilot: RFP Copilot - AI-powered request for proposal assistance
75
+
76
+ Support & Management:
77
+ - customer-support: Customer Support - Technical support and assistance services
78
+ - smp: Security Management Platform - Unified security management
79
+
80
+ Usage Guidelines:
81
+ - Defaults to s1c (Smart-1 Cloud) for general management and security questions
82
+ - Specify a different product when the user's question is clearly about that specific product
83
+ - For troubleshooting or configuration questions, specify the exact product involved.`),
84
+ }, async ({ text, product }, extra) => {
85
+ try {
86
+ const result = await runApi('post', 'api/v1/doc/ask_docs', { question: text, product }, extra);
87
+ return {
88
+ content: [
89
+ {
90
+ type: 'text',
91
+ text: result.response,
92
+ },
93
+ ],
94
+ };
95
+ }
96
+ catch (error) {
97
+ return {
98
+ content: [
99
+ {
100
+ type: 'text',
101
+ text: `API Error: ${error.message}`,
102
+ },
103
+ ],
104
+ };
105
+ }
106
+ });
107
+ export { server };
108
+ // Settings implementation - updated for multi-user support
109
+ const main = async () => {
110
+ await launchMCPServer(join(dirname(fileURLToPath(import.meta.url)), 'server-config.json'), serverModule);
111
+ };
112
+ main().catch((error) => {
113
+ console.error('Fatal error in main():', error);
114
+ process.exit(1);
115
+ });
116
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ {
2
+ "name": "checkpoint-documentation-tool",
3
+ "description": "Check Point Documentation Tool Service - API integration with Check Point Documentation Tool",
4
+ "options": [
5
+ {
6
+ "flag": "--client-id <client-id>",
7
+ "description": "Client ID for authentication with Documentation Tool",
8
+ "env": "CLIENT_ID",
9
+ "required": true,
10
+ "type": "string"
11
+ },
12
+ {
13
+ "flag": "--secret-key <secret-key>",
14
+ "description": "Secret Key for authentication with Documentation Tool",
15
+ "env": "SECRET_KEY",
16
+ "required": true,
17
+ "type": "string"
18
+ },
19
+ {
20
+ "flag": "--region <region>",
21
+ "description": "Documentation Tool region: EU, US, STG, or Local",
22
+ "env": "REGION",
23
+ "type": "string"
24
+ }
25
+ ]
26
+ }
@@ -0,0 +1,9 @@
1
+ import { Settings } from '@chkp/quantum-infra';
2
+ export declare class DocumentationToolSettings extends Settings {
3
+ constructor(args?: Record<string, unknown>);
4
+ /**
5
+ * Create DocumentationToolSettings from command-line arguments for Documentation Tool
6
+ */
7
+ static fromArgs(args: Record<string, unknown>): DocumentationToolSettings;
8
+ }
9
+ //# sourceMappingURL=settings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,qBAAa,yBAA0B,SAAQ,QAAQ;gBACvC,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;IAI9C;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,yBAAyB;CAK5E"}
@@ -0,0 +1,15 @@
1
+ import { Settings } from '@chkp/quantum-infra';
2
+ export class DocumentationToolSettings extends Settings {
3
+ constructor(args = {}) {
4
+ super(args);
5
+ }
6
+ /**
7
+ * Create DocumentationToolSettings from command-line arguments for Documentation Tool
8
+ */
9
+ static fromArgs(args) {
10
+ return new DocumentationToolSettings({
11
+ ...args,
12
+ });
13
+ }
14
+ }
15
+ //# sourceMappingURL=settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,MAAM,OAAO,yBAA0B,SAAQ,QAAQ;IACnD,YAAY,OAAgC,EAAE;QAC1C,KAAK,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,IAA6B;QACzC,OAAO,IAAI,yBAAyB,CAAC;YACjC,GAAG,IAAI;SACV,CAAC,CAAC;IACP,CAAC;CACJ"}
package/package.json ADDED
@@ -0,0 +1,40 @@
1
+ {
2
+ "name": "@chkp/documentation-mcp",
3
+ "version": "0.1.0",
4
+ "description": "Check Point Documentation Tool Service - API integration with Check Point Documentation Tool",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "bin": {
9
+ "documentation-mcp": "./dist/index.js"
10
+ },
11
+ "repository": {
12
+ "type": "git",
13
+ "url": "https://github.com/CheckPointSW/mcp-servers.git",
14
+ "directory": "packages/documentation-tool"
15
+ },
16
+ "license": "MIT",
17
+ "engines": {
18
+ "node": ">=18.0.0"
19
+ },
20
+ "scripts": {
21
+ "clean": "rimraf dist",
22
+ "build": "tsc && chmod +x ./dist/index.js && cp src/server-config.json dist/",
23
+ "dev": "tsc --watch",
24
+ "start": "node dist/index.js"
25
+ },
26
+ "dependencies": {
27
+ "@modelcontextprotocol/sdk": "^1.11.1",
28
+ "axios": "^1.11.0",
29
+ "commander": "^11.1.0",
30
+ "zod": "^3.22.4"
31
+ },
32
+ "devDependencies": {
33
+ "@chkp/mcp-utils": "*",
34
+ "@chkp/quantum-infra": "*",
35
+ "@types/node": "^18.15.11",
36
+ "dotenv": "^17.2.2",
37
+ "tsx": "^4.20.5",
38
+ "typescript": "^5.0.4"
39
+ }
40
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,9 @@
1
+ {
2
+ "extends": "../../tsconfig.json",
3
+ "compilerOptions": {
4
+ "outDir": "./dist",
5
+ "rootDir": "./src"
6
+ },
7
+ "include": ["src/**/*"],
8
+ "exclude": ["node_modules", "dist", "/*.test.ts", "/*.spec.ts"]
9
+ }