Node.js服务器部署工具

一个基于Node.js和TypeScript构建的MCP服务器,支持在Google Cloud Platform上快速部署。

  • by latrach
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 latrach/mcp-latrach-node

使用说明

MCP Latrach节点

使用Node.js和TypeScript构建的简单模型上下文协议(MCP)服务器,可在Google云平台上部署。

部署到Google Cloud Run(分步)

云构建所需的权限

确保您的Google帐户对GCP项目具有足够的权限:

  1. 您必须是所有者或拥有该角色 Editor 哦 Cloud Build Editor 关于项目。
  2. 要检查或添加权限:
  • 转到GCP控制台>IAM&Admin>IAM
  • 添加带有角色的电子邮件 roles/cloudbuild.builds.editor 哦 roles/editor
  1. 如果您有多个Google帐户,请检查活动帐户:
gcloud auth login
gcloud config set account VOTRE_EMAIL@gmail.com
  1. 如果您没有权限,请要求项目管理员授予您权限。

1.安装gcloud工具

遵循官方文件:https://cloud.google.com/sdk/docs/install

在macOS上:

brew install --cask google-cloud-sdk

安装后,重新加载终端或运行:

gcloud init

2.准备Dockerfile

确保Dockerfile包含:

FROM node:20-slim
WORKDIR /app
COPY package*.json ./
COPY tsconfig.json ./
RUN npm ci
COPY src ./src
RUN npm run build
EXPOSE 8080
ENV PORT=8080
CMD ["node", "dist/index.js"]

3.在Google容器注册表(GCR)上构建并推送Docker映像


# Trouver l'ID de votre projet GCP (project_id)
#
# 1. Depuis la console web : https://console.cloud.google.com/ (colonne "ID du projet")
# 2. Ou en ligne de commande :
gcloud projects list
# L'ID du projet est dans la colonne PROJECT_ID

# Configurer le projet GCP
gcloud config set project mcp-latrach

## Méthode 1 : Build manuel (local)
# Construire l'image
docker build -t gcr.io/mcp-latrach/mcp-latrach-node:latest .
# Pousser l'image
docker push gcr.io/mcp-latrach/mcp-latrach-node:latest

## Méthode 2 : Build et déploiement automatique avec Cloud Build
# (Recommandé pour CI/CD)
#
# 1. Vérifiez que votre fichier cloudbuild.yaml contient une étape de déploiement Cloud Run (voir plus bas)
# 2. Avant de lancer le build, vérifiez que vous êtes bien authentifié avec le bon compte Google :
gcloud auth login
gcloud config set account xxxxx@gmail.com
# 3. Lancez le build et le déploiement :
gcloud builds submit --config cloudbuild.yaml
# Cloud Build va construire, pousser et déployer automatiquement sur Cloud Run (avec accès public)
# Pour éviter l'erreur Forbidden, assurez-vous que l'option --allow-unauthenticated est bien présente dans la commande de déploiement Cloud Run

4.部署到云运行

gcloud run deploy mcp-latrach-node \
  --image gcr.io/mcp-latrach/mcp-latrach-node:latest \
  --platform managed \
  --region europe-west1 \
  --allow-unauthenticated

5.获取云运行应用程序的URL

部署后,要获取服务的公共URL:

gcloud run services describe mcp-latrach-node --platform managed --region europe-west1 --format 'value(status.url)'

或者列出所有服务及其URL:

gcloud run services list --platform managed --region europe-west1

URL将显示在服务的“URL”列中 mcp-latrach-node.

HTTP服务器将通过云运行提供的URL(自动管理端口8080)访问。看 API_DOC.md 有关REST API的文档。

功能

  • HTTP操作模式:

    • 超文本传输协议 (index.ts):对于本地部署或GCP,监听端口8080
  • 可用工具:

    • greet:用名字问候某人
    • calculate:执行简单的数学计算
  • 可用资源:

    • example://info:服务器信息

地方发展

先决条件

  • Node.js 20或更高版本
  • npm瓯纱

安装

npm install

编译

npm run build

执行

HTTP模式(端口8080):

npm run start:http

自动充电开发

npm run dev:http

HTTP服务器将在 http://localhost:8083.见 API_DOC.md 有关完整的API文档。

选项2:云构建(自动CI/CD)

  1. 配置程序云构建:
# Activer l'API Cloud Build
gcloud services enable cloudbuild.googleapis.com

# Configurer les permissions
gcloud projects add-iam-policy-binding mcp-latrach \
  --member serviceAccount:YOUR_PROJECT_NUMBER@cloudbuild.gserviceaccount.com \
  --role roles/run.admin
  1. 触发构建:
gcloud builds submit --config cloudbuild.yaml
  1. 构建后自动部署到云运行:

将此步骤添加到 cloudbuild.yaml:

- name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
  entrypoint: gcloud
  args:
    - 'run'
    - 'deploy'
    - 'mcp-latrach-node'
    - '--image'
    - 'gcr.io/$PROJECT_ID/mcp-latrach-node:$COMMIT_SHA'
    - '--region'
    - 'europe-west1'
    - '--platform'
    - 'managed'

测试员l'image Docker本地化

构建映像后,在Docker容器中启动MCP服务器:

docker run --rm -p 8080:8080 gcr.io/mcp-latrach/mcp-latrach-node:latest

然后,您可以访问APIhttp://localhost:8080

项目结构

.
├── src/
│   └── index.ts          # Point d'entrée principal
├── dist/                 # Code compilé (généré)
├── package.json
├── tsconfig.json
├── Dockerfile
├── cloudbuild.yaml
└── README.md

许可证

麻省理工学院