MCP Surface Lint

Statically audits MCP tool surfaces for token cost, schema quality, and design issues.

使うべきか

品質と安全性

A
説明の品質
100%
スキーマの完全性
83%
命名の品質
100%
ポイズニングのリスク
100%
権限の一致
100%
プロトコルへの準拠
100%

ツール定義とプロトコルへの準拠に関する自動分析に基づいています。

コンテキストコスト

~904トークン数(ツール定義)
~9.8 KB一般的なレスポンスサイズ
注意への影響は中程度(128k コンテキストの 0.71%)

これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。

インストール

ワンクリックインストール

これを `claude_desktop_config.json` ファイルに追加してください:

{
  "mcpServers": {
    "mcp-surface-lint": {
      "url": "https://mcplint-web.vercel.app/api/mcp"
    }
  }
}

リモートエンドポイント

https://mcplint-web.vercel.app/api/mcpstreamable-http

できること

ツール一覧

ツール(1)

🟢 読み取り専用🟡 書き込み🔴 削除⚪ 不明
🟢check_mcp_server(url, headers, snapshot)

Statically audit an MCP tool surface from a public HTTPS URL or tools/list snapshot. Returns deterministic scores and findings without invoking any target tool or making LLM calls. When the user asks to check another installed MCP server, read that server's complete tool definitions from client context and pass them as snapshot (MCP `name` or Cursor-style `tool` both work; do not use file paths or $ref). If those definitions are unavailable, ask the user for its public endpoint or tools/list JSON instead of inventing an audit.

入力スキーマ

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "format": "uri",
      "description": "Public HTTPS Streamable HTTP MCP endpoint to inspect."
    },
    "headers": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      },
      "description": "Optional HTTP headers sent only while reading the remote tools/list response."
    },
    "snapshot": {
      "description": "A tools/list JSON response, MCP Surface Lint snapshot, or client tool dump containing a tools array. Each tool needs `name`, or the Cursor-style `tool` alias. Forward another installed server's complete tool definitions here — do not invent schemas."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "staticAnalysis": {
      "type": "boolean",
      "const": true
    },
    "targetToolsInvoked": {
      "type": "boolean",
      "const": false
    },
    "grade": {
      "type": "string",
      "enum": [
        "A",
        "B",
        "C",
        "D",
        "F"
      ]
    },
    "server": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "version": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "source": {
      "type": "string"
    },
    "stats": {
      "type": "object",
      "properties": {
        "toolCount": {
          "type": "integer",
          "minimum": 0
        },
        "approxTokens": {
          "type": "integer",
          "minimum": 0
        },
        "encoding": {
          "type": "string"
        }
      },
      "required": [
        "toolCount",
        "approxTokens",
        "encoding"
      ],
      "additionalProperties": false
    },
    "scores": {
      "type": "object",
      "properties": {
        "composite": {
          "type": "integer",
          "minimum": 0,
          "maximum": 100
        },
        "categories": {
          "type": "object",
          "properties": {
            "surface": {
              "type": "integer",
              "minimum": 0,
              "maximum": 100
            },
            "naming": {
              "type": "integer",
              "minimum": 0,
              "maximum": 100
            },
            "descriptions": {
              "type": "integer",
              "minimum": 0,
              "maximum": 100
            },
            "schemas": {
              "type": "integer",
              "minimum": 0,
              "maximum": 100
            },
            "annotations": {
              "type": "integer",
              "minimum": 0,
              "maximum": 100
            },
            "design": {
              "type": "integer",
              "minimum": 0,
              "maximum": 100
            }
          },
          "required": [
            "surface",
            "naming",
            "descriptions",
            "schemas",
            "annotations",
            "design"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "composite",
        "categories"
      ],
      "additionalProperties": false
    },
    "findingCounts": {
      "type": "object",
      "properties": {
        "bySeverity": {
          "type": "object",
          "properties": {
            "error": {
              "type": "integer",
              "minimum": 0
            },
            "warn": {
              "type": "integer",
              "minimum": 0
            },
            "info": {
              "type": "integer",
              "minimum": 0
            }
          },
          "required": [
            "error",
            "warn",
            "info"
          ],
          "additionalProperties": false
        },
        "byCategory": {
          "type": "object",
          "properties": {
            "surface": {
              "type": "integer",
              "minimum": 0
            },
            "naming": {
              "type": "integer",
              "minimum": 0
            },
            "descriptions": {
              "type": "integer",
              "minimum": 0
            },
            "schemas": {
              "type": "integer",
              "minimum": 0
            },
            "annotations": {
              "type": "integer",
              "minimum": 0
            },
            "design": {
              "type": "integer",
              "minimum": 0
            }
          },
          "required": [
            "surface",
            "naming",
            "descriptions",
            "schemas",
            "annotations",
            "design"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "bySeverity",
        "byCategory"
      ],
      "additionalProperties": false
    },
    "findings": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "ruleId": {
            "type": "string"
          },
          "toolName": {
            "type": "string"
          },
          "path": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "evidence": {
            "type": "string"
          },
          "severity": {
            "type": "string",
            "enum": [
              "error",
              "warn",
              "info"
            ]
          },
          "category": {
            "type": "string",
            "enum": [
              "surface",
              "naming",
              "descriptions",
              "schemas",
              "annotations",
              "design"
            ]
          },
          "docsUrl": {
            "type": "string"
          }
        },
        "required": [
          "ruleId",
          "message",
          "severity",
          "category",
          "docsUrl"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "staticAnalysis",
    "targetToolsInvoked",
    "grade",
    "server",
    "source",
    "stats",
    "scores",
    "findingCounts",
    "findings"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

コミュニティ

このサーバーを評価する

エビデンス

最近の観測

検証済みバージョンは記録されていませんツール 1 件
検証済みバージョンは記録されていませんツール 1 件
検証済みバージョンは記録されていませんツール 1 件