Node.js HTTP服务器

一个专为Node.js/TypeScript模型上下文协议(MCP)服务器优化的Docker化HTTP服务器,支持自动依赖管理、TypeScript编译和npm/yarn/pnpm。

  • by yonaka15
  • Shell
  • 本地部署
  • 更新于
在 GitHub 查看 yonaka15/mcp-server-as-http-node

使用说明

MCP HTTP服务器-Node.js运行时

A. Docker优化 Node.js/TypeScript模型上下文协议(MCP)服务器的HTTP服务器,使用 mcp-server-as-http-core 二元的。

🎯 专注于Node.js:此实现专门针对Node.js和TypeScript MCP服务器进行了优化,具有自动依赖管理、TypeScript编译和npm/yarn/pnpm支持。

🐳 仅限Docker:此版本使用预构建的核心二进制文件,专注于Docker部署和Node.js环境优化。

🏗️ 建筑

mcp-server-as-http-node/
├── Dockerfile              # Node.js optimized container
├── docker-compose.yml      # Docker Compose configuration  
├── docker-build.sh         # Build and deployment script
├── mcp_servers.config.json # Node.js server examples
├── .env.example            # Environment template
└── README.md               # This file

核心组件:

  • 预构建二进制文件:用途 mcp-server-as-http-core 二进制(在Docker镜像创建过程中构建)
  • Node.js环境:Node.js 18+,支持npm、npx和Git
  • Docker优化:多阶段构建,实现最小运行时映像
  • 卷管理:持久的npm缓存和MCP服务器存储

🚀 快速开始

先决条件

  • 码头工人 和 Docker Compose
  • Git (用于存储库克隆)

选项1:Docker Compose(推荐)

# Clone repository
git clone https://github.com/your-repo/mcp-server-as-http-node.git
cd mcp-server-as-http-node

# Copy and configure environment
cp .env.example .env
# Edit .env with your settings

# Start with Docker Compose
docker-compose up -d

# View logs
docker-compose logs -f

选项2:构建脚本

# Clone repository
git clone https://github.com/your-repo/mcp-server-as-http-node.git
cd mcp-server-as-http-node

# Copy and configure environment  
cp .env.example .env
# Edit .env with your settings

# Build and run
./docker-build.sh

# Or use docker-compose via script
./docker-build.sh --use-compose

选项3:手动Docker

# Build image
docker build -t mcp-http-server-node .

# Run container
docker run -d \
  --name mcp-http-server-node \
  -p 3000:3000 \
  --env-file .env \
  -v mcp_cache:/tmp/mcp-servers \
  -v npm_cache:/app/.npm-cache \
  mcp-http-server-node

⚙️ 配置

环境变量

变量 默认值 描述
MCP_CONFIG_FILE mcp_servers.config.json MCP服务器配置路径
MCP_SERVER_NAME redmine 从配置中使用的服务器名称
PORT 3000 HTTP服务器端口
HTTP_API_KEY - 用于身份验证的承载令牌
DISABLE_AUTH false 禁用身份验证
NODE_PACKAGE_MANAGER npm 包管理器(npm/yarn/pnpm)
ENABLE_TYPESCRIPT true 启用TypeScript编译
AUTO_INSTALL_DEPS true 自动安装依赖项
WORK_DIR /tmp/mcp-servers MCP服务器的工作目录

Node.js MCP服务器配置

重要:配置文件必须遵循 *.config.json 命名约定。在构建过程中,这些文件会自动复制到Docker容器中。

创建或更新 mcp_servers.config.json:

{
  "version": "1.0",
  "servers": {
    "redmine": {
      "repository": "https://github.com/yonaka15/mcp-server-redmine",
      "build_command": "npm install && npm run build",
      "command": "node",
      "args": ["dist/index.js"],
      "runtime_config": {
        "node": {
          "version": ">=18.0.0",
          "package_manager": "npm"
        }
      }
    }
  }
}

其他服务器示例

如果你想添加更多的服务器,这里有一些例子:

{
  "version": "1.0",
  "servers": {
    "redmine": {
      "repository": "https://github.com/yonaka15/mcp-server-redmine",
      "build_command": "npm install && npm run build",
      "command": "node",
      "args": ["dist/index.js"],
      "runtime_config": {
        "node": {
          "version": ">=18.0.0",
          "package_manager": "npm"
        }
      }
    },
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "your-token"
      }
    },
    "brave-search": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-brave-search"],
      "env": {
        "BRAVE_API_KEY": "your-brave-api-key"
      }
    }
  }
}

🛠️ API使用

通过身份验证

curl -X POST http://localhost:3000/api/v1 \
  -H "Authorization: Bearer your-secret-api-key" \
  -H "Content-Type: application/json" \
  -d '{"command": "{\"jsonrpc\": \"2.0\", \"id\": 1, \"method\": \"tools/list\", \"params\": {}}"}'

无身份验证

集 DISABLE_AUTH=true 在……里面 .env:

curl -X POST http://localhost:3000/api/v1 \
  -H "Content-Type: application/json" \
  -d '{"command": "{\"jsonrpc\": \"2.0\", \"id\": 1, \"method\": \"tools/list\", \"params\": {}}"}'

健康检查

curl -f http://localhost:3000/health

🐳 Docker功能

多阶段构建

  • 第1阶段:在图像创建过程中从源代码构建核心二进制文件
  • 第2阶段:Node.js 18精简运行时,带有预构建的二进制文件

Node.js优化

  • 自动npm缓存管理
  • TypeScript编译支持
  • 包管理器检测(npm/yarn/pnpm)
  • Git存储库的克隆和构建
  • 非root用户执行

卷管理

  • mcp_cache:MCP服务器文件的持久存储
  • npm_cache:NPM包缓存,以实现更快的构建

安全

  • 非root用户执行(mcpuser)
  • 运行时依赖性最小
  • 健康检查端点

📊 监测和管理

查看日志

# Docker Compose
docker-compose logs -f

# Docker
docker logs -f mcp-http-server-node

# Build script helper
docker logs -f mcp-http-server-node

容器管理

# Docker Compose
docker-compose up -d      # Start
docker-compose down       # Stop
docker-compose restart    # Restart

# Docker
docker start mcp-http-server-node
docker stop mcp-http-server-node
docker restart mcp-http-server-node

健康监测

# Check container health
docker inspect mcp-http-server-node | grep -A 10 Health

# Manual health check
curl -f http://localhost:3000/health

# Check running processes
docker exec mcp-http-server-node ps aux

🔧 开发与调试

编译选项

# Build without cache
./docker-build.sh --no-cache

# Build only (don't run)
./docker-build.sh --build-only

# Custom port
./docker-build.sh --port 8080

# Use docker-compose
./docker-build.sh --use-compose

调试

# Execute shell in container
docker exec -it mcp-http-server-node /bin/bash

# Check Node.js environment
docker exec mcp-http-server-node node --version
docker exec mcp-http-server-node npm --version

# Check Git availability
docker exec mcp-http-server-node git --version

# View environment variables
docker exec mcp-http-server-node env | grep MCP

故障排除

# Check container status
docker ps -a | grep mcp-http-server-node

# Inspect container configuration
docker inspect mcp-http-server-node

# Check volume mounts
docker volume ls | grep mcp
docker volume inspect mcp_cache

🧩 Node.js特定功能

自动依赖关系管理

  • 发现 package.json 并运行适当的包管理器
  • 支持npm、yarn和pnpm
  • 自动处理TypeScript编译

存储库支持

  • 自动克隆Git存储库
  • 在启动MCP服务器之前执行构建命令
  • 管理隔离容器中的工作目录

环境验证

  • 验证Node.js版本兼容性
  • 检查npm/npx的可用性
  • 报告存储库操作的Git状态

📦 预构建二进制文件

这个Docker镜像构建了 mcp-server-as-http-core 在图像创建过程中从源代码获取二进制文件。二进制文件提供:

  • 高性能HTTP服务器(Rust/Axum)
  • 身份验证中间件
  • MCP服务器的流程管理
  • 配置管理
  • 运行时抽象

🔗 相关项目

  • mcp服务器作为http核心:核心库和二进制文件
  • mcp服务器作为http-python:Python运行时(计划中)
  • mcp服务器作为httpdocker:Docker运行时中的Docker(计划中)

🤝 贡献

  1. 分叉存储库
  2. 克隆你的叉子: git clone <your-fork>
  3. 创建要素分支
  4. 进行更改(重点关注Docker、配置和文档)
  5. 测试用 ./docker-build.sh --build-only
  6. 提交拉取请求

核心变化

如需更改HTTP服务器功能,请向 mcp-server-as-http-core 存储库。

此存储库侧重于:

  • Node.js环境下的Docker优化
  • 配置管理
  • 构建脚本和部署工具
  • 文件和示例

📄 许可证

这个项目是MIT许可证下的开源项目。有关详细信息,请参阅LICENSE文件。

⚠️ 重要提示

  • 需要Docker:此实现仅适用于Docker,需要Docker运行
  • 无局部锈蚀:本地不需要Rust工具链-二进制文件是在Docker中构建的
  • Node.js焦点:专门针对Node.js/TypeScript MCP服务器进行了优化
  • 核心依赖:使用最新 mcp-server-as-http-core 从源代码构建

🔄 更新

要更新到最新的核心服务器:

# Rebuild with latest core
./docker-build.sh --no-cache

# Or with docker-compose
docker-compose build --no-cache

Docker构建过程会自动拉取并构建核心服务器的最新版本。

🆘 支持

  • 问题:报告此存储库中的错误和请求功能
  • 核心问题:对于HTTP服务器核心功能,请使用 岩心库
  • 讨论:使用GitHub讨论来回答问题和社区支持

内置于❤️ MCP(模型上下文协议)社区

🐳 Docker优化•🚀 以Node.js为中心⚡ 准备部署