diff --git a/docs/assets/images/prompt-strategy-mcp-server-prototype-architecture.svg b/docs/assets/images/prompt-strategy-mcp-server-prototype-architecture.svg
index c93ab28..ade654c 100644
--- a/docs/assets/images/prompt-strategy-mcp-server-prototype-architecture.svg
+++ b/docs/assets/images/prompt-strategy-mcp-server-prototype-architecture.svg
@@ -4,396 +4,393 @@
图表名称:提示词策略 MCP Server 原型架构图 (Prompt Strategy MVP Architecture)
文件命名:prompt-strategy-mcp-server-prototype-architecture.svg
用途:展示从 Client 请求到 5 Whys 策略引擎、资源层再到大模型推理的“上下层级”完整组件链及执行流。
-版本:v1.0.0 (Top-Down Layout with 50px Spacing Adjustment)
+版本:v2.0.0 (Top-Down Layout with 50px Spacing Adjustment)
作者:Gitconomy Research-郭晧
SPDX-License-Identifier: MIT & CC-BY-SA-4.0
创建日期:2026-03-01
+更新日期:2026-03-1
+更新描述:根据更新的架构设计文件,重新设计整个开发组件架构与工作流示意图
================================================================================
-->
-
-
+
+
-
-
+ /* 文本层级 */
+ .card-title { font-size: 15px; font-weight: bold; fill: #FFFFFF; }
+ .card-text { font-size: 13px; fill: var(--c-neutral-gray); }
+ .text-code { font-size: 13px; font-weight: bold; fill: #0F172A; }
+ .label-text { font-size: 12px; font-weight: bold; fill: var(--c-neutral-gray); }
+ .step-text { font-size: 13px; font-weight: bold; fill: #FFFFFF; }
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FIG-01
+ 提示词策略 MCP Server 系统架构图
+ 架构图 > Arabica Sprint1 > 系统开发组件架构与工作流
+
+
+
+
+
-
- FIG-01
- 提示词策略 MCP Server 系统组件工作流架构图
- 架构图 > MVP Sprint1 & 系统组件工作流
-
+
+
+
+
+ 📦 Node.js MCP Server Runtime
-
+
+
+
+
-
-
-
-
-
- 📦 Node.js MCP Server Runtime (Express.js)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Input
+ Output
+ Reasoning
+ LLM Result
+
+
+ tools/call
+ Tool Result
+
+
+ stdio
+
+
+ fs.readFile
+
+
+
+
+
+
+
+
+
+
+ User / 用户
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+ Cherry Studio (MCP Client)
+ 大模型对话与调度宿主
+ Initiates stdio subprocess
-
-
- HTTP Request
- Enquiry
- Enhanced
- Prompt
- Context
- Data
- API Call
- Response
- Fetch / Sync
+
+
+
+ LLM
+ (Remote)
-
-
-
-
-
-
-
-
- Client Request
-
-
- - /api/prompts/query
- - /api/model/infer
- - /api/resources/list
-
- Format: JSON-RPC 2.0
-
-
-
-
-
-
-
- .env & config.js
- API Keys & Configuration
-
-
-
-
-
-
-
- app.js
- Main Gateway
-
-
-
-
-
-
-
- apiRoutes.js
- API Router Node
-
- Express Router()
-
-
-
-
-
-
-
- promptsController.js
- 查询与提示词请求分发
-
-
-
-
-
-
-
- modelController.js
- 多步推理请求分发
-
-
-
-
-
-
-
- resourcesController.js
- 资源获取与管理分发
-
-
-
-
-
-
-
- promptService.js
-
- 核心: 5 Whys 模板分解引擎
- 输出: 增强合成提示词
-
-
-
-
-
-
-
- inferenceService.js
- 大语言模型交互管理
- 上下文注入与结果格式化
-
-
-
-
-
-
-
- resourceService.js
- 管理学术DB、PDF等
- 提供推理上下文数据
-
-
-
-
-
- LLM API
- (Model)
-
-
-
-
-
-
-
-
- 资源与知识库 (Resources)
- 学术DB / PDF / Obsidian
-
+
+
+
+ .vscode/launch.json
+ Attach 断点源码联调
-
-
+
+
+
+
+
+ app.js
+ McpServer 初始化
+ stdio transport
+
-
-
-
- 1
-
+
+
+
+
+
+ promptsController.js
+ 处理 tools/call 调度分发
+
-
-
-
- 2
-
+
+
+
+
+
+ resourcesController.js
+ 处理 resources 请求分发
+
-
-
-
- 3
-
+
+
+
+ schemas.js
+ Zod 强校验
+
-
-
-
- 4
-
+
+
+
+
+
+ promptService.js
+
+ 纯本地核心算法引擎
+ 5 Whys 模板分解与合成
+
-
-
-
- 5
-
+
+
+
+
+
+ resourceService.js
+ 文件系统 I/O 交互
+ 读取本地知识库/Markdown
+
-
-
-
- 6
-
-
-
-
-
- MVP 核心执行步骤流
-
-
-
-
-
- 1
- 接收初始查询与资源请求
-
-
-
- 2
- 5 Whys 深度模板分解
-
-
-
- 3
- 提取外部资源与本地知识
-
-
-
- 4
- 注入上下文生成合成提示词
-
-
-
- 5
- 发起大模型多步推理
-
-
-
- 6
- 组装并返回深度研究结果
-
-
+
+
+
+
+ Local Vault
+ Obsidian / PDF
-
-
+
-
- 组件与语义对照:
+
+
+
+ 1
+
-
-
- 基础架构与路由网关
+
+
+
+ 2
+
+
+
+
+
+ 3
+
+
+
+
+
+ 4
+
+
+
+
+
+ 5
+
+
+
+
+
+ 6
+
+
+
+
+
+ 7
+
+
+
+
+
+ MVP 核心执行步骤流
+
+
+
+
+
+ 1
+ 用户在 Cherry Studio 输入查询意图
-
-
-
- 请求分发与控制器
+
+
+ 2
+ 大模型判断需要调用 5 Whys 工具
-
-
-
- 核心策略与业务逻辑
+
+
+ 3
+ 通过 stdio 向 Server 发起调用请求
-
-
-
- 远端第三方 AI 与资源
+
+
+ 4
+ Server 执行纯本地策略逻辑并分解
+
+
+
+ 5
+ 将生成的 5 个递进问题返回给客户端
+
+
+
+ 6
+ Client 结合增强提示词重新发起推理
+
+
+
+ 7
+ 向用户渲染最终深度研究洞察报告
+
-
-
- 本作品采用 CC-BY-SA 4.0 进行许可,© 2025-2026 Gitconomy Research社区
-
+
+
+
+
+
+ 组件与语义对照:
+
+
+
+ 宿主客户端架构
+
+
+
+
+ 请求分发控制器 (Controllers)
+
+
+
+
+ 本地执行引擎与资源层
+
+
+
+
+ 云端远端 AI 模型 (Remote)
+
+
+
+
+
+
+ 本作品采用 CC-BY-SA 4.0 进行许可,© 2025-2026 Gitconomy Research社区
+
diff --git a/docs/design/project-caffeine-mvp-sprint1-architecture-design.md b/docs/design/project-caffeine-mvp-sprint1-architecture-design.md
index fe0a348..3849423 100644
--- a/docs/design/project-caffeine-mvp-sprint1-architecture-design.md
+++ b/docs/design/project-caffeine-mvp-sprint1-architecture-design.md
@@ -1,12 +1,14 @@
# Project Caffeine最小可行功能原型设计 —— 提示词策略MCP Server
@@ -27,39 +29,28 @@ status: "Active"
**关键功能**:
-- **接收查询请求**:用户输入查询主题(如:“LLM在医疗中的应用瓶颈”),并发送请求到 **提示词策略MCP Server**。
-- **5 Whys 模板**:通过 **5 Whys** 提示词模板分解查询,生成多层次的推理问题。
-- **增强提示词生成**:根据查询主题和 **5 Whys** 的分解结果,生成增强的合成提示词。
-- **推理请求**:将生成的提示词发送到大语言模型(如 **OpenAI GPT** 或类似模型)进行推理。
-- **返回推理结果**:返回推理结果给用户,并展示深度的研究洞察。
+- **工具注册 **:向 Cherry Studio 注册 `generate_5_whys` 能力。
+- **接收工具调用请求**:通过 `stdio` 接收 Cherry Studio 传来的用户查询主题。
+- **5 Whys 模板分解**:利用本地逻辑对查询进行分解,生成多层次的追问提示词。
+- **资源暴露**:将本地的文档库、PDF 或特定数据以 MCP Resource 的形式暴露给 Client(Sprint2)。
---
### 2. 功能实现步骤说明
-#### 2.1 接收查询请求
+#### 2.1 客户端请求与工具分发
-- 用户通过客户端向 **提示词策略MCP Server** 发送查询请求。
+- 用户在 **Cherry Studio** 中输入查询意图(如:“分析LLM在医疗中的应用瓶颈”)。
+- Cherry Studio 内部的大模型判断需要更深度的思考框架,主动向本 **MCP Server** 发起 `generate_5_whys` 的工具调用。
-#### 2.2 生成 5 Whys 提示词
+#### 2.2 生成 5 Whys 增强提示词
-- **提示词策略MCP Server** 接收到查询后,利用 **5 Whys** 模板对查询进行分解。
+- **MCP Server** 接收到参数后,执行本地 `promptService.js`,根据查询主题自动生成 5 个逐层递进的问题(5 Whys)。
-- **5 Whys** 模板根据查询主题,自动生成多个深度的问题,逐步追溯问题的根本原因。
+#### 2.3 结果返回与最终推理
-#### 2.3 增强提示词生成
-
-- 在 **5 Whys** 的基础上,系统生成增强的提示词,将其送入下游的大语言模型进行推理。
-
-#### 2.4 推理请求与推理结果
-
-- 将增强后的提示词发送给大语言模型,进行深度推理和分析。
-
-- 大语言模型根据提示词生成分析结果,并将结果返回给 **提示词策略MCP Server**。
-
-#### 2.5 返回推理结果
-
-- **提示词策略MCP Server** 返回推理结果给用户,并展示生成的研究洞察。
+- **MCP Server** 将生成的 5 Whys 数组作为工具执行结果,通过标准协议返回给 Cherry Studio。
+- Cherry Studio 携带这些增强提示词再次请求大模型,生成最终的深度研究洞察,并展示给用户。
---
@@ -72,245 +63,139 @@ project-caffeine/
│
├── node_modules/ # 存放项目的依赖包
├── src/ # 源代码文件夹
-│ ├── controllers/ # API 逻辑处理
-│ │ ├── promptsController.js # 处理提示词策略相关请求
-│ │ ├── modelController.js # 处理与大模型的推理请求
-│ │ ├── resourcesController.js # 处理资源请求(新的资源部分)
-│ ├── services/ # 业务逻辑层
-│ │ ├── promptService.js # 处理 5 Whys 提示词生成
-│ │ ├── inferenceService.js # 处理推理请求和结果
-│ │ ├── resourceService.js # 处理资源数据交互(新的资源服务)
-│ ├── models/ # 数据模型
-│ │ └── queryModel.js # 用于表示请求体的数据模型
-│ ├── routes/ # API 路由文件夹
-│ │ └── apiRoutes.js # API 路由配置
-│ ├── utils/ # 工具类函数
-│ │ └── responseHandler.js # 处理API响应的工具函数
-│ └── app.js # 主应用入口文件
+│ ├── controllers/ # 逻辑路由分发层
+│ │ ├── promptsController.js # 处理提示词 Tool 相关请求
+│ │ └── resourcesController.js # 处理资源 Resource 请求
+│ ├── services/ # 核心业务逻辑层
+│ │ ├── promptService.js # 处理 5 Whys 提示词模板的生成算法
+│ │ └── resourceService.js # 处理本地文件、知识库等资源读取逻辑
+│ ├── models/ # 数据模型与校验
+│ │ └── schemas.js # 基于 Zod 的参数校验定义
+│ └── app.js # 主应用入口,初始化 MCP Server (stdio)
│
+├── .vscode/ # IDE 调试配置
+│ └── launch.json # 配置 Cherry Studio 联调附加(Attach)环境
├── config/ # 配置文件
-│ ├── config.js # 项目配置文件,如环境变量等
-│ └── apiConfig.js # 与API相关的配置
-│
-├── .env # 环境变量配置文件
-├── package.json # 项目依赖和启动配置
+│ └── config.js # 项目配置
+├── .env # 环境变量配置 (不再需要 LLM API Key)
+├── package.json # 项目依赖 (@modelcontextprotocol/sdk)
└── README.md # 项目说明文档
```
**各文件和文件夹的功能说明**:
-- `src/`:包含项目的源代码,核心功能逻辑,包括控制器、服务、路由、模型等。
-- `src/controllers/`:控制器负责接收请求并调用相应的服务,执行具体的业务逻辑。
-- `src/services/`:服务层处理具体的业务逻辑,例如生成提示词、推理请求和资源访问等。
-- `src/models/`:定义数据模型,用于标准化请求体和数据结构。
-- `src/utils/`:工具类函数,帮助简化代码实现,例如统一响应格式的处理。
-- `config/`:存放配置信息,包括环境变量配置和外部服务的 API 配置。
-- **根目录**:包含项目的说明文档、环境配置文件等。
-
-
-
*表1-1:**Project Caffeine** 项目 MVP 系统文件和文件夹功能详细说明表格*
-| **目录** | **文件名** | **作用** | **功能** |
-| ---------------------- | ---------------------------- | ------------- | ------------------------------------------------------ |
-| **`src/`** | **`app.js`** | 主应用程序入口文件 | 初始化 Express 应用,设置中间件,配置 API 路由并启动服务器。 |
-| **`src/`** | **`apiRoutes.js`** | API 路由配置文件 | 定义项目的 API 路由,将请求分发到不同的控制器进行处理。 |
-| **`src/controllers/`** | **`promptsController.js`** | 处理查询请求,生成提示词 | 接收查询请求,调用 **promptService.js** 生成提示词(如 **5 Whys** 模板)。 |
-| **`src/controllers/`** | **`modelController.js`** | 处理推理请求,调用推理服务 | 将增强的提示词发送到大语言模型进行推理,获取推理结果并返回。 |
-| **`src/controllers/`** | **`resourcesController.js`** | 处理与资源相关的请求 | 获取资源列表并返回(如学术数据库、PDF 文件、本地知识库)。 |
-| **`src/services/`** | **`promptService.js`** | 提示词生成服务 | 根据查询生成 **5 Whys** 模板的提示词,增强查询深度。 |
-| **`src/services/`** | **`inferenceService.js`** | 推理服务 | 与大语言模型交互,处理增强提示词并获取推理结果。 |
-| **`src/services/`** | **`resourceService.js`** | 资源服务 | 管理外部资源,如学术数据库、PDF 文件、本地知识库等。 |
-| **`src/models/`** | **`queryModel.js`** | 数据模型 | 用于表示请求体的数据模型,确保请求的格式和字段一致。 |
-| **`src/utils/`** | **`responseHandler.js`** | 响应处理工具 | 处理 API 响应格式,标准化响应数据。 |
-| **`config/`** | **`config.js`** | 项目配置文件 | 存储端口、API 密钥等项目的环境变量配置。 |
-| **`config/`** | **`apiConfig.js`** | API 配置文件 | 存储与外部 API(如大语言模型和学术资源接口)相关的配置。 |
-| **`public/`** | **`index.html`** | 静态资源文件 | 提供项目的主页或其他静态页面文件。 |
-| **`config/`** | **`.env`** | 环境变量配置文件 | 存储敏感数据(如端口号、API 密钥)和配置项,确保应用正常运行。 |
-| **`config/`** | **`package.json`** | 项目依赖配置 | 管理项目的依赖包、脚本命令和开发环境设置。 |
-| **根目录** | **`README.md`** | 项目说明文档 | 提供项目的背景、功能、安装步骤和使用方法等信息。 |
+| **目录** | **文件名** | **功能说明** |
+| --- | --- | --- |
+| **`src/`** | **`app.js`** | 实例化官方 `McpServer`,配置 `stdio` 传输层,向 Client 注册 Tools 和 Resources。 |
+| **`src/controllers/`** | **`promptsController.js`** | 接收 `tools/call` 请求,调用 `promptService` 并格式化输出返回给 Client。 |
+| **`src/controllers/`** | **`resourcesController.js`** | 处理 `resources/list` 和 `resources/read` 请求,返回资源数据。 |
+| **`src/services/`** | **`promptService.js`** | 纯本地业务逻辑:根据入参字符串生成 **5 Whys** 数组结构。 |
+| **`src/services/`** | **`resourceService.js`** | 本地文件系统交互:读取本地知识库(如 Obsidian)或指定目录文档。 |
+| **`.vscode/`** | **`launch.json`** | 极其关键:配置 Node.js 的 `--inspect` 端口,实现基于 Cherry Studio 唤起时的断点联调。 |
### 3.2 系统模块架构说明
-原型系统的主要模块包括:
-
-- **Client Request** 发起请求,经过 **HTTP Request** 传递给后端。
-- **app.js** 作为主控制器,分发请求到不同的路由处理器(**apiRoutes.js**)。
-- **promptsController.js** 处理查询请求,生成提示词,调用 **promptService.js**。
-- **modelController.js** 处理推理请求,将增强的提示词发送到大语言模型。
-- **inferenceService.js** 负责与大语言模型交互,获取推理结果并返回。
-- 配置信息存储在 **.env** 和 **config.js** 中,确保系统配置与环境的适配。
-- **resourceService.js**:管理外部资源的获取和存储,如学术数据库、PDF 文档和本地知识库。这些资源将为推理模块提供必要的数据支持。
-
-
-
-这些组件通过 **MCP 协议** 和 **JSON-RPC 2.0** 格式进行通信,确保系统的各个部分能够高效地协作,共同完成从查询处理到推理结果输出的全过程。
-
-### 3.3 系统数据流示意
-
*图1-1:提示词策略 MCP Server 系统组件工作流架构图*

-通过 **MCP 协议**,整个系统模块能够协同工作,从用户输入的查询请求到最终的推理结果输出,确保整个流程的高效性与准确性。
-1. **用户发起请求**:用户通过 **Client Request** 发起查询或推理请求。
-2. **HTTP 请求传输**:请求通过 **HTTP Request** 传递到后端。
-3. **请求路由**:**app.js** 将请求转发到 **apiRoutes.js**,并进一步分发到相应的控制器(如 **promptsController.js** 和 **modelController.js**)。
-4. **提示词生成**:在 **promptsController.js** 中,查询请求被转交到 **promptService.js**,生成符合 **5 Whys** 模板的增强提示词。
-5. **推理请求**:增强的提示词通过 **modelController.js** 传递给 **inferenceService.js**,与大语言模型交互。
-6. **推理结果返回**:大语言模型返回推理结果,**inferenceService.js** 将结果传回 **modelController.js**,并最终返回给用户。
-7. **资源获取**:在整个过程中,**resourceService.js** 提供外部资源(如学术文献、PDF 文件等)的访问,支持推理和查询过程的数据需求。
+基于 Cherry Studio 和 MCP (Model Context Protocol) 架构的工作流分为七个关键步骤:
+
+1. **用户发起提问**:用户首先在前端(Cherry Studio)输入自己的问题或查询需求。
+2. **大模型决策调用工具**:Cherry Studio 作为 MCP 客户端,接收到用户提问后,其连接的大模型会对问题进行分析,并判断出需要调用系统注册的外部工具(如 5 Whys 分析法)来获取更好的提示词策略,而不是直接回答。
+3. **发起工具调用请求 tools/call**:Cherry Studio 通过标准输入输出流(`stdio`)协议,向后端的 Project Caffeine MCP Server(基于 Node.js 构建)发送一个名为 `generate_5_whys` 的工具调用指令。
+4. **本地生成 5 Whys 文本**:Project Caffeine MCP Server 接收到指令后,触发其内部的业务逻辑模块 `promptService.js`。该模块完全在本地运行,不依赖外部大模型,根据用户的初始问题自动生成 5 个逐层深入的追问(即 5 Whys 文本)。
+5. **返回工具执行结果**:MCP Server 将生成的 5 Whys 文本打包成标准的结果格式,通过协议传回给 Cherry Studio。
+6. **结合工具结果发起最终推理**:Cherry Studio 拿到这 5 个问题后,将其作为增强的上下文提示词,再次向大语言模型发起最终的深度推理请求,要求模型基于这些追问给出详尽的分析。
+7. **渲染并呈现结果**:大模型完成最终推理后,Cherry Studio 将这部分内容进行界面渲染,最终向用户呈现一份高质量的“深度洞察报告”。
+
+简单来说,这是一个“用户提问 -> 客户端大模型决定求助 -> 本地服务端生成分析框架 -> 客户端大模型根据框架给出深度回答”的完整闭环。
---
-## 4. API 接口设计
+## 4. MCP 标准通信接口设计 (协议级)
-### 4.1 用户查询请求
+基于 `@modelcontextprotocol/sdk`,底层的 JSON-RPC 通信由 SDK 接管。以下为逻辑层面的输入输出规约。
-用户向 **提示词策略MCP Server** 发送查询请求,请求体包括查询主题。
+### 4.1 Tool 注册声明 (`tools/list`)
-##### 请求示例(`prompts.query`)
+向 Client 声明具备的能力。
```json
{
- "method": "prompts.query",
- "params": {
- "query": "中国开源人才的现状分析"
- },
- "id": "12345"
+ "name": "generate_5_whys",
+ "description": "使用 5 Whys 模板对用户查询进行深度分解,生成增强的提示词策略",
+ "inputSchema": {
+ "type": "object",
+ "properties": {
+ "query": {
+ "type": "string",
+ "description": "用户需要分析的原始查询主题,例如:中国开源人才的现状分析"
+ }
+ },
+ "required": ["query"]
+ }
}
+
```
-### 4.2 5 Whys 提示词模板生成
+### 4.2 Tool 调用响应 (`tools/call`)
-**提示词策略MCP Server** 将查询通过 **5 Whys** 模板进行处理,逐步分解问题,并生成增强的提示词。
-
-##### 响应示例(`prompts.query`)
+当 Client 传入 `query: "中国开源人才的现状分析"` 时,Server 返回的执行结果。
```json
{
- "result": {
- "enhanced_prompt": [
- "为什么中国开源人才的培养面临困难?",
- "为什么中国开源人才缺乏足够的行业经验?",
- "为什么开源社区对中国人才的支持力度不足?",
- "为什么中国开源人才的市场需求与供给不平衡?",
- "为什么政策支持不足导致中国开源人才流失?"
- ]
- },
- "id": "12345"
+ "content": [
+ {
+ "type": "text",
+ "text": "[\n \"为什么中国开源人才的培养面临困难?\",\n \"为什么中国开源人才缺乏足够的行业经验?\",\n \"为什么开源社区对中国人才的支持力度不足?\",\n \"为什么中国开源人才的市场需求与供给不平衡?\",\n \"为什么政策支持不足导致中国开源人才流失?\"\n]"
+ }
+ ]
}
+
```
-### 4.3 推理请求
+### 4.3 存储资源访问 (`resources/list` & `resources/read`)
-生成的提示词将发送到大语言模型进行推理。推理请求会将增强的提示词作为输入。
+允许 Cherry Studio 查阅本地文件上下文。
-##### 请求示例(`model.infer`)
+**资源列表响应示例 (`resources/list`):**
```json
{
- "method": "model.infer",
- "params": {
- "prompts": [
- "为什么中国开源人才的培养面临困难?",
- "为什么中国开源人才缺乏足够的行业经验?",
- "为什么开源社区对中国人才的支持力度不足?",
- "为什么中国开源人才的市场需求与供给不平衡?",
- "为什么政策支持不足导致中国开源人才流失?"
- ]
- },
- "id": "12345"
-}
-```
-
-### 4.4 推理结果返回
-
-大语言模型根据提示词生成推理结果,并将其返回给 **提示词策略MCP Server**,然后将结果发送回用户。
-
-##### 响应示例(`model.infer`)
-
-```json
-{
- "result": {
- "analysis": [
- "中国开源人才的培养面临困难,主要是由于缺乏行业经验和实践机会。",
- "开源社区支持不足,导致中国开源人才的成长空间受限。",
- "中国开源人才的市场需求与供给不平衡,缺乏足够的职业发展机会。",
- "政策支持不足,导致许多开源人才选择离开或转向其他行业。",
- "开源人才流失的原因之一是对本土开发环境和项目缺乏信任。"
- ]
- },
- "id": "12345"
-}
-```
-
-### 4.5 存储资源访问
-
-在 **MCP Server** 中,**Resource API** 用于提供系统需要访问的资源,允许 **MCP Client** 通过 **MCP Server** 获取和管理这些资源。
-#### **请求示例(`resources/list`)**
-
-获取可用资源列表的请求。
-
-```json
-{
- "method": "resources.list",
- "params": {},
- "id": "1234"
-}
-```
-
-#### **响应示例(`resources.list`)**
-
-返回资源信息,包括学术数据库、PDF 文件、互联网资源等。
-
-```json
-{
- "result": [
- {
- "resource_id": "academic_database",
- "description": "学术数据库资源",
- "type": "API",
- "endpoint": "https://api.academicdb.com/v1/query"
- },
- {
- "resource_id": "pdf_document",
- "description": "PDF 文档资源",
- "type": "File",
- "file_path": "/path/to/document.pdf"
- },
- {
- "resource_id": "local_kb",
- "description": "本地知识库资源",
- "type": "Directory",
- "directory_path": "/path/to/obsidian/vault"
- }
- ],
- "id": "1234"
+ "resources": [
+ {
+ "uri": "file:///path/to/obsidian/vault/开源行业报告.md",
+ "name": "开源行业研究报告",
+ "mimeType": "text/markdown",
+ "description": "本地知识库中的开源行业深度分析文档"
+ }
+ ]
}
```
---
-## 5. **最小可行产品(MVP)开发环境**
+## 5. 最小可行产品(MVP)开发环境
-为了验证这一最小可行功能(MVP),开发环境应包括以下组件:
+本阶段的开发环境高度依赖实际的 Client 联调:
-- **Node.js**:用于后端服务开发,处理 API 请求和响应。
-- **MCP 协议实现**:实现任务调度、数据传输和组件间通讯。
-- **大语言模型**:可以使用开源模型(如 GPT-3、GPT-4)进行推理。
-- **Express.js**:搭建一个轻量级的 Node.js 服务,处理请求和响应。
-- **Postman 或 Curl**:用于模拟 API 请求和响应,进行接口测试。
+* **Node.js (v18+)**:提供运行环境。
+* **@modelcontextprotocol/sdk**:官方依赖,提供 `stdio` 传输支持。
+* **Cherry Studio**:作为唯一指定测试 Client,配置为以 `command: node` 的方式启动 Server。
+* **VS Code Attach 调试**:利用 `--inspect=9229` 参数,在 Cherry Studio 唤起 Server 后,通过 VS Code 附加到该进程实现源码级断点调试。
---
-## 6. **部署与验证**
+## 6. 部署与验证
-1. **部署 API 服务**:使用 **Node.js** 和 **Express.js** 部署 **提示词策略MCP Server**。
-2. **模拟查询请求**:使用 **Postman** 或 **Curl** 向服务发送模拟的查询请求,验证提示词生成是否正确。
-3. **测试推理功能**:集成大语言模型的推理 API,确保生成的增强提示词能够正确传递并获得推理结果。
-4. **返回结果验证**:确保推理结果能够返回,并符合预期的研究洞察。
+1. **环境初始化**:安装 Node.js 依赖及 Zod 校验库。
+2. **Client 配置**:在 Cherry Studio 的 MCP 设置中,添加名为 `ProjectCaffeine` 的 Server,指向本地的 `app.js` 绝对路径,并添加 `--inspect` 参数。
+3. **断点监听**:在 VS Code 中启动 Attach 调试任务,等待 Cherry Studio 握手。
+4. **触发验证**:在 Cherry Studio 对话框中要求模型“调用工具分析某问题”,观察 VS Code 是否成功捕获断点,并最终在 Cherry Studio 界面输出基于 5 Whys 增强的回答。
---