MCP服务器检查工具

CLI工具,用于检查和评分MCP服务器的模式质量,包括缺失描述、令牌膨胀等问题,并可在CI中失败质量下降。

  • by sameenchand
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 sameenchand/mcpx

使用说明

mcpx

MCP服务器的CLI linter和inspector。由...驱动 MCP游乐场.

考虑ESLint,但要考虑MCP服务器模式质量。 mcpx 对服务器进行A-F评级,显示缺少的描述,标记令牌膨胀,并在质量下降时使CI失败——所有这些都来自一个命令。

安装

npm install -g @samsec/mcpx

或者在不安装的情况下运行:

npx @samsec/mcpx lint https://mcp.example.com/mcp

命令

mcpx lint <url>

查找MCP服务器架构。出口 0 通过时, 1 在失败时, 2 如果服务器无法访问。

mcpx lint https://mcp.example.com/mcp

输出示例:

  MCP Playground — Schema Linter
  ─────────────────────────────────────────
  Server : My MCP Server v1.0.0
  Tools  : 12  ·  Resources: 0  ·  Prompts: 0
  Grade  : B   ·  Score: 85/100
  Tokens : ~1,240 estimated

  ERRORS (1)
  ✗ tool "create_payment" — description too short (8 chars, min 20)

  WARNINGS (3)
  ⚠ tool "refund" — missing required fields declaration
  ⚠ tool "search" — Property "q" has no description.
  ⚠ tool "search" — Description is 420 chars — consider trimming.

  Open in MCP Playground → https://mcpplayground.tech/lint?url=...
  ─────────────────────────────────────────
  ✖ Failed (1 error, 3 warnings)

选项:

选项 描述 默认值
--fail-on <level> 失败 errors 或 warnings errors
--min-grade <grade> 如果成绩低于阈值(A、B、C、D、F),则失败 --
--token-budget <n> 如果令牌占用超过N --,则失败
--format json 输出原始JSON(无微调器,可管道化) --
--quiet 没有输出--只有退出代码 --

示例:

# Fail CI only on errors (default)
mcpx lint https://mcp.example.com/mcp --fail-on errors

# Fail CI on any warnings too
mcpx lint https://mcp.example.com/mcp --fail-on warnings

# Require at least a B grade
mcpx lint https://mcp.example.com/mcp --min-grade B

# Fail if server token footprint exceeds 5,000 tokens
mcpx lint https://mcp.example.com/mcp --token-budget 5000

# Machine-readable output for scripting
mcpx lint https://mcp.example.com/mcp --format json | jq '.grade'

# Silent — check exit code only
mcpx lint https://mcp.example.com/mcp --quiet && echo "passed"

mcpx inspect <url>

显示MCP服务器公开的所有工具、资源和提示。

mcpx inspect https://mcp.example.com/mcp
mcpx inspect https://mcp.example.com/mcp --format json

mcpx health <url>

检查MCP服务器是否可访问,并测量延迟。

mcpx health https://mcp.example.com/mcp

输出:

  MCP Playground — Health Check
  ─────────────────────────────────────────
  URL    : https://mcp.example.com/mcp
  Status : up
  Latency: 143ms

出口 0 如果向上, 1 如果下降, 2 如果无法到达。


mcpx diff --base <url> --head <url>

比较两个MCP服务器版本。如果成绩下降、分数下降或令牌占用空间增加超过阈值,则CI失败。

mcpx diff --base https://mcp.example.com/mcp --head https://mcp-staging.example.com/mcp

输出:

  MCP Playground — Diff
  ─────────────────────────────────────────
  Grade  : A → B  ✖ dropped
  Score  : 95 → 82  (−13)
  Tokens : ~800 → ~1,240  (+55.0%)

选项:

选项 描述 默认值
--score-drop <n> 如果分数下降超过N分,则失败 10
--token-threshold <n> 如果令牌占用空间增加超过N%,则失败 20
--format json 输出原始JSON --

退出代码

代码 含义
0 通过——成绩达到门槛,无堵塞问题
1 失败--发现错误、评分低于阈值或超出预算
2 错误--服务器无法访问、需要身份验证或超时

GitHub行动

添加 mcpx 只需一步即可连接到任何CI管道:

- uses: sameenchand/mcpx@v1
  with:
    url: ${{ secrets.MCP_SERVER_URL }}

完整示例:

name: MCP Schema Quality

on: [push, pull_request]

jobs:
  lint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Lint MCP server
        id: lint
        uses: sameenchand/mcpx@v1
        with:
          url: ${{ secrets.MCP_SERVER_URL }}
          fail-on: errors
          min-grade: B
          token-budget: 5000

      - name: Print results
        run: |
          echo "Grade: ${{ steps.lint.outputs.grade }}"
          echo "Score: ${{ steps.lint.outputs.score }}"

输入:

输入 说明 必填 默认
url MCP服务器URL到lint 是 --
fail-on 失败 errors 或 warnings 没有 errors
min-grade 最低要求成绩(A-F) 否 --
token-budget 最大允许令牌占用空间 否 --

输出:

输出 描述
grade 字母等级(A-F)
score 数字分数(0-100)
errors 发现的错误数
warnings 发现的警告数

问题以原生GitHub注释的形式出现在Actions UI中——警告和错误会内联显示,无需任何额外配置。


评分

分数从100开始,每次扣减:

严重性 扣减
错误 −15分
警告 -5分
信息 −1 pt
等级 分数
A 90-100
B 75-89
C 60-74
D 40-59
F 0–39

没有工具、资源和提示的服务器会自动收到F,而不管分数如何。全面评分方法: mcpplayground.tech/docs/dgrading.


由MCP游乐场提供动力

mcpx 呼叫 MCP游乐场 公共API。无需后端设置-API是免费的,并启用CORS。

端点 由使用
GET /api/v1/lint?url= mcpx lint
GET /api/v1/inspect?url= mcpx inspect
GET /api/v1/health?url= mcpx health

API文件: mcpplayground.tech/docs/api


许可证

MIT。看 许可证.

与Anthropic或模型上下文协议项目无关。