# Moltline Creator Studio

> 20 blogging, brand-voice, copywriting, video and social skill products. 6 of 8 free.

- name: com.moltlinestudio/creator
- version: 1.2.0
- connection class: R0 (autonomous)
- trust: 84/100 flags: duplicate-repo
- quality: 91/100 (strong)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.moltlinestudio%2Fcreator
- tools: https://api.protogrid.dev/v1/servers/com.moltlinestudio%2Fcreator/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "creator": {
      "type": "http",
      "url": "https://mcp.moltlinestudio.com/creator"
    }
  }
}
```


## Trust

- hygiene: 60
- liveness: 99
- freshness: 85
- provenance: 85
- drivers: +repository +dns-namespace +website +reachable +uptime-98% ~updated-42d-ago -duplicate-repo(22 names)
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 91/100 (strong)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 8 of 8 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 2,215 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: no tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 8, about 2,215 tokens to load them all
- tool set hash: b6c930e475e9c54683674ed505941d6d
- badge: [![protogrid quality](https://protogrid.dev/badge/com.moltlinestudio/creator.svg)](https://protogrid.dev/servers/com.moltlinestudio/creator)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://mcp.moltlinestudio.com/creator (streamable-http, auth none, reachable true, uptime30d 0.9830508)

## Packages

_none_

## Tools (8)

- `analyze_writing`: Analyze a draft for readability, passive voice, cliches, and hedging. FREE.

Also measures sentence variety and keyword density, and produces a
prioritized fix list. Typical input {"text": "<your draft>"} returns
{"readability_grade": 9.2, "passive_voice_count": N, "cliches_found":
[...], "hedging_words": [...], "sentence_count": N,
"avg_words_per_sentence": N, "top_repeated_words": [...],
"priority_fixes": ["..."]}.

Use on body prose to find readability and style problems. Not for ranking
titles (headline_analyzer) and not for platform limits
(social_length_check). 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": "empty text"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.
- `get_free_skill`: Load a product's free gateway skill with its complete instructions. FREE.

Typical input {"slug": "brand-voice"} returns {"slug": "brand-voice",
"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.
- `get_full_product`: Load one product in full: its persona plus every paid skill. PREMIUM (license).

Typical input {"slug": "brand-voice"} 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.
- `get_full_skill`: Load one paid skill's complete instructions from a product. PREMIUM (license).

Typical input {"slug": "brand-voice", "skill_name": "Voice Audit"}
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.
- `headline_analyzer`: Score and rank up to 20 headlines, best first. FREE.

Scores 0-100 on length, power/emotion words, numbers, structure, and
clarity. Typical input {"headlines": ["7 Mistakes New Writers Make",
"On Writing"]} returns {"ranked": [{"headline": ..., "score": 85,
"notes": ["good length", "contains number"]}, ...]}.

Use when several title options need ranking. Not for email subject lines,
which the outbound server's subject_line_scorer judges against
deliverability signals, and not for body prose (analyze_writing). 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.
- `list_products`: List every product in the Creator Studio line with its included skills. FREE.

Takes no arguments. Returns a list of 20 product objects, each
{"slug": "brand-voice", "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.
- `reading_time`: Estimate reading and speaking time plus basic content stats. FREE.

Typical input {"text": "<your article>"} returns {"words": 1200,
"reading_minutes": 5.2, "speaking_minutes": 8.6, "paragraphs": 14,
"fit": "newsletter/blog"}.

Use when length and pacing are the question. Not for writing quality or
grade level (analyze_writing). 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.
- `social_length_check`: Check a post against every major platform's length limit at once. FREE.

Covers X, LinkedIn posts and headlines, Instagram captions, Threads,
YouTube titles, and meta descriptions. Typical input {"text": "<post>"}
returns {"chars": N, "platforms": {"x_post": {"limit": 280, "fits":
true, "over_by": 0}, ...}}.

Use before posting, to catch truncation. Not for readability
(analyze_writing) and not for reading duration (reading_time). 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.
