使用说明
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或模型上下文协议项目无关。
