MCP服务器卡片生成工具

生成符合SEP-1649规范的MCP服务器卡片,使客户端无需连接即可发现服务器功能。

  • by avinashchby
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 avinashchby/mcpcard

使用说明

mcpcard

根据SEP-1649生成MCP服务器卡——让客户端在不连接的情况下发现您的服务器。

快速开始

npx @avinashchby/mcpcard scan ./src

它做什么

如果不首先建立实时连接,MCP客户端目前无法知道服务器暴露了哪些工具、资源或提示。 mcpcard 生成静态 server-card.json 文件放置在 /.well-known/mcp/server-card.json 根据SEP-1649规范,以机器可读的格式描述服务器的全部功能——工具、资源、提示、传输和身份验证。卡片可以通过静态扫描TypeScript、JavaScript或Python源文件,或者直接通过stdio或HTTP对正在运行的服务器进行自检来生成。生成后,该卡可以根据SEP-1649 JSON模式进行验证,并通过HTTP提供服务,因此注册表、爬虫和MCP客户端可以在不建立连接的情况下发现您的服务器。

特性

  • Types/JavaScript的静态源代码扫描(通过TypeScript编译器AST)和Python(通过FastMCP模式上的正则表达式)
  • 使用MCP协议通过stdio或HTTP对正在运行的服务器进行实时自检
  • 根据SEP-1649规范进行JSON模式验证(出口0=有效,出口1=打印错误)
  • 为卡提供服务的HTTP服务器 /.well-known/mcp/server-card.json
  • Express中间件(mcpCardMiddleware)用于将卡端点嵌入到您自己的服务器中
  • 对工具、资源和提示进行重复数据消除和按字母顺序排序
  • 倒像 package.json 将服务器名称、版本和描述元数据作为回退
  • 可作为Node.js库与CLI一起使用

用法

扫描Types/JavaScript或Python源代码目录,并将卡片写入默认路径:

npx @avinashchby/mcpcard scan ./src
# Writes: .well-known/mcp/server-card.json

使用自定义输出路径和详细日志进行扫描:

npx @avinashchby/mcpcard scan ./src --output ./public/server-card.json --verbose

检查正在运行的stdio服务器:

npx @avinashchby/mcpcard live --command "node dist/server.js"

反思正在运行的HTTP服务器:

npx @avinashchby/mcpcard live --url http://localhost:8080

验证现有卡文件:

npx @avinashchby/mcpcard validate .well-known/mcp/server-card.json

通过HTTP服务卡(首先验证,如果无效则拒绝服务):

npx @avinashchby/mcpcard serve .well-known/mcp/server-card.json --port 3000
# Card available at http://localhost:3000/.well-known/mcp/server-card.json

输出示例

{
  "name": "my-mcp-server",
  "version": "1.2.0",
  "description": "An MCP server that does useful things.",
  "capabilities": {
    "tools": true,
    "resources": true,
    "prompts": false
  },
  "transport": {
    "type": "stdio"
  },
  "tools": [
    {
      "name": "fetch_url",
      "description": "Fetch the contents of a URL"
    },
    {
      "name": "run_query",
      "description": "Execute a SQL query against the database"
    }
  ],
  "resources": [
    {
      "uri": "db://schema",
      "name": "get_schema",
      "description": "Returns the database schema"
    }
  ],
  "protocol_version": "2025-11-05"
}

安装

npm install -g @avinashchby/mcpcard
# or
npx @avinashchby/mcpcard scan ./src

许可证

麻省理工学院