メインコンテンツへスキップ

「ギガファイル便をAIに使わせたい」から始まったMCPサーバー開発記

ClaudeやChatGPTからギガファイル便を操作できるMCPサーバーを開発。開発の経緯、技術選定、利用規約の確認結果を解説します。

スマートフォンから、ChatGPTやClaude経由でパソコンをリモート操作する機会が増えてきました。パソコン側で何か作業をお願いして、その成果物をそのままスマホへ送ってほしい、という場面に何度も出会いました。そのたびに、いったん手元のパソコンに戻ってファイルを共有し直す手間が発生していました。

この手間を解消するために、AIエージェントからギガファイル便を直接操作できるMCPサーバー「gigafile-mcp」を作りました。この記事では、開発に至った経緯、技術面でこだわったポイント、そして外部サービスをAI経由で自動操作することが利用規約・プライバシーポリシーの観点で問題にならないかを確認した内容の3点をまとめます。

リポジトリ: https://github.com/Lqm1/gigafile-mcp

gigafile-mcpでできること

gigafile-mcpは、stdio対応のMCPクライアントから呼び出せる2つのツールを提供する、ローカル実行のMCPサーバーです。

  • gigafile_upload: ローカルファイルをギガファイル便へアップロードし、共有URLと削除キーを返します
  • gigafile_download: ギガファイル便の共有URLから、元のファイル名でローカルへ保存します

ClaudeやChatGPTに「このファイルをギガファイル便で共有して」と伝えるだけで、アップロードから共有URLの取得までを任せられるようになります。

なぜ作ったか

信頼されているサービスで成果物を共有したい

何かしらの成果物を共有するとき、送り先に安心して受け取ってもらえるサービスを使いたいという思いがありました。ギガファイル便は、会員登録不要・容量無制限(1ファイル300GBまで)・アンチウイルス装備をうたう大容量ファイル転送サービスで、日本では広く使われています。この使い慣れたサービスを、AIエージェントからそのまま呼び出せたら便利だと考えたのが、開発の出発点でした。

スマホとパソコンの間で、AI経由のファイルのやり取りが増えた

ChatGPT経由でスマホからパソコンをリモート操作する機会が増えるにつれて、パソコン側にあるファイルをスマホへ送り返す、という作業が繰り返し発生するようになりました。AIに操作を任せているのに、ファイルの受け渡しだけは人間が手動でやる、という状態にちぐはぐさを感じていました。

メール送信などのタスクをAIに任せる流れの中で、ファイル共有だけ手動が残っていた

成果物をメールで送るようなタスクをAIに任せる場面も増えてきました。この流れの中で、AIがギガファイル便へのアップロードまで行い、そのURLをメール本文に含めて送信する、あるいはそのままスマホへ共有する、というところまで一気通貫でできれば、手動で残る作業がなくなります。gigafile-mcpは、こうした一連の自動化の中の「ファイル転送」の部分を担うピースとして作りました。

gigafile-mcpの仕組み

アップロード時はギガファイル便のトップページから現在のアップロードサーバーを取得し、ファイルを100MiB単位で順番に送信します。ダウンロード時は共有ページを解析し、セッションCookieを維持しながらファイルをストリーミング保存します。

flowchart LR
  A["MCPクライアント<br/>(Claude / ChatGPT)"] -- stdio --> B["src/index.ts<br/>ツール定義・スキーマ<br/>annotations"]
  subgraph S["gigafile-mcp"]
    B --> C["src/gigafile.ts<br/>Ky・Cheerio<br/>tough-cookie"]
  end
  C -- HTTPS --> D["gigafile.nu"]

既存ファイルの上書き防止や、応答されたファイル名を使って保存先ディレクトリの外に書き込まれることを防ぐガードも入れています。受け付ける共有URLはHTTPSのgigafile.nuまたはそのサブドメインに限定しており、任意のURLを踏ませる用途には使えないようにしています。

実際にClaudeから使うと、次のような流れになります。

なお、リポジトリのE2Eテストでは、単一実行ファイルにMCPクライアントからstdio接続し、実際のgigafile.nuへのアップロードと、返された共有URLからのダウンロード・内容一致までを検証しています。

技術的なこだわり

機能そのものはシンプルですが、実装では次のような技術選定にこだわりました。

項目

内容

MCP TypeScript SDK v2の先行採用

新しいMCP仕様(2026-07-28リビジョン)と同時に、2026年7月28日に安定版がリリースされる予定です。本稿執筆時点ではまだベータ版ですが、先取りして採用しました。パッケージも従来の@modelcontextprotocol/sdkから@modelcontextprotocol/server@modelcontextprotocol/clientに分割され、stdioサーバーの起動はserveStdio関数に統一されています

TypeScript 7の採用

2026年7月8日にGA(一般提供開始)を迎えたばかりの、コンパイラをGoに移植したTypeScript 7を採用しました。VS Codeのコードベースでの型検査時間が125.7秒から10.6秒になったとMicrosoftが公表しているとおり、型検査そのものが速くなっています

oxlint・oxfmt・tsgolintの採用

oxlint(構文lint)とoxfmt(フォーマッタ)はいずれもRust製で、TypeScriptのバージョンに依存せず動きます。一方で型認識lint(型情報を使ったlint)を担うtsgolintはGo製で、TypeScript 7の実体であるtypescript-goを直接利用する設計になっているため、TypeScript 7とセットで使う前提の構成になっています

Git hooksでの品質担保

Huskyでコミット前フックを設定し、lint-stagedでステージ済みファイルだけをoxfmtとoxlintに通しています。手元でのフォーマット漏れやlintエラーをコミット前に防ぐ狙いです

Bun単一実行ファイル化

bun build --compileを使い、利用者の環境にBunやNode.jsがなくても動く単一実行ファイルを生成しています。macOS・Linux・Windowsのx64/arm64に対応し、x64についてはAVX2非対応の古いCPU向けのbaselineと、AVX2対応CPU向けのmodernを作り分けています

MCPBの作成

MCPB(旧称DXT)は、Anthropicが開発したClaude Desktop向けの1クリックインストール形式で、MCPサーバーとmanifest.jsonをzipにまとめたパッケージです。CPUアーキテクチャやglibc/muslを誤判定させないよう、ターゲットごとに別ファイルとして生成しています

SDK側もコンパイラ側もリリース直後、あるいはリリース前のベータという状態での採用になるため、破壊的変更が入る可能性は残っています。実際にMCP TypeScript SDK v2は「APIはまだ変わり得るベータ」であることが公式に明記されており、この点は認識した上で採用しています。

利用規約・プライバシーポリシーは大丈夫なのか

gigafile-mcpは、ローカルのファイルを外部サービスであるgigafile.nuへ自動的に送信するツールです。人間が手作業でアップロードするのと違い、AIエージェント経由で自動的に操作されるという性質上、利用規約・プライバシーポリシーの内容は事前に確認しておく必要があると考えました。

ギガファイル便の利用規約(2025年7月2日改訂版)を確認したところ、次の点が関係してきます。

  • アップロードしたデータおよびそのコンテンツに対する知的所有権はユーザーが保持し、利用に伴う責任もユーザー自身が負うとされています(第5条)
  • 法令または公序良俗に違反するファイル、犯罪行為に関連するファイル、運営を妨害するおそれのあるファイルなどのアップロードは禁止されています(第6条・第7条)
  • ファイル情報を本人の許可なく第三者へ提供・開示することはないとされていますが、法令に基づき開示を求められた場合は例外です(第10条)

gigafile-mcp自体は、あくまでユーザーがローカルに持っているファイルを、ユーザー自身の操作(AIへの指示)によってアップロードする仕組みであり、上記の禁止事項に自動的に抵触するような処理は行いません。

一方で、AI経由ならではの注意点もあります。ツールが返す共有URLや削除キーは、AIとの会話ログに残ります。会話の共有機能を使う場合や、会話履歴が他の人の目に触れる可能性がある環境では、この点に注意してください。

README側でも、アップロードしたファイルが外部サービスであるgigafile.nuへ送信されることを利用前に必ず確認できるよう、次のような注意書きを目立つ位置に置いています。

  • 利用前に利用規約・プライバシーポリシーを確認するよう促す表示
  • このプロジェクトがギガファイル便の公式プロジェクトではないことの明記
  • ソフトウェアの動作や、利用によって生じた損害について保証しない旨の免責事項

なお、この確認はあくまで個人による調査であり、法的な助言ではありません。業務など重要な用途で利用する場合は、最新の利用規約・プライバシーポリシーをご自身でも確認いただくことをおすすめします。

使ってみる

Releasesページから、OS・CPUアーキテクチャ(Linuxの場合はlibcの種類)に合う実行ファイルを取得し、MCPクライアントの設定に登録するだけで使えます。Windowsの場合の設定例です。

{
  "mcpServers": {
    "gigafile": {
      "command": "C:\\path\\to\\gigafile-mcp.exe",
      "args": []
    }
  }
}

設定後にMCPクライアントを再起動すれば、gigafile_uploadgigafile_downloadの2つのツールが使えるようになります。ソースからビルドしたい場合や、MCPBファイルとしてインストールしたい場合の手順はリポジトリのREADMEにまとめています。

まとめ

「AIにファイル共有まで任せたい」という素朴な動機から始めて、MCP TypeScript SDK v2やTypeScript 7といった、リリース直後・リリース前の技術を先取りしながらgigafile-mcpを作りました。外部サービスを自動操作するツールだからこそ、利用規約・プライバシーポリシーは作る前に必ず目を通しておくべきだと考えています。

MCP TypeScript SDK v2の安定版リリースや、TypeScript 7.1でのエコシステム対応が進み次第、追従していく予定です。試してみて動かない環境や気になる挙動があれば、Issueで教えてもらえると助かります。

https://github.com/Lqm1/gigafile-mcp