reportdash-datastore-mcp-claude-desktop 1.0.4 → 1.0.5

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 (2) hide show
  1. package/index.js +38 -22
  2. package/package.json +1 -1
package/index.js CHANGED
@@ -78,14 +78,24 @@ function forwardToAPI(mcpRequest) {
78
78
  });
79
79
 
80
80
  res.on('end', () => {
81
- if (res.statusCode === 200) {
82
- console.log(data);
81
+ // Treat 200-299 as success
82
+ if (res.statusCode >= 200 && res.statusCode < 300) {
83
+ // For 204 No Content, return empty success response
84
+ if (res.statusCode === 204 || !data.trim()) {
85
+ console.log(JSON.stringify({
86
+ jsonrpc: '2.0',
87
+ result: {},
88
+ id: mcpRequest.id || null
89
+ }));
90
+ } else {
91
+ console.log(data);
92
+ }
83
93
  } else {
84
94
  console.error(JSON.stringify({
85
95
  jsonrpc: '2.0',
86
96
  error: {
87
97
  code: res.statusCode,
88
- message: `API error: ${res.statusCode} - ${data}`,
98
+ message: `API error: ${res.statusCode}${data ? ' - ' + data : ''}`,
89
99
  data: { statusCode: res.statusCode, body: data }
90
100
  },
91
101
  id: mcpRequest.id || null
@@ -162,28 +172,34 @@ function testConnection() {
162
172
  res.on('end', () => {
163
173
  console.log(`Response Status: ${res.statusCode}\n`);
164
174
 
165
- if (res.statusCode === 200) {
166
- try {
167
- const response = JSON.parse(data);
175
+ if (res.statusCode >= 200 && res.statusCode < 300) {
176
+ if (res.statusCode === 204 || !data.trim()) {
168
177
  console.log('✅ Connection successful!');
169
- console.log('✅ API key is valid\n');
170
-
171
- if (response.result && response.result.tools) {
172
- console.log(`📦 Available Tools: ${response.result.tools.length}\n`);
173
- response.result.tools.forEach((tool, index) => {
174
- console.log(`${index + 1}. ${tool.name}`);
175
- console.log(` ${tool.description}\n`);
176
- });
177
- } else {
178
- console.log('Response:', JSON.stringify(response, null, 2));
178
+ console.log('✅ API key is valid');
179
+ console.log('ℹ️ Server returned 204 No Content (this is normal for some endpoints)\n');
180
+ } else {
181
+ try {
182
+ const response = JSON.parse(data);
183
+ console.log('✅ Connection successful!');
184
+ console.log('✅ API key is valid\n');
185
+
186
+ if (response.result && response.result.tools) {
187
+ console.log(`📦 Available Tools: ${response.result.tools.length}\n`);
188
+ response.result.tools.forEach((tool, index) => {
189
+ console.log(`${index + 1}. ${tool.name}`);
190
+ console.log(` ${tool.description}\n`);
191
+ });
192
+ } else {
193
+ console.log('Response:', JSON.stringify(response, null, 2));
194
+ }
195
+ } catch (e) {
196
+ console.log('✅ Connection successful but response parsing failed');
197
+ console.log('Raw response:', data);
179
198
  }
180
-
181
- console.log('\n🎉 You can now use ReportDash DataStore in Claude Desktop!');
182
- console.log('\nTry asking Claude: "list my reportdash datastore sources"');
183
- } catch (e) {
184
- console.log('✅ Connection successful but response parsing failed');
185
- console.log('Raw response:', data);
186
199
  }
200
+
201
+ console.log('\n🎉 You can now use ReportDash DataStore in Claude Desktop!');
202
+ console.log('\nTry asking Claude: "list my reportdash datastore sources"');
187
203
  } else {
188
204
  console.log('❌ Connection failed');
189
205
  console.log(`Status: ${res.statusCode}`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "reportdash-datastore-mcp-claude-desktop",
3
- "version": "1.0.4",
3
+ "version": "1.0.5",
4
4
  "description": "ReportDash DataStore MCP server for Claude Desktop",
5
5
  "main": "index.js",
6
6
  "bin": {