MCP Tools Reference
Complete list of available MCP tools and their parameters
MCP Tools Reference
The UserHero MCP server provides tools organized by resource type. All tools respect your workspace role permissions.
Workspaces
list_workspaces
List all workspaces you have access to.
Parameters: None
Returns: Array of workspaces with id, name, plan, and your role
Example prompt:
"Show me all my UserHero workspaces"
get_workspace
Get detailed information about a specific workspace.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
workspaceId | string | Yes | The workspace ID |
Returns: Workspace details including members, plan, and settings
get_workspace_usage
Get usage statistics and plan limits for a workspace.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
workspaceId | string | Yes | The workspace ID |
Returns: Current usage, limits, and billing period info
Example prompt:
"How much of our feedback quota have we used this month?"
Projects
list_projects
List all projects in a workspace.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
workspaceId | string | Yes | The workspace ID |
get_project
Get project details including privacy settings.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID |
create_project
Create a new project. Requires member role or higher.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
workspaceId | string | Yes | The workspace ID |
name | string | Yes | Project name |
type | string | Yes | web, ios, or android |
domain | string | No | Domain for web projects |
Example prompt:
"Create a new web project called 'Marketing Site' for domain marketing.example.com"
update_project
Update project settings. Requires member role or higher.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID |
name | string | No | New project name |
domain | string | No | New domain |
privacySettings | object | No | Privacy configuration |
delete_project
Delete a project and all its data. Requires admin role or higher.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID |
This permanently deletes all widgets, feedback, and integrations for the project.
Widgets
list_widgets
List all widgets in a project.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID |
get_widget
Get widget configuration details.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
widgetId | string | Yes | The widget ID |
create_widget
Create a new feedback widget. Requires member role or higher.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID |
name | string | Yes | Widget name |
template | string | Yes | Template type (see below) |
type | string | No | floating, embedded, popup, link |
Available templates:
feedback- General feedback formbug-report- Bug report with screenshotrating- Star ratingnps- Net Promoter Score (0-10)satisfaction- Customer satisfactionfeature-request- Feature requestscontact- Contact form
Example prompt:
"Create a floating NPS widget called 'Monthly Survey'"
update_widget
Update widget configuration. Requires member role or higher.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
widgetId | string | Yes | The widget ID |
name | string | No | New widget name |
config | object | No | Widget configuration |
styling | object | No | Widget styling |
targeting | object | No | Display targeting rules |
delete_widget
Delete a widget. Requires admin role or higher.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
widgetId | string | Yes | The widget ID |
Feedback
list_feedback
List feedback with optional filters.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID |
widgetId | string | No | Filter by widget |
status | string | No | new, in-progress, resolved, archived |
category | string | No | Filter by category |
limit | number | No | Max results (default 50) |
startAfter | string | No | Cursor for pagination |
Example prompt:
"Show me all unresolved bug reports from the last week"
get_feedback
Get full feedback details including internal notes.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
feedbackId | string | Yes | The feedback ID |
get_feedback_by_ticket_number
Look up a feedback item by its workspace-scoped ticket number (the #245 style number shown in the dashboard).
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
workspace_id | string | Yes | The workspace ID |
ticket_number | number | string | Yes | The ticket number. Accepts 245 or "#245". |
Example prompt:
"Open ticket #245 in my workspace"
update_feedback_status
Update feedback status. Requires member role or higher.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
feedbackId | string | Yes | The feedback ID |
status | string | Yes | New status |
Example prompt:
"Mark feedback abc123 as resolved"
add_note
Add an internal note to feedback. Requires member role or higher.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
feedbackId | string | Yes | The feedback ID |
content | string | Yes | Note content |
Example prompt:
"Add a note to feedback abc123 saying 'Fixed in release 2.1.0'"
delete_feedback
Delete a feedback item. Requires admin role or higher.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
feedbackId | string | Yes | The feedback ID |
Integrations
list_integrations
List integrations for a project.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID |
create_integration
Create a new integration. Requires admin role or higher.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The project ID |
type | string | Yes | slack, email, or webhook |
config | object | Yes | Integration-specific config |
Slack config:
{
"webhookUrl": "https://hooks.slack.com/...",
"channel": "#feedback"
}Email config:
{
"emails": ["team@example.com"]
}Webhook config:
{
"url": "https://api.example.com/webhook",
"secret": "whsec_..."
}delete_integration
Delete an integration. Requires admin role or higher.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
integrationId | string | Yes | The integration ID |
Customers
list_customers
List customers in a workspace with optional filtering.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
workspace_id | string | Yes | The workspace ID |
search | string | No | Search by name, email, or phone |
channel | string | No | Filter by channel (e.g. widget, email, api) |
tag | string | No | Filter by tag |
limit | number | No | Maximum number of items to return (default: 50) |
Returns: Array of customers with id, name, email, phone, company, tags, feedback count, and channels
Example prompt:
"List all customers in my workspace"
get_customer
Get detailed information about a specific customer.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
customer_id | string | Yes | The customer ID |
Returns: Full customer profile including emails, phones, social handles, notes, custom fields, and merge history
Example prompt:
"Show me the details of customer abc123"
Automations
list_automations
List automations for a project with optional filtering. Returns a summary for each automation — name, scope, enabled state, action count, last run timestamp, and 7-day stats.
System-generated automations (created by SLA rules) are excluded by default. Pass include_system: true to include them.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | The project ID |
scope | string | No | Filter by scope: feedback.created, feedback.updated, time.scheduled, or manual |
enabled | boolean | No | Filter by enabled state (omit to return all) |
include_system | boolean | No | Include SLA-generated automations (default: false) |
limit | number | No | Max results — default 50, max 100 |
cursor | string | No | Pagination cursor from previous response |
Returns: Array of automation summaries with id, name, scope, enabled, actionsCount, lastRunAt, and runStats
Example prompts:
"List all automations in my project" "Show only enabled trigger-based rules" "Which macros exist in project abc123?"
get_automation
Get full details of a single automation, including its conditions, actions, run statistics, and metadata.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
automation_id | string | Yes | The automation ID |
Returns: Full automation document including conditions, actions, stats, and source metadata
Example prompt:
"Show me the full details of automation abc123"
list_automation_runs
List recent execution runs for an automation. Ordered by most recent first.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
automation_id | string | Yes | The automation ID |
limit | number | No | Max runs to return — default 20, max 50 |
Returns: Array of runs with runId, outcome, runAt, actionsExecuted count, feedbackId, and actor
Example prompts:
"Show the last 10 runs of my auto-assign macro" "Did automation abc123 have any errors recently?"
run_macro
Run a macro (manual automation) against a specific feedback item. The automation must have scope: "manual".
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
automation_id | string | Yes | The macro automation ID |
feedback_id | string | Yes | The feedback item to run the macro on |
Returns: runId, outcome (matched / no-match / error), per-action results, automation name, and feedbackId
Example prompt:
"Run the 'Close and thank' macro on feedback #1370"
Permission Requirements
| Tool | Minimum Role |
|---|---|
All list_* and get_* tools | viewer |
create_*, update_*, add_note | member |
delete_* | admin |
| Integration management | admin |
run_macro | admin |