使用说明(Markdown 格式)

  • 项目简介

    • 该仓库实现了一个基于 MCP 的后端服务器,核心职责是向 LLM 客户端暴露资源、 Tools(工具)和 Prompts(提示模板),以标准化的方式提供数据访问、外部功能调用以及对话上下文渲染能力。服务器通过 JSON-RPC 及标准传输协议(如 Stdio)与客户端通信,并支持会话管理与能力声明。
  • 主要功能点

    • 资源与数据能力:为客户端提供对资源(Docs/知识数据)的访问与检索能力(示例模块涉及工具和示例知识库集成)。
    • 工具注册与执行:通过 ToolCallbackProvider 注册工具(如 calculator),客户端可调用这些外部函数。
    • Prompt 定义与渲染:提供系统提示与可渲染变量的系统提示模板,便于定义对话行为与输出格式。
    • MCP 服务端实现:包含 MCP 服务端应用(Spring Boot),以及与 MCP 客户端之间的通信桥接(示例使用 stdio/SSE 传输)。
    • 配置灵活性:通过 mcp-config.yml/端口化配置与 Post Processor 钩子实现对服务器启动参数、环境变量的动态修改与注册。
  • 安装步骤

    • 该仓库包含一个 MCP 服务器模块,按以下步骤部署运行:
      1. 构建并打包 MCP 服务器模块(mcp-server)为可执行 Jar。
      2. 根据需要安装 Java 运行环境。
      3. 使用外部 MCP 客户端进行连接,服务器端将通过标准输入/输出传输或 SSE 等传输方式与客户端对接(具体传输模式可在配置中确认)。
      4. 确保依赖环境变量(如 API Keys 等)在启动时可用。
    • 备注:仓库内还包含用于配置 MCP 服务端的工具和示例配置代码,实际部署时需要将打包后的 Jar 与配置文件放在合适的位置,并通过以下 JSON 配置向 MCP 客户端暴露服务器实例信息(见下方“服务器配置”示例)。
  • 服务器配置(MCP 客户端需要的启动配置信息) 该段展示一个示例 JSON 配置,描述 MCP 服务器实例的启动命令、参数以及环境变量。该配置对应本仓库 MCP 服务器的实现机制,mcpServers 将由服务器端代码读取并解析为运行参数。请将以下内容作为一个 JSON 配置提交给客户端使用(勿直接修改代码)。实际字段与含义如下:

    • server name:服务器实例名称
    • command:启动服务器所用的命令(通常是 java)
    • args:启动命令的参数列表
    • env:环境变量映射

    { "mcpServers": { "spring-ai-weather": { "command": "java", "args": [ "-jar", "/path/to/mcp-server/spring-ai-mcp/mcp-server/build/libs/mcp-server.jar", "--spring.profiles.active=prod" ], "env": { "DASH_SCOPE_API_KEY": "your-dash-scope-api-key", "DEEPSEEK_API_KEY": "your-deepseek-api-key", "DEEPSEEK_BASE_URL": "https://api.deepseek.com" } } } }

    说明

    • 上述示例假设你将 MCP 服务器打包成一个 Jar,并放置在指定路径。请根据实际部署位置调整路径与参数。
    • env 中的键值用于在服务器启动时注入所需的 API Key 等配置。MCP 客户端本身不需要承担这些信息,仅用于 MCP 服务器进程启动时的环境准备。
  • 基本使用方法

    • 启动服务器:使用上述配置在服务器主机上启动 MCP 服务器进程(通常通过 java -jar 启动),确保服务器正常输出并等待来自 MCP 客户端的请求。
    • 与客户端交互:MCP 客户端通过约定的传输协议(如 Stdio、SSE)与服务器进行 JSON-RPC 调用,包括读取资源、执行工具、获取 prompts 等。
    • 工具与提示:在服务器端注册的工具会暴露给客户端,客户端可调用这些工具执行计算等操作,返回结果后继续对话流程。
    • 运行环境与依赖:请确保 Java 运行环境可用,且环境变量(如 API Keys)在启动时已正确注入。服务器端代码示例中已包含对工具、系统提示模板等的实现。
  • 基本注意事项

    • MCP 配置应与服务器实现版本一致,确保 ToolCallbackProvider、McpStdioTransport 等组件在客户端与服务器间正确解析。
    • 如需多服务器并行运作,可在 mcp-config.yml(或等效 YAML 配置)中扩展 mcpServers 条目(服务器名、命令、参数、环境变量)。
    • 如遇到 CLI/容器化部署,请将 Jar 与配置文件打包进镜像,并确保入口命令与工作目录正确设置。
  • 其他

    • 服务端具备示例工具(如 calculator)与工具注释信息,方便扩展更多自定义工具。
    • 脚本与代码中大量使用 Spring AI 的 MCP 相关封装,适合在合规的生产环境中使用并可扩展。

信息

分类

AI与计算