mcp-server-moscow 0.0.4 → 0.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.
- package/dist/index.js +23 -7
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -11,7 +11,6 @@ const __dirname = path.dirname(__filename);
|
|
|
11
11
|
// Load .env from the project root relative to this file's location
|
|
12
12
|
dotenv.config({ path: path.resolve(__dirname, '../.env') });
|
|
13
13
|
const SUPABASE_URL = process.env.SUPABASE_URL || 'https://jnxbtfiwzaxwheifuhuf.supabase.co';
|
|
14
|
-
const DEFAULT_TOPIC = process.env.TOPIC || 'default';
|
|
15
14
|
const DEFAULT_BOARD_ID = process.env.BOARD_ID || undefined;
|
|
16
15
|
if (!SUPABASE_URL) {
|
|
17
16
|
console.error('Missing SUPABASE_URL environment variable');
|
|
@@ -79,6 +78,14 @@ server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
|
79
78
|
type: 'string',
|
|
80
79
|
description: 'Optional board ID to assign the task to.',
|
|
81
80
|
},
|
|
81
|
+
github_commit_hash: {
|
|
82
|
+
type: 'string',
|
|
83
|
+
description: 'Optional GitHub commit hash related to this task.',
|
|
84
|
+
},
|
|
85
|
+
duration_minutes: {
|
|
86
|
+
type: 'integer',
|
|
87
|
+
description: 'Estimated duration in minutes.',
|
|
88
|
+
},
|
|
82
89
|
},
|
|
83
90
|
required: ['title'],
|
|
84
91
|
},
|
|
@@ -119,6 +126,14 @@ server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
|
119
126
|
type: 'string',
|
|
120
127
|
description: 'Move the task to a different board by providing the new board ID.',
|
|
121
128
|
},
|
|
129
|
+
github_commit_hash: {
|
|
130
|
+
type: 'string',
|
|
131
|
+
description: 'The new GitHub commit hash.',
|
|
132
|
+
},
|
|
133
|
+
duration_minutes: {
|
|
134
|
+
type: 'integer',
|
|
135
|
+
description: 'The new estimated duration in minutes.',
|
|
136
|
+
},
|
|
122
137
|
},
|
|
123
138
|
required: ['id'],
|
|
124
139
|
},
|
|
@@ -176,7 +191,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request, extra) => {
|
|
|
176
191
|
// Extract dynamic auth from the transport metadata if available
|
|
177
192
|
const env = extra?.env || {};
|
|
178
193
|
const mcpToken = env.MCP_TOKEN || process.env.MCP_TOKEN;
|
|
179
|
-
const topicScope = request.params.arguments?.topic
|
|
194
|
+
const topicScope = request.params.arguments?.topic;
|
|
180
195
|
// Board from env takes priority (locks MCP to single board), otherwise use request arg or default
|
|
181
196
|
const envBoardId = env.BOARD_ID || DEFAULT_BOARD_ID;
|
|
182
197
|
const boardScope = envBoardId || request.params.arguments?.board_id;
|
|
@@ -185,8 +200,8 @@ server.setRequestHandler(CallToolRequestSchema, async (request, extra) => {
|
|
|
185
200
|
case 'list_tasks': {
|
|
186
201
|
try {
|
|
187
202
|
const params = {};
|
|
188
|
-
// Only filter by topic if explicitly provided
|
|
189
|
-
const explicitTopic = request.params.arguments?.topic
|
|
203
|
+
// Only filter by topic if explicitly provided
|
|
204
|
+
const explicitTopic = request.params.arguments?.topic;
|
|
190
205
|
if (explicitTopic) {
|
|
191
206
|
params.topic = explicitTopic;
|
|
192
207
|
}
|
|
@@ -216,7 +231,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request, extra) => {
|
|
|
216
231
|
}
|
|
217
232
|
}
|
|
218
233
|
case 'create_task': {
|
|
219
|
-
const { title, description, topic, priority, status, board_id } = request.params.arguments || {};
|
|
234
|
+
const { title, description, topic, priority, status, board_id, github_commit_hash, duration_minutes } = request.params.arguments || {};
|
|
220
235
|
// Use env board if locked, otherwise use provided board_id
|
|
221
236
|
const taskBoardId = envBoardId || board_id || null;
|
|
222
237
|
try {
|
|
@@ -227,6 +242,8 @@ server.setRequestHandler(CallToolRequestSchema, async (request, extra) => {
|
|
|
227
242
|
priority,
|
|
228
243
|
status,
|
|
229
244
|
board_id: taskBoardId,
|
|
245
|
+
github_commit_hash,
|
|
246
|
+
duration_minutes,
|
|
230
247
|
}, {
|
|
231
248
|
headers: {
|
|
232
249
|
Authorization: `Bearer ${authValue}`,
|
|
@@ -311,8 +328,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request, extra) => {
|
|
|
311
328
|
}
|
|
312
329
|
}
|
|
313
330
|
case 'find_task': {
|
|
314
|
-
const { id, name, topic, board_id } = request.params.arguments ||
|
|
315
|
-
{};
|
|
331
|
+
const { id, name, topic, board_id } = request.params.arguments || {};
|
|
316
332
|
if (!id && !name) {
|
|
317
333
|
return {
|
|
318
334
|
content: [
|