# Moltline Business Suite

> 30 finance, bookkeeping, legal-ops and SMB operations skill products. 6 of 8 tools free.

- name: com.moltlinestudio/business
- version: 1.2.0
- connection class: unknown (unknown)
- trust: 63/100 flags: duplicate-repo
- quality: 91/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.moltlinestudio%2Fbusiness
- tools: https://api.protogrid.dev/v1/servers/com.moltlinestudio%2Fbusiness/tools

**Not classified yet.** The remote endpoints have not been probed successfully, or the listing has nothing to connect to.

## Connection (mcpServers)

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


## Trust

- hygiene: 60
- liveness: 27
- freshness: 85
- provenance: 85
- drivers: +repository +dns-namespace +website -unreachable(1 failures) ~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 (good)

### 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,652 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,652 tokens to load them all
- tool set hash: 87489d76af5e62c2b10cbcafc32b913e
- badge: [![protogrid quality](https://protogrid.dev/badge/com.moltlinestudio/business.svg)](https://protogrid.dev/servers/com.moltlinestudio/business)
- 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/business (streamable-http, auth none, reachable false, uptime30d 0.93043476)

## Packages

_none_

## Tools (8)

- `cash_runway`: Compute months of cash runway and the projected out-of-cash date. FREE.

Typical input {"cash_balance": 120000, "monthly_burn": 15000,
"monthly_revenue": 5000} returns {"runway_months": 12.0,
"net_burn_monthly": 10000, "projected_out_of_cash": "YYYY-MM-DD"}; when
revenue covers burn it returns {"runway": "infinite at current numbers
(revenue covers burn)", ...}.

Use when a cash balance and a monthly burn are known. Not for per-unit
profitability (unit_economics). 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": "cash_balance must be >= 0"}). 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": "smb-ops-desk"} returns {"slug": "smb-ops-desk",
"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": "smb-ops-desk"} 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": "smb-ops-desk", "skill_name": "invoice-chaser"}
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.
- `list_products`: List every product in the Business Suite line with its included skills. FREE.

Takes no arguments. Typical input {} returns a list of 30 product objects, each
{"slug": "smb-ops-desk", "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.
- `loan_payment`: Compute an amortized loan payment: monthly payment, total paid, total interest. FREE.

Administrative math only — not financial advice. Typical input
{"principal": 250000, "annual_rate_pct": 6.5, "years": 30} returns
{"monthly_payment": 1580.17, "months": 360, "total_paid": ...,
"total_interest": ...}.

Use for a fixed-rate amortized loan. Not for interest-free schedules - the
merchant server's installment_plan splits a total without interest. 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": "principal and years must be > 0"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.
- `target_price`: Compute the selling price needed to hit a target margin percentage. FREE.

Typical input {"unit_cost": 12, "target_margin_pct": 60} returns
{"required_price": 30.0, "unit_margin": 18.0,
"equivalent_markup_pct": 150.0}.

The inverse of unit_economics - solves for price from a target margin. Use
when the margin is the fixed requirement. Not when the price is already
set. 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": "target_margin_pct must be between 0 and 100"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.
- `unit_economics`: Calculate unit economics: margin, break-even, LTV:CAC, and a plain reading. FREE.

Typical input {"price": 49, "unit_cost": 12, "fixed_costs_monthly": 8000}
returns {"unit_margin": 37.0, "margin_pct": 75.5, "markup_pct": 308.3,
"breakeven_units_per_month": 216.2, "reading": ["..."]}. LTV fields
appear when cac is provided.

Use when price, variable cost, and fixed costs are known and margin or
break-even is the question. Not for cash position over time (cash_runway)
and not for solving backward from a target margin (target_price). 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": "price must be > 0"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.
