{"id":28500810,"url":"https://github.com/lilei0303/mcp-seal-generator-server","last_synced_at":"2025-09-21T06:52:44.870Z","repository":{"id":297614384,"uuid":"997313243","full_name":"lilei0303/mcp-seal-generator-server","owner":"lilei0303","description":"基于 Spring AI 的印章生成的 MCP Server 服务，快速让 AI 生成公章、私章。","archived":false,"fork":false,"pushed_at":"2025-06-09T06:05:43.000Z","size":574,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-07-04T13:07:10.119Z","etag":null,"topics":["java","mcp-server","springai"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lilei0303.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-06T10:10:22.000Z","updated_at":"2025-06-09T06:05:47.000Z","dependencies_parsed_at":"2025-06-06T12:38:03.889Z","dependency_job_id":"981f0c42-64fc-471c-bbb6-8af7725cf145","html_url":"https://github.com/lilei0303/mcp-seal-generator-server","commit_stats":null,"previous_names":["lilei0303/myproject"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/lilei0303/mcp-seal-generator-server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lilei0303%2Fmcp-seal-generator-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lilei0303%2Fmcp-seal-generator-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lilei0303%2Fmcp-seal-generator-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lilei0303%2Fmcp-seal-generator-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lilei0303","download_url":"https://codeload.github.com/lilei0303/mcp-seal-generator-server/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lilei0303%2Fmcp-seal-generator-server/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276204838,"owners_count":25602738,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-21T02:00:07.055Z","response_time":72,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java","mcp-server","springai"],"created_at":"2025-06-08T15:07:49.881Z","updated_at":"2025-09-21T06:52:44.853Z","avatar_url":"https://github.com/lilei0303.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 公章、私章生成 MCP Server\n\n## 简介\n该项目是一款基于Spring AI开发的MCP服务，支持通过MCP协议生成公章和私章图片，生成的图片通过MinIO对象存储服务保存到本地，工具返回的是图片地址。服务已上传到MCP 服务平台[MCP.so](https://mcp.so/my-servers)。\n关于MCP协议，详见MCP官方[文档](https://modelcontextprotocol.io/)。\n任意支持MCP协议的智能体助手（如`Claude`、`Cursor`以及`千帆AppBuilder`等）都可以快速接入。\n\n服务提供以下主要功能：\n\n## 工具列表\n\n#### 公章生成 `generateOfficialSeal`\n\n- 根据公章描述生成公章图片返回URL\n- 输入: `公章描述`\n- 输出: `链接+提示`\n\n#### 私章生成 `generatePersonalSeal`\n\n- 根据公章描述生成公章图片返回URL\n- 输入: `私章描述`\n- 输出: `链接+提示`\n\n## 快速开始\n\n使用公/私章生成MCP Server可以通过`Stdio` 或 `SSE` 的形式\n- Stdio方式：适合命令行工具和桌面应用集成，简单直接，无需网络\n- SSE方式：适合Web应用和需要实时更新的场景，支持长连接和服务器推送\n\n### Mcp Server java 开发\n\n#### Java 版本\n\u003e java 17 及以上版本\n#### 核心依赖\n\n```xml\n\u003c!-- MCP Server 核心依赖 --\u003e\n\u003cdependencies\u003e\n   \u003cdependency\u003e\n      \u003cgroupId\u003eorg.springframework.ai\u003c/groupId\u003e\n      \u003cartifactId\u003espring-ai-mcp-server-webflux-spring-boot-starter\u003c/artifactId\u003e\n      \u003cversion\u003e1.0.0-M6\u003c/version\u003e\n   \u003c/dependency\u003e\n   \u003c!-- minio本地存储服务依赖 --\u003e\n   \u003cdependency\u003e\n      \u003cgroupId\u003eio.minio\u003c/groupId\u003e\n      \u003cartifactId\u003eminio\u003c/artifactId\u003e\n      \u003cversion\u003e8.5.12\u003c/version\u003e\n   \u003c/dependency\u003e\n\u003c/dependencies\u003e\n```\n#### 配置文件\n在`application.yml`中配置MCP Server的相关参数：可选择使用SSE模式或stdio模式。\n\n```yaml\nspring:\n  application:\n    name: mcp-seal-generate-server\n  profiles:\n    active: sse # 使用 SSE 模式\n\nserver:\n  port: 8888\n\nminio:\n  endpoint: http://127.0.0.1:9000 #Minio服务所在地址\n  bucketName: seal-down #存储桶名称\n  accessKey: adminadmin #访问的key\n  secretKey: adminadmin #访问的秘钥\n```\n##### SSE模式\napplication-sse.yml配置示例：\n\n```yaml\nspring:\n  ai:\n    mcp:\n      server:\n        enabled: true                # 启用/禁用 MCP 服务\n        stdio: false                 # 启用/禁用 stdio 传输\n        name: my-mcp-server          # 服务名称\n        version: 0.0.1               # 服务版本\n        type: SYNC                   # 服务类型(SYNC/ASYNC)\n        sse: true                   # 启用 SSE 传输\n        resource-change-notification: true  # 启用资源变更通知\n        prompt-change-notification: true    # 启用提示词变更通知\n        tool-change-notification: true      # 启用工具变更通知\n#        sse-endpoint: /sse              # SSE 端点路径\n```\n##### 本地stdio标准输入输出模式\napplication-stdio.yml配置示例：\n\n```yaml\nspring:\n   ai:\n      mcp:\n         server:\n            name: mcp-seal-generate-server\n            version: 0.0.1\n            type: SYNC\n            # stdio\n            stdio: true\n   # stdio\n   main:\n      web-application-type: none # 禁用Web应用类型 \n      banner-mode: off # 禁用Banner\n```\n#### 定义工具\n```java\n@Service\npublic class SealGenerationService {\n\n    @McpTool(name = \"generateOfficialSeal\", description = \"生成公章\")\n    public String generateOfficialSeal(@ToolParam(description = \"参数详细描述\", required = false) String param) {\n        // 调用生成公章逻辑\n        return \"url\";\n    }\n\n    @McpTool(name = \"generatePersonalSeal\", description = \"生成私章\")\n    public Mono\u003cMcpToolResponse\u003e generatePersonalSeal(@ToolParam(description = \"参数详细描述\", required = true) String param) {\n        // 调用生成私章逻辑\n        return \"url\";\n    }\n}\n```\n- required: 表示该参数是否必须， true：表示必须，false：表示可选。\n\n#### 配置工具回调\n```java\n@Configuration\npublic class McpServerConfig {\n   @Bean\n   public ToolCallbackProvider sealGenerationTool(SealGenerationService sealGenerationService) {\n      // 返回一个 ToolCallbackProvider 实例，用于处理印章生成工具的回调\n      return MethodToolCallbackProvider.builder()\n              .toolObjects(sealGenerationService)\n              .build();\n   }\n}\n```\n#### MinIO 配置\nMinio是一个开源的对象存储服务，可以用于存储生成的公章和私章图片。本项目中用于上传生成的印章图片。\n通过docker快速部署MinIO服务，docker-compose.yml配置示例：\n```yaml\nservices:\n  minio:\n    image: bitnami/minio:latest\n    ports:\n      - 9000:9000 # api 端口\n      - 9001:9001 # 服务器 端口\n    environment:\n      - MINIO_ROOT_USER=adminadmin\n      - MINIO_ROOT_PASSWORD=adminadmin # 管理后台密码，最小8个字符\n```\n\u003e运行：已安装docker\n- 在文件路径下cmd窗口执行命令```docker-compose up -d```\n- 在idea中执行\n\n### Mcp客户端调用 - SSE模式接入\n#### 代码接入\n1) 配置\n\u003e需要java 17及以上版本\n\u003e 首先需要引入客户端依赖：\n```xml\n\u003cdependency\u003e\n   \u003cgroupId\u003eorg.springframework.ai\u003c/groupId\u003e\n   \u003cartifactId\u003espring-ai-mcp-client-spring-boot-starter\u003c/artifactId\u003e\n   \u003cversion\u003e1.0.0-M6\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\u003e其次配置文件需要配置MCP服务器的一些参数：sse模式配置如下：\n\n```yaml\nspring:\n   ai:\n      mcp:\n         client:\n            enabled: true\n            name: my-mcp-client\n            version: 0.0.1\n            request-timeout: 60000\n            type: SYNC  # or ASYNC for reactive applications\n            sse:\n               connections:\n                  server1:\n                    url: http://localhost:8888\n```\n2) 使用\n\u003e需要在代码中配置MCP服务器的工具回调提供者，会根据工具的定义自动生成对应的回调提供者。\n```java\npublic class ModelService {\n    @Resource\n    ToolCallbackProvider toolCallbackProvider;\n    // ...\n}\n```\n\u003e注入后，ai模型会根据对话情况考虑收调用工具服务\n```java\npublic class ModelService {\n   private SelfModelChatClient selfModelChatClient;\n   public String doChatWithMcp(String message, String chatId) {\n      ChatResponse chatResponse = selfModelChatClient.prompt().user(\"请帮我生成一枚公章，内容是： \" + message)\n              // 使用 MCP 工具\n              .tools(toolCallbackProvider)\n              .call()\n              .chatResponse();\n      String text = chatResponse.getResult().getOutput().getText();\n      log.info(\"Chat response with MCP: {}\", text);\n      return text;\n   }\n}\n```\n#### Cherry Studio 接入\n#### 使用\n\n1) 打开`Cherry Studio`的`设置`，点击`MCP 服务器`。\n   ![cherry1.png](img/cherry1.png)\n2) 点击`添加服务器`，选择`快速创建`按下列顺序进行配置。\n   ![cherry2.png](img/cherry2.png)\n3) 图中标注为绿则表示配置成功。\n   ![cherry3.png](img/cherry3.png)\n4) 选择一个模型，选择配置的`印章MCP服务`，输入语句 “请帮我生成一枚圆形公章，主题是“智印信息科技有限公司”，中间是一颗红星，还需要有13位数字的印章编码”。和AI进行对话。\n   ![cherry4.png](img/cherry4.png)\n5) AI会根据输入语句选择是否调用MCP服务，生成公章图片，并返回图片链接。\n   ![cherry5.png](img/cherry5.png)\n6) 点击链接可以查看生成的公章图片。\n   ![cherry6.png](img/cherry6.png)\n\n### Mcp客户端调用 - stdio模式接入\n#### 代码接入\n其余配置和使用方式和SSE模式相同，只需修改配置文件即可，配置文件如下：\n```yaml\nspring:\n   ai:\n      mcp:\n         client:\n            enabled: true\n            name: my-mcp-client\n            version: 0.0.1\n            request-timeout: 60000\n            type: SYNC  # or ASYNC for reactive applications\n            stdio:\n              servers-configuration: classpath:mcp-server.json # MCP服务器配置文件路径\n```\n\u003e***注意***：使用stdio方式时，需要在classpath下创建一个`mcp-server.json`文件（名称可自定义），内容如下：\n```json\n{\n  \"mcpServers\": {\n    \"mcp-seal-generate-server\": {\n      \"command\": \"java\",\n      \"args\": [\n        \"-Dspring.ai.mcp.server.stdio=true\",\n        \"-Dspring.main.web-application-type=none\",\n        \"-Dlogging.pattern.console=\",\n        \"-jar\",\n        \"/yours_path/mcp-seal-generate-server-0.0.1-SNAPSHOT.jar\" \n      ],\n      \"env\": {}\n    }\n  }\n}\n```\n\u003e其中`/yours_path/mcp-seal-generate-server-0.0.1-SNAPSHOT.jar`需要替换为实际的MCP Server的jar包路径。\n\n#### Cherry Studio 接入\n#### 使用\n\n1) 打开`Cherry Studio`的`设置`，点击`MCP 服务器`。\n2) 点击`添加服务器`，选择`从JSON导入`粘贴上述`mcp-server.json`中的内容。\n3) 图中标注为绿则表示配置成功。\n\n***注意***：在软件客户端通过stdio模式配置时相当于是在本地启动一个MCP Server，使用标准输入输出方式与客户端进行交互，用的是本地java环境。所以\n   如果Mcp Server开发环境是Java 17，那么需要确保本地环境也是Java 17及以上版本。如果开发时用的Java 21，那么本地环境也需要是Java 21。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flilei0303%2Fmcp-seal-generator-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flilei0303%2Fmcp-seal-generator-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flilei0303%2Fmcp-seal-generator-server/lists"}