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

Server definition

Hash
sha256:fa780236385f4767ecbd8d5566f12161ea39c67a82a4e67aac4e8bb163b3f161
What it is
What a remote MCP server returned when asked what it offers: 6 tools

The blob, as servednamed by its sha256

{ "instructions": "Lint SKILL.md files for AI agents: lint_skill validates one file's frontmatter, structure, secrets, and size; packaging_check validates a zip layout plan for skill marketplaces. All tools are free.", "tools": [ { "description": "Explain a 5-field cron expression in plain English and flag mistakes. FREE.\n\nTypical input {\"expression\": \"0 9 * * 1-5\"} returns {\"expression\":\n\"0 9 * * 1-5\", \"meaning\": \"at minute 0; at hour 9; every day of month;\nevery month; day of week 1-5\", \"issues\": [\"none\"]}; out-of-range fields\nare listed in \"issues\".\n\nUse to read a schedule back in plain English before trusting it. Assumes\n5-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.", "inputSchema": { "additionalProperties": false, "properties": { "expression": { "description": "A standard 5-field cron string (minute hour day-of-month month day-of-week), e.g. \"0 9 * * 1-5\"; must be non-empty.", "minLength": 1, "type": "string" } }, "required": [ "expression" ], "type": "object" }, "name": "cron_explain", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "Produce a unified diff between two texts. FREE.\n\nUseful for comparing two SKILL.md versions. Typical input {\"a\": \"<old\ntext>\", \"b\": \"<new text>\"} returns {\"changed_lines\": N, \"diff\":\n\"--- \\n+++ \\n@@ ... @@\\n-old line\\n+new line\"}; identical inputs\nreturn {\"changed_lines\": 0, \"diff\": \"(identical)\"}. The diff is capped\nat 400 lines.\n\nUse to show exactly what changed between two versions of a text. Not for\njudging the risk of a code change - the codereview server's review_diff\ndoes 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.", "inputSchema": { "additionalProperties": false, "properties": { "a": { "description": "The original text (left side of the diff); at most 500000 characters.", "maxLength": 500000, "type": "string" }, "b": { "description": "The revised text (right side of the diff); at most 500000 characters.", "maxLength": 500000, "type": "string" } }, "required": [ "a", "b" ], "type": "object" }, "name": "diff_texts", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "Validate JSON text and summarize its structure. FREE.\n\nTypical input {\"text\": \"{\\\"a\\\": [1, 2]}\"} returns {\"valid\": true,\n\"structure\": {\"a\": [\"array[2]\", \"int\"]}}; invalid JSON returns\n{\"valid\": false, \"error\": \"<parser message>\", \"line\": N, \"column\": N}\ninstead.\n\nUse when JSON may be malformed or its shape is unknown. Reports structure,\nnot 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.", "inputSchema": { "additionalProperties": false, "properties": { "text": { "description": "The JSON document to validate, as a raw string; must be non-empty.", "minLength": 1, "type": "string" } }, "required": [ "text" ], "type": "object" }, "name": "json_validate", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "Lint one SKILL.md file the way marketplaces and agents parse it. FREE.\n\nChecks YAML frontmatter presence and required fields (name,\ndescription), description quality, body structure (procedure steps,\nrules, degradation), secret/credential leakage, injection-style\nphrasing, and size budget. Typical input {\"content\": \"<full SKILL.md\ntext>\"} returns {\"verdict\": \"pass\" | \"pass-with-warnings\" | \"fail\",\n\"errors\": [\"...\"], \"warnings\": [\"...\"], \"stats\": {\"body_words\": N,\n\"has_frontmatter\": bool}}.\n\nUse on the full text of one SKILL.md. Not for the surrounding archive\nlayout (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.", "inputSchema": { "additionalProperties": false, "properties": { "content": { "description": "The complete SKILL.md file text, frontmatter included; must be non-empty.", "minLength": 1, "type": "string" } }, "required": [ "content" ], "type": "object" }, "name": "lint_skill", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "Validate a zip layout plan for a skill marketplace before packaging. FREE.\n\nChecks SKILL.md placement rules and flags junk files. Typical input\n{\"file_paths\": [\"my-skill/SKILL.md\", \"my-skill/examples.md\"],\n\"marketplace\": \"agensi\"} returns {\"verdict\": \"pass\" | \"fail\",\n\"issues\": [\"...\"], \"skill_files_found\": [\"my-skill/SKILL.md\"]}.\n\nUse on a planned file layout, before zipping. Not for the content of a\nskill 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.", "inputSchema": { "additionalProperties": false, "properties": { "file_paths": { "description": "Every file path that will be inside the zip, relative to the zip root, e.g. [\"my-skill/SKILL.md\"]; at least 1 entry.", "items": { "type": "string" }, "minItems": 1, "type": "array" }, "marketplace": { "default": "agensi", "description": "Rule set to apply: \"agensi\" (SKILL.md at root or one folder deep) or \"generic\" (junk-file checks only). Default \"agensi\".", "type": "string" } }, "required": [ "file_paths" ], "type": "object" }, "name": "packaging_check", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "Test a regular expression against sample strings. FREE.\n\nTypical input {\"pattern\": \"v(\\\\d+)\", \"samples\": [\"v12\", \"beta\"]}\nreturns {\"pattern\": ..., \"results\": [{\"sample\": \"v12\", \"match\": true,\n\"matched_text\": \"v12\", \"groups\": [\"12\"]}, {\"sample\": \"beta\", \"match\":\nfalse, ...}], \"match_count\": 1}.\n\nUse to confirm a pattern matches what you expect before shipping it. Not\nfor validating JSON (json_validate). The pattern is compiled and run in a\nshort-lived, CPU-capped child process, so a pattern that backtracks\ncatastrophically 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.", "inputSchema": { "additionalProperties": false, "properties": { "pattern": { "description": "A Python-flavor regular expression as a string, e.g. \"v(\\\\d+)\".", "maxLength": 1000, "type": "string" }, "samples": { "description": "Strings to test the pattern against; only the first 50 are evaluated.", "items": { "type": "string" }, "maxItems": 50, "type": "array" } }, "required": [ "pattern", "samples" ], "type": "object" }, "name": "regex_test", "outputSchema": { "additionalProperties": true, "type": "object" } } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:fa780236385f4767ecbd8d5566f12161ea39c67a82a4e67aac4e8bb163b3f161 | sha256sum