Appa Tools documentation for MCP Studio, including setup, guides, concepts, and API-related reference content.

Skip to main content

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.

AudienceSDK implementers, backend and frontend engineers
PrerequisitesA Client ID and Client Secret, and the attribution token exchange running on your backend
Time to integrateAbout 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.