SKILL.md Lint
com.moltlinestudio/skillmd-lintVersion 1.2.0Lint a SKILL.md for frontmatter, structure, secrets and size. All 6 tools free.
Status
Responds224 msAnswered our handshake without sign-in.- Last checked
- Nov 14, 2026, 14:20 UTC
- Latency
- 224 ms
- Remotes responding
- 1 of 1
- Sign-in
- No sign-in
- Hosting
- Hosted outside the EU (detected)
- Registry data as of
- Nov 14, 2026, 22:14 UTC
Data from the official MCP Registry, checked by run.zero. How we check
Connect
Streamable HTTP
https://mcp.moltlinestudio.com/skillmd-lintResponds224 msNo sign-in
Claude Code
claude mcp add --transport http skillmd-lint https://mcp.moltlinestudio.com/skillmd-lintClaude Desktop and claude.ai
Settings > Connectors > Add custom connector
Name: skillmd-lint
Remote MCP server URL: https://mcp.moltlinestudio.com/skillmd-lintCursor
{
"mcpServers": {
"skillmd-lint": {
"url": "https://mcp.moltlinestudio.com/skillmd-lint"
}
}
}VS Code
code --add-mcp '{"name":"skillmd-lint","type":"http","url":"https://mcp.moltlinestudio.com/skillmd-lint"}'Built your own server? run.zero hosts MCP servers on European infrastructure.
Tools
6 tools
Read-only | Idempotent | Open world | ||
|---|---|---|---|---|
cron_explainExplain 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. | No | Yes | Yes | No |
diff_textsProduce 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. | No | Yes | Yes | No |
json_validateValidate 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. | No | Yes | Yes | No |
lint_skillLint 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. | No | Yes | Yes | No |
packaging_checkValidate 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. | No | Yes | Yes | No |
regex_testTest 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. | No | Yes | Yes | No |
Details
- Registry status
- Active
- Published
- Sep 8, 2026
- Updated
- Sep 8, 2026
- Categories (suggested)
- Developer toolsSuggested categories are assigned automatically from the registry text and may be wrong. Verified operators can correct them.
- GDPR
- Not declared