feedbackbasket-mcp-server 3.2.0 → 3.3.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/CHANGELOG.md +48 -36
- package/README.md +204 -202
- package/package.json +54 -54
package/CHANGELOG.md
CHANGED
|
@@ -1,36 +1,48 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
## [3.
|
|
4
|
-
|
|
5
|
-
### Added
|
|
6
|
-
|
|
7
|
-
- Added
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
-
|
|
36
|
-
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## [3.3.0] - 2026-09-23
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- Added team invitations and member project access changes, with explicit confirmation.
|
|
8
|
+
- Team lists now include project access settings.
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
|
|
12
|
+
- Existing credentials are limited by current member project access on each request.
|
|
13
|
+
- The CLI and both MCP transports use the same 33-operation contract.
|
|
14
|
+
|
|
15
|
+
## [3.2.0] - 2026-09-04
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
|
|
19
|
+
- Added structured close reasons and optional internal close notes to feedback tools.
|
|
20
|
+
|
|
21
|
+
### Changed
|
|
22
|
+
|
|
23
|
+
- Closing feedback now requires a close reason. The `OTHER` reason also requires a close note.
|
|
24
|
+
- The package and shared contract now report version `3.2.0`.
|
|
25
|
+
|
|
26
|
+
## [3.1.0] - 2026-08-22
|
|
27
|
+
|
|
28
|
+
### Added
|
|
29
|
+
|
|
30
|
+
- Documented browser OAuth as the recommended remote Streamable HTTP setup.
|
|
31
|
+
|
|
32
|
+
### Changed
|
|
33
|
+
|
|
34
|
+
- The STDIO package remains API-key based for local, CI, server, and unattended use.
|
|
35
|
+
- The package and shared contract now report version `3.1.0` with the same 31 operations.
|
|
36
|
+
|
|
37
|
+
## [3.0.0] - 2026-08-22
|
|
38
|
+
|
|
39
|
+
### Added
|
|
40
|
+
|
|
41
|
+
- Added the complete 31-tool FeedbackBasket product-operation contract.
|
|
42
|
+
- Added structured MCP output, tool schemas, annotations, input checks, and confirmation checks.
|
|
43
|
+
- Added parity, protocol, client-path, build, and package release checks.
|
|
44
|
+
|
|
45
|
+
### Changed
|
|
46
|
+
|
|
47
|
+
- Read and full keys now follow the same scopes and project restrictions as the live MCP server.
|
|
48
|
+
- The package, server, and shared contract now use version `3.0.0`.
|
package/README.md
CHANGED
|
@@ -1,202 +1,204 @@
|
|
|
1
|
-
# FeedbackBasket MCP Server
|
|
2
|
-
|
|
3
|
-
Model Context Protocol (MCP) server for [FeedbackBasket](https://feedbackbasket.com). Version `3.
|
|
4
|
-
|
|
5
|
-
Use a read key for queries. Use a full key for approved writes. A project-restricted key can access only its allowed projects. Project creation and team operations need an unrestricted full key. Each high-impact operation needs `confirm: true`.
|
|
6
|
-
|
|
7
|
-
Use this STDIO package with an MCP key for local processes, CI, servers, and unattended automation. For remote Streamable HTTP, add `https://feedbackbasket.com/.well-known/mcp` to the host, save it, and select **Authenticate**. Sign in, select an organization, select Read or Full access, select Selected projects or All projects, and select **Allow**. Browser OAuth is the recommended remote setup. It is not used by STDIO.
|
|
8
|
-
|
|
9
|
-
Read is selected by default. Full needs an explicit choice and an owner or administrator role. Selected projects limits access to the approved projects. All projects includes current and future projects and is required for project creation and team operations. Existing unrestricted MCP keys remain compatible. New browser grants never receive All-projects access silently. Never put an access token, refresh token, MCP key, or CLI token in source, prompts, logs, generated configuration, or final output.
|
|
10
|
-
|
|
11
|
-
## Installation & Setup
|
|
12
|
-
|
|
13
|
-
### 1. Generate API Key
|
|
14
|
-
|
|
15
|
-
1. Log into [feedbackbasket.com](https://feedbackbasket.com)
|
|
16
|
-
2. Go to **Settings** (sidebar)
|
|
17
|
-
3. Scroll to **MCP API Keys** section
|
|
18
|
-
4. Click **New API Key**
|
|
19
|
-
5. Name your key (e.g., "Claude Code", "Cursor", "Windsurf")
|
|
20
|
-
6. Select projects to grant access to (or leave empty for all projects)
|
|
21
|
-
7. Copy the generated key. It is shown only once. Keep it out of source, logs, prompts, and command history.
|
|
22
|
-
|
|
23
|
-
### 2. Configure Your Editor
|
|
24
|
-
|
|
25
|
-
#### Claude Code (CLI)
|
|
26
|
-
|
|
27
|
-
Set `FEEDBACKBASKET_API_KEY` in the environment that starts Claude Code. Then
|
|
28
|
-
add the server without putting the key in the command or shell history:
|
|
29
|
-
|
|
30
|
-
```bash
|
|
31
|
-
claude mcp add feedbackbasket -- npx -y feedbackbasket-mcp-server@3.
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
On native Windows, use `cmd /c npx` as the command because Claude Code cannot
|
|
35
|
-
start `npx` directly there.
|
|
36
|
-
|
|
37
|
-
#### Claude Desktop
|
|
38
|
-
|
|
39
|
-
Add to your Claude Desktop config (`claude_desktop_config.json`):
|
|
40
|
-
|
|
41
|
-
```json
|
|
42
|
-
{
|
|
43
|
-
"mcpServers": {
|
|
44
|
-
"feedbackbasket": {
|
|
45
|
-
"command": "npx",
|
|
46
|
-
"args": ["-y", "feedbackbasket-mcp-server@3.
|
|
47
|
-
"env": { "FEEDBACKBASKET_API_KEY": "${FEEDBACKBASKET_API_KEY}" }
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
#### Cursor / Windsurf
|
|
54
|
-
|
|
55
|
-
Add to your MCP config (`.cursor/mcp.json` or equivalent):
|
|
56
|
-
|
|
57
|
-
```json
|
|
58
|
-
{
|
|
59
|
-
"mcpServers": {
|
|
60
|
-
"feedbackbasket": {
|
|
61
|
-
"command": "npx",
|
|
62
|
-
"args": ["-y", "feedbackbasket-mcp-server@3.
|
|
63
|
-
"env": { "FEEDBACKBASKET_API_KEY": "${FEEDBACKBASKET_API_KEY}" }
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
#### Environment Variable
|
|
70
|
-
|
|
71
|
-
Use an environment variable instead of the `--api-key` argument. This keeps
|
|
72
|
-
the key out of process listings and saved command history.
|
|
73
|
-
|
|
74
|
-
```json
|
|
75
|
-
{
|
|
76
|
-
"mcpServers": {
|
|
77
|
-
"feedbackbasket": {
|
|
78
|
-
"command": "npx",
|
|
79
|
-
"args": ["-y", "feedbackbasket-mcp-server@3.
|
|
80
|
-
"env": {
|
|
81
|
-
"FEEDBACKBASKET_API_KEY": "${FEEDBACKBASKET_API_KEY}"
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
## Usage Examples
|
|
89
|
-
|
|
90
|
-
Once configured, ask your AI assistant:
|
|
91
|
-
|
|
92
|
-
### Project Overview
|
|
93
|
-
|
|
94
|
-
- "Show me all my FeedbackBasket projects"
|
|
95
|
-
- "How much feedback does each project have?"
|
|
96
|
-
|
|
97
|
-
### Bug Reports
|
|
98
|
-
|
|
99
|
-
- "Show me all open bug reports"
|
|
100
|
-
- "Get high severity bugs that haven't been addressed"
|
|
101
|
-
- "Find bugs related to authentication"
|
|
102
|
-
|
|
103
|
-
### Feedback Analysis
|
|
104
|
-
|
|
105
|
-
- "Show me negative feedback from my project"
|
|
106
|
-
- "Get all feature requests"
|
|
107
|
-
- "What are users asking for the most?"
|
|
108
|
-
- "Show me high priority feedback"
|
|
109
|
-
|
|
110
|
-
### Search
|
|
111
|
-
|
|
112
|
-
- "Search for feedback about 'payment issues'"
|
|
113
|
-
- "Find feedback mentioning 'mobile'"
|
|
114
|
-
|
|
115
|
-
### Agentic Workflows
|
|
116
|
-
|
|
117
|
-
- "Look at my bug reports and suggest which ones to fix first"
|
|
118
|
-
- "Summarize this week's feedback trends"
|
|
119
|
-
- "Are users happy with the new checkout flow?"
|
|
120
|
-
|
|
121
|
-
<!-- BEGIN GENERATED AGENT CAPABILITIES -->
|
|
122
|
-
## Agent capability contract
|
|
123
|
-
|
|
124
|
-
Agent surface version: `3.
|
|
125
|
-
|
|
126
|
-
| Product operation | CLI command | MCP tool | Required access | Confirm |
|
|
127
|
-
| --- | --- | --- | --- | --- |
|
|
128
|
-
| `projects.list` | `projects list` | `list_projects` | `read:projects` | No |
|
|
129
|
-
| `projects.get` | `projects show` | `get_project` | `read:projects; allowed project` | No |
|
|
130
|
-
| `projects.create` | `projects create` | `create_project` | `write:projects; unrestricted key` | No |
|
|
131
|
-
| `projects.update` | `projects update` | `update_project` | `write:projects; allowed project` | No |
|
|
132
|
-
| `projects.delete` | `projects delete` | `delete_project` | `write:projects; allowed project` | Yes |
|
|
133
|
-
| `feedback.list` | `feedback list` | `get_feedback` | `read:feedback; allowed project` | No |
|
|
134
|
-
| `feedback.get` | `feedback show` | `get_feedback_item` | `read:feedback; allowed project` | No |
|
|
135
|
-
| `feedback.search` | `feedback search` | `search_feedback` | `read:feedback; allowed project` | No |
|
|
136
|
-
| `feedback.create` | `feedback create` | `create_feedback` | `write:feedback; allowed project` | No |
|
|
137
|
-
| `feedback.update` | `feedback update` | `update_feedback` | `write:feedback; allowed project` | No |
|
|
138
|
-
| `feedback.delete` | `feedback delete` | `delete_feedback` | `write:feedback; allowed project` | Yes |
|
|
139
|
-
| `feedback.bulkUpdate` | `feedback bulk-update` | `bulk_update_feedback` | `write:feedback; allowed project` | Yes |
|
|
140
|
-
| `feedback.export` | `feedback export` | `export_feedback` | `read:feedback; allowed project` | No |
|
|
141
|
-
| `bugs.list` | `bugs list` | `get_bug_reports` | `read:feedback; allowed project` | No |
|
|
142
|
-
| `bugs.stats` | `bugs stats` | `get_bug_stats` | `read:feedback; allowed project` | No |
|
|
143
|
-
| `notes.create` | `feedback note` | `create_feedback_note` | `write:notes; allowed project` | No |
|
|
144
|
-
| `notes.update` | `feedback note update` | `update_feedback_note` | `write:notes; allowed project` | No |
|
|
145
|
-
| `notes.delete` | `feedback note delete` | `delete_feedback_note` | `write:notes; allowed project` | Yes |
|
|
146
|
-
| `replies.list` | `feedback replies` | `list_feedback_replies` | `read:feedback; allowed project` | No |
|
|
147
|
-
| `replies.send` | `feedback reply` | `send_feedback_reply` | `write:replies; allowed project` | Yes |
|
|
148
|
-
| `widget.getSettings` | `widget settings` | `get_widget_settings` | `read:projects; allowed project` | No |
|
|
149
|
-
| `widget.updateSettings` | `widget update`<br>`widget flow` | `update_widget_settings` | `write:widget; allowed project` | No |
|
|
150
|
-
| `widget.getScript` | `widget script` | `get_widget_script` | `read:projects; allowed project` | No |
|
|
151
|
-
| `mobile.get` | `mobile status`<br>`mobile verify` | `get_mobile_integration` | `read:projects; allowed project` | No |
|
|
152
|
-
| `mobile.update` | `mobile setup`<br>`mobile bundle`<br>`mobile conversations`<br>`mobile disable` | `update_mobile_integration` | `write:mobile; allowed project` | No |
|
|
153
|
-
| `mobile.rotateKey` | `mobile rotate-key` | `rotate_mobile_project_key` | `write:mobile; allowed project` | Yes |
|
|
154
|
-
| `waitlist.list` | `waitlist list` | `get_waitlist` | `read:feedback; allowed project` | No |
|
|
155
|
-
| `waitlist.export` | `waitlist export` | `export_waitlist` | `read:feedback; allowed project` | No |
|
|
156
|
-
| `team.list` | `team list` | `list_team_members` | `write:team; unrestricted key` | No |
|
|
157
|
-
| `team.updateRole` | `team role` | `update_team_member_role` | `write:team; unrestricted key` | Yes |
|
|
158
|
-
| `team.
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
- **
|
|
166
|
-
- **
|
|
167
|
-
- **
|
|
168
|
-
- **
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
-
|
|
196
|
-
-
|
|
197
|
-
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
1
|
+
# FeedbackBasket MCP Server
|
|
2
|
+
|
|
3
|
+
Model Context Protocol (MCP) server for [FeedbackBasket](https://feedbackbasket.com). Version `3.3.0` provides the same 33 product operations as the FeedbackBasket CLI and live Streamable HTTP server.
|
|
4
|
+
|
|
5
|
+
Use a read key for queries. Use a full key for approved writes. A project-restricted key can access only its allowed projects. Project creation and team operations need an unrestricted full key. Each high-impact operation needs `confirm: true`.
|
|
6
|
+
|
|
7
|
+
Use this STDIO package with an MCP key for local processes, CI, servers, and unattended automation. For remote Streamable HTTP, add `https://feedbackbasket.com/.well-known/mcp` to the host, save it, and select **Authenticate**. Sign in, select an organization, select Read or Full access, select Selected projects or All projects, and select **Allow**. Browser OAuth is the recommended remote setup. It is not used by STDIO.
|
|
8
|
+
|
|
9
|
+
Read is selected by default. Full needs an explicit choice and an owner or administrator role. Selected projects limits access to the approved projects. All projects includes current and future projects and is required for project creation and team operations. Existing unrestricted MCP keys remain compatible. New browser grants never receive All-projects access silently. Never put an access token, refresh token, MCP key, or CLI token in source, prompts, logs, generated configuration, or final output.
|
|
10
|
+
|
|
11
|
+
## Installation & Setup
|
|
12
|
+
|
|
13
|
+
### 1. Generate API Key
|
|
14
|
+
|
|
15
|
+
1. Log into [feedbackbasket.com](https://feedbackbasket.com)
|
|
16
|
+
2. Go to **Settings** (sidebar)
|
|
17
|
+
3. Scroll to **MCP API Keys** section
|
|
18
|
+
4. Click **New API Key**
|
|
19
|
+
5. Name your key (e.g., "Claude Code", "Cursor", "Windsurf")
|
|
20
|
+
6. Select projects to grant access to (or leave empty for all projects)
|
|
21
|
+
7. Copy the generated key. It is shown only once. Keep it out of source, logs, prompts, and command history.
|
|
22
|
+
|
|
23
|
+
### 2. Configure Your Editor
|
|
24
|
+
|
|
25
|
+
#### Claude Code (CLI)
|
|
26
|
+
|
|
27
|
+
Set `FEEDBACKBASKET_API_KEY` in the environment that starts Claude Code. Then
|
|
28
|
+
add the server without putting the key in the command or shell history:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
claude mcp add feedbackbasket -- npx -y feedbackbasket-mcp-server@3.3.0
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
On native Windows, use `cmd /c npx` as the command because Claude Code cannot
|
|
35
|
+
start `npx` directly there.
|
|
36
|
+
|
|
37
|
+
#### Claude Desktop
|
|
38
|
+
|
|
39
|
+
Add to your Claude Desktop config (`claude_desktop_config.json`):
|
|
40
|
+
|
|
41
|
+
```json
|
|
42
|
+
{
|
|
43
|
+
"mcpServers": {
|
|
44
|
+
"feedbackbasket": {
|
|
45
|
+
"command": "npx",
|
|
46
|
+
"args": ["-y", "feedbackbasket-mcp-server@3.3.0"],
|
|
47
|
+
"env": { "FEEDBACKBASKET_API_KEY": "${FEEDBACKBASKET_API_KEY}" }
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
#### Cursor / Windsurf
|
|
54
|
+
|
|
55
|
+
Add to your MCP config (`.cursor/mcp.json` or equivalent):
|
|
56
|
+
|
|
57
|
+
```json
|
|
58
|
+
{
|
|
59
|
+
"mcpServers": {
|
|
60
|
+
"feedbackbasket": {
|
|
61
|
+
"command": "npx",
|
|
62
|
+
"args": ["-y", "feedbackbasket-mcp-server@3.3.0"],
|
|
63
|
+
"env": { "FEEDBACKBASKET_API_KEY": "${FEEDBACKBASKET_API_KEY}" }
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
#### Environment Variable
|
|
70
|
+
|
|
71
|
+
Use an environment variable instead of the `--api-key` argument. This keeps
|
|
72
|
+
the key out of process listings and saved command history.
|
|
73
|
+
|
|
74
|
+
```json
|
|
75
|
+
{
|
|
76
|
+
"mcpServers": {
|
|
77
|
+
"feedbackbasket": {
|
|
78
|
+
"command": "npx",
|
|
79
|
+
"args": ["-y", "feedbackbasket-mcp-server@3.3.0"],
|
|
80
|
+
"env": {
|
|
81
|
+
"FEEDBACKBASKET_API_KEY": "${FEEDBACKBASKET_API_KEY}"
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## Usage Examples
|
|
89
|
+
|
|
90
|
+
Once configured, ask your AI assistant:
|
|
91
|
+
|
|
92
|
+
### Project Overview
|
|
93
|
+
|
|
94
|
+
- "Show me all my FeedbackBasket projects"
|
|
95
|
+
- "How much feedback does each project have?"
|
|
96
|
+
|
|
97
|
+
### Bug Reports
|
|
98
|
+
|
|
99
|
+
- "Show me all open bug reports"
|
|
100
|
+
- "Get high severity bugs that haven't been addressed"
|
|
101
|
+
- "Find bugs related to authentication"
|
|
102
|
+
|
|
103
|
+
### Feedback Analysis
|
|
104
|
+
|
|
105
|
+
- "Show me negative feedback from my project"
|
|
106
|
+
- "Get all feature requests"
|
|
107
|
+
- "What are users asking for the most?"
|
|
108
|
+
- "Show me high priority feedback"
|
|
109
|
+
|
|
110
|
+
### Search
|
|
111
|
+
|
|
112
|
+
- "Search for feedback about 'payment issues'"
|
|
113
|
+
- "Find feedback mentioning 'mobile'"
|
|
114
|
+
|
|
115
|
+
### Agentic Workflows
|
|
116
|
+
|
|
117
|
+
- "Look at my bug reports and suggest which ones to fix first"
|
|
118
|
+
- "Summarize this week's feedback trends"
|
|
119
|
+
- "Are users happy with the new checkout flow?"
|
|
120
|
+
|
|
121
|
+
<!-- BEGIN GENERATED AGENT CAPABILITIES -->
|
|
122
|
+
## Agent capability contract
|
|
123
|
+
|
|
124
|
+
Agent surface version: `3.3.0`. The CLI and both MCP transports implement the same 33 product operations.
|
|
125
|
+
|
|
126
|
+
| Product operation | CLI command | MCP tool | Required access | Confirm |
|
|
127
|
+
| --- | --- | --- | --- | --- |
|
|
128
|
+
| `projects.list` | `projects list` | `list_projects` | `read:projects` | No |
|
|
129
|
+
| `projects.get` | `projects show` | `get_project` | `read:projects; allowed project` | No |
|
|
130
|
+
| `projects.create` | `projects create` | `create_project` | `write:projects; unrestricted key` | No |
|
|
131
|
+
| `projects.update` | `projects update` | `update_project` | `write:projects; allowed project` | No |
|
|
132
|
+
| `projects.delete` | `projects delete` | `delete_project` | `write:projects; allowed project` | Yes |
|
|
133
|
+
| `feedback.list` | `feedback list` | `get_feedback` | `read:feedback; allowed project` | No |
|
|
134
|
+
| `feedback.get` | `feedback show` | `get_feedback_item` | `read:feedback; allowed project` | No |
|
|
135
|
+
| `feedback.search` | `feedback search` | `search_feedback` | `read:feedback; allowed project` | No |
|
|
136
|
+
| `feedback.create` | `feedback create` | `create_feedback` | `write:feedback; allowed project` | No |
|
|
137
|
+
| `feedback.update` | `feedback update` | `update_feedback` | `write:feedback; allowed project` | No |
|
|
138
|
+
| `feedback.delete` | `feedback delete` | `delete_feedback` | `write:feedback; allowed project` | Yes |
|
|
139
|
+
| `feedback.bulkUpdate` | `feedback bulk-update` | `bulk_update_feedback` | `write:feedback; allowed project` | Yes |
|
|
140
|
+
| `feedback.export` | `feedback export` | `export_feedback` | `read:feedback; allowed project` | No |
|
|
141
|
+
| `bugs.list` | `bugs list` | `get_bug_reports` | `read:feedback; allowed project` | No |
|
|
142
|
+
| `bugs.stats` | `bugs stats` | `get_bug_stats` | `read:feedback; allowed project` | No |
|
|
143
|
+
| `notes.create` | `feedback note` | `create_feedback_note` | `write:notes; allowed project` | No |
|
|
144
|
+
| `notes.update` | `feedback note update` | `update_feedback_note` | `write:notes; allowed project` | No |
|
|
145
|
+
| `notes.delete` | `feedback note delete` | `delete_feedback_note` | `write:notes; allowed project` | Yes |
|
|
146
|
+
| `replies.list` | `feedback replies` | `list_feedback_replies` | `read:feedback; allowed project` | No |
|
|
147
|
+
| `replies.send` | `feedback reply` | `send_feedback_reply` | `write:replies; allowed project` | Yes |
|
|
148
|
+
| `widget.getSettings` | `widget settings` | `get_widget_settings` | `read:projects; allowed project` | No |
|
|
149
|
+
| `widget.updateSettings` | `widget update`<br>`widget flow` | `update_widget_settings` | `write:widget; allowed project` | No |
|
|
150
|
+
| `widget.getScript` | `widget script` | `get_widget_script` | `read:projects; allowed project` | No |
|
|
151
|
+
| `mobile.get` | `mobile status`<br>`mobile verify` | `get_mobile_integration` | `read:projects; allowed project` | No |
|
|
152
|
+
| `mobile.update` | `mobile setup`<br>`mobile bundle`<br>`mobile conversations`<br>`mobile disable` | `update_mobile_integration` | `write:mobile; allowed project` | No |
|
|
153
|
+
| `mobile.rotateKey` | `mobile rotate-key` | `rotate_mobile_project_key` | `write:mobile; allowed project` | Yes |
|
|
154
|
+
| `waitlist.list` | `waitlist list` | `get_waitlist` | `read:feedback; allowed project` | No |
|
|
155
|
+
| `waitlist.export` | `waitlist export` | `export_waitlist` | `read:feedback; allowed project` | No |
|
|
156
|
+
| `team.list` | `team list` | `list_team_members` | `write:team; unrestricted key` | No |
|
|
157
|
+
| `team.updateRole` | `team role` | `update_team_member_role` | `write:team; unrestricted key` | Yes |
|
|
158
|
+
| `team.updateAccess` | `team access` | `update_team_member_access` | `write:team; unrestricted key` | Yes |
|
|
159
|
+
| `team.invite` | `team invite` | `invite_team_members` | `write:team; unrestricted key` | Yes |
|
|
160
|
+
| `team.remove` | `team remove` | `remove_team_member` | `write:team; unrestricted key` | Yes |
|
|
161
|
+
<!-- END GENERATED AGENT CAPABILITIES -->
|
|
162
|
+
|
|
163
|
+
## Security & Privacy
|
|
164
|
+
|
|
165
|
+
- **Explicit access** — Read keys query data. Full keys can use approved write operations.
|
|
166
|
+
- **Project-level permissions** — Restricted keys can access only selected projects.
|
|
167
|
+
- **Confirmation** — High-impact operations do not run without explicit confirmation.
|
|
168
|
+
- **API key authentication** — Secure token-based authentication
|
|
169
|
+
- **Usage tracking** — Monitor API key usage from your Settings page
|
|
170
|
+
- **Revokable access** — Deactivate or delete API keys instantly
|
|
171
|
+
|
|
172
|
+
## Troubleshooting
|
|
173
|
+
|
|
174
|
+
### "Invalid or missing API key"
|
|
175
|
+
|
|
176
|
+
- Check that your API key starts with `fb_key_`
|
|
177
|
+
- Ensure the key is still active in Settings > MCP API Keys
|
|
178
|
+
- Verify the key has access to at least one project
|
|
179
|
+
|
|
180
|
+
### "No projects found"
|
|
181
|
+
|
|
182
|
+
- Make sure your API key has been granted access to projects
|
|
183
|
+
- Check that you have projects in your FeedbackBasket account
|
|
184
|
+
|
|
185
|
+
### Connection Issues
|
|
186
|
+
|
|
187
|
+
- Ensure Node.js 18+ is installed
|
|
188
|
+
- Try clearing npx cache: `npx clear-npx-cache`
|
|
189
|
+
- For local development, add `--base-url http://localhost:3000`
|
|
190
|
+
|
|
191
|
+
## API Key Management
|
|
192
|
+
|
|
193
|
+
Visit [feedbackbasket.com/dashboard/settings](https://feedbackbasket.com/dashboard/settings) to:
|
|
194
|
+
|
|
195
|
+
- Generate new API keys
|
|
196
|
+
- Manage project access
|
|
197
|
+
- View usage statistics
|
|
198
|
+
- Activate/deactivate keys
|
|
199
|
+
- Delete keys
|
|
200
|
+
|
|
201
|
+
## Links
|
|
202
|
+
|
|
203
|
+
- [FeedbackBasket](https://feedbackbasket.com)
|
|
204
|
+
- [GitHub Issues](https://github.com/deifos/feedbackbasket-mcp/issues)
|
package/package.json
CHANGED
|
@@ -1,54 +1,54 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "feedbackbasket-mcp-server",
|
|
3
|
-
"version": "3.
|
|
4
|
-
"description": "MCP server for FeedbackBasket project data access",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"main": "dist/index.js",
|
|
7
|
-
"bin": {
|
|
8
|
-
"feedbackbasket-mcp-server": "dist/index.js"
|
|
9
|
-
},
|
|
10
|
-
"scripts": {
|
|
11
|
-
"build": "node node_modules/typescript/bin/tsc",
|
|
12
|
-
"start": "node dist/index.js",
|
|
13
|
-
"dev": "tsx src/index.ts",
|
|
14
|
-
"test": "tsx --test tests/*.test.ts",
|
|
15
|
-
"check:parity": "tsx scripts/check-parity.ts",
|
|
16
|
-
"docs:generate": "tsx scripts/generate-capabilities.ts",
|
|
17
|
-
"docs:check": "tsx scripts/generate-capabilities.ts --check",
|
|
18
|
-
"prepublishOnly": "npm run check:parity && npm run docs:check && npm test && npm run build"
|
|
19
|
-
},
|
|
20
|
-
"keywords": [
|
|
21
|
-
"mcp",
|
|
22
|
-
"feedbackbasket",
|
|
23
|
-
"feedback",
|
|
24
|
-
"projects",
|
|
25
|
-
"ai-assistant",
|
|
26
|
-
"claude-desktop",
|
|
27
|
-
"cursor"
|
|
28
|
-
],
|
|
29
|
-
"author": "deifosv",
|
|
30
|
-
"license": "MIT",
|
|
31
|
-
"repository": {
|
|
32
|
-
"type": "git",
|
|
33
|
-
"url": "https://github.com/deifos/feedbackbasket-mcp.git"
|
|
34
|
-
},
|
|
35
|
-
"homepage": "https://feedbackbasket.com",
|
|
36
|
-
"bugs": {
|
|
37
|
-
"url": "https://github.com/deifos/feedbackbasket-mcp/issues"
|
|
38
|
-
},
|
|
39
|
-
"dependencies": {
|
|
40
|
-
"@modelcontextprotocol/sdk": "1.30.0",
|
|
41
|
-
"axios": "^1.19.0",
|
|
42
|
-
"feedbackbasket-agent-contract": "3.
|
|
43
|
-
},
|
|
44
|
-
"devDependencies": {
|
|
45
|
-
"@types/node": "^20.0.0",
|
|
46
|
-
"tsx": "^4.0.0",
|
|
47
|
-
"typescript": "^5.0.0"
|
|
48
|
-
},
|
|
49
|
-
"files": [
|
|
50
|
-
"dist/**/*",
|
|
51
|
-
"README.md",
|
|
52
|
-
"CHANGELOG.md"
|
|
53
|
-
]
|
|
54
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "feedbackbasket-mcp-server",
|
|
3
|
+
"version": "3.3.0",
|
|
4
|
+
"description": "MCP server for FeedbackBasket project data access",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"bin": {
|
|
8
|
+
"feedbackbasket-mcp-server": "dist/index.js"
|
|
9
|
+
},
|
|
10
|
+
"scripts": {
|
|
11
|
+
"build": "node node_modules/typescript/bin/tsc",
|
|
12
|
+
"start": "node dist/index.js",
|
|
13
|
+
"dev": "tsx src/index.ts",
|
|
14
|
+
"test": "tsx --test tests/*.test.ts",
|
|
15
|
+
"check:parity": "tsx scripts/check-parity.ts",
|
|
16
|
+
"docs:generate": "tsx scripts/generate-capabilities.ts",
|
|
17
|
+
"docs:check": "tsx scripts/generate-capabilities.ts --check",
|
|
18
|
+
"prepublishOnly": "npm run check:parity && npm run docs:check && npm test && npm run build"
|
|
19
|
+
},
|
|
20
|
+
"keywords": [
|
|
21
|
+
"mcp",
|
|
22
|
+
"feedbackbasket",
|
|
23
|
+
"feedback",
|
|
24
|
+
"projects",
|
|
25
|
+
"ai-assistant",
|
|
26
|
+
"claude-desktop",
|
|
27
|
+
"cursor"
|
|
28
|
+
],
|
|
29
|
+
"author": "deifosv",
|
|
30
|
+
"license": "MIT",
|
|
31
|
+
"repository": {
|
|
32
|
+
"type": "git",
|
|
33
|
+
"url": "https://github.com/deifos/feedbackbasket-mcp.git"
|
|
34
|
+
},
|
|
35
|
+
"homepage": "https://feedbackbasket.com",
|
|
36
|
+
"bugs": {
|
|
37
|
+
"url": "https://github.com/deifos/feedbackbasket-mcp/issues"
|
|
38
|
+
},
|
|
39
|
+
"dependencies": {
|
|
40
|
+
"@modelcontextprotocol/sdk": "1.30.0",
|
|
41
|
+
"axios": "^1.19.0",
|
|
42
|
+
"feedbackbasket-agent-contract": "3.3.0"
|
|
43
|
+
},
|
|
44
|
+
"devDependencies": {
|
|
45
|
+
"@types/node": "^20.0.0",
|
|
46
|
+
"tsx": "^4.0.0",
|
|
47
|
+
"typescript": "^5.0.0"
|
|
48
|
+
},
|
|
49
|
+
"files": [
|
|
50
|
+
"dist/**/*",
|
|
51
|
+
"README.md",
|
|
52
|
+
"CHANGELOG.md"
|
|
53
|
+
]
|
|
54
|
+
}
|