模型上下文协议服务器

支持OpenAI和Claude的多模式协议服务器,提供文件管理、API集成和严格遵循MCP规范的功能。

  • by Amana03
  • Shell
  • 本地部署
  • 更新于
在 GitHub 查看 Amana03/universal-mcp-server

使用说明

通用MCP服务器

OpenAI和Claude支持的Model Context Protocol服务器实施

特徴

  • ✅ 支持多模式
    • STDIO模式:克劳德桌面統合
    • HTTP模式: OpenAI、ngrok、支持外部访问
  • ✅ OpenAI & Claude 完全対応
  • ✅ 文件读写删除搜索功能
  • ✅ MCP严格遵守规格(SDK v1.18.1)
  • ✅ SSE (Server-Sent Events) 支持
  • ✅ API密钥验证(可选)
  • ✅ CORS対応
  • ✅ 全面记录(使用Winston)
  • ✅ 异步写入控制(锁定机构)
  • ✅ TypeScript完全型安全
  • ✅ 模块化设计

项目结构

universal-mcp-server/
├── src/
│   ├── index.ts             # メインサーバー実装(STDIOモード)
│   ├── index-multimode.ts   # マルチモード対応版
│   ├── http-server.ts       # HTTP/SSEサーバー実装
│   ├── logger.ts            # ロギングモジュール
│   └── storage.ts           # ストレージモジュール
├── build/                   # ビルド出力
├── data/                    # データストレージ
├── logs/                    # ログファイル
├── .env.example             # 環境設定例
├── NGROK.md                 # ngrok設定ガイド
├── OPENAI.md                # OpenAI統合ガイド
├── package.json
├── tsconfig.json
└── README.md

安装

npm install
npm run build

快速启动

详情 QUICKSTART.md 来修改标记元素的显示属性。

Claude Desktop(STDIO模式)

npm start

OpenAI / Web集成(HTTP模式)

# 認証なし(開発用)
MCP_MODE=http npm run dev:http

# 認証あり(推奨)
export MCP_API_KEY=$(openssl rand -hex 32)
./start-http.sh

ngrok公开

最简单的方法(多功能一体机)

# MCPサーバー + ngrokを同時起動
./start-all.sh

个别起动

# ターミナル1: MCPサーバー
./start-http.sh

# ターミナル2: ngrok
./start-ngrok.sh

手动起动

ngrok http 3000

详细: NGROK.md, OPENAI.md

使用方法

STDIO模式(Claude Desktop用)

# 開発モード
npm run dev

# 本番実行
npm start

HTTP模式(OpenAI,支持ngrok)

# 開発モード(認証なし)
MCP_MODE=http npm run dev:http

# 本番実行(認証なし)- 開発用のみ
MCP_MODE=http npm start:http

# 本番実行(認証あり)- 推奨
MCP_MODE=http MCP_HTTP_PORT=3000 MCP_API_KEY=your-secret-key npm start:http:auth

环境变数设定

# .envファイルを作成
cp .env.example .env

# .envファイルを編集
# MCP_MODE=http
# MCP_HTTP_PORT=3000
# MCP_HTTP_HOST=0.0.0.0
# MCP_API_KEY=your-secret-api-key

ngrok外部发布

# 別のターミナルでngrokを起動
ngrok http 3000

详情 NGROK.md 来修改标记元素的显示属性。

OpenAI与集成

详情 OPENAI.md 来修改标记元素的显示属性。

调试检查器

npm run inspect

Claude Desktop中的设置

~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "universal-mcp": {
      "command": "node",
      "args": ["/path/to/universal-mcp-server/build/index.js"]
    }
  }
}

HTTP模式端点

|端点|方法|说明|认证| |--------------|---------|------|------| | /health | GET | 健康检查|不需要| | /info | GET | 服务器信息|需要*| | /sse | GET | SSE接続(MCP通信) | 必要* | | /message | POST | 发送消息|必要*|

*API仅当设置了键时

认证页眉

curl -H "Authorization: Bearer your-api-key" \
     http://localhost:3000/info

停止方法

# すべてのプロセスを停止
./stop-all.sh

# ngrokのみ停止
./stop-ngrok.sh

# または個別に停止
pkill -f "node build/index"
pkill -f "ngrok"

故障排除

进程无法停止、端口专有等问题 故障排除.md 来修改标记元素的显示属性。

常见问题:

  • ngrok无法停止 ./stop-ngrok.sh
  • 端口3000正在使用→ lsof -ti:3000 | xargs kill -9
  • "endpoint already online"错误-现有ngrok停止隧道

机能

Resources(导入)

  • file:///{key} -使用密钥导入文件
  • file:///list -获取所有文件列表

Tools(写入操作)

  • write_file -将内容写入文件
  • delete_file -删除文件
  • search_files -查找文本

日志

所有操作都将详细记录:

  • logs/combined.log -所有日志
  • logs/error.log -仅错误
  • stderr - 实时输出

每个日志条目包括:

  • 时间戳
  • 会话ID
  • 请求ID
  • 操作类型
  • 上下文信息

许可证

麻省理工学院