protogrid

Search / com.moltlinestudio/skillmd-lint

SKILL.md Lint

R0· no sign-in

Lint a SKILL.md for frontmatter, structure, secrets and size. All 6 tools free.

v1.2.0 · active · repository · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality91strong
Trust84of 100
Uptime, 30 days97%
Latency p50159 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "skillmd-lint": {
      "type": "http",
      "url": "https://mcp.moltlinestudio.com/skillmd-lint"
    }
  }
}
claude mcp add --transport http skillmd-lint https://mcp.moltlinestudio.com/skillmd-lint
[mcp_servers.skillmd-lint]
url = "https://mcp.moltlinestudio.com/skillmd-lint"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "skillmd-lint": {
      "type": "remote",
      "url": "https://mcp.moltlinestudio.com/skillmd-lint",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "skillmd-lint": {
      "type": "http",
      "url": "https://mcp.moltlinestudio.com/skillmd-lint"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=skillmd-lint&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vbWNwLm1vbHRsaW5lc3R1ZGlvLmNvbS9za2lsbG1kLWxpbnQifQ%3D%3D"
}
{
  "servers": {
    "skillmd-lint": {
      "type": "http",
      "url": "https://mcp.moltlinestudio.com/skillmd-lint"
    }
  }
}
{
  "mcpServers": {
    "skillmd-lint": {
      "httpUrl": "https://mcp.moltlinestudio.com/skillmd-lint"
    }
  }
}
extensions:
  "skillmd-lint":
    enabled: true
    name: "skillmd-lint"
    type: streamable_http
    uri: "https://mcp.moltlinestudio.com/skillmd-lint"
    timeout: 300

Quality 91 / 100strong

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene100 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations6 of 6 tools declare readOnlyHint or destructiveHint
  • pass
    tools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
  • pass
    tools.token_costabout 1,882 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability100 · weight 15
  • pass
    stability.changesno tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

6 tools, about 1,882 tokens to load them all · tool set 4a9dc07d3c5f · checked 2026-10-20 17:34 UTC

Tool changes

No tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 84 / 100

duplicate-repo
provenance85
liveness99
freshness85
hygiene60

+repository +dns-namespace +website +reachable +uptime-97% ~updated-42d-ago -duplicate-repo(22 names)

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://mcp.moltlinestudio.com/skillmd-lint streamable-httpnoneyes97%159 ms2025-11-252026-10-20

Tools (6)

cron_explainread-onlyExplain a 5-field cron expression in plain English and flag mistakes. FREE. Typical input {"expression": "0 9 * * 1-5"} returns {"expression": "0 9 * * 1-5", "meaning": "at minute 0; at hour 9; every day of month; every month; day of week 1-5", "issues": ["none"]}; out-of-range fields are listed in "issues". Use to read a schedule back in plain English before trusting it. Assumes 5-field cron; not for 6-field or seconds-precision variants. 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": "expected 5 fields, got <value>"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.
diff_textsread-onlyProduce a unified diff between two texts. FREE. Useful for comparing two SKILL.md versions. Typical input {"a": "<old text>", "b": "<new text>"} returns {"changed_lines": N, "diff": "--- \n+++ \n@@ ... @@\n-old line\n+new line"}; identical inputs return {"changed_lines": 0, "diff": "(identical)"}. The diff is capped at 400 lines. Use to show exactly what changed between two versions of a text. Not for judging the risk of a code change - the codereview server's review_diff does that. 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": "each text must be at most 500000 characters"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.
json_validateread-onlyValidate JSON text and summarize its structure. FREE. Typical input {"text": "{\"a\": [1, 2]}"} returns {"valid": true, "structure": {"a": ["array[2]", "int"]}}; invalid JSON returns {"valid": false, "error": "<parser message>", "line": N, "column": N} instead. Use when JSON may be malformed or its shape is unknown. Reports structure, not conformance to a schema. Not for testing a pattern (regex_test). 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": "text is empty — pass the JSON document as a raw string"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.
lint_skillread-onlyLint one SKILL.md file the way marketplaces and agents parse it. FREE. Checks YAML frontmatter presence and required fields (name, description), description quality, body structure (procedure steps, rules, degradation), secret/credential leakage, injection-style phrasing, and size budget. Typical input {"content": "<full SKILL.md text>"} returns {"verdict": "pass" | "pass-with-warnings" | "fail", "errors": ["..."], "warnings": ["..."], "stats": {"body_words": N, "has_frontmatter": bool}}. Use on the full text of one SKILL.md. Not for the surrounding archive layout (packaging_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": "content is empty — pass the full SKILL.md text including frontmatter"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.
packaging_checkread-onlyValidate a zip layout plan for a skill marketplace before packaging. FREE. Checks SKILL.md placement rules and flags junk files. Typical input {"file_paths": ["my-skill/SKILL.md", "my-skill/examples.md"], "marketplace": "agensi"} returns {"verdict": "pass" | "fail", "issues": ["..."], "skill_files_found": ["my-skill/SKILL.md"]}. Use on a planned file layout, before zipping. Not for the content of a skill file (lint_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>"} (for example {"error": "file_paths is empty — list every file that will be inside the zip"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.
regex_testread-onlyTest a regular expression against sample strings. FREE. Typical input {"pattern": "v(\\d+)", "samples": ["v12", "beta"]} returns {"pattern": ..., "results": [{"sample": "v12", "match": true, "matched_text": "v12", "groups": ["12"]}, {"sample": "beta", "match": false, ...}], "match_count": 1}. Use to confirm a pattern matches what you expect before shipping it. Not for validating JSON (json_validate). The pattern is compiled and run in a short-lived, CPU-capped child process, so a pattern that backtracks catastrophically is stopped instead of stalling the server. 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": "a sample is too long (max 10000 characters); shorten it and retry"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.

Schemas: list_tools.

Also listed as

21 other active names share this repository (showing 10): com.moltlinestudio/business, com.moltlinestudio/catalog, com.moltlinestudio/codereview, com.moltlinestudio/creator, com.moltlinestudio/data, com.moltlinestudio/dropship, com.moltlinestudio/educator, com.moltlinestudio/govern, com.moltlinestudio/humanizer, com.moltlinestudio/merchant

Similar MCP servers

More from com.moltlinestudio

And 15 more from this publisher.

Official server.json
{
  "name": "com.moltlinestudio/skillmd-lint",
  "icons": [
    {
      "src": "https://moltlinestudio.com/icon-192.png",
      "sizes": [
        "192x192"
      ],
      "mimeType": "image/png"
    }
  ],
  "title": "SKILL.md Lint",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://mcp.moltlinestudio.com/skillmd-lint",
      "type": "streamable-http"
    }
  ],
  "version": "1.2.0",
  "repository": {
    "url": "https://github.com/GarphenGate/moltline-mcp",
    "source": "github"
  },
  "websiteUrl": "https://moltlinestudio.com/servers.html#skillmd-lint",
  "description": "Lint a SKILL.md for frontmatter, structure, secrets and size. All 6 tools free."
}