NodeFlare ドキュメント

MCP専用ホスティングサービス「NodeFlare」の使い方を解説します。

NodeFlareとは?

NodeFlareは、MCP(Model Context Protocol)サーバーを本番環境で運用するための専用ホスティングサービスです。 MCP SDKで書いたコードをpushするだけで即座にデプロイ。アクセス制御、ログ管理、シークレット管理など、 本番運用に必要な機能をすべて備えています。

主な特徴

  • ゼロコンフィグ — MCP SDKのコードをそのままpush。設定ファイル不要
  • ツール単位のACL — 誰がどのツールを呼べるか細かく制御
  • シークレット管理 — 環境変数を暗号化保存。チームで安全に共有
  • 常時オンライン — PCを閉じても24時間稼働。ngrok不要

クイックスタート

5分でMCPサーバーをデプロイする手順を説明します。

1. GitHubでサインアップ

NodeFlareはGitHubアカウントでログインします。トップページの「GitHubで始める」をクリックしてください。

2. MCPサーバーのリポジトリを準備

MCP SDKを使用したサーバーコードをGitHubリポジトリに用意します。TypeScriptまたはPythonで記述できます。

TypeScript

server.ts
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";

const server = new McpServer({
  name: "my-server",
  version: "1.0.0",
});

// ツールを定義
server.tool("hello", "挨拶を返す", {
  name: { type: "string", description: "名前" }
}, async ({ name }) => {
  return {
    content: [{ type: "text", text: `こんにちは、${name}さん!` }]
  };
});

// サーバー起動
const transport = new StdioServerTransport();
await server.connect(transport);

Python

main.py
from mcp.server import Server
from mcp.types import TextContent

server = Server("my-server")

@server.tool("hello", description="挨拶を返す")
async def hello(name: str) -> list[TextContent]:
    return [TextContent(type="text", text=f"こんにちは、{name}さん!")]

if __name__ == "__main__":
    server.run()

3. 依存関係の設定

TypeScript: package.json

package.json
{
  "name": "my-mcp-server",
  "version": "1.0.0",
  "type": "module",
  "main": "dist/server.js",
  "scripts": {
    "build": "tsc",
    "start": "node dist/server.js"
  },
  "dependencies": {
    "@modelcontextprotocol/sdk": "^1.0.0"
  },
  "devDependencies": {
    "typescript": "^5.0.0"
  }
}

Python: requirements.txt

requirements.txt
mcp>=1.0.0

4. NodeFlareでデプロイ

ダッシュボードで「新規サーバー」をクリックし、GitHubリポジトリを選択します。 リポジトリを選択すると、自動的にビルド・デプロイが開始されます。

デプロイが完了すると、MCPサーバーのエンドポイントURLが発行されます。

サーバーの作成

対応言語・ランタイム

言語ステータスSDK / 検出ファイル
TypeScript / JavaScript対応済み@modelcontextprotocol/sdk
Python対応済みmcp (requirements.txt / pyproject.toml)
Go対応済みgo.mod
Rust対応済みCargo.toml
Docker対応済みDockerfile

リポジトリの要件

  • package.json にMCP SDKが依存関係として含まれていること
  • build スクリプトと start スクリプトが定義されていること
  • エントリーポイントが main フィールドで指定されていること

サーバー設定

項目説明必須
サーバー名識別用の名前(ダッシュボードに表示)必須
スラッグURLに使用される識別子(英小文字・ハイフンのみ)必須
GitHubリポジトリowner/repo 形式必須
ブランチデプロイ対象のブランチ(デフォルト: main)任意

デプロイ

自動デプロイ

指定したブランチにpushすると、自動的にビルド・デプロイが実行されます。 GitHub Webhookにより、コードの変更を検知して即座にデプロイを開始します。

ビルドプロセス

  1. リポジトリのクローン
  2. npm install で依存関係をインストール
  3. npm run build でビルド
  4. コンテナイメージの作成
  5. デプロイ・起動

デプロイステータス

保留中デプロイがキューに入っている状態
ビルド中npm install, npm run build を実行中
デプロイ中コンテナを起動中
稼働中サーバーが正常に動作している

ビルドが失敗した場合

ダッシュボードのログタブでビルドログを確認できます。よくある原因:

  • 依存関係のインストールエラー
  • TypeScriptの型エラー
  • エントリーポイントの指定ミス

マルチリージョン

MCPサーバーを複数のリージョンにデプロイすることで、グローバルなユーザーに低レイテンシーでサービスを提供できます。

利用可能なリージョン

リージョンコード場所
東京nrt日本
シンガポールsinシンガポール
US Eastiadバージニア、USA
US Westsjcサンノゼ、USA
ヨーロッパamsアムステルダム、オランダ

リージョンの追加

  1. ダッシュボードでサーバーを選択
  2. 「リージョン」タブを開く
  3. 追加したいリージョンを選択
  4. 確認後、自動的にデプロイが開始されます

料金

追加リージョンはプランに応じて料金が発生します。詳細は料金プランをご確認ください。 Proプラン以上で追加リージョンが利用可能です。

環境変数・シークレット

APIキーやデータベース接続情報などの機密情報は、シークレットとして暗号化して保存できます。

シークレットの追加

  1. ダッシュボードでサーバーを選択
  2. 「シークレット」タブを開く
  3. 「シークレットを追加」をクリック
  4. キー名と値を入力して保存

サーバーコードでの使用

// 環境変数として自動的に注入されます
const notionApiKey = process.env.NOTION_API_KEY;
const databaseUrl = process.env.DATABASE_URL;

// APIクライアントの初期化
const notion = new Client({ auth: notionApiKey });

セキュリティに関する注意

  • シークレットはAES-256で暗号化して保存されます
  • 一度保存したシークレットの値は表示されません(上書きのみ可能)
  • コード内にAPIキーをハードコードしないでください

アクセス制御

MCPサーバーへのアクセスをAPIキーで制御できます。ツール単位での権限設定も可能です。

APIキーの発行

  1. ダッシュボードの「API Keys」を開く
  2. 「新規APIキー」をクリック
  3. キー名を入力して作成
  4. 表示されたAPIキーを安全な場所に保存(一度しか表示されません)

認証方法

MCPクライアントからの接続時に、APIキーをヘッダーに含めます。

HTTPヘッダー
Authorization: Bearer your-api-key-here

チーム管理

ワークスペースにチームメンバーを招待して、サーバーを共同で管理できます。

ロール(役割)

ロール権限
オーナー全ての操作が可能。ワークスペースの削除、所有権の移譲が可能
管理者サーバーとメンバーの管理が可能。ワークスペースの削除は不可
メンバーサーバーの作成と編集が可能
閲覧者サーバーの閲覧のみ。編集・作成は不可

メンバーの招待

  1. ダッシュボードの「チーム」ページを開く
  2. 「メンバーを追加」をクリック
  3. 招待するユーザーのメールアドレスを入力
  4. ロールを選択して招待を送信

メンバー数の制限

プランによってワークスペースに追加できるメンバー数が異なります。 詳細は料金プランをご確認ください。

ログ・監視

ログの種類

ログ種別内容
ビルドログnpm install, npm run build の出力
ランタイムログconsole.log, console.error の出力
リクエストログMCPリクエストのメソッド、パラメータ、レスポンス時間

メトリクス

  • リクエスト数(時間別・日別)
  • 平均レスポンス時間
  • エラー率
  • 稼働率(Uptime)

AIクライアントとの接続

デプロイしたMCPサーバーを各種AIクライアントから利用する方法を説明します。

Claude Desktop

Claude Desktopの設定ファイルにMCPサーバーを追加します。

claude_desktop_config.json
{
  "mcpServers": {
    "my-server": {
      "url": "https://your-server.nodeflare.dev/mcp",
      "headers": {
        "Authorization": "Bearer your-api-key"
      }
    }
  }
}

Cursor

Cursorの設定でMCPサーバーのURLを追加します。

.cursor/mcp.json
{
  "servers": {
    "my-server": {
      "url": "https://your-server.nodeflare.dev/mcp",
      "apiKey": "your-api-key"
    }
  }
}

エンドポイントURL

サーバーのエンドポイントURLは、ダッシュボードのサーバー詳細ページで確認できます。
形式: https://[slug].nodeflare.dev/mcp

料金プラン

用途に応じた柔軟なプランをご用意しています。

プラン比較

機能FreeProTeamEnterprise
サーバー数1520無制限
チームメンバー1310無制限
リクエスト/月1,00050,000500,000無制限
追加リージョン-25無制限
ログ保持期間1日7日30日90日
カスタムドメイン--対応対応
優先サポート--対応対応

プランの変更

ダッシュボードの「課金」ページからいつでもプランを変更できます。 アップグレードは即座に反映され、ダウングレードは次回請求サイクルから適用されます。

支払い方法

クレジットカード(Visa、Mastercard、American Express、JCB)に対応しています。 請求は月次または年次で選択可能です。年払いの場合は2ヶ月分お得になります。

APIリファレンス

NodeFlareの管理APIを使用して、プログラムからサーバーを管理できます。 APIキーによる認証が必要です。

ベースURL

https://api.nodeflare.dev/api/v1

認証

すべてのAPIリクエストには認証が必要です。Cookieベースのセッション認証、 またはAPIキーによるBearer認証が利用可能です。

Authorization: Bearer your-api-key

主要エンドポイント

ワークスペース

メソッドパス説明
GET/workspacesワークスペース一覧
POST/workspacesワークスペース作成

サーバー

メソッドパス説明
GET/workspaces/:ws_id/serversサーバー一覧
POST/workspaces/:ws_id/serversサーバー作成
GET/workspaces/:ws_id/servers/:idサーバー詳細
PATCH/workspaces/:ws_id/servers/:idサーバー更新
DELETE/workspaces/:ws_id/servers/:idサーバー削除
POST/workspaces/:ws_id/servers/:id/deployデプロイ実行
POST/workspaces/:ws_id/servers/:id/stopサーバー停止
POST/workspaces/:ws_id/servers/:id/restartサーバー再起動

シークレット・ログ

メソッドパス説明
GET/workspaces/:ws_id/servers/:id/secretsシークレット一覧
POST/workspaces/:ws_id/servers/:id/secretsシークレット設定
GET/workspaces/:ws_id/servers/:id/logsリクエストログ
GET/workspaces/:ws_id/servers/:id/stats統計情報

チームメンバー

メソッドパス説明
GET/workspaces/:ws_id/membersメンバー一覧
POST/workspaces/:ws_id/membersメンバー追加
PATCH/workspaces/:ws_id/members/:user_idロール変更
DELETE/workspaces/:ws_id/members/:user_idメンバー削除

トラブルシューティング

ビルドが失敗する

  • package.jsonbuild スクリプトがあるか確認
  • TypeScriptの型エラーがないか確認(ローカルで npm run build を実行)
  • 依存関係のバージョンが正しいか確認

デプロイ後にサーバーが起動しない

  • main フィールドがビルド後のエントリーポイントを指しているか確認
  • ランタイムログでエラーを確認
  • 必要な環境変数がシークレットに設定されているか確認

AIクライアントから接続できない

  • エンドポイントURLが正しいか確認
  • APIキーが正しく設定されているか確認
  • サーバーが「稼働中」ステータスか確認

上記で解決しない場合は、お気軽にお問い合わせください。

お問い合わせ →