End-user dashboard
Your end users can deploy MCP servers, manage them, and see how they are used without leaving your product. The dashboard and the analytics page are included on every plan, and they never ask your users to create an MCP Studio account.
| Audience | SDK implementers, backend and frontend engineers |
|---|---|
| Prerequisites | A Client ID and Client Secret, and the attribution token exchange running on your backend |
| Time to integrate | About 30 minutes |
How it works
Your backend vouches for who the user is by choosing the endUserId. Every server that user creates belongs to that id within your integration, so the same id always opens the same dashboard.
Step 1: Mint a session token
Add endUserId to the token request you already make:
curl -X POST https://appatools.com/mcp-studio-sdk/api/attribution/token \
-H "Authorization: Bearer $MCP_STUDIO_CLIENT_SECRET" \
-H "Content-Type: application/json" \
-d '{"clientId":"'"$MCP_STUDIO_CLIENT_ID"'","endUserId":"user_1842"}'
The response includes sessionToken, valid for 60 minutes and reusable within that time. Mint it only for the signed-in user the id names: anyone holding it can see, change, and delete that user's servers until it expires.
Step 2: Deploy in place
Pass the session token to the wizard. The final step then creates the server directly and shows its address and client configuration, instead of handing off to MCP Studio:
MCPStudio.init({
clientId: "YOUR_CLIENT_ID",
attributionToken: token,
sessionToken: sessionToken,
container: "#mcp-studio-widget",
onServerCreated: (server) => console.log("Created", server.serverId),
})
Step 3: Render the dashboard
<div id="mcp-dashboard"></div>
<script>
MCPStudio.dashboard({
clientId: "YOUR_CLIENT_ID",
sessionToken: sessionToken,
container: "#mcp-dashboard",
})
</script>
The dashboard lists the user's servers with their status, sources, endpoint, and client configuration, and lets them open analytics or delete a server.
Step 4: Render analytics
MCPStudio.analytics({
clientId: "YOUR_CLIENT_ID",
sessionToken: sessionToken,
container: "#mcp-analytics",
serverId: "optional-server-id",
})
End users see the analytics your plan grants and your configuration exposes. Sections their plan does not include stay visible and are marked as not included. See Analytics and observability.
Customizing
In the configurator, the Dashboard section sets the colors and font of the dashboard and analytics page. Layout, content, and actions are the same for every integration.
Every embedded screen shows a brand line. On Free it is the Appa Tools name, logo, and mascot. On SDK Pro you can show your own logo or no logo. See Logo and watermark.
MCP server addresses are always on appatools.com, for example https://appatools.com/mcp-studio/api/mcp/<server-id>.
Limits
Servers created this way count toward your plan: the per-end-user server limit and your integration's monthly request limit. See SDK plan limits.
Private GitHub repositories and file uploads need the user to sign in to MCP Studio, so they are not offered to end users identified by a session token.