项目简介
MCP Fundamentals 仓库旨在教授如何构建基于 Model Context Protocol (MCP) 的AI应用后端。其中包含的"EpicMe"日记应用服务器是一个功能完整的MCP实现,它允许大型语言模型 (LLM) 客户端通过标准化的协议与日记数据和功能进行交互。它托管资源(如日记条目和标签)、注册工具(如创建、读取、更新、删除日记及标签,以及为日记添加标签)、并提供AI辅助的Prompt模板(如标签建议和Prompt参数补全)。
主要功能点
- 日记与标签管理: 支持日记条目的创建、读取、更新和删除,以及标签的创建、读取、更新和删除。
- 日记条目与标签关联: 允许将标签添加到日记条目中,实现内容分类。
- MCP资源托管: 以标准化URI形式暴露日记和标签数据,供LLM客户端查询。
- MCP工具注册: 提供一系列LLM可调用的工具,用于执行数据操作。
- AI辅助Prompt模板: 定义Prompt模板,例如,LLM可以调用"suggest_tags" Prompt来获取日记条目的标签建议。
- Prompt参数补全: 为Prompt参数提供智能补全功能,提高LLM客户端的用户体验。
- JSON-RPC通信: 通过JSON-RPC协议与LLM客户端进行通信。
安装步骤
- 克隆仓库:
git clone --depth 1 https://github.com/epicweb-dev/mcp-fundamentals.git cd mcp-fundamentals - 安装依赖并设置:
这将安装所有项目依赖,并准备好运行示例应用。npm install # 或者 pnpm install / yarn install npm run setup - 运行MCP服务器(以"05.prompts/03.solution.completion"为例):
要运行最新的解决方案作为MCP服务器,请在仓库根目录执行以下命令:
服务器将会在一个本地端口启动,并提供Stdio传输协议。npm run dev:mcp 05.03.solution
服务器配置信息
MCP客户端需要以下信息来连接到此MCP服务器:
- Server Name (服务器名称): 'epicme'
- Command (启动命令): 'tsx'
- Args (启动参数): 'exercises/05.prompts/03.solution.completion/src/index.ts'
- Transport (传输协议): 'stdio'
- Env Variables (环境变量): 'EPIC_ME_DB_PATH: ./db.sqlite' (可选,指定SQLite数据库路径,默认为当前目录的'db.sqlite')
请注意: MCP客户端不需要以JSON格式手动输入这些信息,而是通过MCP客户端的界面或配置文件进行配置。上述信息仅用于说明MCP客户端连接此服务器所需的核心参数。
基本使用方法
当MCP服务器运行后,您可以使用任何兼容MCP协议的LLM客户端(如'mcp-inspector'、ChatGPT、Claude Desktop等)来与之连接。
- 连接: 在MCP客户端中,配置服务器的启动命令和参数。
- 交互:
- LLM可以发现并调用服务器注册的工具(例如,'create_entry'来创建日记,'list_tags'来查看标签)。
- LLM可以查询服务器托管的资源(例如,通过URI 'epicme://entries/1' 获取特定日记条目)。
- LLM可以请求Prompt模板(例如,调用'suggest_tags' Prompt来获取特定日记条目的标签建议)。
- Prompt参数输入时,客户端可能会利用MCP的补全能力,提供有效的ID列表。
信息
分类
AI与计算