db-mcp 1.0.1
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/LICENSE +21 -0
- package/README.md +860 -0
- package/dist/adapters/DatabaseAdapter.d.ts +141 -0
- package/dist/adapters/DatabaseAdapter.d.ts.map +1 -0
- package/dist/adapters/DatabaseAdapter.js +131 -0
- package/dist/adapters/DatabaseAdapter.js.map +1 -0
- package/dist/adapters/sqlite/SchemaManager.d.ts +58 -0
- package/dist/adapters/sqlite/SchemaManager.d.ts.map +1 -0
- package/dist/adapters/sqlite/SchemaManager.js +187 -0
- package/dist/adapters/sqlite/SchemaManager.js.map +1 -0
- package/dist/adapters/sqlite/SqliteAdapter.d.ts +161 -0
- package/dist/adapters/sqlite/SqliteAdapter.d.ts.map +1 -0
- package/dist/adapters/sqlite/SqliteAdapter.js +741 -0
- package/dist/adapters/sqlite/SqliteAdapter.js.map +1 -0
- package/dist/adapters/sqlite/index.d.ts +9 -0
- package/dist/adapters/sqlite/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/index.js +8 -0
- package/dist/adapters/sqlite/index.js.map +1 -0
- package/dist/adapters/sqlite/json-utils.d.ts +100 -0
- package/dist/adapters/sqlite/json-utils.d.ts.map +1 -0
- package/dist/adapters/sqlite/json-utils.js +274 -0
- package/dist/adapters/sqlite/json-utils.js.map +1 -0
- package/dist/adapters/sqlite/output-schemas.d.ts +1187 -0
- package/dist/adapters/sqlite/output-schemas.d.ts.map +1 -0
- package/dist/adapters/sqlite/output-schemas.js +1337 -0
- package/dist/adapters/sqlite/output-schemas.js.map +1 -0
- package/dist/adapters/sqlite/prompts.d.ts +13 -0
- package/dist/adapters/sqlite/prompts.d.ts.map +1 -0
- package/dist/adapters/sqlite/prompts.js +605 -0
- package/dist/adapters/sqlite/prompts.js.map +1 -0
- package/dist/adapters/sqlite/resources.d.ts +13 -0
- package/dist/adapters/sqlite/resources.d.ts.map +1 -0
- package/dist/adapters/sqlite/resources.js +251 -0
- package/dist/adapters/sqlite/resources.js.map +1 -0
- package/dist/adapters/sqlite/tools/admin.d.ts +14 -0
- package/dist/adapters/sqlite/tools/admin.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/admin.js +788 -0
- package/dist/adapters/sqlite/tools/admin.js.map +1 -0
- package/dist/adapters/sqlite/tools/core.d.ts +25 -0
- package/dist/adapters/sqlite/tools/core.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/core.js +359 -0
- package/dist/adapters/sqlite/tools/core.js.map +1 -0
- package/dist/adapters/sqlite/tools/fts.d.ts +13 -0
- package/dist/adapters/sqlite/tools/fts.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/fts.js +347 -0
- package/dist/adapters/sqlite/tools/fts.js.map +1 -0
- package/dist/adapters/sqlite/tools/geo.d.ts +14 -0
- package/dist/adapters/sqlite/tools/geo.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/geo.js +252 -0
- package/dist/adapters/sqlite/tools/geo.js.map +1 -0
- package/dist/adapters/sqlite/tools/index.d.ts +30 -0
- package/dist/adapters/sqlite/tools/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/index.js +61 -0
- package/dist/adapters/sqlite/tools/index.js.map +1 -0
- package/dist/adapters/sqlite/tools/json-helpers.d.ts +14 -0
- package/dist/adapters/sqlite/tools/json-helpers.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/json-helpers.js +477 -0
- package/dist/adapters/sqlite/tools/json-helpers.js.map +1 -0
- package/dist/adapters/sqlite/tools/json-operations.d.ts +14 -0
- package/dist/adapters/sqlite/tools/json-operations.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/json-operations.js +839 -0
- package/dist/adapters/sqlite/tools/json-operations.js.map +1 -0
- package/dist/adapters/sqlite/tools/stats.d.ts +15 -0
- package/dist/adapters/sqlite/tools/stats.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/stats.js +1219 -0
- package/dist/adapters/sqlite/tools/stats.js.map +1 -0
- package/dist/adapters/sqlite/tools/text.d.ts +14 -0
- package/dist/adapters/sqlite/tools/text.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/text.js +1141 -0
- package/dist/adapters/sqlite/tools/text.js.map +1 -0
- package/dist/adapters/sqlite/tools/vector.d.ts +14 -0
- package/dist/adapters/sqlite/tools/vector.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/vector.js +613 -0
- package/dist/adapters/sqlite/tools/vector.js.map +1 -0
- package/dist/adapters/sqlite/tools/virtual.d.ts +13 -0
- package/dist/adapters/sqlite/tools/virtual.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/virtual.js +930 -0
- package/dist/adapters/sqlite/tools/virtual.js.map +1 -0
- package/dist/adapters/sqlite/types.d.ts +207 -0
- package/dist/adapters/sqlite/types.d.ts.map +1 -0
- package/dist/adapters/sqlite/types.js +186 -0
- package/dist/adapters/sqlite/types.js.map +1 -0
- package/dist/adapters/sqlite-native/NativeSqliteAdapter.d.ts +163 -0
- package/dist/adapters/sqlite-native/NativeSqliteAdapter.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/NativeSqliteAdapter.js +748 -0
- package/dist/adapters/sqlite-native/NativeSqliteAdapter.js.map +1 -0
- package/dist/adapters/sqlite-native/index.d.ts +11 -0
- package/dist/adapters/sqlite-native/index.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/index.js +11 -0
- package/dist/adapters/sqlite-native/index.js.map +1 -0
- package/dist/adapters/sqlite-native/tools/spatialite.d.ts +19 -0
- package/dist/adapters/sqlite-native/tools/spatialite.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/tools/spatialite.js +628 -0
- package/dist/adapters/sqlite-native/tools/spatialite.js.map +1 -0
- package/dist/adapters/sqlite-native/tools/transactions.d.ts +12 -0
- package/dist/adapters/sqlite-native/tools/transactions.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/tools/transactions.js +255 -0
- package/dist/adapters/sqlite-native/tools/transactions.js.map +1 -0
- package/dist/adapters/sqlite-native/tools/window.d.ts +12 -0
- package/dist/adapters/sqlite-native/tools/window.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/tools/window.js +370 -0
- package/dist/adapters/sqlite-native/tools/window.js.map +1 -0
- package/dist/auth/AuthorizationServerDiscovery.d.ts +90 -0
- package/dist/auth/AuthorizationServerDiscovery.d.ts.map +1 -0
- package/dist/auth/AuthorizationServerDiscovery.js +204 -0
- package/dist/auth/AuthorizationServerDiscovery.js.map +1 -0
- package/dist/auth/OAuthResourceServer.d.ts +65 -0
- package/dist/auth/OAuthResourceServer.d.ts.map +1 -0
- package/dist/auth/OAuthResourceServer.js +121 -0
- package/dist/auth/OAuthResourceServer.js.map +1 -0
- package/dist/auth/TokenValidator.d.ts +60 -0
- package/dist/auth/TokenValidator.d.ts.map +1 -0
- package/dist/auth/TokenValidator.js +235 -0
- package/dist/auth/TokenValidator.js.map +1 -0
- package/dist/auth/errors.d.ts +74 -0
- package/dist/auth/errors.d.ts.map +1 -0
- package/dist/auth/errors.js +133 -0
- package/dist/auth/errors.js.map +1 -0
- package/dist/auth/index.d.ts +13 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +15 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/middleware.d.ts +81 -0
- package/dist/auth/middleware.d.ts.map +1 -0
- package/dist/auth/middleware.js +291 -0
- package/dist/auth/middleware.js.map +1 -0
- package/dist/auth/scopes.d.ts +136 -0
- package/dist/auth/scopes.d.ts.map +1 -0
- package/dist/auth/scopes.js +349 -0
- package/dist/auth/scopes.js.map +1 -0
- package/dist/auth/types.d.ts +257 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/auth/types.js +8 -0
- package/dist/auth/types.js.map +1 -0
- package/dist/cli.d.ts +8 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +236 -0
- package/dist/cli.js.map +1 -0
- package/dist/constants/ServerInstructions.d.ts +45 -0
- package/dist/constants/ServerInstructions.d.ts.map +1 -0
- package/dist/constants/ServerInstructions.js +356 -0
- package/dist/constants/ServerInstructions.js.map +1 -0
- package/dist/filtering/ToolConstants.d.ts +34 -0
- package/dist/filtering/ToolConstants.d.ts.map +1 -0
- package/dist/filtering/ToolConstants.js +174 -0
- package/dist/filtering/ToolConstants.js.map +1 -0
- package/dist/filtering/ToolFilter.d.ts +82 -0
- package/dist/filtering/ToolFilter.d.ts.map +1 -0
- package/dist/filtering/ToolFilter.js +296 -0
- package/dist/filtering/ToolFilter.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/server/McpServer.d.ts +61 -0
- package/dist/server/McpServer.d.ts.map +1 -0
- package/dist/server/McpServer.js +270 -0
- package/dist/server/McpServer.js.map +1 -0
- package/dist/transports/http.d.ts +134 -0
- package/dist/transports/http.d.ts.map +1 -0
- package/dist/transports/http.js +516 -0
- package/dist/transports/http.js.map +1 -0
- package/dist/transports/index.d.ts +5 -0
- package/dist/transports/index.d.ts.map +1 -0
- package/dist/transports/index.js +5 -0
- package/dist/transports/index.js.map +1 -0
- package/dist/types/index.d.ts +380 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +68 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/annotations.d.ts +44 -0
- package/dist/utils/annotations.d.ts.map +1 -0
- package/dist/utils/annotations.js +77 -0
- package/dist/utils/annotations.js.map +1 -0
- package/dist/utils/errors.d.ts +155 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +329 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/identifiers.d.ts +121 -0
- package/dist/utils/identifiers.d.ts.map +1 -0
- package/dist/utils/identifiers.js +319 -0
- package/dist/utils/identifiers.js.map +1 -0
- package/dist/utils/index.d.ts +7 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +7 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/insightsManager.d.ts +39 -0
- package/dist/utils/insightsManager.d.ts.map +1 -0
- package/dist/utils/insightsManager.js +63 -0
- package/dist/utils/insightsManager.js.map +1 -0
- package/dist/utils/logger.d.ts +189 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +394 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/progress-utils.d.ts +54 -0
- package/dist/utils/progress-utils.d.ts.map +1 -0
- package/dist/utils/progress-utils.js +74 -0
- package/dist/utils/progress-utils.js.map +1 -0
- package/dist/utils/resourceAnnotations.d.ts +36 -0
- package/dist/utils/resourceAnnotations.d.ts.map +1 -0
- package/dist/utils/resourceAnnotations.js +57 -0
- package/dist/utils/resourceAnnotations.js.map +1 -0
- package/dist/utils/where-clause.d.ts +41 -0
- package/dist/utils/where-clause.d.ts.map +1 -0
- package/dist/utils/where-clause.js +116 -0
- package/dist/utils/where-clause.js.map +1 -0
- package/package.json +83 -0
- package/server.json +53 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* db-mcp - Tool Constants
|
|
3
|
+
*
|
|
4
|
+
* Defines the tool groups and meta-groups used for filtering.
|
|
5
|
+
*
|
|
6
|
+
* Actual tool groups (from code audit):
|
|
7
|
+
* core: 8 tools (from core.ts)
|
|
8
|
+
* json: 23 tools (from json-helpers.ts + json-operations.ts)
|
|
9
|
+
* text: 17 tools (from text.ts + fts.ts)
|
|
10
|
+
* stats: 19 tools (from stats.ts + window.ts)
|
|
11
|
+
* vector: 11 tools (from vector.ts)
|
|
12
|
+
* admin: 33 tools (from admin.ts + virtual.ts + transactions.ts)
|
|
13
|
+
* geo: 11 tools (from geo.ts + spatialite.ts) - Native: 11, WASM: 4
|
|
14
|
+
* Total: 122 Native / 102 WASM tools
|
|
15
|
+
*
|
|
16
|
+
* Note: 3 built-in server tools (server_info, server_health, list_adapters)
|
|
17
|
+
* are always available regardless of filter settings.
|
|
18
|
+
*/
|
|
19
|
+
import type { ToolGroup, MetaGroup } from "../types/index.js";
|
|
20
|
+
/**
|
|
21
|
+
* All valid tool groups
|
|
22
|
+
*/
|
|
23
|
+
export declare const ALL_TOOL_GROUPS: ToolGroup[];
|
|
24
|
+
/**
|
|
25
|
+
* Tool groups - kept for backwards compatibility with scopes.ts
|
|
26
|
+
* The actual filtering uses the tool's 'group' property, not these lists.
|
|
27
|
+
*/
|
|
28
|
+
export declare const TOOL_GROUPS: Record<ToolGroup, string[]>;
|
|
29
|
+
/**
|
|
30
|
+
* Meta-groups that expand to multiple tool groups.
|
|
31
|
+
* These provide shortcuts for common use cases.
|
|
32
|
+
*/
|
|
33
|
+
export declare const META_GROUPS: Record<MetaGroup, ToolGroup[]>;
|
|
34
|
+
//# sourceMappingURL=ToolConstants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolConstants.d.ts","sourceRoot":"","sources":["../../src/filtering/ToolConstants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9D;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,EAQtC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,CAwHnD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,CAkBtD,CAAC"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* db-mcp - Tool Constants
|
|
3
|
+
*
|
|
4
|
+
* Defines the tool groups and meta-groups used for filtering.
|
|
5
|
+
*
|
|
6
|
+
* Actual tool groups (from code audit):
|
|
7
|
+
* core: 8 tools (from core.ts)
|
|
8
|
+
* json: 23 tools (from json-helpers.ts + json-operations.ts)
|
|
9
|
+
* text: 17 tools (from text.ts + fts.ts)
|
|
10
|
+
* stats: 19 tools (from stats.ts + window.ts)
|
|
11
|
+
* vector: 11 tools (from vector.ts)
|
|
12
|
+
* admin: 33 tools (from admin.ts + virtual.ts + transactions.ts)
|
|
13
|
+
* geo: 11 tools (from geo.ts + spatialite.ts) - Native: 11, WASM: 4
|
|
14
|
+
* Total: 122 Native / 102 WASM tools
|
|
15
|
+
*
|
|
16
|
+
* Note: 3 built-in server tools (server_info, server_health, list_adapters)
|
|
17
|
+
* are always available regardless of filter settings.
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* All valid tool groups
|
|
21
|
+
*/
|
|
22
|
+
export const ALL_TOOL_GROUPS = [
|
|
23
|
+
"core",
|
|
24
|
+
"json",
|
|
25
|
+
"text",
|
|
26
|
+
"stats",
|
|
27
|
+
"vector",
|
|
28
|
+
"admin",
|
|
29
|
+
"geo",
|
|
30
|
+
];
|
|
31
|
+
/**
|
|
32
|
+
* Tool groups - kept for backwards compatibility with scopes.ts
|
|
33
|
+
* The actual filtering uses the tool's 'group' property, not these lists.
|
|
34
|
+
*/
|
|
35
|
+
export const TOOL_GROUPS = {
|
|
36
|
+
core: [
|
|
37
|
+
"read_query",
|
|
38
|
+
"write_query",
|
|
39
|
+
"list_tables",
|
|
40
|
+
"describe_table",
|
|
41
|
+
"create_table",
|
|
42
|
+
"drop_table",
|
|
43
|
+
"get_indexes",
|
|
44
|
+
"create_index",
|
|
45
|
+
],
|
|
46
|
+
json: [
|
|
47
|
+
// JSON Helper Tools (8)
|
|
48
|
+
"json_insert",
|
|
49
|
+
"json_update",
|
|
50
|
+
"json_select",
|
|
51
|
+
"json_query",
|
|
52
|
+
"json_validate_path",
|
|
53
|
+
"json_merge",
|
|
54
|
+
"json_analyze_schema",
|
|
55
|
+
"create_json_collection",
|
|
56
|
+
// JSON Operation Tools (12)
|
|
57
|
+
"json_valid",
|
|
58
|
+
"json_extract",
|
|
59
|
+
"json_set",
|
|
60
|
+
"json_remove",
|
|
61
|
+
"json_type",
|
|
62
|
+
"json_array_length",
|
|
63
|
+
"json_array_append",
|
|
64
|
+
"json_keys",
|
|
65
|
+
"json_each",
|
|
66
|
+
"json_group_array",
|
|
67
|
+
"json_group_object",
|
|
68
|
+
"json_pretty",
|
|
69
|
+
// JSONB Tools (3)
|
|
70
|
+
"jsonb_convert",
|
|
71
|
+
"json_storage_info",
|
|
72
|
+
"json_normalize_column",
|
|
73
|
+
],
|
|
74
|
+
text: [
|
|
75
|
+
"regex_extract",
|
|
76
|
+
"regex_match",
|
|
77
|
+
"text_split",
|
|
78
|
+
"text_concat",
|
|
79
|
+
"text_replace",
|
|
80
|
+
"text_trim",
|
|
81
|
+
"text_case",
|
|
82
|
+
"text_substring",
|
|
83
|
+
"fts_create",
|
|
84
|
+
"fts_insert",
|
|
85
|
+
"fts_search",
|
|
86
|
+
"fts_match",
|
|
87
|
+
],
|
|
88
|
+
stats: [
|
|
89
|
+
"stats_basic",
|
|
90
|
+
"stats_count",
|
|
91
|
+
"stats_group_by",
|
|
92
|
+
"stats_histogram",
|
|
93
|
+
"stats_percentile",
|
|
94
|
+
"stats_regression",
|
|
95
|
+
"stats_correlation",
|
|
96
|
+
"stats_zscore",
|
|
97
|
+
"stats_time_bucket",
|
|
98
|
+
"stats_moving_avg",
|
|
99
|
+
"geo_distance",
|
|
100
|
+
"geo_bounding_box",
|
|
101
|
+
"geo_point_in_radius",
|
|
102
|
+
"geo_nearest",
|
|
103
|
+
"geo_encode",
|
|
104
|
+
"geo_decode",
|
|
105
|
+
],
|
|
106
|
+
vector: [
|
|
107
|
+
"vector_create_table",
|
|
108
|
+
"vector_store",
|
|
109
|
+
"vector_batch_store",
|
|
110
|
+
"vector_search",
|
|
111
|
+
"vector_get",
|
|
112
|
+
"vector_delete",
|
|
113
|
+
"vector_count",
|
|
114
|
+
"vector_stats",
|
|
115
|
+
"vector_dimensions",
|
|
116
|
+
"vector_normalize",
|
|
117
|
+
"vector_distance",
|
|
118
|
+
],
|
|
119
|
+
admin: [
|
|
120
|
+
"backup",
|
|
121
|
+
"analyze",
|
|
122
|
+
"integrity_check",
|
|
123
|
+
"optimize",
|
|
124
|
+
"generate_series",
|
|
125
|
+
"create_view",
|
|
126
|
+
"list_views",
|
|
127
|
+
"drop_view",
|
|
128
|
+
"dbstat",
|
|
129
|
+
"vacuum",
|
|
130
|
+
"transaction_begin",
|
|
131
|
+
"transaction_commit",
|
|
132
|
+
"transaction_rollback",
|
|
133
|
+
"transaction_savepoint",
|
|
134
|
+
"transaction_release",
|
|
135
|
+
"transaction_rollback_to",
|
|
136
|
+
"transaction_execute",
|
|
137
|
+
"window_row_number",
|
|
138
|
+
"window_rank",
|
|
139
|
+
"window_lag_lead",
|
|
140
|
+
"window_running_total",
|
|
141
|
+
],
|
|
142
|
+
geo: [
|
|
143
|
+
"geo_distance",
|
|
144
|
+
"geo_nearby",
|
|
145
|
+
"geo_bounding_box",
|
|
146
|
+
"geo_cluster",
|
|
147
|
+
"spatialite_load",
|
|
148
|
+
"spatialite_create_table",
|
|
149
|
+
"spatialite_query",
|
|
150
|
+
"spatialite_analyze",
|
|
151
|
+
"spatialite_index",
|
|
152
|
+
"spatialite_transform",
|
|
153
|
+
"spatialite_import",
|
|
154
|
+
],
|
|
155
|
+
};
|
|
156
|
+
/**
|
|
157
|
+
* Meta-groups that expand to multiple tool groups.
|
|
158
|
+
* These provide shortcuts for common use cases.
|
|
159
|
+
*/
|
|
160
|
+
export const META_GROUPS = {
|
|
161
|
+
// General development - Core + JSON + Text (48 tools)
|
|
162
|
+
starter: ["core", "json", "text"],
|
|
163
|
+
// Data analysis - Core + JSON + Stats (50 tools Native, 44 WASM)
|
|
164
|
+
analytics: ["core", "json", "stats"],
|
|
165
|
+
// Search workloads - Core + Text + Vector (36 tools)
|
|
166
|
+
search: ["core", "text", "vector"],
|
|
167
|
+
// Geospatial workloads - Core + Geo + Vector (30 tools Native, 23 WASM)
|
|
168
|
+
spatial: ["core", "geo", "vector"],
|
|
169
|
+
// Bare minimum - Core only (8 tools)
|
|
170
|
+
minimal: ["core"],
|
|
171
|
+
// All tools enabled (122 Native / 102 WASM tools)
|
|
172
|
+
full: ["core", "json", "text", "stats", "vector", "admin", "geo"],
|
|
173
|
+
};
|
|
174
|
+
//# sourceMappingURL=ToolConstants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolConstants.js","sourceRoot":"","sources":["../../src/filtering/ToolConstants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAgB;IAC1C,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,QAAQ;IACR,OAAO;IACP,KAAK;CACN,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAgC;IACtD,IAAI,EAAE;QACJ,YAAY;QACZ,aAAa;QACb,aAAa;QACb,gBAAgB;QAChB,cAAc;QACd,YAAY;QACZ,aAAa;QACb,cAAc;KACf;IACD,IAAI,EAAE;QACJ,wBAAwB;QACxB,aAAa;QACb,aAAa;QACb,aAAa;QACb,YAAY;QACZ,oBAAoB;QACpB,YAAY;QACZ,qBAAqB;QACrB,wBAAwB;QACxB,4BAA4B;QAC5B,YAAY;QACZ,cAAc;QACd,UAAU;QACV,aAAa;QACb,WAAW;QACX,mBAAmB;QACnB,mBAAmB;QACnB,WAAW;QACX,WAAW;QACX,kBAAkB;QAClB,mBAAmB;QACnB,aAAa;QACb,kBAAkB;QAClB,eAAe;QACf,mBAAmB;QACnB,uBAAuB;KACxB;IACD,IAAI,EAAE;QACJ,eAAe;QACf,aAAa;QACb,YAAY;QACZ,aAAa;QACb,cAAc;QACd,WAAW;QACX,WAAW;QACX,gBAAgB;QAChB,YAAY;QACZ,YAAY;QACZ,YAAY;QACZ,WAAW;KACZ;IACD,KAAK,EAAE;QACL,aAAa;QACb,aAAa;QACb,gBAAgB;QAChB,iBAAiB;QACjB,kBAAkB;QAClB,kBAAkB;QAClB,mBAAmB;QACnB,cAAc;QACd,mBAAmB;QACnB,kBAAkB;QAClB,cAAc;QACd,kBAAkB;QAClB,qBAAqB;QACrB,aAAa;QACb,YAAY;QACZ,YAAY;KACb;IACD,MAAM,EAAE;QACN,qBAAqB;QACrB,cAAc;QACd,oBAAoB;QACpB,eAAe;QACf,YAAY;QACZ,eAAe;QACf,cAAc;QACd,cAAc;QACd,mBAAmB;QACnB,kBAAkB;QAClB,iBAAiB;KAClB;IACD,KAAK,EAAE;QACL,QAAQ;QACR,SAAS;QACT,iBAAiB;QACjB,UAAU;QACV,iBAAiB;QACjB,aAAa;QACb,YAAY;QACZ,WAAW;QACX,QAAQ;QACR,QAAQ;QACR,mBAAmB;QACnB,oBAAoB;QACpB,sBAAsB;QACtB,uBAAuB;QACvB,qBAAqB;QACrB,yBAAyB;QACzB,qBAAqB;QACrB,mBAAmB;QACnB,aAAa;QACb,iBAAiB;QACjB,sBAAsB;KACvB;IACD,GAAG,EAAE;QACH,cAAc;QACd,YAAY;QACZ,kBAAkB;QAClB,aAAa;QACb,iBAAiB;QACjB,yBAAyB;QACzB,kBAAkB;QAClB,oBAAoB;QACpB,kBAAkB;QAClB,sBAAsB;QACtB,mBAAmB;KACpB;CACF,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAmC;IACzD,sDAAsD;IACtD,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;IAEjC,iEAAiE;IACjE,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;IAEpC,qDAAqD;IACrD,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC;IAElC,wEAAwE;IACxE,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC;IAElC,qCAAqC;IACrC,OAAO,EAAE,CAAC,MAAM,CAAC;IAEjB,kDAAkD;IAClD,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC;CAClE,CAAC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* db-mcp - Tool Filtering System
|
|
3
|
+
*
|
|
4
|
+
* Parses and applies tool filter rules from environment variables.
|
|
5
|
+
* Compatible with postgres-mcp-server filtering syntax.
|
|
6
|
+
*
|
|
7
|
+
* Syntax:
|
|
8
|
+
* groupName → Enable only this group (whitelist mode)
|
|
9
|
+
* shortcut → Use a preset (starter, analytics, search, etc.)
|
|
10
|
+
* -group → Disable all tools in a group
|
|
11
|
+
* +group → Enable all tools in a group
|
|
12
|
+
* -tool → Disable a specific tool
|
|
13
|
+
* +tool → Enable a specific tool
|
|
14
|
+
*
|
|
15
|
+
* Mode Detection:
|
|
16
|
+
* - If first token starts with '-', start with ALL groups enabled (exclusion mode)
|
|
17
|
+
* - Otherwise, start with NO groups enabled (whitelist mode)
|
|
18
|
+
*
|
|
19
|
+
* Examples:
|
|
20
|
+
* "core,json" → Whitelist: only core and json groups
|
|
21
|
+
* "starter" → Preset: core + json + text groups
|
|
22
|
+
* "starter,-fts5" → Preset minus fts5 group
|
|
23
|
+
* "-vector,-geo" → Legacy: all groups except vector and geo
|
|
24
|
+
*/
|
|
25
|
+
import type { ToolGroup, MetaGroup, ToolFilterConfig, ToolDefinition } from "../types/index.js";
|
|
26
|
+
export { META_GROUPS, TOOL_GROUPS, ALL_TOOL_GROUPS } from "./ToolConstants.js";
|
|
27
|
+
/**
|
|
28
|
+
* Get all tool names from all groups (cached)
|
|
29
|
+
*/
|
|
30
|
+
export declare function getAllToolNames(): string[];
|
|
31
|
+
/**
|
|
32
|
+
* Get the group for a specific tool (O(1) lookup)
|
|
33
|
+
*/
|
|
34
|
+
export declare function getToolGroup(toolName: string): ToolGroup | undefined;
|
|
35
|
+
/**
|
|
36
|
+
* Clear all caches - useful for testing
|
|
37
|
+
*/
|
|
38
|
+
export declare function clearToolFilterCaches(): void;
|
|
39
|
+
/**
|
|
40
|
+
* Check if a name is a valid tool group
|
|
41
|
+
*/
|
|
42
|
+
export declare function isToolGroup(name: string): name is ToolGroup;
|
|
43
|
+
/**
|
|
44
|
+
* Check if a name is a valid meta-group
|
|
45
|
+
*/
|
|
46
|
+
export declare function isMetaGroup(name: string): name is MetaGroup;
|
|
47
|
+
/**
|
|
48
|
+
* Get tool groups from a meta-group
|
|
49
|
+
*/
|
|
50
|
+
export declare function getMetaGroupGroups(metaGroup: MetaGroup): ToolGroup[];
|
|
51
|
+
/**
|
|
52
|
+
* Parse a tool filter string into structured rules
|
|
53
|
+
*
|
|
54
|
+
* @param filterString - The filter string (e.g., "starter" or "-vector,-geo")
|
|
55
|
+
* @returns Parsed filter configuration with enabled groups
|
|
56
|
+
*/
|
|
57
|
+
export declare function parseToolFilter(filterString: string | undefined): ToolFilterConfig;
|
|
58
|
+
/**
|
|
59
|
+
* Check if a tool is enabled based on filter configuration
|
|
60
|
+
* Uses the tool's group property for matching
|
|
61
|
+
*/
|
|
62
|
+
export declare function isToolEnabled(tool: ToolDefinition, config: ToolFilterConfig): boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Filter a list of tool definitions based on filter configuration
|
|
65
|
+
*/
|
|
66
|
+
export declare function filterTools(tools: ToolDefinition[], config: ToolFilterConfig): ToolDefinition[];
|
|
67
|
+
/**
|
|
68
|
+
* Get the tool filter from environment variable
|
|
69
|
+
*/
|
|
70
|
+
export declare function getToolFilterFromEnv(): ToolFilterConfig;
|
|
71
|
+
/**
|
|
72
|
+
* Generate a summary of the current filter configuration
|
|
73
|
+
*/
|
|
74
|
+
export declare function getFilterSummary(config: ToolFilterConfig): string;
|
|
75
|
+
/**
|
|
76
|
+
* Get a list of all meta-groups with their expanded groups
|
|
77
|
+
*/
|
|
78
|
+
export declare function getMetaGroupInfo(): {
|
|
79
|
+
metaGroup: MetaGroup;
|
|
80
|
+
groups: ToolGroup[];
|
|
81
|
+
}[];
|
|
82
|
+
//# sourceMappingURL=ToolFilter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolFilter.d.ts","sourceRoot":"","sources":["../../src/filtering/ToolFilter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EACV,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,cAAc,EACf,MAAM,mBAAmB,CAAC;AAK3B,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAc/E;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAM1C;AAkBD;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAEpE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAG5C;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,SAAS,CAE3D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,SAAS,CAE3D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,EAAE,CAEpE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,YAAY,EAAE,MAAM,GAAG,SAAS,GAC/B,gBAAgB,CA+HlB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAwBT;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,cAAc,EAAE,EACvB,MAAM,EAAE,gBAAgB,GACvB,cAAc,EAAE,CAElB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,gBAAgB,CAIvD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAiCjE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI;IAClC,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB,EAAE,CAKF"}
|
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* db-mcp - Tool Filtering System
|
|
3
|
+
*
|
|
4
|
+
* Parses and applies tool filter rules from environment variables.
|
|
5
|
+
* Compatible with postgres-mcp-server filtering syntax.
|
|
6
|
+
*
|
|
7
|
+
* Syntax:
|
|
8
|
+
* groupName → Enable only this group (whitelist mode)
|
|
9
|
+
* shortcut → Use a preset (starter, analytics, search, etc.)
|
|
10
|
+
* -group → Disable all tools in a group
|
|
11
|
+
* +group → Enable all tools in a group
|
|
12
|
+
* -tool → Disable a specific tool
|
|
13
|
+
* +tool → Enable a specific tool
|
|
14
|
+
*
|
|
15
|
+
* Mode Detection:
|
|
16
|
+
* - If first token starts with '-', start with ALL groups enabled (exclusion mode)
|
|
17
|
+
* - Otherwise, start with NO groups enabled (whitelist mode)
|
|
18
|
+
*
|
|
19
|
+
* Examples:
|
|
20
|
+
* "core,json" → Whitelist: only core and json groups
|
|
21
|
+
* "starter" → Preset: core + json + text groups
|
|
22
|
+
* "starter,-fts5" → Preset minus fts5 group
|
|
23
|
+
* "-vector,-geo" → Legacy: all groups except vector and geo
|
|
24
|
+
*/
|
|
25
|
+
import { META_GROUPS, ALL_TOOL_GROUPS, TOOL_GROUPS } from "./ToolConstants.js";
|
|
26
|
+
// Re-export for backwards compatibility
|
|
27
|
+
export { META_GROUPS, TOOL_GROUPS, ALL_TOOL_GROUPS } from "./ToolConstants.js";
|
|
28
|
+
/**
|
|
29
|
+
* Cached list of all tool names
|
|
30
|
+
* Lazy-initialized since TOOL_GROUPS is immutable
|
|
31
|
+
*/
|
|
32
|
+
let cachedAllToolNames = null;
|
|
33
|
+
/**
|
|
34
|
+
* Reverse lookup map: tool name -> group
|
|
35
|
+
* Lazy-initialized for O(1) tool group lookups
|
|
36
|
+
*/
|
|
37
|
+
let toolToGroupMap = null;
|
|
38
|
+
/**
|
|
39
|
+
* Get all tool names from all groups (cached)
|
|
40
|
+
*/
|
|
41
|
+
export function getAllToolNames() {
|
|
42
|
+
if (cachedAllToolNames) {
|
|
43
|
+
return cachedAllToolNames;
|
|
44
|
+
}
|
|
45
|
+
cachedAllToolNames = ALL_TOOL_GROUPS.flatMap((group) => TOOL_GROUPS[group]);
|
|
46
|
+
return cachedAllToolNames;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Get or initialize the tool-to-group reverse lookup map
|
|
50
|
+
*/
|
|
51
|
+
function getToolToGroupMap() {
|
|
52
|
+
if (toolToGroupMap) {
|
|
53
|
+
return toolToGroupMap;
|
|
54
|
+
}
|
|
55
|
+
toolToGroupMap = new Map();
|
|
56
|
+
for (const group of ALL_TOOL_GROUPS) {
|
|
57
|
+
for (const tool of TOOL_GROUPS[group]) {
|
|
58
|
+
toolToGroupMap.set(tool, group);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return toolToGroupMap;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Get the group for a specific tool (O(1) lookup)
|
|
65
|
+
*/
|
|
66
|
+
export function getToolGroup(toolName) {
|
|
67
|
+
return getToolToGroupMap().get(toolName);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Clear all caches - useful for testing
|
|
71
|
+
*/
|
|
72
|
+
export function clearToolFilterCaches() {
|
|
73
|
+
cachedAllToolNames = null;
|
|
74
|
+
toolToGroupMap = null;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Check if a name is a valid tool group
|
|
78
|
+
*/
|
|
79
|
+
export function isToolGroup(name) {
|
|
80
|
+
return ALL_TOOL_GROUPS.includes(name);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Check if a name is a valid meta-group
|
|
84
|
+
*/
|
|
85
|
+
export function isMetaGroup(name) {
|
|
86
|
+
return name in META_GROUPS;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Get tool groups from a meta-group
|
|
90
|
+
*/
|
|
91
|
+
export function getMetaGroupGroups(metaGroup) {
|
|
92
|
+
return META_GROUPS[metaGroup];
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Parse a tool filter string into structured rules
|
|
96
|
+
*
|
|
97
|
+
* @param filterString - The filter string (e.g., "starter" or "-vector,-geo")
|
|
98
|
+
* @returns Parsed filter configuration with enabled groups
|
|
99
|
+
*/
|
|
100
|
+
export function parseToolFilter(filterString) {
|
|
101
|
+
// Default: all groups enabled, no specific tool exclusions
|
|
102
|
+
const enabledGroups = new Set(ALL_TOOL_GROUPS);
|
|
103
|
+
const excludedTools = new Set();
|
|
104
|
+
const includedTools = new Set();
|
|
105
|
+
if (!filterString || filterString.trim() === "") {
|
|
106
|
+
return {
|
|
107
|
+
raw: "",
|
|
108
|
+
rules: [],
|
|
109
|
+
enabledGroups,
|
|
110
|
+
excludedTools,
|
|
111
|
+
includedTools,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
const rules = [];
|
|
115
|
+
const parts = filterString
|
|
116
|
+
.split(",")
|
|
117
|
+
.map((p) => p.trim())
|
|
118
|
+
.filter((p) => p);
|
|
119
|
+
if (parts.length === 0) {
|
|
120
|
+
return {
|
|
121
|
+
raw: filterString,
|
|
122
|
+
rules: [],
|
|
123
|
+
enabledGroups,
|
|
124
|
+
excludedTools,
|
|
125
|
+
includedTools,
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
// Mode detection: if first token starts with '-', exclusion mode (legacy)
|
|
129
|
+
// Otherwise, whitelist mode (new) - start with empty groups
|
|
130
|
+
const firstPart = parts[0];
|
|
131
|
+
if (!firstPart) {
|
|
132
|
+
return {
|
|
133
|
+
raw: filterString,
|
|
134
|
+
rules: [],
|
|
135
|
+
enabledGroups,
|
|
136
|
+
excludedTools,
|
|
137
|
+
includedTools,
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
const startsWithExclude = firstPart.startsWith("-");
|
|
141
|
+
if (!startsWithExclude) {
|
|
142
|
+
enabledGroups.clear();
|
|
143
|
+
}
|
|
144
|
+
for (const part of parts) {
|
|
145
|
+
if (!part)
|
|
146
|
+
continue;
|
|
147
|
+
let isInclude = true; // Default to include (whitelist mode)
|
|
148
|
+
let isExclude = false;
|
|
149
|
+
let target = part;
|
|
150
|
+
if (part.startsWith("+")) {
|
|
151
|
+
isInclude = true;
|
|
152
|
+
target = part.substring(1);
|
|
153
|
+
}
|
|
154
|
+
else if (part.startsWith("-")) {
|
|
155
|
+
isInclude = false;
|
|
156
|
+
isExclude = true;
|
|
157
|
+
target = part.substring(1);
|
|
158
|
+
}
|
|
159
|
+
// No prefix = include (whitelist mode)
|
|
160
|
+
// Special case: 'all'
|
|
161
|
+
if (target === "all") {
|
|
162
|
+
if (isExclude) {
|
|
163
|
+
enabledGroups.clear();
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
for (const group of ALL_TOOL_GROUPS) {
|
|
167
|
+
enabledGroups.add(group);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
continue;
|
|
171
|
+
}
|
|
172
|
+
const targetIsMetaGroup = isMetaGroup(target);
|
|
173
|
+
const targetIsGroup = isToolGroup(target);
|
|
174
|
+
rules.push({
|
|
175
|
+
type: isInclude ? "include" : "exclude",
|
|
176
|
+
target,
|
|
177
|
+
isGroup: targetIsGroup || targetIsMetaGroup,
|
|
178
|
+
});
|
|
179
|
+
// Apply rule - check meta-groups first, then regular groups, then individual tools
|
|
180
|
+
if (targetIsMetaGroup) {
|
|
181
|
+
// Expand meta-group to its constituent groups
|
|
182
|
+
const groupsInMeta = getMetaGroupGroups(target);
|
|
183
|
+
if (isExclude) {
|
|
184
|
+
for (const group of groupsInMeta) {
|
|
185
|
+
enabledGroups.delete(group);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
else {
|
|
189
|
+
for (const group of groupsInMeta) {
|
|
190
|
+
enabledGroups.add(group);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
else if (targetIsGroup) {
|
|
195
|
+
// Add/remove a single group
|
|
196
|
+
if (isExclude) {
|
|
197
|
+
enabledGroups.delete(target);
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
enabledGroups.add(target);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
// Individual tool - track in include/exclude sets
|
|
205
|
+
if (isExclude) {
|
|
206
|
+
excludedTools.add(target);
|
|
207
|
+
includedTools.delete(target);
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
includedTools.add(target);
|
|
211
|
+
excludedTools.delete(target);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
return {
|
|
216
|
+
raw: filterString,
|
|
217
|
+
rules,
|
|
218
|
+
enabledGroups,
|
|
219
|
+
excludedTools,
|
|
220
|
+
includedTools,
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Check if a tool is enabled based on filter configuration
|
|
225
|
+
* Uses the tool's group property for matching
|
|
226
|
+
*/
|
|
227
|
+
export function isToolEnabled(tool, config) {
|
|
228
|
+
const baseName = tool.name.replace(/^(sqlite|mysql|postgres|mongodb|redis|sqlserver)_/, "");
|
|
229
|
+
// Check explicit tool exclusion
|
|
230
|
+
if (config.excludedTools.has(tool.name) ||
|
|
231
|
+
config.excludedTools.has(baseName)) {
|
|
232
|
+
return false;
|
|
233
|
+
}
|
|
234
|
+
// Check explicit tool inclusion
|
|
235
|
+
if (config.includedTools.has(tool.name) ||
|
|
236
|
+
config.includedTools.has(baseName)) {
|
|
237
|
+
return true;
|
|
238
|
+
}
|
|
239
|
+
// Check if tool's group is enabled
|
|
240
|
+
return config.enabledGroups.has(tool.group);
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Filter a list of tool definitions based on filter configuration
|
|
244
|
+
*/
|
|
245
|
+
export function filterTools(tools, config) {
|
|
246
|
+
return tools.filter((tool) => isToolEnabled(tool, config));
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Get the tool filter from environment variable
|
|
250
|
+
*/
|
|
251
|
+
export function getToolFilterFromEnv() {
|
|
252
|
+
const filterString = process.env["DB_MCP_TOOL_FILTER"] ?? process.env["TOOL_FILTER"] ?? "";
|
|
253
|
+
return parseToolFilter(filterString);
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Generate a summary of the current filter configuration
|
|
257
|
+
*/
|
|
258
|
+
export function getFilterSummary(config) {
|
|
259
|
+
const lines = [
|
|
260
|
+
`Tool Filter Summary:`,
|
|
261
|
+
` Filter: ${config.raw || "(none)"}`,
|
|
262
|
+
` Enabled groups: ${config.enabledGroups.size}/${ALL_TOOL_GROUPS.length}`,
|
|
263
|
+
];
|
|
264
|
+
if (config.enabledGroups.size > 0) {
|
|
265
|
+
lines.push(` Groups: ${[...config.enabledGroups].join(", ")}`);
|
|
266
|
+
}
|
|
267
|
+
if (config.excludedTools.size > 0) {
|
|
268
|
+
lines.push(` Excluded tools: ${[...config.excludedTools].join(", ")}`);
|
|
269
|
+
}
|
|
270
|
+
if (config.includedTools.size > 0) {
|
|
271
|
+
lines.push(` Included tools: ${[...config.includedTools].join(", ")}`);
|
|
272
|
+
}
|
|
273
|
+
if (config.rules.length > 0) {
|
|
274
|
+
lines.push(` Rules applied: ${config.rules.length}`);
|
|
275
|
+
for (const rule of config.rules) {
|
|
276
|
+
const prefix = rule.type === "include" ? "+" : "-";
|
|
277
|
+
const type = isMetaGroup(rule.target)
|
|
278
|
+
? "meta-group"
|
|
279
|
+
: rule.isGroup
|
|
280
|
+
? "group"
|
|
281
|
+
: "tool";
|
|
282
|
+
lines.push(` ${prefix}${rule.target} (${type})`);
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
return lines.join("\n");
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Get a list of all meta-groups with their expanded groups
|
|
289
|
+
*/
|
|
290
|
+
export function getMetaGroupInfo() {
|
|
291
|
+
return Object.entries(META_GROUPS).map(([metaGroup, groups]) => ({
|
|
292
|
+
metaGroup: metaGroup,
|
|
293
|
+
groups,
|
|
294
|
+
}));
|
|
295
|
+
}
|
|
296
|
+
//# sourceMappingURL=ToolFilter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolFilter.js","sourceRoot":"","sources":["../../src/filtering/ToolFilter.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* db-mcp - SQLite MCP Server
|
|
3
|
+
*
|
|
4
|
+
* Main entry point and public API exports.
|
|
5
|
+
*/
|
|
6
|
+
export { DbMcpServer, createServer, DEFAULT_CONFIG, } from "./server/McpServer.js";
|
|
7
|
+
export type { DatabaseType, DatabaseConfig, HealthStatus, QueryResult, ColumnInfo, TableInfo, SchemaInfo, IndexInfo, ConstraintInfo, TransportType, McpServerConfig, OAuthConfig, OAuthScope, TokenClaims, RequestContext, ToolGroup, ToolFilterRule, ToolFilterConfig, AdapterCapabilities, ToolDefinition, ResourceDefinition, PromptDefinition, } from "./types/index.js";
|
|
8
|
+
export { DbMcpError, ConnectionError, QueryError, AuthenticationError, AuthorizationError, ValidationError, } from "./types/index.js";
|
|
9
|
+
export { DatabaseAdapter } from "./adapters/DatabaseAdapter.js";
|
|
10
|
+
export { TOOL_GROUPS, META_GROUPS, ALL_TOOL_GROUPS, parseToolFilter, isToolEnabled, filterTools, getToolFilterFromEnv, getFilterSummary, } from "./filtering/ToolFilter.js";
|
|
11
|
+
export declare const VERSION = "0.1.0";
|
|
12
|
+
export declare const NAME = "db-mcp";
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,WAAW,EACX,YAAY,EACZ,cAAc,GACf,MAAM,uBAAuB,CAAC;AAG/B,YAAY,EAEV,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,WAAW,EACX,UAAU,EACV,SAAS,EACT,UAAU,EACV,SAAS,EACT,cAAc,EAGd,aAAa,EACb,eAAe,EAGf,WAAW,EACX,UAAU,EACV,WAAW,EACX,cAAc,EAGd,SAAS,EACT,cAAc,EACd,gBAAgB,EAGhB,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,UAAU,EACV,eAAe,EACf,UAAU,EACV,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAGhE,OAAO,EACL,WAAW,EACX,WAAW,EACX,eAAe,EACf,eAAe,EACf,aAAa,EACb,WAAW,EACX,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,2BAA2B,CAAC;AAGnC,eAAO,MAAM,OAAO,UAAU,CAAC;AAC/B,eAAO,MAAM,IAAI,WAAW,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* db-mcp - SQLite MCP Server
|
|
3
|
+
*
|
|
4
|
+
* Main entry point and public API exports.
|
|
5
|
+
*/
|
|
6
|
+
// Core server
|
|
7
|
+
export { DbMcpServer, createServer, DEFAULT_CONFIG, } from "./server/McpServer.js";
|
|
8
|
+
// Error classes
|
|
9
|
+
export { DbMcpError, ConnectionError, QueryError, AuthenticationError, AuthorizationError, ValidationError, } from "./types/index.js";
|
|
10
|
+
// Base adapter class
|
|
11
|
+
export { DatabaseAdapter } from "./adapters/DatabaseAdapter.js";
|
|
12
|
+
// Tool filtering utilities
|
|
13
|
+
export { TOOL_GROUPS, META_GROUPS, ALL_TOOL_GROUPS, parseToolFilter, isToolEnabled, filterTools, getToolFilterFromEnv, getFilterSummary, } from "./filtering/ToolFilter.js";
|
|
14
|
+
// Version info
|
|
15
|
+
export const VERSION = "0.1.0";
|
|
16
|
+
export const NAME = "db-mcp";
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc;AACd,OAAO,EACL,WAAW,EACX,YAAY,EACZ,cAAc,GACf,MAAM,uBAAuB,CAAC;AAqC/B,gBAAgB;AAChB,OAAO,EACL,UAAU,EACV,eAAe,EACf,UAAU,EACV,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAE1B,qBAAqB;AACrB,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,2BAA2B;AAC3B,OAAO,EACL,WAAW,EACX,WAAW,EACX,eAAe,EACf,eAAe,EACf,aAAa,EACb,WAAW,EACX,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,2BAA2B,CAAC;AAEnC,eAAe;AACf,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAC/B,MAAM,CAAC,MAAM,IAAI,GAAG,QAAQ,CAAC"}
|