@impart-security/impart-mcp 0.1.3 → 0.2.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/README.md CHANGED
@@ -6,12 +6,13 @@ A Model Context Protocol (MCP) implementation for interacting with Impart's API.
6
6
  ## Features
7
7
 
8
8
  - Rules Script Management
9
+ - Rule Recipe Management
9
10
  - API Bindings Management
10
11
  - Endpoint Inventory
11
12
  - Tag Management
12
13
  - Observed Hosts Monitoring
13
14
  - Specification Management
14
- - List and Label Management
15
+ - List Management
15
16
  - Inspector Management
16
17
 
17
18
 
@@ -23,45 +24,65 @@ You'll need to set up the following environment variables:
23
24
 
24
25
  ## Available Tools
25
26
 
26
- ### Rules Scripts
27
- - `list_rules_scripts` - Get a list of rules scripts
28
- - `get_rules_script` - Get details of a specific rules script
29
- - `create_rules_script` - Create a new rules script
30
- - `update_rules_script` - Update an existing rules script
31
- - `validate_rules_script` - Validate a rules script
32
- - `write_rule_script` - Generate a rule script using Sparkle API
27
+ This MCP server provides **26 tools** for managing Impart Security through the Model Context Protocol. All tools are automatically suffixed with your organization ID (e.g., `list_inspectors_d3ce`).
33
28
 
34
- ### API Bindings
35
- - `list_api_bindings` - Get a list of API bindings
36
- - `create_api_binding` - Create a new API binding
29
+ ### Inspectors
30
+ - **`list_inspectors`** - Get a list of inspectors for the organization
37
31
 
38
- ### Endpoints and Specs
39
- - `list_endpoints` - Get an inventory of endpoints
40
- - `list_specs` - Get a list of specs
41
- - `get_spec` - Get details of a specific spec
32
+ ### Rules Scripts
33
+ - **`list_rules_scripts`** - Get a list of rules scripts with filtering options (type, labels, disabled status)
34
+ - **`get_rules_script`** - Get details of a specific rules script including source code and revisions
42
35
 
43
- ### Tags and Metrics
44
- - `list_tags` - Get a list of tags
45
- - `get_tag_metrics` - Get timeseries metrics for tags
36
+ ### Rule Recipes (AI-Powered)
37
+ - **`list_rule_recipes`** - Get a list of rule recipes with search filtering
38
+ - **`get_rule_recipe`** - Get complete details of a specific rule recipe including components
39
+ - **`generate_rule_recipe`** ✨ - Generate rule recipe configurations using Impart's AI (Sparkle)
40
+ - **`create_rule_recipe`** - Create a new rule recipe from a configuration (typically from generate_rule_recipe)
46
41
 
47
- ### Observed Hosts
48
- - `list_observed_hosts` - Get a list of observed hosts
49
- - `get_observed_host` - Get details of a specific observed host
42
+ ### API Specs & Endpoints
43
+ - **`list_specs`** - Get a list of API specifications with search filtering
44
+ - **`get_spec`** - Get details of a specific API spec including revision history
45
+ - **`list_endpoints`** - Get inventory of API endpoints with extensive filtering (deprecated status, source, tags, methods, labels)
50
46
 
51
- ### Lists and Labels
52
- - `list_lists` - Get a list of lists
53
- - `get_list_items` - Get items from a specific list
54
- - `create_list` - Create a new list
55
- - `update_list_items` - Update items in a list
56
- - `create_label` - Create a new label
57
- - `list_labels` - Get a list of labels
47
+ ### API Bindings
48
+ - **`list_api_bindings`** - Get a list of API bindings with filtering by spec or collection
49
+ - **`create_api_binding`** - Create new API bindings for connecting specs to infrastructure
58
50
 
59
- ### Inspectors
60
- - `list_inspectors` - Get a list of inspectors
51
+ ### Tags & Metrics
52
+ - **`list_tags`** - Get a list of tags with label filtering
53
+ - **`get_tag_metrics`** - Get timeseries metrics for tags (HTTP requests, attacks, blocks, etc.) with flexible time ranges and rollup options
61
54
 
55
+ ### Observed Hosts
56
+ - **`list_observed_hosts`** - Get a list of observed hosts in your infrastructure
57
+ - **`get_observed_host`** - Get detailed information about a specific observed host
58
+
59
+ ### Lists (Allow/Block Lists)
60
+ - **`list_lists`** - Get a list of lists with filtering by kind (ip, string, uuid, country, path, asn), subkind, and labels
61
+ - **`get_list_items`** - Get items from a specific list with pagination
62
+ - **`create_list`** - Create new lists for IP addresses, strings, UUIDs, countries, paths, or ASNs
63
+ - **`update_list_items`** - Update items in an existing list
64
+
65
+ ### Labels
66
+ - **`list_labels`** - Get a list of labels with search filtering
67
+ - **`create_label`** - Create new labels with customizable colors and display names
68
+
69
+ ### Test Cases
70
+ - **`list_test_cases`** - Get a list of rules test cases for validating rule behavior
71
+ - **`get_test_case`** - Get detailed information about a specific test case
72
+
73
+ ### HTTP Requests (Traffic Analysis)
74
+ - **`get_requests`** - Get HTTP requests captured by Impart with extensive filtering options:
75
+ - Time ranges (relative like `-1d`, `-24h` or absolute timestamps)
76
+ - Status codes, tags, IPs, external request IDs, rule IDs
77
+ - API specs, collections, endpoints
78
+ - Pagination with up to 1000 results per request
79
+ - Sort order (ascending/descending)
80
+ - Data source selection (PostgreSQL or ClickHouse)
81
+ - **`get_request_details`** - Get complete details of a specific HTTP request including headers, body, and processing information
62
82
 
63
83
  ## Connecting to MCP Clients
64
84
 
85
+
65
86
  ### Claude Desktop
66
87
 
67
88
  To use Impart MCP with Claude Desktop, you'll need to configure the MCP server in Claude's configuration file. Here's how:
@@ -82,7 +103,6 @@ To use Impart MCP with Claude Desktop, you'll need to configure the MCP server i
82
103
  "impart": {
83
104
  "command": "npx",
84
105
  "args": [
85
- "-y",
86
106
  "@impart-security/impart-mcp"
87
107
  ],
88
108
  "env": {
@@ -118,10 +138,7 @@ Add the Impart MCP server configuration:
118
138
  "mcpServers": {
119
139
  "impart": {
120
140
  "command": "npx",
121
- "args": [
122
- "-y",
123
- "@impart-security/impart-mcp"
124
- ],
141
+ "args": ["@impart-security/impart-mcp"],
125
142
  "env": {
126
143
  "IMPART_AUTH_TOKEN": "your_auth_token"
127
144
  }
@@ -132,10 +149,34 @@ Add the Impart MCP server configuration:
132
149
 
133
150
  Make sure to update the environment variables with your Impart credentials.
134
151
 
152
+ ## Testing
153
+
154
+ Comprehensive test suite with regression tests for all critical fixes.
155
+
156
+ ```bash
157
+ # Run all tests
158
+ npm run build
159
+ cd testing
160
+ ./test-all.sh
161
+ ```
162
+
163
+ **For complete testing documentation**, see [testing/TESTING.md](./testing/TESTING.md)
164
+
165
+ Quick links:
166
+ - [Testing Guide](./testing/TESTING.md) - Complete guide with all fixes documented
167
+ - [Claude Desktop Setup](./testing/CLAUDE_DESKTOP_SETUP.md) - Integration guide
168
+ - [Sample Outputs](./testing/SAMPLE_OUTPUTS.md) - Real API examples
169
+
135
170
  ## Contributing
136
171
 
137
172
  Contributions are welcome! Please feel free to submit a Pull Request.
138
173
 
174
+ When contributing:
175
+ 1. Run `npm run build` to compile
176
+ 2. Run `cd testing && ./test-all.sh` to verify tests pass
177
+ 3. Add tests for new features or bug fixes
178
+ 4. Update documentation
179
+
139
180
  ## License
140
181
 
141
182
  ISC