Skip to main content
Glama
CHANGELOG.md4.18 kB
# 開発ログ ## 2025-11-03: HTTPモード・OpenAI対応追加 ### 実施内容 1. **HTTPモード実装** - `src/http-server.ts` 新規作成 - Express + SSE (Server-Sent Events) 実装 - CORS対応 - APIキー認証(オプション) 2. **マルチモード対応** - `src/index-multimode.ts` 新規作成 - 環境変数によるモード切替(stdio/http) - 両モードで同じMCPサーバーコアを使用 3. **エンドポイント実装** - `GET /health` - ヘルスチェック - `GET /info` - サーバー情報 - `GET /sse` - SSE接続(MCP通信) - `POST /message` - メッセージ送信 4. **依存関係追加** - `express` - HTTPサーバー - `cors` - CORS対応 - `@types/express`, `@types/cors` - 型定義 5. **ドキュメント整備** - `NGROK.md` - ngrok設定ガイド - `OPENAI.md` - OpenAI統合ガイド - `QUICKSTART.md` - クイックスタート - `.env.example` - 環境設定例 6. **スクリプト追加** - `start-http.sh` - HTTPモード起動 - `test-http.sh` - HTTPモードテスト - `quick-test.sh` - 統合テスト 7. **package.json更新** - `dev:http` - HTTPモード開発 - `start:http` - HTTPモード本番起動 - `start:http:auth` - 認証付きHTTPモード ### 新機能 #### STDIOモード(従来通り) - Claude Desktop統合 - 標準入出力ベースの通信 - ローカル専用 #### HTTPモード(新規) - OpenAI統合可能 - ngrok経由で外部公開可能 - SSE (Server-Sent Events) 使用 - APIキー認証対応 - CORS対応 - 複数クライアント対応 ### 環境変数 | 変数 | 説明 | デフォルト | |------|------|-----------| | `MCP_MODE` | モード選択 | `stdio` | | `MCP_HTTP_PORT` | HTTPポート | `3000` | | `MCP_HTTP_HOST` | HTTPホスト | `0.0.0.0` | | `MCP_API_KEY` | APIキー | なし(認証無効) | | `LOG_LEVEL` | ログレベル | `info` | ### セキュリティ強化 1. APIキー認証(オプション) 2. CORS設定 3. 認証失敗ログ記録 4. IP情報ログ記録 ### 使用例 ```bash # STDIOモード(Claude Desktop) npm start # HTTPモード(認証なし・開発用) MCP_MODE=http npm run dev:http # HTTPモード(認証あり・本番) MCP_MODE=http MCP_API_KEY=secret npm start:http # ngrok公開 ngrok http 3000 ``` ### OpenAI統合 OpenAIのFunction Callingと統合可能: 1. HTTPモードでサーバー起動 2. ngrokで外部公開 3. OpenAI APIからHTTPエンドポイント経由でアクセス 詳細は `OPENAI.md` を参照 ### 次のステップ - [ ] WebSocket対応検討 - [ ] レート制限実装 - [ ] メトリクス収集 - [ ] ヘルスチェックの拡充 - [ ] Docker化 --- ## 2025-11-03: プロジェクト再構築 ### 実施内容 1. **モジュール分割** - `mcp_server_implementation.ts` を以下に分割: - `src/logger.ts` - ロギング機能 - `src/storage.ts` - ファイルストレージ機能 - `src/index.ts` - MCPサーバーメイン実装 2. **MCP SDK更新対応** - SDK v1.18.1の新しいAPIに対応 - `McpServer` から `Server` クラスへ移行 - `registerResource/registerTool` から `setRequestHandler` へ移行 - リクエストスキーマベースのハンドラー実装 3. **依存関係の最適化** - `zod` を削除(MCP SDKの型システムを直接使用) - より軽量な構成に変更 4. **プロジェクト構造の改善** - `.gitignore` 追加 - `README.md` 更新 - `test.sh` テストスクリプト追加 - `claude_desktop_config.example.json` 設定例追加 ### APIの変更点 #### 旧API(非推奨) ```typescript server.registerResource(name, schema, handler) server.registerTool(name, schema, handler) ``` #### 新API ```typescript server.setRequestHandler(ListResourcesRequestSchema, handler) server.setRequestHandler(ReadResourceRequestSchema, handler) server.setRequestHandler(ListToolsRequestSchema, handler) server.setRequestHandler(CallToolRequestSchema, handler) ``` ### ビルド結果 - ✅ TypeScriptコンパイル成功 - ✅ エラーなし - ✅ 型安全性維持

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Amana03/universal-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server