@fruition/fcp-mcp-server 1.14.2 → 1.15.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/bin/unroo-heartbeat.sh +5 -2
- package/dist/index.js +88 -0
- package/package.json +1 -1
package/bin/unroo-heartbeat.sh
CHANGED
|
@@ -40,10 +40,12 @@ if [ -z "$UNROO_API_KEY" ]; then
|
|
|
40
40
|
exit 0
|
|
41
41
|
fi
|
|
42
42
|
|
|
43
|
-
# Get git remote URL (if in a git repo)
|
|
43
|
+
# Get git remote URL and branch (if in a git repo)
|
|
44
44
|
GIT_REMOTE=""
|
|
45
|
+
GIT_BRANCH=""
|
|
45
46
|
if git rev-parse --git-dir > /dev/null 2>&1; then
|
|
46
47
|
GIT_REMOTE=$(git remote get-url origin 2>/dev/null || echo "")
|
|
48
|
+
GIT_BRANCH=$(git symbolic-ref --short HEAD 2>/dev/null || echo "")
|
|
47
49
|
fi
|
|
48
50
|
|
|
49
51
|
# Get repo name from current directory
|
|
@@ -74,7 +76,8 @@ JSON_PAYLOAD=$(cat <<EOF
|
|
|
74
76
|
"machine_id": "${MACHINE_ID}",
|
|
75
77
|
"tool_name": "${TOOL_NAME:-}",
|
|
76
78
|
"tool_description": "${TOOL_DESCRIPTION:-}",
|
|
77
|
-
"project_slug": "${PROJECT_SLUG:-}"
|
|
79
|
+
"project_slug": "${PROJECT_SLUG:-}",
|
|
80
|
+
"git_branch": "${GIT_BRANCH}"
|
|
78
81
|
}
|
|
79
82
|
EOF
|
|
80
83
|
)
|
package/dist/index.js
CHANGED
|
@@ -591,6 +591,18 @@ class UnrooClient {
|
|
|
591
591
|
});
|
|
592
592
|
}
|
|
593
593
|
// ============================================================================
|
|
594
|
+
// Comment APIs
|
|
595
|
+
// ============================================================================
|
|
596
|
+
async addComment(taskId, input) {
|
|
597
|
+
return this.fetch(`/api/external/fcp/tasks/${encodeURIComponent(taskId)}/comments`, {
|
|
598
|
+
method: 'POST',
|
|
599
|
+
body: JSON.stringify(input),
|
|
600
|
+
});
|
|
601
|
+
}
|
|
602
|
+
async listComments(taskId) {
|
|
603
|
+
return this.fetch(`/api/external/fcp/tasks/${encodeURIComponent(taskId)}/comments`);
|
|
604
|
+
}
|
|
605
|
+
// ============================================================================
|
|
594
606
|
// Parking Lot / Backlog APIs
|
|
595
607
|
// ============================================================================
|
|
596
608
|
async logFutureWork(input) {
|
|
@@ -1509,6 +1521,47 @@ const TOOLS = [
|
|
|
1509
1521
|
required: ['task_id'],
|
|
1510
1522
|
},
|
|
1511
1523
|
},
|
|
1524
|
+
{
|
|
1525
|
+
name: 'unroo_add_comment',
|
|
1526
|
+
description: 'Add a comment to an Unroo task. Use this for progress updates, notes, or tagging people with @mentions. Comments sync to Jira and notify watchers. Use is_internal=true for team-only notes.',
|
|
1527
|
+
inputSchema: {
|
|
1528
|
+
type: 'object',
|
|
1529
|
+
properties: {
|
|
1530
|
+
task_id: {
|
|
1531
|
+
type: 'string',
|
|
1532
|
+
description: 'Task ID or Jira key (e.g., task_abc123 or FLYFRU-189)',
|
|
1533
|
+
},
|
|
1534
|
+
comment_text: {
|
|
1535
|
+
type: 'string',
|
|
1536
|
+
description: 'The comment content. Use @email to mention people (e.g., @tony.diaz@fruition.net)',
|
|
1537
|
+
},
|
|
1538
|
+
is_internal: {
|
|
1539
|
+
type: 'boolean',
|
|
1540
|
+
description: 'If true, comment is team-only (not synced to Jira, not visible to customers). Default: false',
|
|
1541
|
+
},
|
|
1542
|
+
mentions: {
|
|
1543
|
+
type: 'array',
|
|
1544
|
+
items: { type: 'string' },
|
|
1545
|
+
description: 'Email addresses of people to mention/notify (e.g., ["tony.diaz@fruition.net"])',
|
|
1546
|
+
},
|
|
1547
|
+
},
|
|
1548
|
+
required: ['task_id', 'comment_text'],
|
|
1549
|
+
},
|
|
1550
|
+
},
|
|
1551
|
+
{
|
|
1552
|
+
name: 'unroo_list_comments',
|
|
1553
|
+
description: 'List comments on an Unroo task. Returns all comments in reverse chronological order.',
|
|
1554
|
+
inputSchema: {
|
|
1555
|
+
type: 'object',
|
|
1556
|
+
properties: {
|
|
1557
|
+
task_id: {
|
|
1558
|
+
type: 'string',
|
|
1559
|
+
description: 'Task ID or Jira key (e.g., task_abc123 or FLYFRU-189)',
|
|
1560
|
+
},
|
|
1561
|
+
},
|
|
1562
|
+
required: ['task_id'],
|
|
1563
|
+
},
|
|
1564
|
+
},
|
|
1512
1565
|
{
|
|
1513
1566
|
name: 'unroo_get_my_tasks',
|
|
1514
1567
|
description: 'Get tasks assigned to the current user (based on API key). Useful for finding your work items.',
|
|
@@ -3061,6 +3114,41 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
3061
3114
|
],
|
|
3062
3115
|
};
|
|
3063
3116
|
}
|
|
3117
|
+
case 'unroo_add_comment': {
|
|
3118
|
+
const { task_id, comment_text, is_internal, mentions } = args;
|
|
3119
|
+
const commentResult = await unrooClient.addComment(task_id, {
|
|
3120
|
+
comment_text,
|
|
3121
|
+
is_internal,
|
|
3122
|
+
mentions,
|
|
3123
|
+
});
|
|
3124
|
+
return {
|
|
3125
|
+
content: [
|
|
3126
|
+
{
|
|
3127
|
+
type: 'text',
|
|
3128
|
+
text: JSON.stringify({
|
|
3129
|
+
success: true,
|
|
3130
|
+
message: `Comment added to task ${task_id}${is_internal ? ' (internal)' : ''}`,
|
|
3131
|
+
comment: commentResult.comment,
|
|
3132
|
+
}, null, 2),
|
|
3133
|
+
},
|
|
3134
|
+
],
|
|
3135
|
+
};
|
|
3136
|
+
}
|
|
3137
|
+
case 'unroo_list_comments': {
|
|
3138
|
+
const { task_id } = args;
|
|
3139
|
+
const commentsResult = await unrooClient.listComments(task_id);
|
|
3140
|
+
return {
|
|
3141
|
+
content: [
|
|
3142
|
+
{
|
|
3143
|
+
type: 'text',
|
|
3144
|
+
text: JSON.stringify({
|
|
3145
|
+
total: commentsResult.total,
|
|
3146
|
+
comments: commentsResult.comments,
|
|
3147
|
+
}, null, 2),
|
|
3148
|
+
},
|
|
3149
|
+
],
|
|
3150
|
+
};
|
|
3151
|
+
}
|
|
3064
3152
|
case 'unroo_get_my_tasks': {
|
|
3065
3153
|
const { status, limit } = args;
|
|
3066
3154
|
// Note: The API key determines the user, tasks are filtered server-side
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fruition/fcp-mcp-server",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.15.0",
|
|
4
4
|
"description": "MCP Server for FCP Launch Coordination System - enables Claude Code to interact with FCP launches and track development time",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|