@nodusapi/mcp-server 1.0.2 → 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.
package/QUICKSTART.md CHANGED
@@ -20,7 +20,7 @@ Open Cursor settings and add to MCP servers:
20
20
  "args": ["-y", "@nodusapi/mcp-server"],
21
21
  "env": {
22
22
  "NODUS_API_KEY": "nds_your_actual_key_here",
23
- "NODUS_PROJECT_ID": "optional_project_id"
23
+ "NODUS_PROJECT_SLUG": "optional_project_slug"
24
24
  }
25
25
  }
26
26
  }
@@ -43,25 +43,81 @@ Try these commands in Cursor:
43
43
  "List all tasks"
44
44
  ```
45
45
 
46
+ ## Available MCP Tools
47
+
48
+ ### Project Management (3 tools)
49
+ - `list_projects` - List all your projects
50
+ - `create_project` - Create a new project with automatic API key
51
+ - `switch_project` - Switch to a different project
52
+
53
+ ### Schema Management (6 tools)
54
+ - `list_tables` - List all tables in your project
55
+ - `get_table_schema` - Get detailed schema for a table
56
+ - `create_table` - Create a new table
57
+ - `update_table` - Update table name
58
+ - `add_column` - Add a new column to a table
59
+ - `update_column` - Update column properties
60
+
61
+ ### Data Operations (2 tools)
62
+ - `get_row` - Get a single row by ID
63
+ - `create_row` - Create a new row
64
+
46
65
  ## Common Use Cases
47
66
 
48
- ### Data Management
49
- - "Show me the last 10 users"
50
- - "Find users where status is 'active'"
51
- - "Update user with ID xxx and set name to 'John'"
52
- - "Delete the task with ID yyy"
67
+ ### 📊 Schema Design
68
+
69
+ **Create a new table:**
70
+ ```
71
+ "Create a new table called 'users' with slug 'users'"
72
+ "Create a 'blog_posts' table"
73
+ ```
74
+
75
+ **Add columns:**
76
+ ```
77
+ "Add a 'title' string column to the users table"
78
+ "Add an 'email' string column (required) to users"
79
+ "Add a 'published_at' datetime column to blog_posts"
80
+ "Add a 'content' text column to blog_posts with default value 'Draft'"
81
+ ```
82
+
83
+ **View schema:**
84
+ ```
85
+ "Show me the schema for the users table"
86
+ "What columns does the blog_posts table have?"
87
+ "List all my database tables"
88
+ ```
89
+
90
+ **Update schema:**
91
+ ```
92
+ "Rename the users table to 'customers'"
93
+ "Make the email column required in users table"
94
+ "Update the title column to be required"
95
+ ```
96
+
97
+ ### 💾 Data Management
98
+
99
+ **Create records:**
100
+ ```
101
+ "Create a new user with name 'John Doe' and email 'john@example.com'"
102
+ "Add a blog post with title 'My First Post' and content 'Hello World'"
103
+ "Insert a task with title 'Learn MCP' and status 'pending'"
104
+ ```
53
105
 
54
- ### Schema Design
55
- - "What columns does the users table have?"
56
- - "Create a blog_posts table"
57
- - "Add a 'published_at' datetime column to posts"
58
- - "Make the email column required in users table"
106
+ **Read records:**
107
+ ```
108
+ "Get the user with ID abc-123"
109
+ "Show me the blog post with ID xyz-456"
110
+ "Retrieve the task with ID def-789"
111
+ ```
59
112
 
60
- ### Project Management
61
- - "List all my projects"
62
- - "Create a new project called 'Production API'"
63
- - "Show API keys for project xxx"
64
- - "Generate a new API key named 'staging-key'"
113
+ ### 🎯 Project Management
114
+
115
+ **Work with projects:**
116
+ ```
117
+ "List all my projects"
118
+ "Create a new project called 'Production API'"
119
+ "Switch to project 'my-dev-project'"
120
+ ```
65
121
 
66
122
  ## Troubleshooting
67
123
 
@@ -90,7 +146,7 @@ Try these commands in Cursor:
90
146
  "args": ["-y", "@nodusapi/mcp-server"],
91
147
  "env": {
92
148
  "NODUS_API_KEY": "nds_dev_key",
93
- "NODUS_PROJECT_ID": "dev_project_id"
149
+ "NODUS_PROJECT_SLUG": "dev-project"
94
150
  }
95
151
  },
96
152
  "nodus-prod": {
@@ -98,7 +154,7 @@ Try these commands in Cursor:
98
154
  "args": ["-y", "@nodusapi/mcp-server"],
99
155
  "env": {
100
156
  "NODUS_API_KEY": "nds_prod_key",
101
- "NODUS_PROJECT_ID": "prod_project_id"
157
+ "NODUS_PROJECT_SLUG": "production"
102
158
  }
103
159
  }
104
160
  }
@@ -136,4 +192,115 @@ Try these commands in Cursor:
136
192
  4. **Batch operations**: Ask for multiple operations in one message
137
193
  5. **Context aware**: The LLM remembers previous table structures
138
194
 
195
+ ## Complete Workflow Examples
196
+
197
+ ### Example 1: Building a Blog System
198
+
199
+ ```
200
+ # Step 1: Create tables
201
+ "Create a 'posts' table and an 'authors' table"
202
+
203
+ # Step 2: Add columns to posts
204
+ "Add these columns to posts table:
205
+ - title (string, required)
206
+ - slug (string, required)
207
+ - content (text, required)
208
+ - published_at (datetime)
209
+ - author_id (string, required)"
210
+
211
+ # Step 3: Add columns to authors
212
+ "Add these columns to authors table:
213
+ - name (string, required)
214
+ - email (string, required)
215
+ - bio (text)"
216
+
217
+ # Step 4: Create sample data
218
+ "Create an author with name 'John Doe' and email 'john@example.com'"
219
+
220
+ # Step 5: Create a blog post
221
+ "Create a post with title 'Hello World', slug 'hello-world',
222
+ content 'This is my first post', and use the author ID from the previous author"
223
+
224
+ # Step 6: Query specific data
225
+ "Get the post with ID xyz-123"
226
+ "Retrieve the author with ID abc-456"
227
+ ```
228
+
229
+ ### Example 2: Task Management App
230
+
231
+ ```
232
+ # Create table
233
+ "Create a table called 'tasks' with slug 'tasks'"
234
+
235
+ # Add columns
236
+ "Add a 'title' string column (required) to tasks"
237
+ "Add a 'description' text column to tasks"
238
+ "Add a 'status' string column to tasks with default value 'pending'"
239
+ "Add a 'due_date' datetime column to tasks"
240
+ "Add a 'priority' string column to tasks"
241
+
242
+ # Add tasks
243
+ "Create a task with title 'Buy groceries', status 'pending', priority 'high'"
244
+ "Create a task with title 'Finish report', status 'in_progress', priority 'high'"
245
+ "Create a task with title 'Clean house', status 'pending', priority 'low'"
246
+
247
+ # Query specific tasks
248
+ "Get the task with ID task-123"
249
+ "Show me the task with ID task-456"
250
+ ```
251
+
252
+ ### Example 3: E-commerce Product Catalog
253
+
254
+ ```
255
+ # Setup schema
256
+ "Create tables: products, categories, and orders"
257
+
258
+ # Products table
259
+ "Add columns to products:
260
+ - name (string, required)
261
+ - sku (string, required)
262
+ - price (float, required)
263
+ - description (text)
264
+ - stock (integer, default: 0)
265
+ - category_id (string)
266
+ - is_active (boolean, default: true)"
267
+
268
+ # Categories table
269
+ "Add to categories: name (string, required), slug (string, required)"
270
+
271
+ # Orders table
272
+ "Add to orders:
273
+ - product_id (string, required)
274
+ - quantity (integer, required)
275
+ - total_price (float, required)
276
+ - status (string, default: 'pending')"
277
+
278
+ # Add sample data
279
+ "Create a category called 'Electronics' with slug 'electronics'"
280
+ "Create a product: name 'Laptop', sku 'LAP-001', price 999.99,
281
+ category_id from electronics category, stock 50"
282
+
283
+ # Retrieve specific items
284
+ "Get the product with ID prod-123"
285
+ "Show me the category with ID cat-456"
286
+ ```
287
+
288
+ ## Advanced Features
289
+
290
+ ### Schema Exploration
291
+
292
+ ```
293
+ "Show me all my tables"
294
+ "What is the schema for the users table?"
295
+ "List all columns in the products table"
296
+ ```
297
+
298
+ ### Data Retrieval
299
+
300
+ ```
301
+ "Get the user with ID abc-123"
302
+ "Show me the order with ID order-456"
303
+ "Retrieve the post with ID post-789"
304
+ ```
305
+
139
306
  Enjoy building with NodusAPI and AI! 🚀
package/README.md CHANGED
@@ -58,7 +58,7 @@ Set these environment variables in your MCP client configuration:
58
58
 
59
59
  ```bash
60
60
  NODUS_API_KEY=nds_your_api_key_here
61
- NODUS_PROJECT_ID=your_project_uuid (optional)
61
+ NODUS_PROJECT_SLUG=your_project_slug (optional)
62
62
  NODUS_API_URL=https://api.nodus.com (optional, defaults to production)
63
63
  ```
64
64
 
@@ -67,7 +67,7 @@ NODUS_API_URL=https://api.nodus.com (optional, defaults to production)
67
67
  If no configuration is found, the server will prompt you for:
68
68
  - API Key
69
69
  - API URL (defaults to https://api.nodus.com)
70
- - Project ID (optional)
70
+ - Project Slug (optional)
71
71
 
72
72
  Configuration is saved to `~/.nodus-mcp/config.json` for future use.
73
73
 
@@ -78,7 +78,7 @@ Create `~/.nodus-mcp/config.json`:
78
78
  ```json
79
79
  {
80
80
  "apiKey": "nds_your_api_key_here",
81
- "projectId": "your_project_uuid",
81
+ "projectSlug": "your_project_slug",
82
82
  "apiUrl": "https://api.nodus.com"
83
83
  }
84
84
  ```
@@ -95,7 +95,7 @@ Add to your `.cursor/settings.json` or Cursor MCP settings:
95
95
  "args": ["-y", "@nodusapi/mcp-server"],
96
96
  "env": {
97
97
  "NODUS_API_KEY": "nds_your_api_key_here",
98
- "NODUS_PROJECT_ID": "your_project_id"
98
+ "NODUS_PROJECT_SLUG": "your_project_slug"
99
99
  }
100
100
  }
101
101
  }
@@ -0,0 +1,174 @@
1
+ # MCP Authentication Troubleshooting Guide
2
+
3
+ ## Problem: "Authentication Required" Error
4
+
5
+ When connecting to Nodus MCP Server, you receive:
6
+ ```
7
+ Authentication required
8
+ ```
9
+
10
+ ## Root Causes & Solutions
11
+
12
+ ### 1. Invalid or Expired API Key
13
+
14
+ **Symptoms:**
15
+ - 401 Unauthorized error
16
+ - "Authentication required" message
17
+
18
+ **Solution:**
19
+ Create a new API key from Nodus Dashboard:
20
+
21
+ 1. Go to Settings → API Keys
22
+ 2. Click "Create New API Key"
23
+ 3. Give it a name (e.g., "MCP Server")
24
+ 4. **Copy the full key immediately** (it won't be shown again)
25
+ 5. Update your MCP configuration
26
+
27
+ ### 2. Wrong API Key Format
28
+
29
+ **Check:**
30
+ - API key should start with `nodus_`
31
+ - Should be approximately 70-80 characters long
32
+ - Example: `nodus_32c664c79c872c136b9716bca343bf0659efb63ba6efe32c936553050ad5ffde`
33
+
34
+ **Common mistakes:**
35
+ - Using the key prefix instead of full key
36
+ - Using an old key format (nds_ prefix)
37
+ - Copying key with extra spaces or newlines
38
+
39
+ ### 3. Backend Not Running
40
+
41
+ **Check:**
42
+ ```bash
43
+ curl http://localhost:3000/health
44
+ ```
45
+
46
+ Should return: `{"status":"ok"}`
47
+
48
+ If not running:
49
+ ```bash
50
+ cd /path/to/nodusapi
51
+ npm run dev
52
+ ```
53
+
54
+ ### 4. Wrong API URL
55
+
56
+ **Check your configuration:**
57
+ - Local development: `http://localhost:3000`
58
+ - Production: `https://api.nodus.com`
59
+
60
+ **Don't use:**
61
+ - URLs with trailing slash: `http://localhost:3000/` ❌
62
+ - HTTPS for localhost: `https://localhost:3000` ❌
63
+
64
+ ### 5. Case Sensitivity Issues
65
+
66
+ HTTP headers are case-insensitive, but some clients may have issues.
67
+
68
+ **Correct header:** `X-API-Key` or `x-api-key` (both work)
69
+
70
+ ## Testing Your API Key
71
+
72
+ ### Method 1: Using curl
73
+ ```bash
74
+ curl http://localhost:3000/api/v1/projects \
75
+ -H "X-API-Key: YOUR_API_KEY_HERE"
76
+ ```
77
+
78
+ Expected response:
79
+ ```json
80
+ {
81
+ "success": true,
82
+ "data": [...]
83
+ }
84
+ ```
85
+
86
+ ### Method 2: Using the test script
87
+
88
+ Create `test-auth.js`:
89
+ ```javascript
90
+ import axios from 'axios';
91
+
92
+ const apiKey = 'YOUR_API_KEY_HERE';
93
+ const apiUrl = 'http://localhost:3000';
94
+
95
+ console.log('Key Prefix:', apiKey.substring(0, 18));
96
+
97
+ try {
98
+ const response = await axios.get(`${apiUrl}/api/v1/projects`, {
99
+ headers: { 'X-API-Key': apiKey }
100
+ });
101
+ console.log('✅ Success!', response.data);
102
+ } catch (error) {
103
+ console.log('❌ Error:', error.response?.data || error.message);
104
+ }
105
+ ```
106
+
107
+ Run:
108
+ ```bash
109
+ node test-auth.js
110
+ ```
111
+
112
+ ### Method 3: Check MCP Server Logs
113
+
114
+ When running MCP server in Cursor, check the MCP logs:
115
+ 1. Open Cursor Command Palette (Cmd/Ctrl + Shift + P)
116
+ 2. Search for "MCP: Show Logs"
117
+ 3. Look for authentication errors
118
+
119
+ ## Valid MCP Configuration
120
+
121
+ ```json
122
+ {
123
+ "mcpServers": {
124
+ "nodus": {
125
+ "command": "npx",
126
+ "args": ["-y", "@nodusapi/mcp-server@latest"],
127
+ "env": {
128
+ "NODUS_API_URL": "http://localhost:3000",
129
+ "NODUS_API_KEY": "nodus_your_full_api_key_here",
130
+ "NODUS_PROJECT_SLUG": "your-project-slug"
131
+ }
132
+ }
133
+ }
134
+ }
135
+ ```
136
+
137
+ ## Debugging Checklist
138
+
139
+ - [ ] Backend is running (test with `/health` endpoint)
140
+ - [ ] API key is valid (test with curl)
141
+ - [ ] API key starts with `nodus_`
142
+ - [ ] API key is the full key (not just prefix)
143
+ - [ ] API URL is correct (no trailing slash)
144
+ - [ ] Project slug exists in your account
145
+ - [ ] MCP server version is latest (`@latest` in config)
146
+
147
+ ## Getting Help
148
+
149
+ If still having issues:
150
+
151
+ 1. Check backend logs: Look for authentication attempts in your API server logs
152
+ 2. Check MCP logs: Look for connection errors in Cursor MCP logs
153
+ 3. Verify API key in database: Ensure the key exists and is active
154
+ 4. Test with a fresh API key: Create a new one from dashboard
155
+
156
+ ## Common Error Messages
157
+
158
+ | Error | Meaning | Solution |
159
+ |-------|---------|----------|
160
+ | "Authentication required" | No valid API key found | Create new API key |
161
+ | "Invalid API key format" | Key doesn't start with `nodus_` | Use correct format |
162
+ | "Connection refused" | Backend not running | Start backend server |
163
+ | "Invalid API URL format" | Malformed URL | Check URL syntax |
164
+ | "Resource not found" | Wrong project slug | Verify project slug |
165
+
166
+ ## Quick Fix: Create New API Key
167
+
168
+ 1. **Open Nodus Dashboard** → Settings
169
+ 2. **Create API Key** → Give it a name
170
+ 3. **Copy the full key** (all ~70+ characters)
171
+ 4. **Update MCP config** in Cursor settings
172
+ 5. **Restart Cursor** to reload MCP servers
173
+
174
+ The most common issue is using an invalid or expired API key. Always create a fresh key from the dashboard if you're unsure.
@@ -5,7 +5,7 @@
5
5
  "args": ["-y", "@nodusapi/mcp-server"],
6
6
  "env": {
7
7
  "NODUS_API_KEY": "nds_your_api_key_here",
8
- "NODUS_PROJECT_ID": "your_project_id_here",
8
+ "NODUS_PROJECT_SLUG": "your_project_slug_here",
9
9
  "NODUS_API_URL": "https://api.nodus.com"
10
10
  }
11
11
  }
@@ -1,6 +1,6 @@
1
1
  export interface NodusConfig {
2
2
  apiKey: string;
3
- projectId?: string;
3
+ projectSlug?: string;
4
4
  apiUrl: string;
5
5
  }
6
6
  export interface Project {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"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"}
package/dist/config.js CHANGED
@@ -23,12 +23,12 @@ export async function saveConfig(config) {
23
23
  }
24
24
  export async function getConfig() {
25
25
  const apiKey = process.env.NODUS_API_KEY;
26
- const projectId = process.env.NODUS_PROJECT_ID;
26
+ const projectSlug = process.env.NODUS_PROJECT_SLUG;
27
27
  const apiUrl = process.env.NODUS_API_URL || 'https://api.nodus.com';
28
28
  if (apiKey) {
29
29
  return {
30
30
  apiKey,
31
- projectId,
31
+ projectSlug,
32
32
  apiUrl,
33
33
  };
34
34
  }
@@ -58,11 +58,11 @@ export async function promptForConfig() {
58
58
  throw new Error('API Key is required');
59
59
  }
60
60
  const apiUrl = await question('API URL (default: https://api.nodus.com): ');
61
- const projectId = await question('Project ID (optional, press Enter to skip): ');
61
+ const projectSlug = await question('Project Slug (optional, press Enter to skip): ');
62
62
  const config = {
63
63
  apiKey: apiKey.trim(),
64
64
  apiUrl: apiUrl.trim() || 'https://api.nodus.com',
65
- projectId: projectId.trim() || undefined,
65
+ projectSlug: projectSlug.trim() || undefined,
66
66
  };
67
67
  await saveConfig(config);
68
68
  console.error('\n✓ Configuration saved successfully!\n');
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -23,8 +23,8 @@ async function main() {
23
23
  console.error(`✓ Configuration validated`);
24
24
  console.error(`✓ API Key: ${maskApiKey(config.apiKey)}`);
25
25
  console.error(`✓ API URL: ${config.apiUrl}`);
26
- if (config.projectId) {
27
- console.error(`✓ Project ID: ${config.projectId}`);
26
+ if (config.projectSlug) {
27
+ console.error(`✓ Project Slug: ${config.projectSlug}`);
28
28
  }
29
29
  console.error('');
30
30
  }
@@ -50,9 +50,9 @@ async function main() {
50
50
  await server.connect(transport);
51
51
  console.error('✓ Nodus MCP Server is running!\n');
52
52
  console.error('Available capabilities:');
53
- console.error(' - Data CRUD: list_rows, get_row, create_row, update_row, delete_row');
53
+ console.error(' - Data CRUD: get_row, create_row');
54
54
  console.error(' - Schema Management: list_tables, get_table_schema, create_table, update_table, add_column, update_column');
55
- console.error(' - Project Management: list_projects, create_project, switch_project, list_api_keys, create_api_key');
55
+ console.error(' - Project Management: list_projects, create_project, switch_project');
56
56
  console.error(' - Resources: nodus://schemas/tables\n');
57
57
  console.error('Server is ready to receive requests from MCP clients.\n');
58
58
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"data-tools.d.ts","sourceRoot":"","sources":["../../src/tools/data-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAKnE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AASxD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,QAuQpE"}
1
+ {"version":3,"file":"data-tools.d.ts","sourceRoot":"","sources":["../../src/tools/data-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAKnE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAMxD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,QAoHpE"}
@@ -1,45 +1,8 @@
1
1
  import { ListToolsRequestSchema, CallToolRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
2
- import { ListRowsSchema, GetRowSchema, CreateRowSchema, UpdateRowSchema, DeleteRowSchema, } from '../utils/validation.js';
2
+ import { GetRowSchema, CreateRowSchema, } from '../utils/validation.js';
3
3
  export function registerDataTools(server, client) {
4
4
  server.setRequestHandler(ListToolsRequestSchema, async () => {
5
5
  const tools = [
6
- {
7
- name: 'list_rows',
8
- description: 'List rows from a table with pagination and filtering support',
9
- inputSchema: {
10
- type: 'object',
11
- properties: {
12
- tableSlug: {
13
- type: 'string',
14
- description: 'Table identifier (slug)',
15
- },
16
- page: {
17
- type: 'number',
18
- description: 'Page number for pagination',
19
- default: 1,
20
- },
21
- limit: {
22
- type: 'number',
23
- description: 'Number of rows per page (max 100)',
24
- default: 20,
25
- },
26
- orderBy: {
27
- type: 'string',
28
- description: 'Column to order by',
29
- },
30
- orderDir: {
31
- type: 'string',
32
- enum: ['ASC', 'DESC'],
33
- description: 'Sort direction',
34
- },
35
- filters: {
36
- type: 'object',
37
- description: 'Filters to apply (column: value pairs)',
38
- },
39
- },
40
- required: ['tableSlug'],
41
- },
42
- },
43
6
  {
44
7
  name: 'get_row',
45
8
  description: 'Get a single row by ID from a table',
@@ -76,46 +39,6 @@ export function registerDataTools(server, client) {
76
39
  required: ['tableSlug', 'data'],
77
40
  },
78
41
  },
79
- {
80
- name: 'update_row',
81
- description: 'Update an existing row in a table',
82
- inputSchema: {
83
- type: 'object',
84
- properties: {
85
- tableSlug: {
86
- type: 'string',
87
- description: 'Table identifier (slug)',
88
- },
89
- id: {
90
- type: 'string',
91
- description: 'Row UUID',
92
- },
93
- data: {
94
- type: 'object',
95
- description: 'Partial row data to update',
96
- },
97
- },
98
- required: ['tableSlug', 'id', 'data'],
99
- },
100
- },
101
- {
102
- name: 'delete_row',
103
- description: 'Delete a row from a table',
104
- inputSchema: {
105
- type: 'object',
106
- properties: {
107
- tableSlug: {
108
- type: 'string',
109
- description: 'Table identifier (slug)',
110
- },
111
- id: {
112
- type: 'string',
113
- description: 'Row UUID to delete',
114
- },
115
- },
116
- required: ['tableSlug', 'id'],
117
- },
118
- },
119
42
  ];
120
43
  return { tools };
121
44
  });
@@ -123,28 +46,6 @@ export function registerDataTools(server, client) {
123
46
  const { name, arguments: args } = request.params;
124
47
  try {
125
48
  switch (name) {
126
- case 'list_rows': {
127
- const params = ListRowsSchema.parse(args);
128
- const result = await client.listRows(params.tableSlug, {
129
- page: params.page,
130
- limit: params.limit,
131
- orderBy: params.orderBy,
132
- orderDir: params.orderDir,
133
- filters: params.filters,
134
- });
135
- return {
136
- content: [
137
- {
138
- type: 'text',
139
- text: JSON.stringify({
140
- rows: result.data,
141
- pagination: result.meta,
142
- message: `Found ${result.meta.total} rows in table "${params.tableSlug}"`,
143
- }, null, 2),
144
- },
145
- ],
146
- };
147
- }
148
49
  case 'get_row': {
149
50
  const params = GetRowSchema.parse(args);
150
51
  const row = await client.getRow(params.tableSlug, params.id);
@@ -175,36 +76,6 @@ export function registerDataTools(server, client) {
175
76
  ],
176
77
  };
177
78
  }
178
- case 'update_row': {
179
- const params = UpdateRowSchema.parse(args);
180
- const row = await client.updateRow(params.tableSlug, params.id, params.data);
181
- return {
182
- content: [
183
- {
184
- type: 'text',
185
- text: JSON.stringify({
186
- row,
187
- message: `Successfully updated row ${params.id} in table "${params.tableSlug}"`,
188
- }, null, 2),
189
- },
190
- ],
191
- };
192
- }
193
- case 'delete_row': {
194
- const params = DeleteRowSchema.parse(args);
195
- await client.deleteRow(params.tableSlug, params.id);
196
- return {
197
- content: [
198
- {
199
- type: 'text',
200
- text: JSON.stringify({
201
- success: true,
202
- message: `Successfully deleted row ${params.id} from table "${params.tableSlug}"`,
203
- }, null, 2),
204
- },
205
- ],
206
- };
207
- }
208
79
  default:
209
80
  throw new Error(`Unknown tool: ${name}`);
210
81
  }
@@ -1 +1 @@
1
- {"version":3,"file":"data-tools.js","sourceRoot":"","sources":["../../src/tools/data-tools.ts"],"names":[],"mappings":"AACA,OAAO,EACL,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EACL,cAAc,EACd,YAAY,EACZ,eAAe,EACf,eAAe,EACf,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,UAAU,iBAAiB,CAAC,MAAc,EAAE,MAAmB;IACnE,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QACxD,MAAM,KAAK,GAAG;YACZ;gBACE,IAAI,EAAE,WAAW;gBACjB,WAAW,EAAE,8DAA8D;gBAC3E,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,SAAS,EAAE;4BACT,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,yBAAyB;yBACvC;wBACD,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,4BAA4B;4BACzC,OAAO,EAAE,CAAC;yBACX;wBACD,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,mCAAmC;4BAChD,OAAO,EAAE,EAAE;yBACZ;wBACD,OAAO,EAAE;4BACP,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,oBAAoB;yBAClC;wBACD,QAAQ,EAAE;4BACR,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;4BACrB,WAAW,EAAE,gBAAgB;yBAC9B;wBACD,OAAO,EAAE;4BACP,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,wCAAwC;yBACtD;qBACF;oBACD,QAAQ,EAAE,CAAC,WAAW,CAAC;iBACxB;aACF;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,qCAAqC;gBAClD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,SAAS,EAAE;4BACT,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,yBAAyB;yBACvC;wBACD,EAAE,EAAE;4BACF,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,UAAU;yBACxB;qBACF;oBACD,QAAQ,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC;iBAC9B;aACF;YACD;gBACE,IAAI,EAAE,YAAY;gBAClB,WAAW,EAAE,6BAA6B;gBAC1C,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,SAAS,EAAE;4BACT,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,yBAAyB;yBACvC;wBACD,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,gCAAgC;yBAC9C;qBACF;oBACD,QAAQ,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC;iBAChC;aACF;YACD;gBACE,IAAI,EAAE,YAAY;gBAClB,WAAW,EAAE,mCAAmC;gBAChD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,SAAS,EAAE;4BACT,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,yBAAyB;yBACvC;wBACD,EAAE,EAAE;4BACF,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,UAAU;yBACxB;wBACD,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,4BAA4B;yBAC1C;qBACF;oBACD,QAAQ,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC;iBACtC;aACF;YACD;gBACE,IAAI,EAAE,YAAY;gBAClB,WAAW,EAAE,2BAA2B;gBACxC,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,SAAS,EAAE;4BACT,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,yBAAyB;yBACvC;wBACD,EAAE,EAAE;4BACF,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,oBAAoB;yBAClC;qBACF;oBACD,QAAQ,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC;iBAC9B;aACF;SACF,CAAC;QAEF,OAAO,EAAE,KAAK,EAAE,CAAC;IACnB,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC9D,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;QAEjD,IAAI,CAAC;YACH,QAAQ,IAAI,EAAE,CAAC;gBACb,KAAK,WAAW,CAAC,CAAC,CAAC;oBACjB,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC1C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE;wBACrD,IAAI,EAAE,MAAM,CAAC,IAAI;wBACjB,KAAK,EAAE,MAAM,CAAC,KAAK;wBACnB,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,OAAO,EAAE,MAAM,CAAC,OAAO;qBACxB,CAAC,CAAC;oBAEH,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;oCACE,IAAI,EAAE,MAAM,CAAC,IAAI;oCACjB,UAAU,EAAE,MAAM,CAAC,IAAI;oCACvB,OAAO,EAAE,SAAS,MAAM,CAAC,IAAI,CAAC,KAAK,mBAAmB,MAAM,CAAC,SAAS,GAAG;iCAC1E,EACD,IAAI,EACJ,CAAC,CACF;6BACF;yBACF;qBACF,CAAC;gBACJ,CAAC;gBAED,KAAK,SAAS,CAAC,CAAC,CAAC;oBACf,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACxC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;oBAE7D,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;oCACE,GAAG;oCACH,OAAO,EAAE,iBAAiB,MAAM,CAAC,EAAE,gBAAgB,MAAM,CAAC,SAAS,GAAG;iCACvE,EACD,IAAI,EACJ,CAAC,CACF;6BACF;yBACF;qBACF,CAAC;gBACJ,CAAC;gBAED,KAAK,YAAY,CAAC,CAAC,CAAC;oBAClB,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC3C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;oBAElE,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;oCACE,GAAG;oCACH,OAAO,EAAE,sCAAsC,MAAM,CAAC,SAAS,GAAG;iCACnE,EACD,IAAI,EACJ,CAAC,CACF;6BACF;yBACF;qBACF,CAAC;gBACJ,CAAC;gBAED,KAAK,YAAY,CAAC,CAAC,CAAC;oBAClB,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC3C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;oBAE7E,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;oCACE,GAAG;oCACH,OAAO,EAAE,4BAA4B,MAAM,CAAC,EAAE,cAAc,MAAM,CAAC,SAAS,GAAG;iCAChF,EACD,IAAI,EACJ,CAAC,CACF;6BACF;yBACF;qBACF,CAAC;gBACJ,CAAC;gBAED,KAAK,YAAY,CAAC,CAAC,CAAC;oBAClB,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC3C,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;oBAEpD,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;oCACE,OAAO,EAAE,IAAI;oCACb,OAAO,EAAE,4BAA4B,MAAM,CAAC,EAAE,gBAAgB,MAAM,CAAC,SAAS,GAAG;iCAClF,EACD,IAAI,EACJ,CAAC,CACF;6BACF;yBACF;qBACF,CAAC;gBACJ,CAAC;gBAED;oBACE,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;4BACE,KAAK,EAAE,YAAY;4BACnB,IAAI,EAAE,IAAI;yBACX,EACD,IAAI,EACJ,CAAC,CACF;qBACF;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"data-tools.js","sourceRoot":"","sources":["../../src/tools/data-tools.ts"],"names":[],"mappings":"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"}
@@ -92,7 +92,7 @@ To test locally:
92
92
  2. Set environment variables:
93
93
  ```bash
94
94
  export NODUS_API_KEY="nds_your_key"
95
- export NODUS_PROJECT_ID="your_project_id"
95
+ export NODUS_PROJECT_SLUG="your_project_slug"
96
96
  ```
97
97
  3. Run: `npm start`
98
98
  4. Configure Cursor to use local server
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nodusapi/mcp-server",
3
- "version": "1.0.2",
3
+ "version": "1.2.0",
4
4
  "description": "MCP server for NodusAPI - Enable LLMs to interact with your BaaS backend",
5
5
  "type": "module",
6
6
  "bin": {