Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,548Letters: 14Defects: 1,324counted 2 min ago
teppi

Server definition

Hash
sha256:83dfce4f8209d287ef92ed40331756fac5c1034a76e27c65bc6ebd7c7c6eff3c
What it is
What a remote MCP server returned when asked what it offers: 8 tools

The blob, as servednamed by its sha256

{ "instructions": "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.", "tools": [ { "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.", "inputSchema": { "additionalProperties": false, "properties": { "confidence_pct": { "default": 95, "description": "Confidence level; must be 90, 95, or 99.\nDefault 95.", "type": "number" }, "mean": { "description": "Sample mean.", "type": "number" }, "n": { "description": "Sample size; at least 2.", "minimum": 2, "type": "integer" }, "std_dev": { "description": "Sample standard deviation; 0 or greater.", "minimum": 0, "type": "number" } }, "required": [ "mean", "std_dev", "n" ], "type": "object" }, "name": "confidence_interval", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "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.", "inputSchema": { "additionalProperties": false, "properties": { "accessed": { "default": "", "description": "Optional access date for MLA web sources, e.g.\n\"12 Aug. 2026\".", "type": "string" }, "authors": { "description": "Authors as \"Last, First\" strings in source order, at\nleast one, e.g. [\"Curie, Marie\"].", "items": { "type": "string" }, "minItems": 1, "type": "array" }, "container": { "default": "", "description": "Optional journal, book, or site name.", "type": "string" }, "publisher": { "default": "", "description": "Optional publisher name.", "type": "string" }, "style": { "description": "Citation style: \"apa\", \"mla\", or \"chicago\"\n(case-insensitive).", "type": "string" }, "title": { "description": "Title of the work being cited.", "type": "string" }, "url": { "default": "", "description": "Optional URL of the source.", "type": "string" }, "year": { "description": "Publication year, e.g. 2024.", "type": "integer" } }, "required": [ "style", "authors", "year", "title" ], "type": "object" }, "name": "format_citation", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "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.", "inputSchema": { "additionalProperties": false, "properties": { "slug": { "description": "Product slug exactly as returned by list_products,\ne.g. \"thesis-advisor\".", "type": "string" } }, "required": [ "slug" ], "type": "object" }, "name": "get_free_skill", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "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.", "inputSchema": { "additionalProperties": false, "properties": { "slug": { "description": "Product slug exactly as returned by list_products,\ne.g. \"thesis-advisor\".", "type": "string" } }, "required": [ "slug" ], "type": "object" }, "name": "get_full_product", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "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.", "inputSchema": { "additionalProperties": false, "properties": { "skill_name": { "description": "Exact skill name as listed in that product's \"skills\"\narray from list_products.", "type": "string" }, "slug": { "description": "Product slug exactly as returned by list_products.", "type": "string" } }, "required": [ "slug", "skill_name" ], "type": "object" }, "name": "get_full_skill", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "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.", "inputSchema": { "additionalProperties": false, "properties": {}, "type": "object" }, "name": "list_products", "outputSchema": { "properties": { "result": { "items": { "additionalProperties": true, "type": "object" }, "type": "array" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "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.", "inputSchema": { "additionalProperties": false, "properties": { "confidence_pct": { "default": 95, "description": "Confidence level; must be 90, 95, or 99.\nDefault 95.", "type": "number" }, "margin_pct": { "default": 5, "description": "Acceptable margin of error percentage; above 0 and at\nmost 50. Default 5.", "exclusiveMinimum": 0, "maximum": 50, "type": "number" }, "population": { "default": 0, "description": "Total population size; 0 (default) means unknown or\nvery large.", "type": "integer" } }, "type": "object" }, "name": "sample_size", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "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.", "inputSchema": { "additionalProperties": false, "properties": { "numbers": { "description": "The dataset as a list of numbers; at least 1 value.", "items": { "type": "number" }, "minItems": 1, "type": "array" } }, "required": [ "numbers" ], "type": "object" }, "name": "stats_describe", "outputSchema": { "additionalProperties": true, "type": "object" } } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:83dfce4f8209d287ef92ed40331756fac5c1034a76e27c65bc6ebd7c7c6eff3c | sha256sum