使用说明
Coffee Mate MCP服务器
一个提供咖啡数据的TypeScript MCP(模型上下文协议)服务器。最初基于Medium文章 用TypeScript编写MCP服务器的快速分步指南 Perry George。支持流式HTTP和stdio传输。
先决条件
- Node.js 24+
- npm
- Docker(可选,用于容器化部署)
设置
npm install
npm run build
码头工人
多阶段构建: builder stage编译TypeScript, runner stage仅复制生产依赖关系和编译后的输出。非根 app 用户。 HEALTHCHECK 通过 wget 反对 /health.
docker build -t coffee-mate-mcp .
docker run -p 3001:3001 coffee-mate-mcp
在运行时重写环境变量:
docker run -p 8080:8080 -e PORT=8080 -e ACTIVE_TOOLS="get-coffees" coffee-mate-mcp
跑步
HTTP模式(默认) --启动一个原始的Node.js流式HTTP服务器:
node build/app/main.js
# MCP Server running on http://0.0.0.0:3001
设置 PORT 更改端口的环境变量(默认值 3001).
stdio模式 --对于本地VS代码集成:
node build/app/main.js --stdio
# MCP Server running on stdio
环境变量
| 变量 | 类型 | 默认值 | 描述 |
|---|---|---|---|
PORT |
编号 | 3001 |
HTTP服务器端口 |
TRANSPORT_MODE |
字符串 | "http" |
"http" 或 "stdio" |
SERVER_NAME |
字符串 | "coffee-mate" |
MCP服务器标识 |
SERVER_VERSION |
字符串 | "1.0.0" |
学期版本 |
ACTIVE_TOOLS |
字符串 | "" |
要注册的逗号分隔的工具名称(空=全部) |
API终点
| 端点 | 方法 | 描述 |
|---|---|---|
/health |
GET | 健康检查--返回 { "status": "ok" } |
/mcp |
POST | MCP JSON-RPC消息处理程序(初始化创建会话) |
/mcp |
GET | SSE向后兼容流 |
/mcp |
DELETE | 显式会话终止 |
MCP工具
| 工具 | 说明 | 参数 |
|---|---|---|
get-coffees |
返回所有咖啡的列表 | 无 |
get-a-coffee |
按名称检索特定咖啡的数据 | name (字符串) |
连接到VS代码
该项目包括 .vscode/mcp.json 使用stdio模式的配置。在VS Code中打开工作区,从配置文件启动MCP服务器,并在代理模式下通过GitHub Copilot使用工具。
Docker网络(n8n集成)
在里面跑步时 first-n8n Docker Compose堆栈,此服务器可用于其他容器 http://coffee-mate-mcp:3001/mcp 在 demo 网络。请参阅 first-n8n 全栈设置的项目。
CI/CD
GitHub操作工作流(.github/workflows/deploy.yml):
ci工作:跑步build→lint:ts→test在所有分支上进行拉取请求定位maindeploy工作:构建Docker镜像,推送到Azure容器注册表,部署到Azure容器应用程序。已关闭main仅推
API文档
TypeScript API文档在中生成为Markdown docs/api/ 使用 TypeDoc 随着 typedoc插件标记 和 typedoc插件备注。生成的文件在CI中提交和执行。
命令
npm run docs # Generate + remark-format docs (commit the result)
npm run docs:lint # Lint committed docs/api with remark
工作流程
- 进行源代码更改
- 跑
npm run docs重新生成API文档 - 提交更新
docs/api/随着代码的更改
CI运行 npm run docs 然后 git diff --exit-code docs/api --如果提交的文档与源文件不同步,则构建失败。
