MCP服务器生成工具

一个从现有REST API和端点生成模型上下文协议(MCP)服务器的综合平台,提供企业级功能,支持CLI工具和VS Code扩展。

  • by me-saurabhkohli
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 me-saurabhkohli/mcp-agentify

使用说明

MCP Agentify(可译为“MCP代理化”或根据具体语境调整为更贴切的表述,如“MCP代理服务/解决方案”等)

一个全面的平台,用于从现有的REST API和端点生成具有企业级功能的模型上下文协议(MCP)服务器。该平台同时提供命令行界面(CLI)工具和VS Code扩展两种使用方式。

特点/功能

核心能力

  • 🔍 看起来像一个放大镜的符号,通常用来表示搜索、查看细节或观察的意思。在中文里,这个符号本身没有直接的翻译,但可以根据上下文理解为“查看”、“观察”或“搜索”。例如:“🔍 我们需要仔细查看这个细节。” 智能分析自动检测和分析REST API、Node.js项目以及OpenAPI规范
  • 🚀 火箭或快速前进的象征(注:这个表情符号本身没有直接对应的中文翻译,但通常用来表示火箭、快速前进或加速等意象) 快速生成创建支持TypeScript的全功能MCP服务器
  • 🛠️(扳手,常用于表示工具或修理) 可配置的可定制的模板和生成选项
  • 📚 书籍 文档齐全生成全面的文档和示例
  • 🧪(实验器材或科学实验的象征) 测试准备就绪包括测试文件和设置
  • 🎯(瞄准目标) 多语言支持支持JavaScript、Python、Java、Go、PHP和Ruby项目

企业功能

  • 🔐 安全JWT认证、基于角色的访问控制(RBAC)、输入验证、审计日志
  • 🔌(电源插头) 插件系统可扩展的架构,支持自定义插件
  • 💬 交互模式带有智能默认设置的引导式安装向导
  • 📊 表格、数据图表 丰富的分析功能项目分析,提供深入见解
  • 🔄 旋转或循环的符号,常用来表示重复、循环或进行中的过程。 自动更新自动检查更新并发送通知

VS Code 集成

  • 🎨(颜料/艺术创作的象征) **丰富的用户界面(Rich UI)**视觉项目分析与终点检测
  • ⚡ 闪电符号(通常表示速度、能量或警示) 快速操作一键生成和设置
  • 🔍(放大镜图标,常用于表示搜索、查看细节等动作) **IntelliSense(智能感知)**MCP开发中的代码片段和自动完成功能
  • 📋 代表“待办事项”或“清单”的意思,可直接翻译为“待办事项”或“清单”。 任务集成内置的 VS Code 任务和命令

安装

命令行界面工具(CLI Tool)

npm install -g mcp-agentify

或者直接使用 npx:

npx mcp-agentify generate --project ./my-api

VS Code 扩展

  1. 来自 VS Code 市场 (推荐):

    • 打开 VS Code
    • 前往“扩展”(Ctrl+Shift+X)
    • 搜索“MCP Agentify”
    • 点击安装
  2. 从VSIX文件:

    code --install-extension mcp-agentify-1.0.0.vsix
    
  3. 手动安装:

    • 下载该 .vsix 来自发布版本的文件
    • 打开 VS Code → 扩展 → “...” → 从 VSIX 安装

快速入门

CLI 使用方法

  1. 分析你的项目:
agentify analyze --project ./my-rest-api
  1. 生成MCP服务器:
agentify generate --project ./my-rest-api --output ./my-mcp-server
  1. 交互式设置:
agentify interactive
  1. 运行生成的服务器:
cd my-mcp-server
npm install
npm run build
npm start

VS Code 扩展使用

  1. 打开你的API项目 在 VS Code 中
  2. 打开命令面板 (Ctrl+Shift+P)
  3. 运行“MCP Agentify:分析项目” 检测终点
  4. 使用“MCP Agentify:生成MCP服务器” 创建您的服务器
  5. 或者使用“MCP Agentify:快速设置” 用于一键生成

该扩展程序提供了丰富的用户界面,包括项目概览、端点检测和视觉反馈功能。

命令

generate

从现有项目生成一个MCP服务器:

agentify generate [options]

选项:

  • -p, --project <path> - 项目目录的路径(默认:“.”)
  • -o, --output <path> - 生成的MCP服务器的输出目录(默认:“./mcp-server”)
  • -t, --type <type> - 项目类型:rest-api,nodejs,openapi(默认:“auto”)
  • -c, --config <path> - 配置文件路径
  • --dry-run - 展示不创建文件时将会生成的内容

示例:

# Generate from current directory
agentify generate

# Generate from specific project with custom output
agentify generate --project ./api --output ./my-mcp-server

# Generate from OpenAPI spec
agentify generate --project ./swagger.json --type openapi

# Dry run to see what would be generated
agentify generate --dry-run

analyze

分析现有项目,查看将检测到哪些终端点:

agentify analyze [options]

选项:

  • -p, --project <path> - 项目目录的路径(默认:".")
  • -t, --type <type> - 项目类型:rest-api,nodejs,openapi(默认:“auto”)
  • --json - 将分析结果输出为JSON格式

示例:

# Analyze current directory
agentify analyze

# Analyze specific project
agentify analyze --project ./my-api

# Get JSON output
agentify analyze --json > analysis.json

init

初始化一个配置文件:

agentify init [options]

选项:

  • -o, --output <path> - 配置文件输出路径(默认:“./agentify.config.json”)

配置

创建一个配置文件以自定义生成过程:

agentify init

这会产生一个 agentify.config.json 文件:

{
  "serverName": "my-mcp-server",
  "description": "Generated MCP server",
  "version": "1.0.0",
  "outputFormat": "typescript",
  "includeTests": true,
  "includeDocumentation": true,
  "excludeEndpoints": [],
  "transformRules": []
}

配置选项

  • serverName - 生成的MCP服务器的名称
  • description - MCP服务器的描述
  • version - 版本号
  • outputFormat - 输出格式:“typescript”或“javascript”
  • includeTests - 生成测试文件
  • includeDocumentation - 生成文档
  • excludeEndpoints - 要排除的端点数组(格式:“METHOD:/路径”)
  • transformRules - 转换端点名称或参数的规则

支持的项目类型

Node.js 项目

自动检测以下中的终端节点:

  • Express.js 应用程序
  • Fastify 应用程序
  • Koa 应用程序
  • NestJS 应用程序

支持的图案:

app.get('/users', handler);
router.post('/users/:id', handler);
fastify.put('/users/{id}', handler);

OpenAPI/Swagger

支持:

  • OpenAPI 3.x 规范
  • Swagger 2.x 规范
  • JSON和YAML格式

REST API 项目

检测各种语言的终端点:

Python(Django、Flask、FastAPI):

@app.route('/users', methods=['GET'])
@router.get('/users/{id}')

Java(Spring Boot):

@GetMapping("/users")
@RequestMapping(value = "/users", method = RequestMethod.POST)

围棋(Gin,此处为音译,实际围棋英文多用Go表示;Echo可能指回声或某种特定含义,但在此上下文中不明确,若作为围棋的别称则不常见):

router.GET("/users", handler)
e.POST("/users/:id", handler)

PHP(Laravel):

Route::get('/users', 'UserController@index');

Ruby(Rails):

get '/users', to: 'users#index'

生成的MCP服务器

生成的MCP服务器包括:

文件结构

my-mcp-server/
├── src/
│   ├── index.ts          # Main MCP server
│   ├── tools/            # Individual tool implementations
│   └── types/            # TypeScript type definitions
├── tests/                # Test files (if enabled)
├── docs/                 # Documentation (if enabled)
├── package.json
├── tsconfig.json
├── .env.example
└── README.md

特点/特性

  • 完全符合MCP(管理控制计划/最大持续功率等,具体含义根据上下文确定)要求实现了模型上下文协议规范
  • 类型安全全面支持TypeScript,配备完善的类型定义
  • 错误处理全面的错误处理和验证
  • 环境配置可通过环境变量进行配置
  • **记录(日志)**内置日志记录和调试支持
  • 测试为所有生成的工具编写单元测试
  • 文档自动生成的API文档

在MCP客户端中的使用

生成的服务器可以与任何兼容MCP的客户端一起使用:

{
  "mcpServers": {
    "my-api": {
      "command": "node",
      "args": ["path/to/my-mcp-server/dist/index.js"]
    }
  }
}

高级用法

自定义模板

创建自定义模板以进行生成:

  1. 创建一个 templates/ 项目中的目录
  2. 添加Handlebars模板(.hbs 文件)
  3. 配置中的引用:
{
  "customTemplates": "./templates"
}

转换规则

在生成过程中修改端点名称和参数:

{
  "transformRules": [
    {
      "pattern": "get_user_by_id",
      "replacement": "getUser",
      "type": "endpoint"
    }
  ]
}

排除终端节点

在生成过程中跳过某些终端节点:

{
  "excludeEndpoints": [
    "GET:/health",
    "POST:/internal/*"
  ]
}

贡献;做出贡献

  1. 为仓库创建分支(或:克隆仓库)
  2. 创建一个特性分支
  3. 进行你的更改
  4. 添加测试
  5. 提交一个拉取请求

许可证

MIT 许可证 - 详情请参阅 LICENSE 文件。

VS Code 扩展功能

MCP Agentify VS Code 扩展提供了丰富的开发体验:

活动栏视图

  • 项目概述框架检测、终端计数和项目统计
  • 检测到的终端节点所有已发现API端点的交互式列表
  • 生成的服务器创建的MCP服务器管理
  • 插件插件状态和配置

命令

  • MCP Agentify: Analyze Project - 检测API端点
  • MCP Agentify: Generate MCP Server - 创建带有选项的MCP服务器
  • MCP Agentify: Interactive Setup - 向导引导
  • MCP Agentify: Quick Setup 一键生成
  • MCP Agentify: View Endpoints - 浏览检测到的终端节点
  • MCP Agentify: Install CLI - 安装/更新CLI工具

代码片段

  • mcp-server - 完整的MCP服务器模板
  • mcp-tool - 工具定义和处理程序
  • mcp-resource - 资源提供者模板
  • mcp-prompt - 提示模板

设置

配置扩展行为:

{
  "mcp-agentify.autoAnalyze": true,
  "mcp-agentify.outputDirectory": "./mcp-server",
  "mcp-agentify.preferredFormat": "typescript",
  "mcp-agentify.enableSecurity": false
}

企业安全功能

MCP Agentify 包含全面的安全功能:

认证与授权

  • 基于JWT的认证基于令牌的安全认证
  • **基于角色的访问控制(RBAC)**细粒度的权限管理
  • API密钥管理安全的API密钥生成和验证

数据保护

  • 输入验证基于Joi模式的请求验证
  • 密钥管理敏感数据的安全存储与处理
  • 审计日志记录对所有操作进行防篡改记录

安全监控

  • 漏洞扫描自动化安全漏洞检测
  • 访问监控实时访问模式分析
  • 安全警报对可疑活动进行自动报警

插件架构

通过自定义插件扩展MCP Agentify:

内置插件

  • REST API分析器检测并分析REST端点
  • 模板引擎可定制的代码生成模板
  • 安全插件企业安全功能
  • 文档生成器自动化API文档

自定义插件开发

// Example plugin structure
module.exports = {
  name: 'my-custom-plugin',
  version: '1.0.0',
  analyze: async (project) => {
    // Custom analysis logic
  },
  generate: async (analysis, config) => {
    // Custom generation logic
  }
};

交互模式

启动交互式安装向导:

agentify interactive

特点:

  • 项目检测自动检测框架和结构
  • 智能默认设置智能配置建议
  • 逐步指导清晰的提示和帮助文本
  • 进度跟踪视觉进度指示器
  • 配置验证实时验证输入

更新管理

通过自动更新检查保持最新状态:

  • 版本检查自动检查新版本
  • 更新通知桌面通知:有可用更新
  • 更改日志显示查看发布说明和更改内容
  • 背景更新非侵入式更新过程

性能与可靠性

  • 高效分析快速项目扫描和终端检测
  • 内存优化生成过程中内存占用低
  • 错误恢复强大的错误处理和恢复能力
  • 进度跟踪长操作的实时反馈
  • 并发处理并行处理以实现更快的生成

支持

  • 📖(一本书的图标,通常代表书籍或阅读相关内容) 文档
  • 🐛 表示“虫子”或“错误(bug)”。在编程和软件开发中,它常用来指代程序中的错误或缺陷。在日常交流中,它可能只是用来表示看到或遇到了虫子。 问题
  • 💬 讨论
  • 🎬 电影胶片或视频的符号 视频教程
  • 📧 电子邮件 电子邮件支持