AI工作流检查 是 AI Skill Hub 本期精选Agent工作流之一。综合评分 7.5 分,整体质量较高。我们推荐使用将其纳入你的 AI 工具库,帮助提升工作效率。
AI工作流检查 是一套完整的 AI Agent 自动化工作流方案。通过可视化的节点编排,将复杂的多步骤任务拆解为清晰的自动化流程,实现全程无人值守的智能处理。支持与数百种外部服务和 API 无缝集成,适合构建数据处理管线、业务自动化和 AI 辅助决策系统。
AI工作流检查 是一套完整的 AI Agent 自动化工作流方案。通过可视化的节点编排,将复杂的多步骤任务拆解为清晰的自动化流程,实现全程无人值守的智能处理。支持与数百种外部服务和 API 无缝集成,适合构建数据处理管线、业务自动化和 AI 辅助决策系统。
# 方式一:npm 全局安装 npm install -g ctxlint # 方式二:npx 直接运行(无需安装) npx ctxlint --help # 方式三:项目依赖安装 npm install ctxlint # 方式四:从源码运行 git clone https://github.com/YawLabs/ctxlint cd ctxlint npm install npm start
# 命令行使用
ctxlint --help
# 基本用法
ctxlint [options] <input>
# Node.js 代码中使用
const ctxlint = require('ctxlint');
const result = await ctxlint.run(options);
console.log(result);
# ctxlint 配置说明 # 查看配置选项 ctxlint --config-example > config.yml # 常见配置项 # output_dir: ./output # log_level: info # workers: 4 # 环境变量(覆盖配置文件) export CTXLINT_CONFIG="/path/to/config.yml"
Lint your AI agent context files, MCP server configs, and session data against your actual codebase. Context linting + MCP config linting + session auditing. 16 AI tools, 8 MCP clients, cross-project consistency, auto-fix. Works as a CLI, CI step, pre-commit hook, or MCP server.
Your CLAUDE.md is lying to your agent. Your .mcp.json has a hardcoded API key. ctxlint catches both.
One click adds this to your local Yaw MCP config so it's available in every Yaw Terminal session. Or install manually below.
Run directly (no install needed):
npx -y @yawlabs/ctxlint@latest
```bash npm install -D @yawlabs/ctxlint
npm install -g @yawlabs/ctxlint
Useful if you want ctxlint available in every project without per-project setup.
MCP Configs
.mcp.json
✗ mcp-security Server "api": hardcoded Bearer token in a git-tracked file
✗ mcp-deprecated Server "old-svc": SSE transport is deprecated — use "http"
✓ mcp-schema
✓ mcp-commands
.cursor/mcp.json
✗ mcp-env Server "api": Cursor uses ${env:VAR}, not ${VAR}
✓ mcp-schema
.vscode/mcp.json
✗ mcp-schema .vscode/mcp.json must use "servers" as root key, not "mcpServers"
Cross-file
⚠ Server "api" is configured differently in .mcp.json and .cursor/mcp.json
ℹ Server "db" is in .mcp.json but missing from .cursor/mcp.json
Summary: 3 errors, 2 warnings, 1 info
ctxlint v0.9.10
Scanning /Users/you/my-app...
Found 2 context files (1,847 tokens total)
CLAUDE.md (1,203 tokens, 42 lines)
AGENTS.md -> CLAUDE.md (symlink)
CLAUDE.md
✗ Line 12: src/auth/middleware.ts does not exist
→ Did you mean src/middleware/auth.ts? (renamed 14 days ago)
✗ Line 8: "pnpm test" — script "test" not found in package.json
⚠ Last updated 47 days ago. src/routes/ has 8 commits since.
⚠ testing framework conflict: "Vitest" in CLAUDE.md vs "Jest" in AGENTS.md
ℹ Line 3: "Express" is in package.json dependencies — agent can infer this
Summary: 2 errors, 2 warnings, 1 info
Token usage: 1,203 tokens per agent session
Estimated waste: ~55 tokens (redundant content)
ctxlint also lints MCP server configuration files — the JSON configs that tell AI clients which tools to connect to. These are context interfaces too: they shape what your agent can do.
```bash
npx @yawlabs/ctxlint@latest --mcp
npx @yawlabs/ctxlint@latest --mcp-only
npx @yawlabs/ctxlint@latest --mcp-global ```
| File | Client |
|---|---|
.mcp.json | Claude Code (universal project config) |
.cursor/mcp.json | Cursor |
.vscode/mcp.json | VS Code / GitHub Copilot |
.amazonq/mcp.json | Amazon Q Developer |
.continue/mcpServers/*.json | Continue |
With --mcp-global, also scans Claude Desktop, Cursor, Windsurf, and Amazon Q global configs.
| Check | What it finds |
|---|---|
| **Schema** | Invalid JSON, wrong root key (servers vs mcpServers), missing required fields |
| **Security** | Hardcoded API keys and Bearer tokens in git-tracked config files |
| **Commands** | Missing cmd /c wrapper for npx on Windows, broken file paths in args |
| **Deprecated** | SSE transport usage (deprecated March 2025, use Streamable HTTP) |
| **Env vars** | Wrong env var syntax for the client (${VAR} vs ${env:VAR} vs ${{ secrets.VAR }}) |
| **URLs** | Malformed URLs, localhost in project configs, missing path component |
| **Consistency** | Same server configured differently across client configs |
| **Redundancy** | Disabled servers, identical configs at multiple scopes |
The full specification for MCP config linting rules, the cross-client config landscape, and a machine-readable rule catalog are published as open specifications:
MCP_CONFIG_LINT_SPEC.md — 43 lint rules across 8 categories, the complete client/format reference, and implementation guidance. Tool-agnostic — any linter can implement it.mcp-config-lint-rules.json — Machine-readable rule catalog for programmatic consumption by AI agents, CI systems, and other tools.ctxlint also lints .mcph.json — the config file read by the @yawlabs/mcph CLI, which orchestrates MCP servers via the mcp.hosting registry. Distinct from .mcp.json (different schema, different threat model). Applies across the user-global (~/.mcph.json), per-project (.mcph.json), and machine-local (.mcph.local.json) scope cascade.
```bash
npx @yawlabs/ctxlint@latest --mcph --mcph-strict-env-token ```
| Check | What it finds |
|---|---|
| **mcph-token-security** | mcp.hosting PAT (mcp_pat_*) leaks, malformed tokens, and prefers env-var (MCPH_TOKEN) over file-stored tokens |
| **mcph-apibase** | Invalid apiBase URLs and plaintext HTTP to public hosts (private hosts like localhost / RFC 1918 are exempt) |
| **mcph-schema-conformance** | Unknown / typo'd fields and stale version numbers vs the current mcph.config.v1.json schema |
| **mcph-lists** | Conflicts (entries in both servers allow-list and blocked deny-list) and duplicates within either list |
| **mcph-gitignore** | .mcph.local.json not covered by .gitignore — machine-local overrides exist precisely to stay machine-local |
Usage: ctxlint [options] [path]
Arguments:
path Project directory to scan (default: ".")
Options:
--strict Exit code 1 on any warning or error (for CI)
--checks <list> Comma-separated checks to run (see below)
--ignore <list> Comma-separated checks to skip
--fix Auto-fix broken paths using git history and fuzzy matching
--fix-dry-run Preview --fix changes without writing
--yes Skip interactive confirmation prompts (required for --fix in TTY)
--follow-symlinks Allow --fix to write through symlinks (default: skip)
--format <fmt> Output format: text, json, or sarif (default: text)
--tokens Show token breakdown per file
--verbose Show passing checks too
--quiet Suppress all output except errors (exit code only)
--config <path> Path to config file (default: .ctxlintrc in project root)
--depth <n> Max subdirectory depth to scan (default: 2)
--mcp Enable MCP config linting alongside context file checks
--mcp-only Run only MCP config checks, skip context file checks
--mcp-global Also scan user/global MCP config files (implies --mcp)
--mcph Enable .mcph.json (mcp.hosting CLI config) linting
--mcph-only Run only mcph config checks
--mcph-global Also scan ~/.mcph.json (implies --mcph)
--mcph-strict-env-token Upgrade mcph-config/prefer-env-token from warning to error
--session Enable session audit checks (cross-project consistency)
--session-only Run only session checks, skip context and MCP checks
--mcp-server Start the MCP server (alias: `serve` subcommand)
--watch Re-lint on context file changes
-V, --version Output the version number
-h, --help Display help
Commands:
init Set up a git pre-commit hook
Available checks: paths, commands, staleness, tokens, tier-tokens, redundancy, contradictions, frontmatter, ci-coverage, ci-secrets, mcp-schema, mcp-security, mcp-commands, mcp-deprecated, mcp-env, mcp-urls, mcp-consistency, mcp-redundancy, mcph-token-security, mcph-apibase, mcph-schema-conformance, mcph-lists, mcph-gitignore, session-missing-secret, session-diverged-file, session-missing-workflow, session-stale-memory, session-duplicate-memory, session-loop-detection, session-memory-index-overflow
Passing any mcp-* check name implies --mcp. Passing any mcph-* check name implies --mcph. Passing any session-* check name implies --session.
Create a .ctxlintrc or .ctxlintrc.json in your project root:
{
"checks": ["paths", "commands", "tokens", "contradictions", "frontmatter"],
"ignore": ["redundancy"],
"strict": true,
"tokenThresholds": {
"info": 500,
"warning": 2000,
"error": 5000,
"aggregate": 4000,
"tierBreakdown": 1000,
"tierAggregate": 4000
},
"contextFiles": ["CONVENTIONS.md", "docs/ai-rules.md"]
}
The contextFiles array adds custom file patterns to scan alongside the built-in list. Useful for project-specific context files like CONVENTIONS.md.
| Field | Type | Default | Meaning |
|---|---|---|---|
checks | string[] | all checks | Checks to run. Check names include paths, commands, tokens, tier-tokens, redundancy, contradictions, frontmatter, staleness, ci-coverage, ci-secrets, plus any mcp-* / session-*. |
ignore | string[] | [] | Checks to skip, evaluated after checks. |
strict | boolean | false | Exit non-zero on any warning or error. |
tokenThresholds | object | see below | Per-file and cross-file token thresholds. |
tokenThresholds.info | number | 1000 | Per-file info threshold for tokens/info. |
tokenThresholds.warning | number | 3000 | Per-file warning threshold for tokens/large. |
tokenThresholds.error | number | 8000 | Per-file error threshold for tokens/excessive. |
tokenThresholds.aggregate | number | 5000 | Cross-file total threshold for tokens/aggregate. |
tokenThresholds.tierBreakdown | number | 1000 | Always-loaded file threshold for tier-tokens/section-breakdown. |
tokenThresholds.tierAggregate | number | 4000 | Combined always-loaded threshold for tier-tokens/aggregate. |
contextFiles | string[] | [] | Extra glob patterns to scan alongside the built-in list. |
mcp | boolean | false | Enable MCP config checks by default (same as --mcp). |
mcpOnly | boolean | false | Run only MCP config checks, skip context-file checks (same as --mcp-only). |
mcpGlobal | boolean | false | Also scan user/global MCP configs (same as --mcp-global). |
mcph | boolean | false | Enable .mcph.json (mcp.hosting CLI config) checks (same as --mcph). |
mcphOnly | boolean | false | Run only mcph config checks, skip context-file checks (same as --mcph-only). |
mcphGlobal | boolean | false | Also scan ~/.mcph.json user-global config (same as --mcph-global). |
mcphStrictEnvToken | boolean | false | Upgrade mcph-config/prefer-env-token from warning to error (same as --mcph-strict-env-token). |
session | boolean | false | Enable session audit checks (cross-project consistency); same as --session. |
sessionOnly | boolean | false | Run only session checks, skip context and MCP checks (same as --session-only). |
Config file resolution order: .ctxlintrc → .ctxlintrc.json in the project root. Use --config <path> to point elsewhere. CLI flags override config fields.
CLI flags override config file settings. Use --config <path> to load a config from a custom location.
Create .mcp.json in your project root:
macOS / Linux / WSL:
{
"mcpServers": {
"ctxlint": {
"command": "npx",
"args": ["-y", "@yawlabs/ctxlint@latest", "serve"]
}
}
}
Windows:
{
"mcpServers": {
"ctxlint": {
"command": "cmd",
"args": ["/c", "npx", "-y", "@yawlabs/ctxlint@latest", "serve"]
}
}
}
Tip: This file is safe to commit — it contains no secrets.
Add to .vscode/mcp.json:
{
"servers": {
"ctxlint": {
"command": "npx",
"args": ["-y", "@yawlabs/ctxlint@latest", "serve"]
}
}
}
ctxlint是一个有用的AI工作流检查工具
AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。
建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。
✅ MIT 协议 — 最宽松的开源协议之一,可自由商用、修改、分发,仅需保留版权声明。
经综合评估,AI工作流检查 在Agent工作流赛道中表现稳健,质量良好。如果你已有明确的使用需求,可以直接上手体验;如果还在评估阶段,建议对比同类工具后再做决策。
| 原始名称 | ctxlint |
| 原始描述 | 开源AI工作流:Lint your AI agent context files (CLAUDE.md, AGENTS.md, etc.) against your actua。⭐6 · TypeScript |
| Topics | AI工作流检查 |
| GitHub | https://github.com/YawLabs/ctxlint |
| License | MIT |
| 语言 | TypeScript |
收录时间:2026-05-28 · 更新时间:2026-05-30 · License:MIT · AI Skill Hub 不对第三方内容的准确性作法律背书。
选择 Agent 类型,复制安装指令后粘贴到对应客户端