super-feedback-mcp 0.2.0 → 0.2.2

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 CHANGED
@@ -39,7 +39,7 @@ async function callConvexAPI(endpoint, options) {
39
39
  // Create MCP server
40
40
  const server = new McpServer({
41
41
  name: "super-feedback",
42
- version: "0.2.0",
42
+ version: "0.2.2",
43
43
  });
44
44
  // Tool 1: Get feedback summary (lightweight overview)
45
45
  server.registerTool("get_feedback_summary", {
@@ -50,7 +50,13 @@ Returns:
50
50
  - Total comment count
51
51
  - Open (unresolved) count
52
52
  - Resolved count
53
- - List of comment IDs with brief info (feedback text, status, page path)
53
+ - List of comments with index, ID, feedback text, status, and page path
54
+
55
+ Comments are sorted by createdAt ASCENDING (oldest first), so:
56
+ - Index 1 = the FIRST/OLDEST comment added
57
+ - Index N = the NEWEST/most recent comment
58
+
59
+ This matches the order users see comments in the UI, so when a user says "fix comment #3", you can use index 3 to find the exact comment they're referring to.
54
60
 
55
61
  Use this first to understand what feedback exists, then use get_comment_details for full context on specific comments.`,
56
62
  inputSchema: {
@@ -89,10 +95,10 @@ Use this first to understand what feedback exists, then use get_comment_details
89
95
  page: c.page.path,
90
96
  })),
91
97
  };
92
- // Create human-readable summary
98
+ // Create human-readable summary with actual comment IDs
93
99
  const openComments = response.comments.filter(c => c.status === "open");
94
100
  const summary = openComments.length > 0
95
- ? openComments.map(c => `• #${c.index} [${c.status}] "${c.feedback.slice(0, 50)}..." (${c.page.path})`).join("\n")
101
+ ? openComments.map(c => `• [${c.id}] "${c.feedback.slice(0, 60)}${c.feedback.length > 60 ? "..." : ""}" (${c.page.path})`).join("\n")
96
102
  : "No open feedback.";
97
103
  return {
98
104
  content: [{
@@ -101,9 +107,10 @@ Use this first to understand what feedback exists, then use get_comment_details
101
107
 
102
108
  Total: ${response.totalCount} | Open: ${response.openCount} | Resolved: ${response.resolvedCount}
103
109
 
104
- ${response.openCount > 0 ? `Open feedback:\n${summary}` : "All feedback resolved! 🎉"}
110
+ ${response.openCount > 0 ? `Open feedback (${openComments.length}):\n${summary}` : "All feedback resolved! 🎉"}
105
111
 
106
- Use get_comment_details(commentId) to get full context for a specific comment.`,
112
+ To get full details for a comment, use: get_comment_details(commentId)
113
+ Example: get_comment_details("${openComments[0]?.id || "comment-id-here"}")`,
107
114
  }],
108
115
  structuredContent: output,
109
116
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "super-feedback-mcp",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "MCP server for Super Feedback - enables AI agents to query and resolve client feedback",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
package/src/index.ts CHANGED
@@ -115,7 +115,7 @@ async function callConvexAPI<T>(endpoint: string, options?: RequestInit): Promis
115
115
  // Create MCP server
116
116
  const server = new McpServer({
117
117
  name: "super-feedback",
118
- version: "0.2.0",
118
+ version: "0.2.2",
119
119
  });
120
120
 
121
121
  // Tool 1: Get feedback summary (lightweight overview)
@@ -129,7 +129,13 @@ Returns:
129
129
  - Total comment count
130
130
  - Open (unresolved) count
131
131
  - Resolved count
132
- - List of comment IDs with brief info (feedback text, status, page path)
132
+ - List of comments with index, ID, feedback text, status, and page path
133
+
134
+ Comments are sorted by createdAt ASCENDING (oldest first), so:
135
+ - Index 1 = the FIRST/OLDEST comment added
136
+ - Index N = the NEWEST/most recent comment
137
+
138
+ This matches the order users see comments in the UI, so when a user says "fix comment #3", you can use index 3 to find the exact comment they're referring to.
133
139
 
134
140
  Use this first to understand what feedback exists, then use get_comment_details for full context on specific comments.`,
135
141
  inputSchema: {
@@ -173,10 +179,10 @@ Use this first to understand what feedback exists, then use get_comment_details
173
179
  })),
174
180
  };
175
181
 
176
- // Create human-readable summary
182
+ // Create human-readable summary with actual comment IDs
177
183
  const openComments = response.comments.filter(c => c.status === "open");
178
184
  const summary = openComments.length > 0
179
- ? openComments.map(c => `• #${c.index} [${c.status}] "${c.feedback.slice(0, 50)}..." (${c.page.path})`).join("\n")
185
+ ? openComments.map(c => `• [${c.id}] "${c.feedback.slice(0, 60)}${c.feedback.length > 60 ? "..." : ""}" (${c.page.path})`).join("\n")
180
186
  : "No open feedback.";
181
187
 
182
188
  return {
@@ -186,9 +192,10 @@ Use this first to understand what feedback exists, then use get_comment_details
186
192
 
187
193
  Total: ${response.totalCount} | Open: ${response.openCount} | Resolved: ${response.resolvedCount}
188
194
 
189
- ${response.openCount > 0 ? `Open feedback:\n${summary}` : "All feedback resolved! 🎉"}
195
+ ${response.openCount > 0 ? `Open feedback (${openComments.length}):\n${summary}` : "All feedback resolved! 🎉"}
190
196
 
191
- Use get_comment_details(commentId) to get full context for a specific comment.`,
197
+ To get full details for a comment, use: get_comment_details(commentId)
198
+ Example: get_comment_details("${openComments[0]?.id || "comment-id-here"}")`,
192
199
  }],
193
200
  structuredContent: output,
194
201
  };