R
robert19001-cmyk/mcp-lint
Free linter for MCP tool schemas across eight clients, with preflight and recovery scoring
View on GitHub ↗Link checked 2026-11-12 · HTTP 200 · opens the vendor's own site
Install & config
Client config (built from the install command this repo gives)
{
"mcpServers": {
"robert19001-cmyk-mcp-lint": {
"command": "npx",
"args": ["mcp-lint"]
}
}
}Parsed from the README we fetched on 2026-11-03; we have not executed it.
command/args come from the install command the repository states. When it is ambiguous, the project README wins.
VS Code (.vscode/mcp.json - the key is servers)
{
"servers": {
"robert19001-cmyk-mcp-lint": {
"command": "npx",
"args": ["mcp-lint"]
}
}
}Same server, but VS Code keeps it under <code>servers</code>.
Claude Code (command line)
claude mcp add --transport stdio robert19001-cmyk-mcp-lint -- npx mcp-lint
Claude Code does not read a config file; add the server with this command.
Key names differ by client: Clients & CLI
- Star count
- 1 ★ · robert19001-cmyk/mcp-lint · read from the GitHub search API · (checked 2026-11-13 20:00:50)
- Source
- read directly from its GitHub page · type: open-source project
- Harvest history
- first seen 2026-11-04 · last seen 2026-11-14 · seen 11× · listed by 1 sources
- Score
- score 103 · 1 ★ · 1 sources · repo
- Install
npx mcp-lint
FAQ (answers come from our records)
How do I install it?
The repository provides this install command:
npx mcp-lint. It comes from the repository itself; we cannot guarantee it runs as-is in your client.Who is it for?
We filed it under these tags: 开源项目. The tags come from the entry itself, not a taxonomy we imposed.
Who maintains it?
repository
robert19001-cmyk/mcp-lint;first catalogued 2026-11-04;last seen 2026-11-14。There is no official certification or quality rating here — we record sources and dates only.# mcp-lint
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
Lint MCP server tool schemas, then check whether an agent can recover when a tool fails.
Proof page, with a live bench: mcp-lint-alpha.vercel.app
MCP servers expose tool schemas consumed by Claude, Cursor, Gemini, VS Code Copilot, Windsurf, Cline, OpenAI Agents SDK, and Continue.dev. Each client has different JSON Schema support and quirks — a schema that works in Claude may silently break in Cursor or OpenAI. mcp-lint catches these issues before your users do.
This repository is 1.0.2. npm latest is 1.0.2. Design notes: PRODUCT.md, ROADMAP.md, ARCHITECTURE.md, SECURITY.md, RELEASE.md. Those files describe the current code. They are not extra commands.
$ npx mcp-lint check tools.json
search-tool
✖ Schema node at "inputSchema.properties.query" has required: false which is not valid JSON Schema.
inputSchema.properties.query [no-required-false]
⚠ Parameter "limit" in tool "search-tool" is missing a description.
inputSchema.properties.limit [description-exists]
1 error, 1 warning
## Installation
bash
# In a repo that already has tools.json
npx mcp-lint
# Or point at a file
npx mcp-lint check tools.json
# Global
npm install -g mcp-lint
# Per-project dev dependency
npm install --save-dev mcp-lint
## Quick Start
bash
# Look in this directory, and one level down, for tools.json, tools.yaml,
# tools.yml, mcp-tools.json, mcp-tools.yaml, or mcp-tools.yml
npx mcp-lint
# Check a JSON or YAML file
mcp-lint check tools.json
# See compatibility across all clients at a glance
mcp-lint compat tools.json
# Learn what a rule does
mcp-lint explain openai/no-additional-properties
# Auto-fix what can be fixed
mcp-lint fix tools.json --in-place
# Generate a config file
mcp-lint init
# Run as an MCP server
mcp-lint-server
# Score whether a tool failure tells the agent which tool to call next
mcp-lint recover examples/recover/bad-credential.json
# Lint the stdio servers already configured for Cursor, Claude, and VS Code
mcp-lint check --installed
# Save a live tool list, then fail CI when a later snapshot gets worse
mcp-lint snapshot -o tools.json --server stdio -- node server.js
mcp-lint diff tools.json tools.next.json
## mcp-lint compat — Compatibility Matrix
See exactly which tools work with which clients:
$ mcp-lint compat tools.json
claude cursor gemini vscode windsurf cline openai continue
search-tool ✓ ✗ ✓ ✓ ✓ ✓ ✓ ✓
file-reader ✓ ✓ ✗ ✓ ✓ ✓ ✓ ✗
database-query ✓ ✓ ✓ ✓ ✓ ✓ ✗ ✓
2 tools have compatibility issues. Run mcp-lint check for details.
bash
mcp-lint compat tools.json --format markdown # for PRs and GitHub Step Summary
mcp-lint compat tools.json --format json # machine-readable
mcp-lint compat tools.json --client openai # single client column
mcp-lint compat --server stdio -- node server.js
## mcp-lint explain — Rule Documentation
$ mcp-lint explain openai/no-additional-properties
Rule: openai/no-additional-properties
Severity: error
Clients: openai
Fixable: yes
Description
OpenAI Agents SDK strict mode requires additionalProperties: false on the root inputSchema.
Why
OpenAI's strict function calling mode rejects schemas that don't explicitly set
additionalProperties: false at the root level.
Bad example
"type": "object",
"properties": { "q": { "type": "string" } }
Proof page, with a live bench: mcp-lint-alpha.vercel.app
MCP servers expose tool schemas consumed by Claude, Cursor, Gemini, VS Code Copilot, Windsurf, Cline, OpenAI Agents SDK, and Continue.dev. Each client has different JSON Schema support and quirks — a schema that works in Claude may silently break in Cursor or OpenAI. mcp-lint catches these issues before your users do.
This repository is 1.0.2. npm latest is 1.0.2. Design notes: PRODUCT.md, ROADMAP.md, ARCHITECTURE.md, SECURITY.md, RELEASE.md. Those files describe the current code. They are not extra commands.
$ npx mcp-lint check tools.json
search-tool
✖ Schema node at "inputSchema.properties.query" has required: false which is not valid JSON Schema.
inputSchema.properties.query [no-required-false]
⚠ Parameter "limit" in tool "search-tool" is missing a description.
inputSchema.properties.limit [description-exists]
1 error, 1 warning
## Installation
bash
# In a repo that already has tools.json
npx mcp-lint
# Or point at a file
npx mcp-lint check tools.json
# Global
npm install -g mcp-lint
# Per-project dev dependency
npm install --save-dev mcp-lint
## Quick Start
bash
# Look in this directory, and one level down, for tools.json, tools.yaml,
# tools.yml, mcp-tools.json, mcp-tools.yaml, or mcp-tools.yml
npx mcp-lint
# Check a JSON or YAML file
mcp-lint check tools.json
# See compatibility across all clients at a glance
mcp-lint compat tools.json
# Learn what a rule does
mcp-lint explain openai/no-additional-properties
# Auto-fix what can be fixed
mcp-lint fix tools.json --in-place
# Generate a config file
mcp-lint init
# Run as an MCP server
mcp-lint-server
# Score whether a tool failure tells the agent which tool to call next
mcp-lint recover examples/recover/bad-credential.json
# Lint the stdio servers already configured for Cursor, Claude, and VS Code
mcp-lint check --installed
# Save a live tool list, then fail CI when a later snapshot gets worse
mcp-lint snapshot -o tools.json --server stdio -- node server.js
mcp-lint diff tools.json tools.next.json
## mcp-lint compat — Compatibility Matrix
See exactly which tools work with which clients:
$ mcp-lint compat tools.json
claude cursor gemini vscode windsurf cline openai continue
search-tool ✓ ✗ ✓ ✓ ✓ ✓ ✓ ✓
file-reader ✓ ✓ ✗ ✓ ✓ ✓ ✓ ✗
database-query ✓ ✓ ✓ ✓ ✓ ✓ ✗ ✓
2 tools have compatibility issues. Run mcp-lint check for details.
bash
mcp-lint compat tools.json --format markdown # for PRs and GitHub Step Summary
mcp-lint compat tools.json --format json # machine-readable
mcp-lint compat tools.json --client openai # single client column
mcp-lint compat --server stdio -- node server.js
## mcp-lint explain — Rule Documentation
$ mcp-lint explain openai/no-additional-properties
Rule: openai/no-additional-properties
Severity: error
Clients: openai
Fixable: yes
Description
OpenAI Agents SDK strict mode requires additionalProperties: false on the root inputSchema.
Why
OpenAI's strict function calling mode rejects schemas that don't explicitly set
additionalProperties: false at the root level.
Bad example
"type": "object",
"properties": { "q": { "type": "string" } }
Listed badge (optional)
Copy this line into the README if you want the listing mark. Optional, and it does not affect being listed.
[](https://anclum.com/en/s/robert19001-cmyk-mcp-lint/)
- Source
- github · https://github.com/robert19001-cmyk/mcp-lint
- Browse by field
- Open source
- Traction
- 1 ★
- added
- today
More like this
Filed under
Every tag opens the full list for that filter. Counts are the live catalogue figures.