Skip to content

Moltline Research Desk

by moltlinestudio.com · remote · no sign-in to list tools · v1.2.0 · published by com.moltlinestudio

7 research navigation, thesis, note-taking and citation skill products. 6 of 8 free.

Changes · 3

8 tools: 3 change things and 5 only read.

Scanned Oct 21, 2026

No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http research https://mcp.moltlinestudio.com/research

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

8 tools

Changes things 3Claude Code: ask
  • confidence_intervalCompute a confidence interval for a mean (normal approximation).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Compute a confidence interval for a mean (normal approximation). FREE. Typical input {"mean": 72.4, "std_dev": 8.1, "n": 64, "confidence_pct": 95} returns {"mean": 72.4, "margin_of_error": 1.9845, "interval": [70.4155, 74.3845], "note": "..."}. Use on data already collected, for a mean. Normal approximation, so it is unreliable on very small or heavily skewed samples. Not for proportions or two-group comparisons - the data server's ab_test compares two proportions. 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.

    Annotations the server declares

    • title: Confidence Interval
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • format_citationFormat a citation in APA 7, MLA 9, or Chicago author-date style.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Format a citation in APA 7, MLA 9, or Chicago author-date style. FREE. Typical input {"style": "apa", "authors": ["Curie, Marie"], "year": 1911, "title": "Radium and radioactivity", "container": "Century Magazine"} returns {"style": "apa", "citation": "Curie, M. (1911). Radium and radioactivity. Century Magazine.", "note": "..."}. Use when the source details are already known and only the formatting is missing. 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.

    Annotations the server declares

    • title: Format Citation
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • sample_sizeCalculate the survey sample size needed for a confidence level and margin.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Calculate the survey sample size needed for a confidence level and margin. FREE. Uses maximum variance (p=0.5) with a finite-population correction when population is given. Typical input {"population": 5000, "confidence_pct": 95, "margin_pct": 5} returns {"required_sample": 357, "assumptions": "p=0.5 (max variance), random sampling"}. Use before collecting data, to size a survey. Not for analyzing data already 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.

    Annotations the server declares

    • title: Sample Size
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
Only reads 5Claude Code: allow
  • get_free_skillLoad a product's free gateway skill with its complete instructions.No findings

    Why it is in this group

    • The name "get_free_skill" says "get": a word for reading.
    Description, as the server wrote it
    Load a product's free gateway skill with its complete instructions. FREE. Typical input {"slug": "thesis-advisor"} returns {"slug": ..., "skill": "<skill name>", "instructions": "<full skill text>"}. Returns exactly one skill - the product's free gateway skill - chosen automatically from the slug, with no plan required. Use when the caller wants usable instructions immediately. Not for the product's other skills: those are named and need get_full_skill with a skill_name, which requires a 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.

    Annotations the server declares

    • title: Get Free Skill
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_full_productLoad one product in full: its persona plus every paid skill.No findings

    Why it is in this group

    • The name "get_full_product" says "get": a word for reading.
    Description, as the server wrote it
    Load one product in full: its persona plus every paid skill. PREMIUM (license). Typical input {"slug": "thesis-advisor"} returns {"slug": ..., "name": ..., "persona": "<persona text>", "skills": [{"name": ..., "instructions": ...}, ...], "free_skill": {...}}. Returns persona plus every skill for one product. Use when the caller wants the whole product. Not for a single skill (get_full_skill) and not for a free look, which list_products and get_free_skill provide with no 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>'"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.

    Annotations the server declares

    • title: Get Full Product
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_full_skillLoad one paid skill's complete instructions from a product.No findings

    Why it is in this group

    • The name "get_full_skill" says "get": a word for reading.
    Description, as the server wrote it
    Load one paid skill's complete instructions from a product. PREMIUM (license). Typical input {"slug": "thesis-advisor", "skill_name": "Outline Builder"} returns {"slug": ..., "skill": ..., "instructions": "<full skill text>"}. Returns one named skill, selected by skill_name. Use when the caller wants one specific paid skill. Not for the free gateway skill, which get_free_skill returns with no plan, and not for every skill at once (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.

    Annotations the server declares

    • title: Get Full Skill
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_productsList every product in the Research Desk line with its included skills.No findings

    Why it is in this group

    • The name "list_products" says "list": a word for reading.
    Description, as the server wrote it
    List every product in the Research Desk line with its included skills. FREE. Takes no arguments. Returns a list of 7 product objects, each {"slug": "thesis-advisor", "name": ..., "tagline": ..., "skills": ["Skill A", ...], "free_skill": "Gateway Skill Name"}. Use the returned slug values with get_free_skill, get_full_product, or get_full_skill. Returns metadata only - no persona text and no skill instructions. Use when the caller wants to see what this server covers. Not for keyword search across the whole 138-product catalog, which the catalog server's search_catalog does, and not for instructions the caller can act on (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.

    Annotations the server declares

    • title: List Products
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • stats_describeDescribe a numeric dataset: center, spread, quartiles, and outliers.No findings

    Why it is in this group

    • The name "stats_describe" says "describe": a word for reading.
    Description, as the server wrote it
    Describe a numeric dataset: center, spread, quartiles, and outliers. FREE. Typical input {"numbers": [12, 15, 14, 90, 13]} returns {"n": 5, "mean": 28.8, "median": 14.0, "std_dev": ..., "min": 12, "max": 90, "q1": ..., "q3": ..., "iqr_outliers": [90], "skew": "right (mean > median)"}. Use as a first summary of one numeric dataset. Not for interval estimates (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.

    Annotations the server declares

    • title: Stats Describe
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.2.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http research https://mcp.moltlinestudio.com/research

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__research__list_products",
      "mcp__research__get_free_skill",
      "mcp__research__get_full_product",
      "mcp__research__get_full_skill",
      "mcp__research__stats_describe"
    ],
    "ask": [
      "mcp__research__format_citation",
      "mcp__research__sample_size",
      "mcp__research__confidence_interval"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as research. Review it before you use it.