@quarri/claude-data-tools 1.1.1 → 1.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.
@@ -0,0 +1,263 @@
1
+ "use strict";
2
+ /**
3
+ * MCP UI Resources for Quarri
4
+ * Defines interactive UI components rendered in Claude conversations
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.TOOL_UI_MAPPING = exports.UI_RESOURCES = void 0;
8
+ exports.getToolUIResource = getToolUIResource;
9
+ exports.renderDataTable = renderDataTable;
10
+ exports.renderChart = renderChart;
11
+ exports.renderSchemaExplorer = renderSchemaExplorer;
12
+ exports.renderSearchResults = renderSearchResults;
13
+ exports.renderMetricsList = renderMetricsList;
14
+ exports.renderMetricDetail = renderMetricDetail;
15
+ exports.renderAuthStatus = renderAuthStatus;
16
+ exports.renderTrialStatus = renderTrialStatus;
17
+ exports.renderPromptsList = renderPromptsList;
18
+ exports.renderRulesList = renderRulesList;
19
+ exports.renderColumnsList = renderColumnsList;
20
+ exports.renderTeamsList = renderTeamsList;
21
+ exports.renderTeamFilters = renderTeamFilters;
22
+ exports.renderTeamRestrictions = renderTeamRestrictions;
23
+ exports.renderSourcesList = renderSourcesList;
24
+ exports.renderTablesList = renderTablesList;
25
+ exports.renderLogsView = renderLogsView;
26
+ exports.renderActivityList = renderActivityList;
27
+ exports.renderCodeView = renderCodeView;
28
+ exports.UI_RESOURCES = [
29
+ // Data resources
30
+ {
31
+ uri: 'ui://quarri/data-table',
32
+ name: 'Data Table',
33
+ description: 'Interactive data table for SQL results',
34
+ mimeType: 'application/vnd.quarri.data-table+json',
35
+ },
36
+ {
37
+ uri: 'ui://quarri/chart',
38
+ name: 'Chart',
39
+ description: 'Interactive Plotly chart',
40
+ mimeType: 'application/vnd.quarri.chart+json',
41
+ },
42
+ {
43
+ uri: 'ui://quarri/schema-explorer',
44
+ name: 'Schema Explorer',
45
+ description: 'Database schema visualization',
46
+ mimeType: 'application/vnd.quarri.schema+json',
47
+ },
48
+ {
49
+ uri: 'ui://quarri/search-results',
50
+ name: 'Search Results',
51
+ description: 'Value search results',
52
+ mimeType: 'application/vnd.quarri.search-results+json',
53
+ },
54
+ {
55
+ uri: 'ui://quarri/metrics-list',
56
+ name: 'Metrics List',
57
+ description: 'Defined metrics with status',
58
+ mimeType: 'application/vnd.quarri.metrics-list+json',
59
+ },
60
+ {
61
+ uri: 'ui://quarri/metric-detail',
62
+ name: 'Metric Detail',
63
+ description: 'Single metric details',
64
+ mimeType: 'application/vnd.quarri.metric-detail+json',
65
+ },
66
+ // Session resources
67
+ {
68
+ uri: 'ui://quarri/auth-status',
69
+ name: 'Auth Status',
70
+ description: 'Authentication status',
71
+ mimeType: 'application/vnd.quarri.auth-status+json',
72
+ },
73
+ {
74
+ uri: 'ui://quarri/trial-status',
75
+ name: 'Trial Status',
76
+ description: 'Trial account status',
77
+ mimeType: 'application/vnd.quarri.trial-status+json',
78
+ },
79
+ // Config resources
80
+ {
81
+ uri: 'ui://quarri/prompts-list',
82
+ name: 'Prompts List',
83
+ description: 'Agent prompts',
84
+ mimeType: 'application/vnd.quarri.prompts-list+json',
85
+ },
86
+ {
87
+ uri: 'ui://quarri/rules-list',
88
+ name: 'Rules List',
89
+ description: 'Query generation rules',
90
+ mimeType: 'application/vnd.quarri.rules-list+json',
91
+ },
92
+ {
93
+ uri: 'ui://quarri/columns-list',
94
+ name: 'Columns List',
95
+ description: 'Searchable columns',
96
+ mimeType: 'application/vnd.quarri.columns-list+json',
97
+ },
98
+ // Team resources
99
+ {
100
+ uri: 'ui://quarri/teams-list',
101
+ name: 'Teams List',
102
+ description: 'Organization teams',
103
+ mimeType: 'application/vnd.quarri.teams-list+json',
104
+ },
105
+ {
106
+ uri: 'ui://quarri/team-filters',
107
+ name: 'Team Filters',
108
+ description: 'Row-level security filters',
109
+ mimeType: 'application/vnd.quarri.team-filters+json',
110
+ },
111
+ {
112
+ uri: 'ui://quarri/team-restrictions',
113
+ name: 'Team Restrictions',
114
+ description: 'Column restrictions',
115
+ mimeType: 'application/vnd.quarri.team-restrictions+json',
116
+ },
117
+ // Extraction resources
118
+ {
119
+ uri: 'ui://quarri/sources-list',
120
+ name: 'Sources List',
121
+ description: 'Data extraction sources',
122
+ mimeType: 'application/vnd.quarri.sources-list+json',
123
+ },
124
+ {
125
+ uri: 'ui://quarri/discovered-tables',
126
+ name: 'Discovered Tables',
127
+ description: 'Tables in data source',
128
+ mimeType: 'application/vnd.quarri.tables-list+json',
129
+ },
130
+ {
131
+ uri: 'ui://quarri/raw-tables',
132
+ name: 'Raw Tables',
133
+ description: 'Unprocessed tables',
134
+ mimeType: 'application/vnd.quarri.tables-list+json',
135
+ },
136
+ // Debug resources
137
+ {
138
+ uri: 'ui://quarri/logs-view',
139
+ name: 'Logs View',
140
+ description: 'Log entries',
141
+ mimeType: 'application/vnd.quarri.logs-view+json',
142
+ },
143
+ {
144
+ uri: 'ui://quarri/activity-list',
145
+ name: 'Activity List',
146
+ description: 'REPL activity timeline',
147
+ mimeType: 'application/vnd.quarri.activity-list+json',
148
+ },
149
+ {
150
+ uri: 'ui://quarri/code-view',
151
+ name: 'Code View',
152
+ description: 'Source code display',
153
+ mimeType: 'application/vnd.quarri.code-view+json',
154
+ },
155
+ ];
156
+ // Tool to UI resource mapping
157
+ exports.TOOL_UI_MAPPING = {
158
+ // Data tools
159
+ quarri_execute_sql: 'ui://quarri/data-table',
160
+ quarri_get_schema: 'ui://quarri/schema-explorer',
161
+ quarri_search_values: 'ui://quarri/search-results',
162
+ quarri_get_metrics: 'ui://quarri/metrics-list',
163
+ quarri_get_metric_detail: 'ui://quarri/metric-detail',
164
+ quarri_search_metrics: 'ui://quarri/metrics-list',
165
+ // Session tools
166
+ quarri_auth_status: 'ui://quarri/auth-status',
167
+ quarri_trial_status: 'ui://quarri/trial-status',
168
+ // Configuration tools
169
+ quarri_list_agent_prompts: 'ui://quarri/prompts-list',
170
+ quarri_list_rules: 'ui://quarri/rules-list',
171
+ quarri_list_searchable_columns: 'ui://quarri/columns-list',
172
+ // Team tools
173
+ quarri_list_teams: 'ui://quarri/teams-list',
174
+ quarri_get_team_filters: 'ui://quarri/team-filters',
175
+ quarri_get_team_restrictions: 'ui://quarri/team-restrictions',
176
+ // Extraction tools
177
+ quarri_list_extraction_sources: 'ui://quarri/sources-list',
178
+ quarri_discover_tables: 'ui://quarri/discovered-tables',
179
+ quarri_list_raw_tables: 'ui://quarri/raw-tables',
180
+ // Debug tools
181
+ quarri_read_server_logs: 'ui://quarri/logs-view',
182
+ quarri_query_repl_activity: 'ui://quarri/activity-list',
183
+ quarri_read_fly_logs: 'ui://quarri/logs-view',
184
+ quarri_get_connector_logs: 'ui://quarri/logs-view',
185
+ // Connector tools
186
+ quarri_get_connector_code: 'ui://quarri/code-view',
187
+ };
188
+ // Get UI resource info for a tool
189
+ function getToolUIResource(toolName) {
190
+ const uri = exports.TOOL_UI_MAPPING[toolName];
191
+ if (!uri)
192
+ return undefined;
193
+ return exports.UI_RESOURCES.find((r) => r.uri === uri);
194
+ }
195
+ // Render functions for each UI type
196
+ function renderDataTable(rows, columns) {
197
+ return {
198
+ type: 'data-table',
199
+ columns: columns.map((c) => ({ key: c, label: c, sortable: true })),
200
+ rows,
201
+ pagination: rows.length > 50,
202
+ pageSize: 50,
203
+ };
204
+ }
205
+ function renderChart(config) {
206
+ return {
207
+ type: 'chart',
208
+ plotly: { data: config.data, layout: config.layout || {} },
209
+ title: config.title,
210
+ };
211
+ }
212
+ function renderSchemaExplorer(tables) {
213
+ return { type: 'schema-explorer', tables };
214
+ }
215
+ function renderSearchResults(results) {
216
+ return { type: 'search-results', results };
217
+ }
218
+ function renderMetricsList(metrics) {
219
+ return { type: 'metrics-list', metrics };
220
+ }
221
+ function renderMetricDetail(metric) {
222
+ return { type: 'metric-detail', ...metric };
223
+ }
224
+ function renderAuthStatus(status) {
225
+ return { type: 'auth-status', ...status };
226
+ }
227
+ function renderTrialStatus(status) {
228
+ return { type: 'trial-status', ...status };
229
+ }
230
+ function renderPromptsList(prompts) {
231
+ return { type: 'prompts-list', prompts };
232
+ }
233
+ function renderRulesList(rules) {
234
+ return { type: 'rules-list', rules };
235
+ }
236
+ function renderColumnsList(columns) {
237
+ return { type: 'columns-list', columns };
238
+ }
239
+ function renderTeamsList(teams) {
240
+ return { type: 'teams-list', teams };
241
+ }
242
+ function renderTeamFilters(filters) {
243
+ return { type: 'team-filters', filters };
244
+ }
245
+ function renderTeamRestrictions(restrictions) {
246
+ return { type: 'team-restrictions', restrictions };
247
+ }
248
+ function renderSourcesList(sources) {
249
+ return { type: 'sources-list', sources };
250
+ }
251
+ function renderTablesList(tables) {
252
+ return { type: 'tables-list', tables };
253
+ }
254
+ function renderLogsView(logs) {
255
+ return { type: 'logs-view', logs };
256
+ }
257
+ function renderActivityList(activities) {
258
+ return { type: 'activity-list', activities };
259
+ }
260
+ function renderCodeView(code, language = 'python') {
261
+ return { type: 'code-view', code, language };
262
+ }
263
+ //# sourceMappingURL=resources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resources.js","sourceRoot":"","sources":["../../src/ui/resources.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quarri/claude-data-tools",
3
- "version": "1.1.1",
3
+ "version": "1.2.0",
4
4
  "description": "Quarri Data Assistant - Natural language data analysis with Quarri",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -36,15 +36,17 @@
36
36
  "url": "https://github.com/djayatillake/quarri-claude-plugin"
37
37
  },
38
38
  "dependencies": {
39
+ "@mcp-ui/server": "^6.0.0",
40
+ "@modelcontextprotocol/ext-apps": "^1.0.1",
39
41
  "@modelcontextprotocol/sdk": "^1.0.0",
40
42
  "readline": "^1.3.0"
41
43
  },
42
44
  "devDependencies": {
43
45
  "@types/node": "^20.10.0",
44
- "typescript": "^5.3.0",
45
- "eslint": "^8.55.0",
46
46
  "@typescript-eslint/eslint-plugin": "^6.13.0",
47
47
  "@typescript-eslint/parser": "^6.13.0",
48
+ "eslint": "^8.55.0",
49
+ "typescript": "^5.3.0",
48
50
  "vitest": "^1.0.0"
49
51
  },
50
52
  "engines": {