使用说明
项目简介
TeaApp MCP Server API 是一个基于 Model Context Protocol (MCP) 的后端服务器实现,它使用 TypeScript 开发,旨在演示 MCP 的核心概念。该服务器提供了一个简单的笔记系统和LTE展会信息查询工具,展示了如何通过 MCP 协议向 LLM 客户端提供资源、工具和 Prompt 功能。
主要功能点
- 资源 (Resources):
- 提供对文本笔记的资源管理,每篇笔记都有唯一的 URI (例如 'note:///1')。
- 可以列出所有笔记资源,并读取指定 URI 的笔记内容。
- 笔记以纯文本 ('text/plain') MIME 类型提供。
- 工具 (Tools):
- 'create_note': 创建一个新的文本笔记。需要提供笔记的标题 (title) 和内容 (content) 作为参数。
- 'query_lte_events': 根据日期查询LTE展会活动信息。需要提供日期 (date) 作为参数,日期可选范围为 "2024-12-11", "2024-12-12", "2024-12-13"。
- Prompt 模板 (Prompts):
- 'summarize_notes': 生成一个 Prompt,用于总结所有已存储的笔记内容。Prompt 中会嵌入所有笔记作为资源,以便 LLM 进行总结。
安装步骤
- 克隆仓库: 首先,你需要克隆 GitHub 仓库到本地:
git clone https://github.com/edcity-mlearning/teaapp-mcp-api.git cd teaapp-mcp-api - 安装依赖: 使用 npm 安装项目依赖:
npm install - 构建项目: 构建 TypeScript 代码:
构建成功后,会在 'build' 目录下生成 'index.js' 文件,这是服务器的入口文件。npm run build
服务器配置
要将 TeaApp MCP Server API 集成到 MCP 客户端(例如 Claude Desktop),你需要配置客户端的服务器配置文件。以 Claude Desktop 为例,你需要编辑 'claude_desktop_config.json' 文件,文件路径如下:
- MacOS: '~/Library/Application Support/Claude/claude_desktop_config.json'
- Windows: '%APPDATA%/Claude/claude_desktop_config.json'
在 'mcpServers' 字段中添加一个新的服务器配置项,配置信息如下:
{ "mcpServers": { "teaapp-mcp-api": { "command": "/path/to/teaapp-mcp-api/build/index.js" } } }
配置说明:
- '"teaapp-mcp-api"': 服务器名称,可以自定义,用于在客户端中标识该服务器。
- '"command"': 重要:服务器启动命令。你需要将 '"/path/to/teaapp-mcp-api/build/index.js"' 替换为 你本地仓库 'build/index.js' 文件的绝对路径。 例如,如果你的仓库在 '/Users/yourname/Documents/teaapp-mcp-api',则应配置为 '"/Users/yourname/Documents/teaapp-mcp-api/build/index.js"'。
注意: 此配置中没有 'args' 字段,因为该服务器默认通过标准输入/输出 (stdio) 进行通信,无需额外的启动参数。
基本使用方法
-
启动服务器: 配置完成后,当 MCP 客户端(如 Claude Desktop)启动时,TeaApp MCP Server API 也会随之启动。服务器通过标准输入/输出与客户端通信。
-
资源访问: 客户端可以请求列出和读取笔记资源。
- 列出资源: 客户端可以发送 'ListResourcesRequest' 请求,服务器会返回所有笔记资源的列表,每个资源包含 URI、MIME 类型、名称和描述。
- 读取资源: 客户端可以发送 'ReadResourceRequest' 请求,并指定笔记的 URI (例如 'note:///1'),服务器会返回该笔记的内容。
-
工具调用: 客户端可以调用服务器提供的工具。
- 创建笔记: 客户端可以调用 'create_note' 工具,并提供 'title' 和 'content' 参数来创建新的笔记。
- 查询LTE展会信息: 客户端可以调用 'query_lte_events' 工具,并提供 'date' 参数(例如 "2024-12-11")来查询指定日期的LTE展会信息。服务器会返回包含展会信息的 JSON 字符串。
-
Prompt 使用: 客户端可以请求获取预定义的 Prompt。
- 获取 Prompt: 客户端可以发送 'GetPromptRequest' 请求,并指定 Prompt 名称 'summarize_notes',服务器会返回一个包含指令和嵌入笔记资源的 Prompt 消息,客户端可以将此 Prompt 发送给 LLM 进行笔记总结。
调试: 如果需要调试 MCP 服务器,可以使用 README 中推荐的 MCP Inspector 工具,通过 'npm run inspector' 启动。
信息
分类
生产力应用