Admin Dashboard
OpalServe includes a React single-page application for managing your team server through a web interface. The dashboard is served directly by the OpalServe HTTP API — no separate deployment needed.
Accessing the Dashboard
When OpalServe is running in team-server mode, the dashboard is available at:
http://your-server:3456/dashboardLog in with your admin credentials (the same email and password you used during opalserve admin init).
Local mode
The dashboard is also available in local mode at http://127.0.0.1:3456/dashboard, but without authentication. It shows the same server and tool information, just without user management features.
Overview Page
The overview page gives you an at-a-glance view of your OpalServe deployment.
Key Metrics
| Metric | Description |
|---|---|
| Total Requests | HTTP API requests in the selected time window |
| Tool Calls | MCP tool invocations proxied through the gateway |
| Active Users | Users who made at least one request in the window |
| Servers Online | Number of connected MCP servers vs. total registered |
| Avg Latency | Mean response time for tool call proxying |
| Error Rate | Percentage of requests that returned errors |
Charts
- Requests over time — line chart showing request volume by hour/day
- Tool usage distribution — bar chart of most-used tools
- User activity — heatmap of when your team uses AI tools
Time Window
Use the dropdown to switch between 1h, 24h, 7d, and 30d views. All metrics and charts update accordingly.
Server Monitoring
The Servers page shows every registered MCP server with real-time status.
Server List
Each server card displays:
| Field | Description |
|---|---|
| Name | Server identifier |
| Status | connected, disconnected, or error |
| Transport | stdio, sse, or streamable-http |
| Tools | Number of tools discovered |
| Uptime | Time since last successful connection |
| Last Error | Most recent error message (if any) |
Server Actions
- Reconnect — disconnect and reconnect to the server
- Disable — temporarily remove from the registry without deleting config
- Remove — permanently delete the server and its tools
- View Tools — expand to see all tools with descriptions
Adding Servers
Click Add Server to register a new MCP server through the dashboard. The form supports:
- Server name and description
- Transport type selection (stdio, SSE, Streamable HTTP)
- Command and arguments (for stdio)
- URL and headers (for remote transports)
- Environment variables
- Tags
User Management
The Users page lists all registered accounts.
User List
| Column | Description |
|---|---|
| User's email address | |
| Role | admin, developer, or viewer |
| Status | active, invited, or disabled |
| API Keys | Number of active API keys |
| Last Active | Timestamp of last request |
| Requests (24h) | Request count in the last 24 hours |
User Actions
- Edit Role — change between admin, developer, and viewer
- Reset Password — send a password reset link
- Disable — temporarily block access without deleting the account
- Delete — permanently remove the user and their API keys
- View Activity — see detailed request log for this user
Inviting Users
Click Invite User to generate an invitation. Enter the email and select a role. The dashboard displays the invite link that you can share.
API Key Management
Each user can have multiple API keys. Admins can manage keys for any user from the dashboard.
Creating an API Key
- Navigate to a user's profile or the API Keys section
- Click Create API Key
- Give the key a name (e.g., "CI/CD Pipeline", "Local Development")
- Set an optional expiry date
- Copy the key — it is only shown once
API key security
API keys are shown only once when created. Store them securely. If a key is compromised, revoke it immediately from the dashboard.
Key Permissions
API keys inherit the permissions of the user they belong to. A key created by a developer user has developer-level access.
Analytics
The Analytics page provides deeper usage insights than the overview.
Available Reports
- Tool usage by user — which tools each team member uses most
- Server load — requests per server over time
- Peak hours — when your team uses AI tools most heavily
- Error breakdown — errors by type, server, and user
- Rate limit hits — which users are hitting their limits
Exporting Data
Click Export to download analytics data as CSV or JSON for further analysis.
Settings
The Settings page lets you configure team-wide options from the dashboard.
General
- Team name
- Default role for new users
- Allow/disallow self-signup
Rate Limits
- Global default limits (requests/window, tool calls/window)
- Per-user overrides
- Window duration
Security
- Session TTL
- Password policy
- API key expiry defaults
Dashboard Configuration
Disabling the Dashboard
If you do not want the dashboard served:
opalserve start --no-dashboardOr in your config:
{
"gateway": {
"dashboard": false
}
}Custom Base Path
If OpalServe runs behind a reverse proxy with a path prefix:
{
"gateway": {
"basePath": "/opalserve"
}
}The dashboard will then be available at http://your-server/opalserve/dashboard.
CORS for Separate Dashboard Deployment
If you deploy the dashboard separately (e.g., on a different domain):
{
"gateway": {
"cors": ["https://dashboard.company.com"]
}
}