corsairdev/corsair
GitHub も Slack も同じ書き方で呼び、連携ごとの配線を書かずに済ませる
どういうものか
自分のアプリや AI エージェントを、外部のサービスにつなぐための TypeScript のライブラリだ。ドキュメントによれば GitHub、Slack、Gmail など200以上のサービスに対応し、OAuth のログイン、トークンの更新、Webhook、利用回数の制限への対応を引き受ける。サービスごとに部品(プラグイン)が分かれていて、使うものだけを入れる。
README が理由として挙げるのは3点。1つは、どのサービスも同じ書き方で呼べること。つなぐ先が増えるほど増えていく「つなぎのコード」を書かずに済み、サービスごとの部品は Corsair 側が保守する。2つ目は、MCP 専用ではなく REST API の上に作られていること。そのため同じ仕組みを、エージェントにも、裏側の処理にも、利用者が自分のアカウントをつなぐ管理画面にも使える。3つ目は、オープンソースで、データが自分の手元に残ることだ。
ライブラリは自分のアプリの中で動き、利用者の認証情報は暗号化して自分のデータベースに保存する。外から届く URL が必要な部分(OAuth の戻り先、接続用のページ、操作の承認画面など)は、Hub に任せられる。Hub は通常 Corsair が運営するものを使う(自前の Hub を指定する設定項目もある)。ドキュメントによれば、Hub は利用者のトークンを保存しない。Hub を使わずに全部を自分で用意することもできる。
どんなときに使うか
自分のサービスの利用者に、各自の Slack や GitHub をつないでもらいたいとき
利用者ごとに別々のアカウントをつなぐ仕組み(マルチテナント)を、ゼロから組まずに済む。OAuth の戻り先や接続ページを自分で作りたくなければ Hub に任せられる。
エージェントに触らせるサービスが増えてきて、つなぎのコードが膨らんでいるとき
サービスが増えても呼び方は同じなので、新しい連携を足すたびに配線を書き直さなくてよい。
注意点
README は短く、仕組みの説明はドキュメント(docs.corsair.dev。リポジトリの docs/ フォルダにも同じ文書がある)側にある。 導入前にはそちらを読む必要がある。
暗号化の鍵をなくすと、保存した認証情報がすべて使えなくなる。 ドキュメントは、この鍵(KEK)を管理者パスワードと同じように扱うよう警告している。
Corsair が運営する Hub を使う場合は、そのサービスにプロジェクトを作る。 運営側のサービスに頼りたくない場合は、Hub を使わない構成や、自前の Hub を指定する設定がある。
ライセンスは Apache 2.0。