Moltline Data Desk
Paste-your-data analytics: CSV profiling, A/B tests, correlation, growth. 4 of 7 free.
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"data": {
"url": "https://mcp.moltlinestudio.com/data"
}
}
}Puntos de conexión remotos
https://mcp.moltlinestudio.com/datastreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (7)
🟢csv_profile(csv_text, delimiter)
Profile pasted CSV data column by column with data-quality flags. FREE. Reports per-column type, null rate, unique count, numeric stats (min/mean/max), and top values. Typical input {"csv_text": "name,age\nAda,36\nLin,29"} returns {"rows": 2, "columns": {"age": {"type": "numeric", "null_pct": 0.0, "unique": 2, "min": 29, ...}}, "quality_flags": ["..."], "note": "first 2000 rows profiled"}. Use as the first look at unfamiliar tabular data. Not for testing a hypothesis (ab_test, correlation) and not for time-ordered trends (growth_rates, forecast_trend). Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {"error": "<what is wrong and how to fix it>"} (for example {"error": "delimiter must be a single character, e.g. ',' or ';'"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.
Esquema de entrada
{
"type": "object",
"properties": {
"csv_text": {
"type": "string",
"description": "Raw CSV content including a header row, pasted as a\nsingle string; the first 2000 data rows are profiled."
},
"delimiter": {
"default": ",",
"type": "string",
"description": "Field separator, exactly one character, e.g. \",\" or \";\".\nDefault \",\"."
}
},
"required": [
"csv_text"
],
"additionalProperties": false
}Esquema de salida
{
"type": "object",
"additionalProperties": true
}🟢ab_test(conversions_a, visitors_a, conversions_b, visitors_b)
Run a two-proportion A/B significance test with a plain-language verdict. FREE. Typical input {"conversions_a": 120, "visitors_a": 2400, "conversions_b": 156, "visitors_b": 2380} returns {"rate_a_pct": 5.0, "rate_b_pct": 6.55, "relative_lift_pct": 31.1, "z_score": ..., "p_value": ..., "significant_at_95": true, "verdict": "B beats A — statistically significant"}. Use when exactly two variants each have a trial count and a conversion count. Not for continuous outcomes such as revenue per user, and not for three or more variants. Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {"error": "<what is wrong and how to fix it>"} (for example {"error": "need visitors > 0 and 0 <= conversions <= visitors"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.
Esquema de entrada
{
"type": "object",
"properties": {
"conversions_a": {
"minimum": 0,
"type": "integer",
"description": "Conversions in variant A; 0 or more, at most\nvisitors_a."
},
"visitors_a": {
"minimum": 1,
"type": "integer",
"description": "Visitors in variant A; must be at least 1."
},
"conversions_b": {
"minimum": 0,
"type": "integer",
"description": "Conversions in variant B; 0 or more, at most\nvisitors_b."
},
"visitors_b": {
"minimum": 1,
"type": "integer",
"description": "Visitors in variant B; must be at least 1."
}
},
"required": [
"conversions_a",
"visitors_a",
"conversions_b",
"visitors_b"
],
"additionalProperties": false
}Esquema de salida
{
"type": "object",
"additionalProperties": true
}🟢correlation(x, y)
Compute the Pearson correlation between two numeric series. FREE. Typical input {"x": [1, 2, 3, 4], "y": [2.1, 3.9, 6.2, 8.1]} returns {"pearson_r": 0.999, "r_squared": 0.998, "interpretation": "very strong positive correlation", "caution": "..."}. Use when two equal-length numeric series may move together. Reports association only, never causation. Not for a single series over time (growth_rates). Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {"error": "<what is wrong and how to fix it>"} (for example {"error": "need two equal-length series of 3+ values"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.
Esquema de entrada
{
"type": "object",
"properties": {
"x": {
"items": {
"type": "number"
},
"minItems": 3,
"type": "array",
"description": "First numeric series; at least 3 values, same length as y."
},
"y": {
"items": {
"type": "number"
},
"minItems": 3,
"type": "array",
"description": "Second numeric series; at least 3 values, same length as x."
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
}Esquema de salida
{
"type": "object",
"additionalProperties": true
}🟢growth_rates(values)
Compute period-over-period growth and CAGR for a numeric series. FREE. Typical input {"values": [1000, 1100, 1320]} returns {"period_over_period_pct": [10.0, 20.0], "total_change_pct": 32.0, "avg_growth_per_period_pct_cagr": 14.89}. Use when one series is already in period order. Not for comparing two variants (ab_test) and not for projecting future periods (forecast_trend). Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {"error": "<what is wrong and how to fix it>"} (for example {"error": "need at least 2 values"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.
Esquema de entrada
{
"type": "object",
"properties": {
"values": {
"items": {
"type": "number"
},
"minItems": 2,
"type": "array",
"description": "Ordered numeric series, oldest first, at least 2 values,\ne.g. monthly revenue [1000, 1100, 1320]."
}
},
"required": [
"values"
],
"additionalProperties": false
}Esquema de salida
{
"type": "object",
"additionalProperties": true
}🟢funnel_report(stages)
Analyze a conversion funnel and find the biggest drop-off. PREMIUM (license). Typical input {"stages": {"Visited": 1000, "Signed up": 200, "Paid": 50}} returns {"steps": [{"from": "Visited", "to": "Signed up", "conversion_pct": 20.0, "lost": 800}, ...], "overall_conversion_pct": 5.0, "biggest_dropoff": {...}, "recommendation": "..."}. Use when stage counts descend through one funnel. Not for retention over time (cohort_retention) and not for two-variant comparisons (ab_test). Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {"error": "<what is wrong and how to fix it>"} (for example {"error": "need at least 2 stages"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.
Esquema de entrada
{
"type": "object",
"properties": {
"stages": {
"additionalProperties": true,
"type": "object",
"description": "Ordered mapping of stage name to count, top of funnel\nfirst; at least 2 stages with non-negative numeric values,\ne.g. {\"Visited\": 1000, \"Signed up\": 200}."
}
},
"required": [
"stages"
],
"additionalProperties": false
}Esquema de salida
{
"type": "object",
"additionalProperties": true
}🟢cohort_retention(cohorts)
Build a retention table and average curve from raw cohort counts. PREMIUM (license). Typical input {"cohorts": {"2026-01": [1000, 400, 300, 250]}} — index 0 is cohort size, each later index is users still active in that period — returns {"retention_table_pct": {"2026-01": [100.0, 40.0, 30.0, 25.0]}, "avg_curve_pct": [...], "reading": "..."}. Use when each cohort has counts per period since acquisition. Not for a one-pass funnel (funnel_report). Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {"error": "<what is wrong and how to fix it>"} (for example {"error": "cohort '<value>' must map to a list of numbers,"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.
Esquema de entrada
{
"type": "object",
"properties": {
"cohorts": {
"additionalProperties": true,
"type": "object",
"description": "Mapping of cohort label to a list of counts, where\ncounts[0] is the cohort size and counts[n] is users active in\nperiod n, e.g. {\"2026-01\": [1000, 400, 300]}. The first 24\ncohorts are used."
}
},
"required": [
"cohorts"
],
"additionalProperties": false
}Esquema de salida
{
"type": "object",
"additionalProperties": true
}🟢forecast_trend(values, periods_ahead)
Forecast future periods with a linear trend and honest fit quality. PREMIUM (license). For quick planning, not statistical modeling. Typical input {"values": [100, 120, 138, 161], "periods_ahead": 3} returns {"trend_per_period": 20.2, "r_squared": 0.998, "forecast": [180.9, 201.1, 221.3], "caveat": "..."}. Use when a series is roughly linear and fit quality matters as much as the projection. Not for seasonal or cyclical data, and not for measuring growth already observed (growth_rates). Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {"error": "<what is wrong and how to fix it>"} (for example {"error": "need at least 4 historical values"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.
Esquema de entrada
{
"type": "object",
"properties": {
"values": {
"items": {
"type": "number"
},
"minItems": 4,
"type": "array",
"description": "Ordered historical series, oldest first; at least 4 values."
},
"periods_ahead": {
"default": 3,
"type": "integer",
"description": "How many future periods to forecast; values outside\n1-12 are clamped. Default 3."
}
},
"required": [
"values"
],
"additionalProperties": false
}Esquema de salida
{
"type": "object",
"additionalProperties": true
}Comunidad
Evidencia