Usercall MCP server for Agent API v1
Inferred from the transports this listing declares (stdio, streamable-http). A client not listed here hasn’t been ruled out — it just isn’t something Forge can confirm.
USERCALL_API_KEYAPI keyrequiredUsercall API key from app.usercall.co Developer settings (stdio only; hosted OAuth needs none).
Declared by the author in the official MCP registry. Forge does not store, broker, or ever see these values — the config below is scaffolded with placeholders you fill in locally.
Verification confirms publisher identity (repo ownership), not code safety. The security scan covers known CVEs and suspicious install scripts.
Read out of the source npm actually ships, at scan time. The package was never executed. Tools registered dynamically at runtime, or hidden inside bundled or minified code, can be missed — so this is a floor on the tool surface, not a complete census of it.
create_studyCreate an interview study when you already know what happened and still need to learn why. Returns study_id and interview_link. Do not share the link yet. Call list_studies first and reuse a study that already asks this question. key_research_goal is required. business_context is optional. One acti…Create an interview study when you already know what happened and still need to learn why. Returns study_id and interview_link. Do not share the link yet. Call list_studies first and reuse a study that already asks this question. key_research_goal is required. business_context is optional. One acti…
No input schema was published for this tool.
update_studyNo description publishedThis tool published no description. Forge does not invent one.
get_study_statusCheck whether a study is running, analyzing, or complete while interviews are in progress. running and analyzing mean wait and call this again. Do not treat those payloads as findings. When status is complete, call get_study_results. The response includes interview_link and next_step. This does not…Check whether a study is running, analyzing, or complete while interviews are in progress. running and analyzing mean wait and call this again. Do not treat those payloads as findings. When status is complete, call get_study_results. The response includes interview_link and next_step. This does not…
No input schema was published for this tool.
get_study_resultsRead findings after get_study_status is complete. Use this when you need why, not another status check. Prefer format=summary for themes, insights, and risks. Use format=full only when a verbatim transcript is required. Summary is the evidence to place beside the original metric. Empty themes while…Read findings after get_study_status is complete. Use this when you need why, not another status check. Prefer format=summary for themes, insights, and risks. Use format=full only when a verbatim transcript is required. Summary is the evidence to place beside the original metric. Empty themes while…
No input schema was published for this tool.
simulate_interviewDry-run the interview after you create or edit a study, and before any real invite. Omit simulation_id to start. Pass that id on a later call to read the result. The start returns immediately with running. Cap is 5 simulations per account per UTC day. A 429 means stop for the day. A simulation is n…Dry-run the interview after you create or edit a study, and before any real invite. Omit simulation_id to start. Pass that id on a later call to read the result. The start returns immediately with running. Cap is 5 simulations per account per UTC day. A 429 means stop for the day. A simulation is n…
No input schema was published for this tool.
review_studyCheck the interview guide before sharing it with a real participant. Use this when you want a read of the guide only. It does not read transcripts and it does not apply edits. It costs 1 credit and works when the in-app review control is hidden. On 402, surface checkout_url to a human. Write sugges…Check the interview guide before sharing it with a real participant. Use this when you want a read of the guide only. It does not read transcripts and it does not apply edits. It costs 1 credit and works when the in-app review control is hidden. On 402, surface checkout_url to a human. Write sugges…
No input schema was published for this tool.
delete_studyprivilegedPermanently delete a study when it asks the wrong question or you must free the one active agent study. This removes the study and its interview calls and releases unused reserved credits. It cannot be undone. To stop new interviews without deleting evidence, call update_study with is_link_disabled…Permanently delete a study when it asks the wrong question or you must free the one active agent study. This removes the study and its interview calls and releases unused reserved credits. It cannot be undone. To stop new interviews without deleting evidence, call update_study with is_link_disabled…
No input schema was published for this tool.
get_trigger_capabilitiesCheck what Research Triggers can do before you design one. Use this when you are about to decide who gets invited. Supported: one event, an exact property or trait match, a URL rule, and page dwell. Unsupported: counts, sequences, absence, time windows, and not-equals. If the condition you need is…Check what Research Triggers can do before you design one. Use this when you are about to decide who gets invited. Supported: one event, an exact property or trait match, a URL rule, and page dwell. Unsupported: counts, sequences, absence, time windows, and not-equals. If the condition you need is…
No input schema was published for this tool.
get_trigger_sdk_setupGet the SDK install snippet when list_trigger_events is empty and the product event must reach Usercall before a trigger can exist. Returns the install snippet, an identify snippet, and install status. Never includes secret keys. If you can edit the codebase, apply the snippet. Otherwise show it to…Get the SDK install snippet when list_trigger_events is empty and the product event must reach Usercall before a trigger can exist. Returns the install snippet, an identify snippet, and install status. Never includes secret keys. If you can edit the codebase, apply the snippet. Otherwise show it to…
No input schema was published for this tool.
list_trigger_eventsList event names Usercall has received for this account in the last 30 days. Call this before create_research_trigger. Only an observed event can be used. If the list is empty, call get_trigger_sdk_setup. If your event is missing, send interview_link instead. This does not create a trigger. For fil…List event names Usercall has received for this account in the last 30 days. Call this before create_research_trigger. Only an observed event can be used. If the list is empty, call get_trigger_sdk_setup. If your event is missing, send interview_link instead. This does not create a trigger. For fil…
No input schema was published for this tool.
get_trigger_event_schemaRead observed properties and traits for one event, with types and sample values. Use this after list_trigger_events shows the event and you need a filter. Put each filter under the right key. Matching is case-sensitive and type-sensitive. Stop if the value you need was never observed. Do not invent…Read observed properties and traits for one event, with types and sample values. Use this after list_trigger_events shows the event and you need a filter. Put each filter under the right key. Matching is case-sensitive and type-sensitive. Stop if the value you need was never observed. Do not invent…
No input schema was published for this tool.
list_studiesList studies before you create one. Use this to reuse a study_id and interview_link, or to pick a study for a trigger. Reuse a study that already asks the question. trigger_eligible is false when the study has no interview link. Call create_study only when none of these studies fit. This does not c…List studies before you create one. Use this to reuse a study_id and interview_link, or to pick a study for a trigger. Reuse a study that already asks the question. trigger_eligible is false when the study has no interview link. Call create_study only when none of these studies fit. This does not c…
No input schema was published for this tool.
create_research_triggerCreate a paused invite that asks people why after an event you have already observed. Use this only after a study exists and list_trigger_events has seen the event. Call get_trigger_event_schema first if you need a filter. Returns activation_url for a human to open. Agents cannot activate the trigg…Create a paused invite that asks people why after an event you have already observed. Use this only after a study exists and list_trigger_events has seen the event. Call get_trigger_event_schema first if you need a filter. Returns activation_url for a human to open. Agents cannot activate the trigg…
No input schema was published for this tool.
list_research_triggersList research triggers with status and activation_url. Use this to recover a paused trigger's activation link for a human. The activation link is empty after a human activates the trigger. Agents cannot activate. Call create_research_trigger only when no trigger matches this study and event. This d…List research triggers with status and activation_url. Use this to recover a paused trigger's activation link for a human. The activation link is empty after a human activates the trigger. Agents cannot activate. Call create_research_trigger only when no trigger matches this study and event. This d…
No input schema was published for this tool.
get_research_triggerRead one trigger when you already have trigger_id and need its status or activation_url while it is paused. Hand activation_url to a human. Agents cannot activate. Do not poll this for interview evidence. Call get_study_status for that. This does not change the trigger. To see every trigger, call l…Read one trigger when you already have trigger_id and need its status or activation_url while it is paused. Hand activation_url to a human. Agents cannot activate. Do not poll this for interview evidence. Call get_study_status for that. This does not change the trigger. To see every trigger, call l…
No input schema was published for this tool.
update_research_triggerEdit a trigger's targeting, sampling, cooldown, daily cap, intercept copy, or delivery. Use this to change who is invited or to pause a trigger. Never set status to active. That returns 409 with activation_url for a human. Editing an active trigger pauses it until a human re-approves. This does not…Edit a trigger's targeting, sampling, cooldown, daily cap, intercept copy, or delivery. Use this to change who is invited or to pause a trigger. Never set status to active. That returns 409 with activation_url for a human. Editing an active trigger pauses it until a human re-approves. This does not…
No input schema was published for this tool.
delete_research_triggerprivilegedPermanently delete a research trigger when the event or the study is wrong. Interviews already completed are kept. This cannot be undone. To pause without deleting, call update_research_trigger with status paused. This does not delete the study. Call delete_study for that.Permanently delete a research trigger when the event or the study is wrong. Interviews already completed are kept. This cannot be undone. To pause without deleting, call update_research_trigger with status paused. This does not delete the study. Call delete_study for that.
No input schema was published for this tool.
16 of 17 tools published a description.
Tool names and descriptions are written by the publisher and shown verbatim as inert text. They are the strings an MCP client passes to a model, so Forge scans them for prompt-injection patterns — any finding appears with the security scan above. “Privileged” is a keyword match on the tool name, not an audit of what the tool does: a benign-sounding name can still do anything.
Usercall MCP server for Agent API v1
Linked names open Forge’s index of every entry observed exposing that tool. Browse all indexed tools.
The crawl stopped at the depth-4 limit. Anything below that level was never resolved.
The crawl stopped at the 60-package limit. The rest of the tree was never resolved.
36 more resolved packages are not drawn here (display cap: 24). Every dependency carrying an advisory is drawn regardless of the cap. Full inventory (CycloneDX SBOM)
54 declared dependencies never landed in the tree. They are missing from Forge's resolution, not from the package.
+42 more not listed. The counts by reason above cover all of them.
Not followed: peerDependencies. This tree covers runtime dependencies only, so anything those pull in was never resolved.