tuna-agent 0.1.143 → 0.1.144
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/dist/mcp/idea-server.js +18 -0
- package/package.json +1 -1
package/dist/mcp/idea-server.js
CHANGED
|
@@ -65,6 +65,8 @@ const TOOLS = [
|
|
|
65
65
|
properties: {
|
|
66
66
|
name: { type: 'string', description: 'Name/title of the idea' },
|
|
67
67
|
category: { type: 'string', description: 'Category of the idea (e.g. SaaS, Mobile App, AI Tool, etc.)' },
|
|
68
|
+
startup: { type: 'string', enum: ['tuctac', 'capple', 'thinkless'], description: 'Which startup this idea is scoped to (REQUIRED for scoped scans)' },
|
|
69
|
+
idea_kind: { type: 'string', enum: ['feature', 'improvement', 'expansion', 'counter-competitor'], description: 'Kind of idea relative to the startup (optional)' },
|
|
68
70
|
source: { type: 'string', enum: ['trending', 'research', 'social', 'creative'], description: 'Where the idea came from' },
|
|
69
71
|
strategy: { type: 'string', description: 'High-level strategy or approach for this idea (optional)' },
|
|
70
72
|
url: { type: 'string', description: 'Reference URL related to the idea (optional)' },
|
|
@@ -87,6 +89,8 @@ const TOOLS = [
|
|
|
87
89
|
idea_id: { type: 'string', description: 'The ID of the idea to update' },
|
|
88
90
|
name: { type: 'string', description: 'New name (optional)' },
|
|
89
91
|
category: { type: 'string', description: 'New category (optional)' },
|
|
92
|
+
startup: { type: 'string', enum: ['tuctac', 'capple', 'thinkless'], description: 'New startup scope (optional)' },
|
|
93
|
+
idea_kind: { type: 'string', enum: ['feature', 'improvement', 'expansion', 'counter-competitor'], description: 'New idea kind (optional)' },
|
|
90
94
|
status: { type: 'string', enum: ['new', 'watching', 'validated', 'archived'], description: 'New status (optional)' },
|
|
91
95
|
score: { type: 'number', description: 'New score (optional)' },
|
|
92
96
|
notes: { type: 'string', description: 'New notes (optional)' },
|
|
@@ -109,6 +113,8 @@ const TOOLS = [
|
|
|
109
113
|
properties: {
|
|
110
114
|
status: { type: 'string', enum: ['new', 'watching', 'validated', 'archived'], description: 'Filter by status (optional)' },
|
|
111
115
|
category: { type: 'string', description: 'Filter by category (optional)' },
|
|
116
|
+
startup: { type: 'string', enum: ['tuctac', 'capple', 'thinkless'], description: 'Filter by startup (optional)' },
|
|
117
|
+
idea_kind: { type: 'string', description: 'Filter by idea kind (optional)' },
|
|
112
118
|
source: { type: 'string', enum: ['trending', 'research', 'social', 'creative'], description: 'Filter by source (optional)' },
|
|
113
119
|
agent_id: { type: 'string', description: 'Filter by agent ID (optional, defaults to current agent)' },
|
|
114
120
|
page: { type: 'number', description: 'Page number (optional, default 1)' },
|
|
@@ -250,6 +256,10 @@ async function handleToolCall(config, toolName, args) {
|
|
|
250
256
|
body.competitors = args.competitors.split(',').map((c) => c.trim());
|
|
251
257
|
if (args.notes)
|
|
252
258
|
body.notes = args.notes;
|
|
259
|
+
if (args.startup)
|
|
260
|
+
body.startup = args.startup;
|
|
261
|
+
if (args.idea_kind)
|
|
262
|
+
body.idea_kind = args.idea_kind;
|
|
253
263
|
const data = await apiCall(config, 'POST', '/agent-idea', body);
|
|
254
264
|
return { content: [{ type: 'text', text: `Idea "${data.name}" created (ID: ${data._id})` }] };
|
|
255
265
|
}
|
|
@@ -282,6 +292,10 @@ async function handleToolCall(config, toolName, args) {
|
|
|
282
292
|
body.competitors = args.competitors.split(',').map((c) => c.trim());
|
|
283
293
|
if (args.times_seen)
|
|
284
294
|
body.times_seen = Number(args.times_seen);
|
|
295
|
+
if (args.startup)
|
|
296
|
+
body.startup = args.startup;
|
|
297
|
+
if (args.idea_kind)
|
|
298
|
+
body.idea_kind = args.idea_kind;
|
|
285
299
|
const data = await apiCall(config, 'PUT', `/agent-idea/${args.idea_id}`, body);
|
|
286
300
|
return { content: [{ type: 'text', text: `Idea "${data.name}" updated (ID: ${data._id})` }] };
|
|
287
301
|
}
|
|
@@ -293,6 +307,10 @@ async function handleToolCall(config, toolName, args) {
|
|
|
293
307
|
params.set('status', args.status);
|
|
294
308
|
if (args.category)
|
|
295
309
|
params.set('category', args.category);
|
|
310
|
+
if (args.startup)
|
|
311
|
+
params.set('startup', args.startup);
|
|
312
|
+
if (args.idea_kind)
|
|
313
|
+
params.set('idea_kind', args.idea_kind);
|
|
296
314
|
if (args.source)
|
|
297
315
|
params.set('source', args.source);
|
|
298
316
|
if (args.page)
|