AIを使ってOSSにコントリビューションする

ValueUp株式会社

株式会社コルモアナ

谷口幸宏

自己紹介

  • 株式会社コルモアナ
  • ソフトウェアエンジニア
  • ValueUp株式会社
  • 谷口幸宏
  • 寿司
  • Twitter: @nasjp_dev
  • GitHub: @nasjp

アジェンダ

  1. やったこと
  2. 何を使ったのか
  3. どうやってやったのか
  4. 良かったところ
  5. 課題

1. やったこと

毎日お世話になっているライブラリなので、
Vercel AI SDKへのコントリビューションを行うことにしました。

タイポ修正だけですが、ほぼAIにおんぶにだっこで無事にマージ

タイポだけにとどまらないと思ったので、紹介します。

2. 何を使ったのか

Model Context Protocol(MCP)

MCPとは

Model Context Protocol (MCP) は、LLMアプリケーション(例:Claude Desktop)と外部データソースやツールをシームレスにれんけいするためのAnthropicが発表したプロトコルです。

LLMアプリケーションから

  • DBにアクセス
  • GitHubのPRを検索
  • Webサイトの情報を取得
  • ローカルシステムを操作

できる!

今までとの違い

従来のLLMアプリケーションは、外部データやツールとの連携に、独自の実装を行っていた

MCPは、これらの連携を標準化!

  • 異なるLLMアプリケーションとサーバー間の互換性を確保
  • 開発者は様々なLLMアプリケーションで再利用可能な連携が可能

つまり、誰かが作ってくれた連携を拝借できる!

構成

  • ホスト: 接続を開始するLLMアプリ
  • クライアント: ホストアプリ内でサーバーと1to1の接続を維持
  • サーバー: クライアントにツールを提供

実績

  • Claude Desktop
  • Zed Editor
  • Sourcegraph Cody
  • Firebase Genkit

UIを持っているサービスが採用

OpenAIがChatGPTに導入するかは疑問...

3. どうやってやったのか

i. OSSにコントリビューションするために準備したもの
ii. 実際にやったこと

i. OSSにコントリビューションするために準備したもの

基本これだけでOK

  1. Claude Desktopのインストール
  2. mcpServerの準備
  3. claudeの設定ファイル(claude_desktop_config.json)の準備
  4. Claude Project instructionsの準備

mcpServerの準備

Anthropicが提供してくれているものを使用

ローカルPCにインストールするかnpx or uvxで直接実行する

MCP Quickstart

  • filesystem: 特にtypo修正のために対象ファイルの内容を確認する際に活用
  • github: 既存PRを検索するために使用
  • brave_search: issueの調査に活用
  • fetch: issueの内容を取得するために使用

claudeの設定ファイルの準備

claude_desktop_config.json

Claude Project instructionsの準備

あなたは、Vercel AI SDKリポジトリへの貢献をサポートするために設計されたAIエージェントです。  
主な目標は、問題の調査、コードの読み取り、貢献ロードマップの作成を通じて、ユーザーがプロジェクトに貢献する手助けをすることです。  
これらのタスクを達成するために、提供されているMCPツールを使用します。

Vercel AI SDKとは:
このプロジェクトは、人気のあるフレームワーク(Next.js、React、Svelte、Vue)やNode.jsなどのランタイムで AI アプリケーションを構築するためのTypeScriptツールキットです。

対象のGitHubリポジトリは以下です:
<github_repo_url>https://github.com/vercel/ai</github_repo_url>

ユーザーのローカルマシン上でのリポジトリのパスは以下です:
<local_repo_path>/Users/nasjp/ghq/github.com/vercel/ai</local_repo_path>

Vercel AI SDKのドキュメントURLは以下です:
<vercel_ai_sdk_docs_url>https://vercel.com/docs/ai/introduction</vercel_ai_sdk_docs_url>

重要事項:  
記憶や推測による情報生成(虚偽の情報)は許可されていません。  
不明点や追加情報が必要な場合は、進める前にユーザーに質問してください。
ハルシネーションは許可されていません。

これを書いておかないとパスをユーザープロンプトにいちいち入力しないといけない

ii. 実際にやったこと

https://claude.ai/chat/9da0e1d1-1863-4651-b8ed-ecdbdc6e1ef0

PDFをダウンロード

良かったところ

  • LLMにコピペしている手間が減るのでかなり便利
  • RAGと違って、ファイルの構造を辿って探索的にコードを理解できる
  • コントリビューションのハードルが確実に下がった!

課題

  • 動作が不安定
  • Claudeがすぐに問題を解決しようとする
  • 公式MCP Serverが機能不足
  • 長大なファイルでも1から書こうとするので、typo修正レベルでも難しい
    • Cursorのような差分applyができるMCP Serverがあると嬉しい
    • ファイルのwriteは自分でやった方が良いと思う
  • grepができない(MCP Serverを作れば良い)
  • Claudeが何を見てその判断をしたのかがぱっとわからない

おわりに

ありがとうございました