RepoHop

Letta

OAuthを管理するLettaホストアプリケーションからRepoHopへ接続します。

LettaはStreamable HTTPのMCPサーバーに対応しています。Agent SDKは対話式のOAuth画面を開きません。セッションを開始するアプリケーションが、サインイン、トークン保存、トークン更新を処理します。

この設定はLettaアプリケーションの開発者向けです。短時間で期限切れになるRepoHopアクセストークンを固定設定に貼り付けないでください。

接続する前に

RepoHop Localをオンラインにし、リポジトリを承認します。Read以外の権限はオフにします。ホストアプリケーションには秘密情報ストアとOAuth用ブラウザーcallbackも必要です。

RepoHopを追加する

Lettaアプリケーションを管理するコーディングエージェントへ次の指示を渡します。

このLettaエージェントにRepoHopを追加してください。https://repohop.app/api/mcpをStreamable HTTPのMCPサーバーとして使ってください。サーバーのOAuth検出に従い、公開クライアントを通知されたregistration_endpointで登録してください。ユーザーのブラウザーとこのホストの両方から到達できる、ホストされたHTTPSのredirect_uriを使ってください。ブラウザーとコールバックリスナーが同じデバイスで動く場合を除き、localhostや127.0.0.1は使わないでください。その後、PKCEを使うAuthorization Codeフローと更新トークンを利用してください。固定client_idを再利用したり、ユーザーにclient_idを尋ねたりしないでください。クライアント登録情報とトークンはホストの秘密情報ストアだけに保存してください。認証情報をモデルやログへ公開しないでください。認可リクエストではprojects:read projects:write projects:exec projects:publish offline_accessを要求し、RepoHopですべてのアクセスレベルを選べるようにしてください。RepoHopは私が選択した権限だけを付与します。現在のアクセストークンをAuthorizationヘッダーでLetta MCPセッションへ渡してください。付与されたスコープに含まれるツールだけを追加し、project_catalogを呼び出してください。機能を使う前に、付与されたスコープと各リポジトリのproject_catalog権限の両方を必須としてください。RepoHopを取り消して保存済みのRepoHop認証情報をすべて削除する切断機能も追加してください。

ブラウザーでサインインとPKCEを完了し、両方のトークンを安全に保存して更新し、読み取りツールだけで開始し、切断時にトークンを削除できれば実装完了です。

Letta Agent SDKのMCPドキュメントも確認してください。

アクセスを承認する

ブラウザーでRepoHopにサインインします。クライアント名を確認し、リポジトリを選んでReadだけを承認します。Lettaアプリケーションへ戻り、新しいセッションを開始します。

接続をテストする

Lettaエージェントに依頼します。

RepoHopを使って、承認済みのリポジトリを一覧表示してください。私が選んだリポジトリでproject_statusを実行し、そのREADMEをproject_readで読んでください。ファイルを変更したり、コマンドを実行したりしないでください。

結果を確認し、モデルの会話やアプリケーションログにトークンがないことを確認します。

変更を許可する

リポジトリとRepoHop接続で対応する権限を有効にした後で、変更用ツールを追加します。変更はローカルで確認します。不要なExecute、Commit、Pushは無効のままにします。

RepoHopを削除する

RepoHopで接続を取り消します。ホストアプリケーションの切断機能でMCPサーバーと保存済みトークンを削除します。新しいLettaセッションを開始し、RepoHopツールがないことを確認します。

OAuthや更新の失敗を固定トークンで置き換えないでください。ホストの処理を修正するか、トラブルシューティングを確認してください。

On this page