Search / io.customerdashboard/customerdashboard
CustomerDashboard
R0· no sign-inBuild dashboards on your own data, including multi-customer views with per-customer login.
v0.1.0 · active · website · descriptor JSON · versions
Search / io.customerdashboard/customerdashboard
R0· no sign-inBuild dashboards on your own data, including multi-customer views with per-customer login.
v0.1.0 · active · website · descriptor JSON · versions
{
"mcpServers": {
"customerdashboard": {
"type": "http",
"url": "https://app.customerdashboard.io/mcp"
}
}
}claude mcp add --transport http customerdashboard https://app.customerdashboard.io/mcp[mcp_servers.customerdashboard]
url = "https://app.customerdashboard.io/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"customerdashboard": {
"type": "remote",
"url": "https://app.customerdashboard.io/mcp",
"enabled": true
}
}
}{
"mcpServers": {
"customerdashboard": {
"type": "http",
"url": "https://app.customerdashboard.io/mcp"
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=customerdashboard&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vYXBwLmN1c3RvbWVyZGFzaGJvYXJkLmlvL21jcCJ9"
}{
"servers": {
"customerdashboard": {
"type": "http",
"url": "https://app.customerdashboard.io/mcp"
}
}
}{
"mcpServers": {
"customerdashboard": {
"httpUrl": "https://app.customerdashboard.io/mcp"
}
}
}extensions:
"customerdashboard":
enabled: true
name: "customerdashboard"
type: streamable_http
uri: "https://app.customerdashboard.io/mcp"
timeout: 300
protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28protocol.statelessonly applies to 2026-07-28 serversprotocol.transportstreamable HTTPprotocol.list_ttlonly applies to 2026-07-28 serversauth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptionsevery tool has a descriptiontools.description_lengthdescriptions are concisetools.schemasevery tool has an object input schematools.annotations42 of 42 tools declare readOnlyHint or destructiveHinttools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHinttools.token_costabout 8,381 tokens to load every tooltools.api_dump42 tools, 83% named like REST operations: looks like an API mapped one endpoint per toolstability.changesno tool changes in 30 daysstability.rug_pullno tool changed its meaning under the same namedeps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI packageNo tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+dns-namespace +website +reachable +uptime-100% ~updated-47d-ago -no-repository
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://app.customerdashboard.io/mcp streamable-http | none | yes | 100% | 543 ms | 2025-11-25 | 2026-10-20 |
add_customer | Add one of your customers to a multi-customer dashboard. The customerId must exactly match the value that identifies them in your own database, because it is what gets bound to :customer_id in every widget query. Adding a customer does not give anyone access; use add_customer_user for that. Subject to your plan's customer limit. |
add_customer_user | Create a login for one of your customers so they can sign in to the published dashboard and see their own data. If you do not supply a password a strong one is generated and returned once. Subject to your plan's users-per-customer limit. |
add_data_source | Connect a new database or spreadsheet to your workspace. Test the settings with test_data_source_connection first: this tool saves them whether or not they work. Subject to your plan's data source limit. |
create_dashboard | Create a dashboard. Use type 'customer' for a multi-customer dashboard where each of your customers signs in and sees only their own rows, or 'internal' for a normal dashboard you view yourself or publish as one shared view. A 'Default' view is created automatically. Subject to your plan's dashboard limit. |
create_view | Add a view (tab) to a dashboard. New views are appended after the existing ones. Subject to your plan's view limit. |
create_widget | Add a chart, table or KPI to a view. Call list_widget_types for the visualizationConfig each type needs, and run_query_preview first to confirm the query returns the columns you are about to reference. On a multi-customer dashboard the query must filter on :customer_id. Subject to your plan's widget limit. |
delete_customerdestructive | Permanently remove a customer from a multi-customer dashboard, along with all of their logins. They lose access immediately. Calling this without confirm returns a preview. This cannot be undone. |
delete_customer_userdestructive | Permanently remove one login from a customer. They can no longer sign in. Calling this without confirm returns a preview. The customer itself and their data access rule remain. |
delete_dashboarddestructive | Permanently delete a dashboard and everything on it. Calling this without confirm returns a preview of what would be removed; deleting for real needs confirm plus the dashboard's exact name. This cannot be undone. |
delete_data_sourcedestructive | Permanently delete a data source connection. This is refused while any widget still uses it. Calling this without confirm returns a preview. Your actual database is untouched; only the connection is removed. |
delete_viewdestructive | Permanently delete a view and every widget on it. Calling this without confirm returns a preview. This cannot be undone. |
delete_widgetdestructive | Permanently delete a widget. Calling this without confirm returns a preview. This cannot be undone. |
explain_customer_filteringread-only | Explain exactly how to write widget queries so each customer only sees their own rows on a multi-customer dashboard. Call this before writing any query for a `customer` type dashboard. No sign-in required. |
get_accountread-only | Get the signed-in CustomerDashboard account: name, email, workspace, current plan, what the plan allows and how much of it is already used. Call this first in an authenticated session to learn the workspace you are working in. |
get_dashboardread-only | Get one dashboard in full: its settings, theme, publishing state, every view, and every widget on each view including the widget queries. This is the fastest way to understand an existing dashboard before changing it. |
get_dashboard_share_urlread-only | Get the public URL of a published dashboard, and who can open it. Returns nothing to share if the dashboard is still private. |
get_data_sourceread-only | Get one data source by id, including its non-secret connection settings. Credentials are never included. |
get_data_source_schemaread-only | List the tables and columns available in a connected data source, so you can write correct widget queries. Supported for PostgreSQL, MySQL, SQL Server, Oracle, Aurora, Redshift and Google Sheets. |
get_platform_overviewread-only | Explain what CustomerDashboard.io is, how multi-customer dashboards work, and how workspaces, dashboards, views, widgets and customers fit together. Call this first when you are unfamiliar with the product. No sign-in required. |
get_startedread-only | Explain how to sign up for the free trial and connect this MCP server to a CustomerDashboard account, plus the order of steps for building a first multi-customer dashboard. No sign-in required. |
list_customersread-only | List the customers on a multi-customer dashboard, each with the customerId their data is filtered by and how many logins they have. |
list_dashboardsread-only | List every dashboard in your workspace, with its type, publishing state and share URL if published. |
list_data_sourcesread-only | List every data source connected to your workspace. Connection credentials are never included. |
list_plans_and_limitsread-only | List CustomerDashboard's subscription plans, their monthly price and the resource limits each one allows. Useful for explaining why a create operation was blocked. No sign-in required. |
list_supported_data_connectorsread-only | List every data source type CustomerDashboard can connect to, the settings each one needs, whether widgets can query it, and whether its schema can be introspected. No sign-in required. |
list_viewsread-only | List the views (tabs) on a dashboard, in display order, with how many widgets each one holds. |
list_widgetsread-only | List the widgets on a view, including each widget's query and visualization configuration. |
list_widget_typesread-only | List every visualization a widget can use, with the visualizationConfig keys each type requires and accepts. Call this before creating widgets so the configuration is correct first time. No sign-in required. |
publish_dashboard | Publish a dashboard and return its share URL. A customer dashboard is always login-gated, so its customers sign in with the logins you created. An internal dashboard can be published as 'public' (anyone with the link) or 'protected' (one shared username and password). |
reorder_views | Set the tab order of a dashboard's views. Pass every view id in the order you want them shown. This is also the order they rotate in on a wall display. |
run_query_previewread-only | Run a query against a connected data source and return the first few rows, so you can confirm it works before putting it on a widget. Results are capped at 100 rows. If the query contains :customer_id you must also say which customer to preview as, using customerId or dashboardId. |
set_dashboard_formatting | Set the default locale and number, currency, percentage, duration, date and datetime formatting for a dashboard. Individual widgets can still override these. |
set_dashboard_theme | Set the colour theme of a dashboard: page and surface backgrounds, text colours, brand colours and the chart series palette. All colours are hex values. Pass every field, since the theme is stored as one object. |
set_widget_layout | Reposition several widgets on a view at once, on the 12-column grid. Use this to lay out a whole view rather than moving widgets one at a time. |
test_data_source_connection | Check whether a set of connection settings actually works, before saving them. Pass an existing dataSourceId to retest a saved connection, or a type and config to test new settings. |
unpublish_dashboard | Make a dashboard private again. The existing share link stops working immediately, and any shared username and password are cleared. Widgets and data are untouched. |
update_customer | Rename a customer or correct the customerId their data is filtered by. Changing customerId immediately changes which rows they see, so confirm the new value with the user first. |
update_dashboard | Rename a dashboard, set how long each view is shown when the dashboard auto-rotates on a screen, or set the test customer used to preview a customer dashboard. Use set_dashboard_theme for colours and publish_dashboard for sharing. |
update_data_source | Rename a data source or replace its connection settings. The config you pass replaces the stored one entirely, so include every setting, not just the changed ones. |
update_view | Rename a view. Use reorder_views to change the tab order. |
update_widget | Change a widget's title, query, visualization type, configuration, data source or position. Only the fields you pass are changed. |
validate_customer_filteringread-only | Audit a multi-customer dashboard and report any widget whose query would show the same rows to every customer. Run this before publishing a customer dashboard, and any time its queries change. |
Schemas: list_tools.
{
"name": "io.customerdashboard/customerdashboard",
"title": "CustomerDashboard",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"remotes": [
{
"url": "https://app.customerdashboard.io/mcp",
"type": "streamable-http"
}
],
"version": "0.1.0",
"websiteUrl": "https://customerdashboard.io",
"description": "Build dashboards on your own data, including multi-customer views with per-customer login."
}