Documentation Index
Fetch the complete documentation index at: https://docs.alpic.ai/llms.txt
Use this file to discover all available pages before exploring further.
Overview
MCP apps and servers can see tool calls and their parameters, but not the user intents that triggered them. User Insights offer an easy way to gather these user intents, to analyze, categorise and export them while making sure they are stripped of any Personally Identifiable Information.
@alpic-ai/insights package dynamically adds an extra parameter to all
your tools so the LLM can include the user intent. Alpic then collects and stores those intents for you to explore.
1. Install the package
2. Wire it into your server
The package ships two entry points depending on which server framework you’re using.- Skybridge
- MCP SDK
Use
intentMiddleware, it returns a Skybridge McpMiddlewareFn you register via mcpMiddleware(). Add it
before your tool/widget registrations:3. Deploy
Deploy your application on Alpic as usual. As soon as the new version is live on the production environment, intents start flowing in.4. View intents in the dashboard
In the Alpic dashboard, open your project and click the Insights tab. You’ll see a paginated table with four columns:- Intent: the user’s natural-language message, copied by the LLM
- Tool: which tool was called
- Category: automatically categorized into a reusable label, editable in the table
- Date: when the call happened
5. Spot trends and signals
Hot Categories & Signals offer you high level User Insights for the selected period
Optional: run a custom handler alongside Alpic
Pass ahandler to run your own logic (e.g. sending intents to your own analytics pipeline) on every captured intent.
The handler runs in addition to Alpic’s dashboard delivery, intents still appear in the User Insights page.
The handler runs inside your MCP server process:
- Skybridge
- MCP SDK
Optional: capture from specific tools only
By default,intentMiddleware injects the user_intent field into every tool’s schema. Use the tools option to
restrict capture to a subset of your tools:
- Skybridge
- MCP SDK
Optional: capture from an existing tool field
If your tool already has a parameter that conveys user intent (for example, aquery, rationale, or question
parameter on a search tool), you can capture its value instead of asking the LLM to copy the intent into a synthetic
user_intent field.
Use the argumentNameOverride option — a mapping of tool names to the input field whose value should be captured
instead of injecting a synthetic user_intent field into your tool schema.
- Skybridge
- MCP SDK

