MCP服务器构建工具

一个基于Java的MCP服务器框架,提供组件理解、模板和最佳实践,用于学习和构建MCP服务器。

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

使用说明

MCP服务器工厂

一种基于Java的模型上下文协议(MCP)服务器,旨在帮助理解和构建其他MCP服务器。

项目概述

该项目既是学习工具,也是构建MCP服务器的指南。它侧重于提供:

  1. 了解MCP组件:

    • 工具(执行操作的可执行函数)
    • 资源(提供信息的数据源)
    • 提示(生成响应的结构化模板)
  2. 模板和最佳实践 用于构建MCP服务器

特性

  1. 工具部分:

    • explain_concept -提供MCP概念的详细解释(工具、资源、提示、服务器、客户端)
    • 任务计划工具:
      • code_cleanup_planner -为代码清理目标生成任务计划
      • feature_implementation_planner -为功能实现目标生成任务计划
      • general_task_planner -为总体目标生成任务计划
      • local_mcp_deployment_planner -生成部署本地MCP服务器的任务计划,其中包含关键的清理和测试步骤,这些步骤在失败时中止部署
  2. 资源科:

    • mcp://factory/documentation/{topic} -MCP主题文档(入门、最佳实践、故障排除)
  3. 提示部分:

    • tool_implementation_guide -用不同语言实现MCP工具的分步指南

建筑

MCP服务器工厂是使用以下方式构建的:

  • 带Spring框架的Java(不是Spring Boot)
  • log4j2日志实现
  • Maven用于构建管理

遵循设计原则:

  • KISS(保持简单,愚蠢)
  • DRY(不要重复自己)
  • YAGNI(你不需要它)
  • SOLID(单责任、开闭、Liskov替换、接口隔离、依赖反转)

项目结构

  • src/main/java/user/jakecarr/ -主要源代码

    • .../config/ -弹簧配置
    • .../main/ -具有主要方法的类
    • .../model/ -域模型和接口
    • .../model/impl/ -MCP组件的实现
    • .../service/ -业务逻辑和服务
  • docs/api/ -API文件

    • prompts.md -支持提示的文档
    • resources.md -支持资源的文档
    • tools.md -支持工具的文档

代码质量

代码库遵循高质量标准:

  • 结构良好的代码 明确分离关注点
  • 全面的文件 所有类和方法都有Javadoc注释
  • 模块化设计 具有抽象基类和接口
  • 一致的错误处理 正确记录
  • 可维护架构 使用提取的方法和辅助函数
  • 干净的代码实践 包括:
    • 描述性命名约定
    • 单一职责原则
    • DRY(不要重复自己)原则
    • 正确封装

建立和运行

先决条件

  • Java 21或更高版本
  • Maven 3.6或更高版本
  • MCP Java SDK 0.8.1(位于 C:/Users/jayes/vscode/java-sdk-0.8.1/java-sdk-0.8.1.jar)

建设项目

# Clone the repository
git clone https://github.com/yourusername/mcp-server-factory.git
cd mcp-server-factory

# Build the project
mvn clean package

运行服务器

# Run the server
java -jar target/mcp-server-factory-1.0-SNAPSHOT-jar-with-dependencies.jar

运行测试

# Run the tests
mvn test

开发指南

  • 核心业务逻辑不得依赖于Spring
  • Spring注释仅在配置包中
  • src/main/java中没有模拟
  • 无递归
  • 测试应包括超时

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 运行测试
  5. 提交拉取请求

许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。