CustomerDashboard
Was dieses MCP kann
Connects databases and spreadsheets to create charts, tables, and KPI dashboards, including customer-specific login-gated views and data filtering.
Tools
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['dashboardId', 'name', 'customerId'], 'properties': {'name': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Display name for this customer, for your own reference.'}, 'customerId': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'The identifier for this customer in your own data, for example the value in your orders.customer_id column. Must match exactly.'}, 'dashboardId': {'type': 'string', 'minLength': 1, 'description': "A dashboard of type 'customer'."}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['dashboardId', 'customerRecordId', 'email'], 'properties': {'email': {'type': 'string', 'format': 'email', 'pattern': "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", 'description': "The person's email address. Must be unique on this dashboard."}, 'password': {'type': 'string', 'maxLength': 200, 'minLength': 4, 'description': 'Leave empty to have a strong password generated.'}, 'dashboardId': {'type': 'string', 'minLength': 1, 'description': 'Dashboard id.'}, 'customerRecordId': {'type': 'string', 'minLength': 1, 'description': "The customer's id from list_customers."}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name', 'type', 'config'], 'properties': {'name': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'A name for this connection, shown in the dashboard editor.'}, 'type': {'enum': ['postgres', 'mysql', 'mssql', 'oracle', 'aurora', 'redshift', 'bigquery', 'snowflake', 'googleSheets', 'api', 'custom'], 'type': 'string', 'description': 'Connector type. Call list_supported_data_connectors for the settings each one expects.'}, 'config': {'type': 'object', 'description': 'Connection settings for this connector type, for example { host, port, database, username, password, ssl } for postgres. Credentials are stored encrypted at rest and are never returned by read tools.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name'], 'properties': {'name': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Dashboard name.'}, 'type': {'enum': ['internal', 'customer'], 'type': 'string', 'description': "'customer' for a per-customer, login-gated dashboard; 'internal' for a single shared dashboard. Defaults to 'internal'. This cannot be changed later."}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['dashboardId', 'name'], 'properties': {'name': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'View name, shown on the tab.'}, 'dashboardId': {'type': 'string', 'minLength': 1, 'description': 'Dashboard id.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['viewId', 'dataSourceId', 'title', 'query', 'visualizationType'], 'properties': {'query': {'type': 'string', 'minLength': 1, 'description': 'SQL, or an A1 range for Google Sheets. On a customer dashboard include :customer_id, for example "WHERE customer_id = :customer_id".'}, 'title': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Widget title.'}, 'layout': {'type': 'object', 'required': ['x', 'y', 'width', 'height'], 'properties': {'x': {'type': 'integer', 'maximum': 11, 'minimum': 0}, 'y': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'width': {'type': 'integer', 'maximum': 12, 'minimum': 1}, 'height': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1}}, 'description': 'Position and size on the 12-column grid. Omit on create and a free slot is chosen for you.'}, 'viewId': {'type': 'string', 'minLength': 1, 'description': 'View id the widget belongs to.'}, 'dataSourceId': {'type': 'string', 'minLength': 1, 'description': 'Data source the query runs against.'}, 'visualizationType': {'enum': ['table', 'number', 'lineChart', 'barChart', 'stackedBarChart', 'stackedLineChart', 'comboChart', 'scatterChart', 'histogram', 'pivotTable', 'pieChart'], 'type': 'string'}, 'visualizationConfig': {'type': 'object', 'description': 'Field mappings and display options for this visualization type. Call list_widget_types for the keys each type expects.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'allowSharedAcrossAllCustomers': {'type': 'boolean', 'description': 'Only for customer dashboards. Set true, after the user explicitly confirms, to allow a query with no per-customer filter so every customer sees identical rows.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['dashboardId', 'customerRecordId'], 'properties': {'confirm': {'type': 'boolean', 'description': 'Set to true only after the user has seen what will be deleted and explicitly agreed. Calling without it returns a preview instead of deleting.'}, 'confirmName': {'type': 'string', 'description': 'The exact current name of the item being deleted, copied from the preview. Required alongside confirm.'}, 'dashboardId': {'type': 'string', 'minLength': 1, 'description': 'Dashboard id.'}, 'customerRecordId': {'type': 'string', 'minLength': 1, 'description': "The customer's id from list_customers."}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['dashboardId', 'customerRecordId', 'userId'], 'properties': {'userId': {'type': 'string', 'minLength': 1, 'description': "The login's id."}, 'confirm': {'type': 'boolean', 'description': 'Set to true only after the user has seen what will be deleted and explicitly agreed. Calling without it returns a preview instead of deleting.'}, 'confirmName': {'type': 'string', 'description': 'The exact current name of the item being deleted, copied from the preview. Required alongside confirm.'}, 'dashboardId': {'type': 'string', 'minLength': 1, 'description': 'Dashboard id.'}, 'customerRecordId': {'type': 'string', 'minLength': 1, 'description': "The customer's id from list_customers."}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['dashboardId'], 'properties': {'confirm': {'type': 'boolean', 'description': 'Set to true only after the user has seen what will be deleted and explicitly agreed. Calling without it returns a preview instead of deleting.'}, 'confirmName': {'type': 'string', 'description': 'The exact current name of the item being deleted, copied from the preview. Required alongside confirm.'}, 'dashboardId': {'type': 'string', 'minLength': 1, 'description': 'Dashboard id.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['dataSourceId'], 'properties': {'confirm': {'type': 'boolean', 'description': 'Set to true only after the user has seen what will be deleted and explicitly agreed. Calling without it returns a preview instead of deleting.'}, 'confirmName': {'type': 'string', 'description': 'The exact current name of the item being deleted, copied from the preview. Required alongside confirm.'}, 'dataSourceId': {'type': 'string', 'minLength': 1, 'description': 'Data source id.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['dashboardId', 'viewId'], 'properties': {'viewId': {'type': 'string', 'minLength': 1, 'description': 'View id.'}, 'confirm': {'type': 'boolean', 'description': 'Set to true only after the user has seen what will be deleted and explicitly agreed. Calling without it returns a preview instead of deleting.'}, 'confirmName': {'type': 'string', 'description': 'The exact current name of the item being deleted, copied from the preview. Required alongside confirm.'}, 'dashboardId': {'type': 'string', 'minLength': 1, 'description': 'Dashboard id.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['viewId', 'widgetId'], 'properties': {'viewId': {'type': 'string', 'minLength': 1, 'description': 'View id.'}, 'confirm': {'type': 'boolean', 'description': 'Set to true only after the user has seen what will be deleted and explicitly agreed. Calling without it returns a preview instead of deleting.'}, 'widgetId': {'type': 'string', 'minLength': 1, 'description': 'Widget id.'}, 'confirmName': {'type': 'string', 'description': 'The exact current name of the item being deleted, copied from the preview. Required alongside confirm.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['dashboardId'], 'properties': {'dashboardId': {'type': 'string', 'minLength': 1, 'description': 'Dashboard id.'}, 'includeWidgets': {'type': 'boolean', 'description': 'Include every widget on every view. Defaults to true.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['dashboardId'], 'properties': {'dashboardId': {'type': 'string', 'minLength': 1, 'description': 'Dashboard id.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['dataSourceId'], 'properties': {'dataSourceId': {'type': 'string', 'minLength': 1, 'description': 'Data source id.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['dataSourceId'], 'properties': {'table': {'type': 'string', 'description': 'Return only this table. Useful when a database has many tables.'}, 'dataSourceId': {'type': 'string', 'minLength': 1, 'description': 'Data source id.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['dashboardId'], 'properties': {'dashboardId': {'type': 'string', 'minLength': 1, 'description': 'Dashboard id.'}, 'includeUsers': {'type': 'boolean', 'description': "Include each customer's login email addresses."}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['dashboardId'], 'properties': {'dashboardId': {'type': 'string', 'minLength': 1, 'description': 'Dashboard id.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['viewId'], 'properties': {'viewId': {'type': 'string', 'minLength': 1, 'description': 'View id.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['dashboardId'], 'properties': {'access': {'enum': ['public', 'protected'], 'type': 'string', 'description': "For internal dashboards: 'public' means anyone with the link, 'protected' requires a shared username and password. Ignored for customer dashboards, which always require a per-customer login. Defaults to 'protected'."}, 'password': {'type': 'string', 'maxLength': 200, 'minLength': 4, 'description': "Shared password, for 'protected' access. Leave empty to have one generated and returned once."}, 'username': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': "Shared username, for 'protected' access."}, 'dashboardId': {'type': 'string', 'minLength': 1, 'description': 'Dashboard id.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['dashboardId', 'viewIds'], 'properties': {'viewIds': {'type': 'array', 'items': {'type': 'string', 'minLength': 1}, 'minItems': 1, 'description': 'Every view id on this dashboard, in the order you want.'}, 'dashboardId': {'type': 'string', 'minLength': 1, 'description': 'Dashboard id.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['dataSourceId', 'query'], 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Rows to return. Defaults to 25.'}, 'query': {'type': 'string', 'minLength': 1, 'description': "The SQL to run, or an A1 range for Google Sheets. Use :customer_id where a customer's own identifier belongs."}, 'customerId': {'type': 'string', 'description': 'The id of a customer (from list_customers) to run the query as. Required when the query uses :customer_id, unless dashboardId is given.'}, 'dashboardId': {'type': 'string', 'description': 'A customer dashboard whose configured test customer should be used instead of a real customer. Only needed when the query uses :customer_id.'}, 'dataSourceId': {'type': 'string', 'minLength': 1, 'description': 'Data source id.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['dashboardId'], 'properties': {'date': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'locale': {'type': 'string', 'maxLength': 20, 'description': 'BCP 47 locale such as en-US, en-GB or de-DE.'}, 'number': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'currency': {'type': 'object', 'description': 'For example { "currency": "USD", "decimals": 2 }.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'datetime': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'duration': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'percentage': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'dashboardId': {'type': 'string', 'minLength': 1, 'description': 'Dashboard id.'}, 'nullDisplay': {'type': 'string', 'maxLength': 20, 'description': 'What to show for an empty value, for example a dash.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['dashboardId', 'backgroundColor', 'surfaceColor', 'primaryTextColor', 'secondaryTextColor', 'primaryBrandColor'], 'properties': {'dashboardId': {'type': 'string', 'minLength': 1, 'description': 'Dashboard id.'}, 'surfaceColor': {'type': 'string', 'pattern': '^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$', 'description': 'Background of each widget card.'}, 'backgroundColor': {'type': 'string', 'pattern': '^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$', 'description': 'Page background.'}, 'primaryTextColor': {'type': 'string', 'pattern': '^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$', 'description': 'Main text.'}, 'chartSeriesColors': {'type': 'array', 'items': {'type': 'string', 'pattern': '^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$'}, 'maxItems': 20, 'description': 'Explicit chart series palette. Leave empty to derive one from the brand colours.'}, 'primaryBrandColor': {'type': 'string', 'pattern': '^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$', 'description': 'Main accent, used as the first chart series colour.'}, 'secondaryTextColor': {'type': 'string', 'pattern': '^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$', 'description': 'Muted and secondary text.'}, 'secondaryBrandColor': {'type': 'string', 'pattern': '^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$', 'description': 'Secondary accent, used for the second chart series.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['viewId', 'layouts'], 'properties': {'viewId': {'type': 'string', 'minLength': 1, 'description': 'View id.'}, 'layouts': {'type': 'array', 'items': {'type': 'object', 'required': ['widgetId', 'layout'], 'properties': {'layout': {'type': 'object', 'required': ['x', 'y', 'width', 'height'], 'properties': {'x': {'type': 'integer', 'maximum': 11, 'minimum': 0}, 'y': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'width': {'type': 'integer', 'maximum': 12, 'minimum': 1}, 'height': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1}}, 'description': 'Position and size on the 12-column grid. Omit on create and a free slot is chosen for you.'}, 'widgetId': {'type': 'string', 'minLength': 1}}}, 'minItems': 1, 'description': 'The widgets to move, with their new positions.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'type': {'enum': ['postgres', 'mysql', 'mssql', 'oracle', 'aurora', 'redshift', 'bigquery', 'snowflake', 'googleSheets', 'api', 'custom'], 'type': 'string', 'description': 'Connector type. Call list_supported_data_connectors for the settings each one expects.'}, 'config': {'type': 'object', 'description': 'Connection settings for this connector type, for example { host, port, database, username, password, ssl } for postgres. Credentials are stored encrypted at rest and are never returned by read tools.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'dataSourceId': {'type': 'string', 'minLength': 1, 'description': 'Test a saved data source. Omit to test new settings.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['dashboardId'], 'properties': {'dashboardId': {'type': 'string', 'minLength': 1, 'description': 'Dashboard id.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['dashboardId', 'customerRecordId'], 'properties': {'name': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'customerId': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'New identifier from your own data. This changes which rows this customer can see.'}, 'dashboardId': {'type': 'string', 'minLength': 1, 'description': 'Dashboard id.'}, 'customerRecordId': {'type': 'string', 'minLength': 1, 'description': "The customer's id from list_customers (not their customerId)."}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['dashboardId'], 'properties': {'name': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'dashboardId': {'type': 'string', 'minLength': 1, 'description': 'Dashboard id.'}, 'testCustomerId': {'anyOf': [{'type': 'string', 'maxLength': 200, 'minLength': 1}, {'type': 'null'}], 'description': 'A customer identifier from your own data, used to preview a customer dashboard before real customers exist. This is bound to :customer_id during previews only.'}, 'viewRotationSeconds': {'anyOf': [{'type': 'integer', 'maximum': 86400, 'minimum': 0}, {'type': 'null'}], 'description': 'Seconds each view is shown before rotating to the next, for wall displays. 0 or null turns rotation off.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['dataSourceId'], 'properties': {'name': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'config': {'type': 'object', 'description': 'Connection settings for this connector type, for example { host, port, database, username, password, ssl } for postgres. Credentials are stored encrypted at rest and are never returned by read tools.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'dataSourceId': {'type': 'string', 'minLength': 1, 'description': 'Data source id.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['dashboardId', 'viewId', 'name'], 'properties': {'name': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'New view name.'}, 'viewId': {'type': 'string', 'minLength': 1, 'description': 'View id.'}, 'dashboardId': {'type': 'string', 'minLength': 1, 'description': 'Dashboard id.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['viewId', 'widgetId'], 'properties': {'query': {'type': 'string', 'minLength': 1}, 'title': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'layout': {'type': 'object', 'required': ['x', 'y', 'width', 'height'], 'properties': {'x': {'type': 'integer', 'maximum': 11, 'minimum': 0}, 'y': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'width': {'type': 'integer', 'maximum': 12, 'minimum': 1}, 'height': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1}}, 'description': 'Position and size on the 12-column grid. Omit on create and a free slot is chosen for you.'}, 'viewId': {'type': 'string', 'minLength': 1, 'description': 'View id the widget belongs to.'}, 'widgetId': {'type': 'string', 'minLength': 1, 'description': 'Widget id.'}, 'dataSourceId': {'type': 'string', 'minLength': 1}, 'visualizationType': {'enum': ['table', 'number', 'lineChart', 'barChart', 'stackedBarChart', 'stackedLineChart', 'comboChart', 'scatterChart', 'histogram', 'pivotTable', 'pieChart'], 'type': 'string'}, 'visualizationConfig': {'type': 'object', 'description': 'Replaces the whole configuration object, so include every key you want to keep.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'allowSharedAcrossAllCustomers': {'type': 'boolean', 'description': 'Only for customer dashboards. Set true, after the user explicitly confirms, to allow a query with no per-customer filter.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['dashboardId'], 'properties': {'dashboardId': {'type': 'string', 'minLength': 1, 'description': 'Dashboard id.'}}}
Letzte Tool-Änderungen
Ähnliche MCP-Server
synter-ads
Manages cross-platform advertising campaigns, audiences, tracking, creative, landing pages, campaign audits, technology intellige…
synter-ads
Manages cross-platform advertising campaigns, audiences, tracking, creative, landing pages, campaign audits, technology intellige…
Stratalize Finance
Provides financial, macroeconomic, banking, credit, commodities, M&A, ESG, labor, and regulatory benchmarks for analysis and plan…
Stratalize Healthcare
Retired Stratalize server exposing benchmark, market intelligence, compliance, financial, healthcare, legal, real estate, and eco…
Stratalize Governance
Retired Stratalize server exposing benchmark, market intelligence, compliance, financial, healthcare, legal, real estate, and eco…
Stratalize Oracle
Retired Stratalize server exposing benchmark, market intelligence, compliance, financial, healthcare, legal, real estate, and eco…
Stratalize Intelligence
Provides vendor, market, SaaS, workforce, government contract, public company, regulatory, competitive, and AI-brand intelligence…
Stratalize Real Estate
Retired Stratalize server exposing benchmark, market intelligence, compliance, financial, healthcare, legal, real estate, and eco…