{"name":"moltline-research","description":"Moltline's Research Desk: 7 research/study persona-skill products (research navigation, thesis advising, note-taking, reading comprehension, exam prep). Free: list_products, get_free_skill, format_citation. Premium: get_full_product, get_full_skill.","url":"https://mcp.moltlinestudio.com/research","transport":"streamable-http","homepage":"https://moltlinestudio.com/servers.html","serverInfo":{"name":"moltline-research","version":"1.1.0"},"toolCounts":{"total":8,"free":6,"premium":2},"protocolVersion":"2025-11-25","protocolVersions":["2024-11-05","2025-03-26","2025-06-18","2025-11-25"],"pricing":{"freeTier":{"tools":6,"price":"0","currency":"USD","description":"Free forever. No account, no registration and no credentials are required to call them."},"details":"https://moltlinestudio.com/.well-known/pricing","terms":"https://moltlinestudio.com/terms.html","agentPayment":{"protocol":"x402","resource":"https://moltlinestudio.com/api","network":"eip155:8453","asset":"USDC","amount":"19000000","discovery":"https://moltlinestudio.com/.well-known/x402","description":"GET or POST the resource to receive an HTTP 402 carrying a machine-readable payment demand; retry with the transaction hash in the X-PAYMENT header and the licence key is returned in the response."},"premium":{"tools":2,"plan":"All-Access","price":"19.00","currency":"USD","period":"month","description":"One licence key unlocks the premium tools on every Moltline server. Billed monthly, cancellable at any time.","purchaseUrl":"https://moltlinestudio.com/#allaccess"}},"authentication":{"required":false},"tools":[{"name":"list_products","description":"List every product in the Research Desk line with its included skills. FREE.\n\nTakes no arguments. Returns a list of 7 product objects, each {\"slug\":\n\"thesis-advisor\", \"name\": ..., \"tagline\": ..., \"skills\": [\"Skill A\",\n...], \"free_skill\": \"Gateway Skill Name\"}. Use the returned slug values\nwith get_free_skill, get_full_product, or get_full_skill.\n\nReturns metadata only - no persona text and no skill instructions. Use\nwhen the caller wants to see what this server covers. Not for keyword\nsearch across the whole 138-product catalog, which the catalog server's\nsearch_catalog does, and not for instructions the caller can act on\n(get_free_skill). 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>\"}. Every call is read-only and idempotent, so after correcting the input it is always safe to retry.","tier":"free","inputSchema":{"additionalProperties":false,"properties":{},"type":"object"}},{"name":"get_free_skill","description":"Load a product's free gateway skill with its complete instructions. FREE.\n\nTypical input {\"slug\": \"thesis-advisor\"} returns {\"slug\": ...,\n\"skill\": \"<skill name>\", \"instructions\": \"<full skill text>\"}.\n\nReturns exactly one skill - the product's free gateway skill - chosen\nautomatically from the slug, with no plan required. Use when the caller\nwants usable instructions immediately. Not for the product's other skills:\nthose are named and need get_full_skill with a skill_name, which requires\na paid plan. 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\": \"unknown slug '<value>'. Use list_products.\"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.","tier":"free","inputSchema":{"additionalProperties":false,"properties":{"slug":{"type":"string","description":"Product slug exactly as returned by list_products,\ne.g. \"thesis-advisor\"."}},"required":["slug"],"type":"object"}},{"name":"format_citation","description":"Format a citation in APA 7, MLA 9, or Chicago author-date style. FREE.\n\nTypical input {\"style\": \"apa\", \"authors\": [\"Curie, Marie\"], \"year\":\n1911, \"title\": \"Radium and radioactivity\", \"container\": \"Century\nMagazine\"} returns {\"style\": \"apa\", \"citation\": \"Curie, M. (1911).\nRadium and radioactivity. Century Magazine.\", \"note\": \"...\"}.\n\nUse when the source details are already known and only the formatting is\nmissing. Not for finding or verifying a source. 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\": \"style must be apa, mla, or chicago\"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.","tier":"free","inputSchema":{"additionalProperties":false,"properties":{"style":{"type":"string","description":"Citation style: \"apa\", \"mla\", or \"chicago\"\n(case-insensitive)."},"authors":{"items":{"type":"string"},"minItems":1,"type":"array","description":"Authors as \"Last, First\" strings in source order, at\nleast one, e.g. [\"Curie, Marie\"]."},"year":{"type":"integer","description":"Publication year, e.g. 2024."},"title":{"type":"string","description":"Title of the work being cited."},"container":{"default":"","type":"string","description":"Optional journal, book, or site name."},"publisher":{"default":"","type":"string","description":"Optional publisher name."},"url":{"default":"","type":"string","description":"Optional URL of the source."},"accessed":{"default":"","type":"string","description":"Optional access date for MLA web sources, e.g.\n\"12 Aug. 2026\"."}},"required":["style","authors","year","title"],"type":"object"}},{"name":"get_full_product","description":"Load one product in full: its persona plus every paid skill. PREMIUM (license).\n\nTypical input {\"slug\": \"thesis-advisor\"} returns {\"slug\": ..., \"name\":\n..., \"persona\": \"<persona text>\", \"skills\": [{\"name\": ...,\n\"instructions\": ...}, ...], \"free_skill\": {...}}.\n\nReturns persona plus every skill for one product. Use when the caller\nwants the whole product. Not for a single skill (get_full_skill) and not\nfor a free look, which list_products and get_free_skill provide with no\nplan. 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\": \"unknown slug '<value>'\"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.","tier":"premium","inputSchema":{"additionalProperties":false,"properties":{"slug":{"type":"string","description":"Product slug exactly as returned by list_products,\ne.g. \"thesis-advisor\"."}},"required":["slug"],"type":"object"}},{"name":"get_full_skill","description":"Load one paid skill's complete instructions from a product. PREMIUM (license).\n\nTypical input {\"slug\": \"thesis-advisor\", \"skill_name\": \"Outline\nBuilder\"} returns {\"slug\": ..., \"skill\": ..., \"instructions\": \"<full\nskill text>\"}.\n\nReturns one named skill, selected by skill_name. Use when the caller wants\none specific paid skill. Not for the free gateway skill, which\nget_free_skill returns with no plan, and not for every skill at once\n(get_full_product). 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\": \"unknown slug '<value>'\"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.","tier":"premium","inputSchema":{"additionalProperties":false,"properties":{"slug":{"type":"string","description":"Product slug exactly as returned by list_products."},"skill_name":{"type":"string","description":"Exact skill name as listed in that product's \"skills\"\narray from list_products."}},"required":["slug","skill_name"],"type":"object"}},{"name":"stats_describe","description":"Describe a numeric dataset: center, spread, quartiles, and outliers. FREE.\n\nTypical input {\"numbers\": [12, 15, 14, 90, 13]} returns {\"n\": 5,\n\"mean\": 28.8, \"median\": 14.0, \"std_dev\": ..., \"min\": 12, \"max\": 90,\n\"q1\": ..., \"q3\": ..., \"iqr_outliers\": [90], \"skew\": \"right (mean >\nmedian)\"}.\n\nUse as a first summary of one numeric dataset. Not for interval estimates\n(confidence_interval) and not for planning a study (sample_size). 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\": \"no numbers\"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.","tier":"free","inputSchema":{"additionalProperties":false,"properties":{"numbers":{"items":{"type":"number"},"minItems":1,"type":"array","description":"The dataset as a list of numbers; at least 1 value."}},"required":["numbers"],"type":"object"}},{"name":"sample_size","description":"Calculate the survey sample size needed for a confidence level and margin. FREE.\n\nUses maximum variance (p=0.5) with a finite-population correction when\npopulation is given. Typical input {\"population\": 5000,\n\"confidence_pct\": 95, \"margin_pct\": 5} returns {\"required_sample\": 357,\n\"assumptions\": \"p=0.5 (max variance), random sampling\"}.\n\nUse before collecting data, to size a survey. Not for analyzing data\nalready collected (stats_describe, confidence_interval). 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\": \"confidence_pct must be 90, 95, or 99\"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.","tier":"free","inputSchema":{"additionalProperties":false,"properties":{"population":{"default":0,"type":"integer","description":"Total population size; 0 (default) means unknown or\nvery large."},"confidence_pct":{"default":95,"type":"number","description":"Confidence level; must be 90, 95, or 99.\nDefault 95."},"margin_pct":{"default":5,"exclusiveMinimum":0,"maximum":50,"type":"number","description":"Acceptable margin of error percentage; above 0 and at\nmost 50. Default 5."}},"type":"object"}},{"name":"confidence_interval","description":"Compute a confidence interval for a mean (normal approximation). FREE.\n\nTypical input {\"mean\": 72.4, \"std_dev\": 8.1, \"n\": 64,\n\"confidence_pct\": 95} returns {\"mean\": 72.4, \"margin_of_error\":\n1.9845, \"interval\": [70.4155, 74.3845], \"note\": \"...\"}.\n\nUse on data already collected, for a mean. Normal approximation, so it is\nunreliable on very small or heavily skewed samples. Not for proportions or\ntwo-group comparisons - the data server's ab_test compares two\nproportions. 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\": \"confidence 90/95/99, n>=2, std_dev>=0\"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.","tier":"free","inputSchema":{"additionalProperties":false,"properties":{"mean":{"type":"number","description":"Sample mean."},"std_dev":{"minimum":0,"type":"number","description":"Sample standard deviation; 0 or greater."},"n":{"minimum":2,"type":"integer","description":"Sample size; at least 2."},"confidence_pct":{"default":95,"type":"number","description":"Confidence level; must be 90, 95, or 99.\nDefault 95."}},"required":["mean","std_dev","n"],"type":"object"}}],"resources":[],"prompts":[]}