集成开发助手服务

Weik.io集成平台的智能助手服务,提供从规划到部署的完整集成生命周期支持,包括Apache Camel组件元数据、Kamelet信息和集成流初始化等功能。

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

使用说明

Weik.io集成专家:MCP服务器

项目概述

此模型上下文协议(MCP)服务器专为Weik.io集成平台设计,提供智能助手,指导开发人员完成从规划到实施、测试和部署的完整集成生命周期。

Weik.io是一个开源集成和自动化平台,具有基于代理的架构,支持云、内部部署和混合部署。它建立在 阿帕奇骆驼 并通过包括集成流、API管理、托管文件传输、事件中心、实体存储和数据库更改跟踪在内的专门功能对其进行扩展。

MCP服务器公开了工具和资源,使AI助手能够帮助完成Weik.io集成任务,提供对Weik.io功能、Apache Camel组件元数据和Kamelet信息的访问。

配置

基于Docker的配置

{
  "mcpServers": {
    "weikio": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "--network=host",
        "ghcr.io/weikio/mcp-server:latest"
      ],
      "disabled": false,
      "autoApprove": []
    }
  }
}

基于NPX的配置

{
  "mcpServers": {
    "weikio": {
      "command": "npx",
      "args": [
        "-y",
        "@weikio/mcp-server"
      ],
      "disabled": false,
      "autoApprove": []
    }
  }
}

MCP工具实施

1.规划工具

  • get_supported_integration_types:获取有关支持的集成类型的信息(已实现)
  • analyze_integration_requirements:确定最佳方法和技术(计划)
  • suggest_integration_pattern:为需求推荐适当的模式(计划)
  • get_best_practices:检索特定集成类型(计划)的相关最佳实践

2.实施工具

  • initialize_integration:使用指定名称初始化新的集成流(已实现)
  • generate_camel_integration:生成Camel YAML流(计划中)
  • generate_mft_configuration:为文件操作生成MFT配置(计划)
  • create_data_transformation:基于样本数据构建JQ或其他转换(计划中)
  • validate_implementation:对照最佳做法检查执行情况(计划)
  • apply_best_practices:分析并加强现有与最佳实践的整合(计划中)
  • get_best_practice:检索有关具体最佳做法的详细信息(计划)
  • check_compliance:根据最佳实践标准验证集成(计划)

3.测试与调试工具

  • identify_test_parameters:确定测试所需的参数(计划)
  • generate_test_configuration:创建测试设置文件(计划)
  • create_test_data:生成用于测试的模拟数据(计划中)
  • debug_transformation:交互式JQ/转换调试(计划中)
  • analyze_payload:随时检查消息结构(计划)
  • trace_message_flow:通过集成可视化消息路径(计划中)
  • diagnose_error:分析错误并提出解决方案(计划)

4.外部工具集成

  • setup_ngrok_tunnel:为本地端点配置并启动ngrok隧道(计划中)
  • get_ngrok_url:检索当前ngrok公共URL以用于集成(计划中)
  • create_webhook_endpoint:生成新的webhook.site端点进行测试(计划中)
  • retrieve_webhook_requests:获取接收到的webhook有效负载进行分析(计划)
  • run_camel_jbang:执行Camel脚本进行快速测试(计划中)

5.本地Weik.io管理

  • get_docker_compose:获取Docker Compose文件,用于设置本地Weik.io实例(已实现)
  • start_local_weikio:使用Docker Compose启动本地Weik.io(计划中)
  • stop_local_weikio:停止运行环境(计划)
  • restart_local_weikio:重新启动以快速刷新(计划)
  • get_weikio_status:简单的健康检查和状态报告(计划中)
  • reset_local_weikio:将环境恢复到清洁状态(计划)

6.档案管理

  • list_profiles:列出所有Weik.io配置文件(已实现)
  • add_profile:添加具有名称、URL和API密钥的新Weik.io配置文件(已实现)

7.出版工具

  • push_integration:将集成推送到Weik.io实例(已实现)
  • generate_push_commands:创建命令以推送到Weik.io(计划中)
  • create_deployment_checklist:生成部署前验证步骤(计划)

技术概述

阿帕奇骆驼:

  • 实现企业集成模式的开源集成框架
  • 基于规则的路由和中介引擎,包含300多个组件
  • 支持多种连接协议和数据格式
  • 使用最少的代码实现不同系统之间的复杂集成
  • 为声明性集成流定义提供YAML DSL

Weik.io:

  • 基于Apache Camel的开源集成和自动化平台
  • 基于代理的架构支持云、内部部署和混合部署
  • 扩展Camel的专业功能,包括:
    • 集成流程(系统间集成)
    • 内置网关的API管理
    • 管理文件传输(MFT)
    • 支持CloudEvents的事件中心
    • 实体存储(带更改跟踪的键值)
    • 数据库更改跟踪
  • 具有VS Code集成和CLI的开发人员友好工具
  • 企业就绪,具有监控、可观察性和安全功能

当前状态

MCP服务器目前提供:

  • Apache Camel组件元数据
  • Apache Camel Kamelet元数据
  • Weik.io CLI的基本操作
  • 集成型决策支持
  • Weik.io个人资料管理
  • Docker为本地Weik.io实例编写配置
  • 集成流初始化
  • 集成部署

集成流初始化

服务器现在包含一个名为 initialize_integration 这允许创建新的集成流:

  • 需要两个参数:
    • name:集成流的名称(必须小写,可以包含连字符)
    • directory:应创建集成流的目录(绝对路径)
  • 在指定目录中创建具有指定名称的新文件夹
  • 在文件夹中生成两个文件:
    • integration.camel.yaml:Apache Camel YAML流定义
    • application.properties:流量特定参数/属性/变量的配置

该工具使AI助手能够帮助用户在首选位置快速创建和设置新的集成流程。然后,可以根据用户的特定要求定制集成流程。

示例用法:

// Using the MCP tool
initialize_integration(name: "hello-world", directory: "/path/to/your/project")

// Using the CLI directly
weikio integration init hello-world

集成部署

服务器包括一个名为 push_integration 允许将集成部署到Weik.io实例:

  • 需要两个参数:
    • name:要推送的集成名称(文件夹名称)
    • directory:包含集成的目录(绝对路径)
  • 将集成推送到当前活动的Weik.io配置文件
  • 验证集成是否存在并包含所需的文件

该工具使AI助手能够帮助用户在创建和定制集成流后将其部署到Weik.io实例。

示例用法:

// Using the MCP tool
push_integration(name: "hello-world", directory: "/path/to/your/project")

// Using the CLI directly
weikio integration push hello-world

集成类型决策支持

服务器现在包含一个名为 get_supported_integration_types 它提供了有关Weik.io中支持的集成类型的详细信息:

  1. 基于Apache Camel的集成流程

    • 描述:一个灵活的集成框架,通过基于规则的路由和中介引擎实现企业集成模式
    • 主要使用案例:系统到系统集成、基于API的集成、复杂的数据转换等。
    • 最适合:复杂的集成场景、需要数据转换的集成、基于API的集成等。
  2. 基于RCLONE的管理文件传输(MFT)

    • 描述:一种用于在具有高级管理功能的不同存储系统之间传输文件的专用解决方案
    • 主要用例:存储系统之间的文件传输、文件同步、备份和归档等。
    • 最适合:存储系统之间的简单文件传输、常规文件同步任务、备份和归档工作流等。

该工具使AI助手能够根据用户的具体要求,就使用哪种集成类型提出明智的建议。例如:

  • 如果用户需要将文件从SFTP同步到Azure Blob存储,助手将推荐基于RCLONE的MFT
  • 如果用户需要将CRM与具有数据转换的ERP系统集成,助手将推荐基于Apache Camel的集成流程

决策逻辑遵循一个简单的规则:如果任务涉及在两个文件系统(SMB、SFTP、Azure Blob、S3、本地目录等)之间传输文件(复制、移动、同步),请使用MFT。否则,请使用基于Apache Camel的集成流。

增强目标

将服务器转变为全面的集成专家,可以:

  1. 指导集成规划

    • 推荐适当的模式和方法
    • 为不同的集成场景应用最佳实践
    • 做出明智的技术决策(Camel YAML与专门的Weik.io功能)
  2. 协助实施

    • 生成正确的Apache Camel YAML语法
    • 创建数据转换(重点是JSON的JQ)
    • 支持Camel之外的Weik.io功能
  3. 便于测试和调试

    • 确定不同集成类型所需的测试参数
    • 生成测试配置和样本数据
    • 为常见问题提供强大的调试工具
    • 协助数据转换故障排除
    • 通过集成点对消息流进行详细检查
    • 指导验证程序
  4. 简化部署

    • 生成正确的推送到Weik.io的命令
    • 提供部署验证指导

建筑

知识管理系统

该增强功能引入了一个结构化的知识体系:

  1. YAML DSL知识库

    • Apache Camel YAML语法文档
    • 元素描述和语法规则
    • 示例存储库(从基本到高级)
  2. 集成模式库

    • 常见的EIP实现
    • 特定用例模式
    • 按场景划分的最佳实践
  3. 模板系统

    • 基于场景的模板
    • 渐进式复杂性选项
    • 可定制参数
  4. Weik.io扩展知识库

    • MFT功能和配置
    • 事件源文档
    • 变量支持
    • 实体存储使用模式
    • 数据库更改跟踪
    • 其他内置功能
  5. 最佳实践框架

    • 设计时最佳实践
      • Weik.io变量的属性占位符使用
      • 命名约定和结构
      • 错误处理模式
      • 安全实施指南
    • 运行时最佳实践
      • 用于 Webhook 集成的事件流
      • 监控挂钩
      • 日志策略
      • 性能优化模式
    • 操作最佳实践
      • 部署策略
      • 配置管理
      • 版本控制方法
  6. 调试与故障排除系统

    • 数据转换调试工具
    • 执行流程可视化
    • 错误模式识别和解决
    • 有效载荷检查和验证

文件结构

weikio-server/
├── data/
│   ├── yaml-dsl/              # Apache Camel YAML DSL knowledge
│   │   ├── examples/          # Categorized examples
│   │   ├── elements/          # DSL element documentation
│   │   └── patterns/          # EIP implementation patterns
│   ├── templates/             # Reusable integration templates
│   │   ├── system-to-system/  # System integration templates
│   │   ├── data-processing/   # Data processing templates
│   │   └── api-based/         # API integration templates
│   ├── best-practices/        # Best practices documentation
│   │   ├── design/            # Design-time best practices
│   │   │   ├── property-placeholders.md
│   │   │   ├── naming-conventions.md
│   │   │   └── error-handling.md
│   │   ├── runtime/           # Runtime best practices
│   │   │   ├── event-streams.md
│   │   │   ├── monitoring.md
│   │   │   └── logging.md
│   │   └── operational/       # Operational best practices
│   │       ├── deployment.md
│   │       ├── configuration.md
│   │       └── versioning.md
│   ├── development-tools/     # External development tools
│   │   ├── ngrok/             # ngrok documentation and scripts
│   │   ├── webhook-site/      # webhook.site integration
│   │   ├── camel-jbang/       # Camel JBang scripts and examples
│   │   └── local-weikio/      # Local Weik.io environment
│   │       └── docker-compose.yml  # Docker Compose configuration
│   └── weikio/                # Weik.io-specific knowledge
│       ├── features/          # Built-in feature documentation
│       │   ├── mft/           # Managed File Transfer
│       │   ├── events/        # Event sources
│       │   ├── variables/     # Variables system
│       │   ├── entity-store/  # Key-value store
│       │   └── db-tracking/   # Database change tracking
│       └── best-practices/    # Weik.io-specific best practices
└── src/
    ├── integration-types-service.ts # Integration types information service
    ├── metadata-service.ts    # Apache Camel metadata service
    ├── yaml-dsl-service.ts    # YAML DSL knowledge service (planned)
    ├── template-service.ts    # Template management service (planned)
    ├── best-practices-service.ts # Best practices enforcement (planned)
    ├── dev-tools-service.ts   # Development tools integration (planned)
    └── local-weikio-service.ts # Local Weik.io management (planned)

实施路线图

第一阶段:Apache Camel YAML DSL支持

  1. 创建YAML DSL知识库

    • 从文档中提取和组织DSL元素
    • 文档语法规则和约束
    • 使用元数据标记元素以实现可搜索性
  2. 构建示例存储库

    • 开发展示核心概念的基本示例
    • 创建演示复杂模式的高级示例
    • 使用元数据索引示例以实现高效检索
  3. 实现集成模式库

    • 记录常见的企业集成模式
    • 提供每种模式的YAML实现
    • 创建特定于上下文的变体
  4. 开发模板系统

    • 为常见场景设计基础模板
    • 创建参数化系统进行定制
    • 在模板中包含文档
  5. 添加核心MCP工具

    • learn_yaml_example:存储和索引新示例
    • generate_camel_integration:根据需求创建YAML
    • validate_yaml:验证语法和最佳实践
    • get_yaml_element_help:提供元素文档
    • list_integration_patterns:显示可用图案
    • get_template:检索集成模板
  6. 开发调试能力

    • 创建数据转换调试工具
      • 输入/输出验证器
      • 转换步骤可视化
      • 架构合规性检查器
    • 实现常见的错误解决模式
    • 设计有效载荷检查工具
    • 构建执行流跟踪
  7. 建立最佳实践框架

    • 记录集成设计的关键最佳实践
    • 使用Weik.io变量创建属性占位符标准
    • 为webhook集成开发事件流模式
    • 将最佳实践执行构建到生成工具中
    • 创建验证规则以确保合规性

第二阶段:Weik.io功能支持

  1. 开发Weik.io特征知识库

    • 记录MFT功能和配置
    • 为其他Weik.io功能创建结构化文档
    • 建立可扩展格式以添加新功能
  2. 增强模板系统

    • 添加Weik.io特定模板
    • 创建显示Camel+Weik.io集成的混合模板
    • 包括功能选择的最佳实践
  3. 实施Weik.io特定工具

    • generate_mft_configuration:创建MFT配置
    • 其他Weik.io功能的工具(可扩展设计)
  4. 添加测试和部署支持

    • 测试参数识别
    • 测试配置生成
    • 部署验证指南

扩展机制

实施应优先考虑可扩展性,以允许未来的增强:

  1. 可插拔知识系统

    • 用于添加新知识的结构化文件格式
    • 版本控制支持不断发展的功能
  2. 功能文档格式

    • 记录Weik.io功能的标准模式
    • 在开发过程中轻松添加新功能
  3. 模板扩展API

    • 添加新模板的明确约定
    • 参数定义标准

技术实施指南

知识库设计

  1. 文件格式

    • 将JSON/YAML用于结构化数据
    • 为每种知识类型维护清晰的模式
    • 包含用于过滤和搜索的丰富元数据
  2. 存储示例

    • 将示例存储为完整、有效的YAML
    • 为学习目的添加注释
    • 标记相关组件、模式和复杂性

服务的实现

  1. YAML DSL服务

    • 提供索引和搜索功能
    • 根据DSL规则实施验证
    • 支持元素的上下文帮助
  2. 模板服务

    • 启用参数替换
    • 按用例和复杂性提供过滤
    • 支持合并多个模板

最佳实践执行

  1. 结构化文档格式

    • 基于Markdown的最佳实践文档
    • 适用性元数据(集成类型、组件)
    • 显示正确实现的代码示例
    • 要避免的常见反模式
  2. 集成生成护栏

    • 在所有生成的代码中默认应用最佳实践
    • 符合标准的模板配置
    • 自动属性占位符实现
    • webhook场景的事件流生成
  3. 合规性检查

    • 最佳实践验证的静态分析规则
    • 可定制的合规级别(必需与推荐)
    • 详细报告并提出改进建议
    • 修正对不合规实施的建议
  4. 可扩展性机制

    • 添加新最佳实践的简单格式
    • 用于实践演变的版本标记
    • 过时做法的弃用机制

调试系统设计

  1. 数据转换重点

    • JQ测试环境,带样本输入/输出
    • 逐步转换可视化
    • 常见错误模式识别
    • 根据预期格式进行架构验证
  2. 消息流调试

    • 通过集成点启用跟踪
    • 在每一步进行有效载荷检查
    • 识别潜在的瓶颈和故障点
  3. 错误解决模式

    • 维护常见错误和解决方案的数据库
    • 用于错误诊断的模式匹配
    • 基于错误特征的建议修复

最佳实践示例

为了说明最佳实践框架的详细程度,以下是两个关键实践的示例:

带有Weik.io变量的属性占位符

集成应该使用Weik.io的Variable系统将所有配置外部化,而不是硬编码值:

# ❌ Incorrect: Hardcoded values
- route:
    from:
      uri: "sftp://ftp.example.com:22/incoming"
      parameters:
        username: "ftpuser"
        password: "secret123"
# ✅ Correct: Using Weik.io Variables
- route:
    from:
      uri: "sftp://{{vars.ftp.host}}:{{vars.ftp.port}}/incoming"
      parameters:
        username: "{{vars.ftp.username}}"
        password: "{{vars.ftp.password}}"

优点:

  • 特定于环境的配置
  • 提高了安全性(代码中没有秘密)
  • 集中管理
  • 运行时重新配置,无需重新部署

Webhook 集成事件流

所有webhook风格的集成都应该实现用于回放和检查的事件流:

# ✅ Recommended Pattern
- route:
    from:
      uri: "webhook://orders"
      steps:
        # Log incoming event to stream
        - to:
            uri: "stream:event"
            parameters:
              streamName: "webhook-orders"
              persistent: true
        # Continue with processing
        - process:
            # ... processing steps

优点:

  • 能够回放事件以进行测试
  • 调试有效载荷检查
  • 收到的Webhook的审计跟踪
  • 处理失败时的恢复机制

外部开发工具集成

MCP服务器提供与流行的开发和测试工具的无缝集成:

ngrok

  • 本地端点的自动隧道管理
  • 自定义域和身份验证的配置
  • 与webhook测试工作流集成

webhook.网站

  • 自动化端点创建和管理
  • 有效载荷检查和分析
  • 用于模拟外部系统的响应模拟

Camel CLI(JBang)

  • 无需项目设置即可快速进行组件测试
  • 使用样本数据进行转换验证
  • 以最小配置进行路由测试

这些工具直接集成到MCP服务器的功能中,在整个集成生命周期中为开发人员提供无缝体验。

当地Weik.io环境

MCP服务器提供了对本地Weik.io实例的简化管理:

Docker编写配置

MCP服务器包括一个名为 get_docker_compose 它提供了一个即用型Docker Compose配置,用于运行本地Weik.io环境。配置包括:

  • Traefik用于路由(可在以下网址访问http://weikio.localtest.me:8000)
  • 用于消息传递的NATS
  • Weik.io后端(具有默认凭据dev@weik.io/密码和API密钥“API.key”)
  • Weik.io用户界面
  • Weik.io代理
  • API管理

要使用此配置,请执行以下操作:

  1. 获取Docker Compose文件 get_docker_compose
  2. 将其保存到文件(例如。, docker-compose.yml)
  3. 跑 docker-compose up -d 启动环境
  4. 通过添加配置文件连接到本地实例:
    weikio profiles add "local" "http://backend.localtest.me:8000" "api.key"
    
  5. 验证与的连接 weikio agents ls

实例管理

  • 一次命令启动完整的Weik.io环境
  • 基本状态报告
  • 用于干净测试的简单重置功能

开发集成

  • 将集成直接部署到本地实例
  • 使用隧道技术(ngrok)对真实世界的数据进行测试
  • 代码更改和测试之间的快速迭代

这种简化的方法通过提供集成开发和测试所需的基本控制来提高开发人员的生产力。

未来机遇

  1. 互动式教学法

    • 常见集成的分步教程
    • 对用户创建的集成的反馈
  2. 模式检测

    • 分析现有集成以识别模式
    • 根据最佳实践提出优化建议
  3. 与Weik.io路线图整合

    • 支持Weik.io发布的新功能
    • 与Weik.io产品进化保持一致

开发方法

该项目应采用迭代方法实施:

  1. 从核心YAML DSL知识和简单示例开始
  2. 添加集成模式和模板
  3. 构建用于生成和验证的工具
  4. 使用Weik.io特定功能进行扩展
  5. 通过测试和部署支持进行增强

每次迭代都应该提供独立的价值,同时朝着完整的愿景发展。

Docker容器和CI/CD

MCP服务器可以作为Docker容器运行,并通过GitHub Actions自动构建。

Docker镜像

MCP服务器使用Docker进行容器化,使其易于在各种环境中部署和运行。Docker镜像基于Node.js Alpine构建,以实现最小的占用空间。

Docker构建过程:

  1. 安装。NET 8 SDK和Weikio命令行界面
  2. 将所有源文件复制到容器中
  3. 安装所有依赖关系(包括开发依赖关系)
  4. 构建TypeScript项目
  5. 修剪开发依赖关系,以获得更小的最终映像
  6. 设置入口点

Docker镜像包括:

  • Node.js 20(Alpine)
  • .NET 8 SDK
  • Weikio CLI(全局工具)

运行Docker容器

# Pull the latest image
docker pull ghcr.io/weikio/mcp-server:latest

# Run the container
docker run -it ghcr.io/weikio/mcp-server:latest

在当地建设

您还可以在本地构建和运行Docker镜像:

# Build the image
docker build -t weikio-server .

# Run the container
docker run -it weikio-server

NPM包

MCP服务器也可以作为npm包使用,使其易于与npx一起使用。当更改被推送到主分支时,该包会通过GitHub Actions自动发布到npm。

先决条件

在使用npm包之前,请确保已安装以下内容:

  1. Node.js (v20或更高版本)
  2. .NET 8 SDK - 安装说明
  3. Weikio命令行界面 -安装方式:
    dotnet tool install weikio-cli --global --prerelease
    

确保PATH中的所有工具都可用。

安装

您可以直接将该包与npx一起使用,而无需安装它:

npx @weikio/mcp-server

或者全局安装:

npm install -g @weikio/mcp-server

然后运行它:

weikio-mcp-server