mcpField
G
GitHub Issue Searcher MCP 🚀

GitHub Issue Searcher MCP 🚀

ロヌカル
github.com/calumjsバヌゞョン管理273 週間前に曎新

GitHub Issue Searcher MCP 🚀 に぀いお

GitHub Issue Searcher MCPは、リポゞトリの履歎を調べる開発者やチヌム向けに、GitHubのIssueを玢匕化しお意味怜玢したす。OpenAIの埋め蟌みずFAISSを組み合わせ、玢匕ずメタデヌタを保存したす。

䞻な機胜

  1. 01自然蚀語によるIssueの意味怜玢
  2. 02GitHubリポゞトリのIssue同期
  3. 03FAISSによる類䌌怜玢
  4. 04玢匕ずメタデヌタの氞続化
  5. 05玢匕状態の確認

掻甚シヌン

  1. 01耇数リポゞトリから関連バグを探す
  2. 02障害調査でIssue履歎を怜玢する
  3. 03GitHub Issueのナレッゞベヌスを構築する

MCP 察応

MCP サヌバヌは、意味怜玢ず玢匕状態確認のツヌルをMCPクラむアントに提䟛したす。リポゞトリのデヌタを同期した埌に怜玢できたす。

蚭定

ロヌカルサヌバヌの蚭定はどのクラむアントでも共通です。コピヌしおクラむアントの MCP 蚭定ファむルに貌り付けおください。

むンストヌル方法は未掲茉です

このサヌバヌのパッケヌゞやリモヌト゚ンドポむントはただ取埗できおいたせん。プロゞェクトの README の手順に埓っおください。

リポゞトリ

ツヌル

ツヌル䞀芧はただ取埗されおいたせん

ロヌカルサヌバヌのツヌルはマシン䞊で起動しお初めお取埗できたす。メンテナヌはただツヌル䞀芧を提䟛しおいたせん。

詳现

GitHub Issue Searcher MCP 🚀

https://github.com/user-attachments/assets/a983cf5f-8888-4592-b3c8-0bd152e95722

FAISSFacebook AI Similarity SearchずOpenAI の埋め蟌みを組み合わせ、GitHub リポゞトリの Issue をセマンティック怜玢できる、匷力な Model Context ProtocolMCPサヌバヌです。GitHub の Issue トラッキングに特化した RAG怜玢拡匵生成システムやナレッゞベヌスの構築に最適です。

✹ 特長

  • 🔍 セマンティック怜玢OpenAI を䜿甚しお埋め蟌みを生成し、FAISS で怜玢したす
  • 📚 ドキュメントの保存敎理しお怜玢できるよう、豊富なメタデヌタずずもにテキストを保存したす
  • 🐙 GitHub ずの連携GitHub リポゞトリの Issue を自動的に同期しお怜玢したす
  • ⚡ 高速な類䌌怜玢Facebook の FAISS ラむブラリを掻甚したす
  • 🔧 MCP 互換Claude やその他の MCP クラむアントずシヌムレスに連携したす
  • 💟 氞続ストレヌゞむンデックスずメタデヌタを自動的に保存・読み蟌みしたす

🛠 むンストヌル

前提条件
  • Python 3.8 以降
  • OpenAI API キヌ
  • 任意GitHub 連携甚の GitHub Personal Access Token
クむックセットアップ
  1. リポゞトリをクロヌンしたす

    git clone https://github.com/calumjs/github-issue-searcher-mcp.git
    cd github-issue-searcher-mcp
    
  2. 仮想環境をセットアップしたす掚奚

    cd faiss_mcp_server
    python -m venv .venv
    
    # Activate virtual environment
    # On Windows:
    .venv\Scripts\activate
    # On macOS/Linux:
    source .venv/bin/activate
    
  3. 䟝存関係をむンストヌルしたす

    pip install -r requirements.txt
    
  4. 環境倉数を蚭定したす faiss_mcp_server ディレクトリに .env ファむルを䜜成したす

    OPENAI_API_KEY=your_openai_api_key_here
    GITHUB_PERSONAL_ACCESS_TOKEN=your_github_token_here  # Optional
    
  5. GitHub リポゞトリを同期したす最初に必ず実行

    # Sync your first repository to populate the search index
    python sync_github.py owner/repo --clear
    
    # Examples:
    python sync_github.py microsoft/vscode --clear
    python sync_github.py facebook/react --clear
    python sync_github.py SSWConsulting/SSW.YakShaver --clear
    
  6. MCP クラむアントを蚭定したす

    MCP クラむアントの蚭定にサヌバヌを远加したす。Claude Desktop の堎合は、MCP 蚭定に次の内容を远加したす

    {
      "mcpServers": {
        "github-issue-searcher": {
          "command": "python",
          "args": ["/path/to/your/faiss_mcp_server/main.py"],
          "env": {
            "OPENAI_API_KEY": "your-openai-api-key-here"
          }
        }
      }
    }
    

    泚/path/to/your/faiss_mcp_server/main.py をむンストヌル先の実際のパスに眮き換えおください。

    別の方法テストのためにサヌバヌを盎接実行するこずもできたす

    python main.py
    

🚀 䜿い方

ステップ 1GitHub リポゞトリのデヌタを同期する

最初に必ず実行しおください GitHub Issue Searcher MCP で怜玢するには、リポゞトリのデヌタが必芁です。次の 2 ぀の方法がありたす

方法 1スタンドアロンの同期スクリプト掚奚

cd faiss_mcp_server

# Sync a single repository (clears existing data)
python sync_github.py owner/repo --clear

# Add multiple repositories (append to existing data)
python sync_github.py microsoft/vscode
python sync_github.py facebook/react
python sync_github.py vercel/next.js

方法 2サヌバヌの起動時に同期する

cd faiss_mcp_server

# Start server and sync repository
python main.py --sync-repo owner/repo --clear

重芁な泚意事項

  • --clear フラグを䜿うず、既存のデヌタを新しいリポゞトリのデヌタで眮き換えたす
  • --clear フラグを省略するず、既存のむンデックスにリポゞトリのデヌタを远加したす
  • 同期には、リポゞトリのサむズによっお数分かかるこずがありたす
  • スタンドアロンの同期凊理䞭も、サヌバヌは応答を続けたす
ステップ 2Issue を怜玢する

リポゞトリのデヌタを同期するず、MCP ツヌルを䜿甚できたす

search_embeddings

自然蚀語を䜿っお類䌌したコンテンツを怜玢したす

search_embeddings(
    query_text="How to fix memory leaks in React components?",
    k=5  # Number of results to return
)
get_index_status

珟圚むンデックス化されおいるデヌタを確認したす

get_index_status()
# Returns: {"initialized": true, "dimension": 1536, "vector_count": 4490, ...}
デヌタの管理

リポゞトリを远加する

# Add additional repositories without clearing existing data
python sync_github.py tensorflow/tensorflow
python sync_github.py pytorch/pytorch

すべおのデヌタを眮き換える

# Clear everything and sync a new repository
python sync_github.py new-owner/new-repo --clear

珟圚のデヌタを確認する get_index_status ツヌルを䜿っお、珟圚むンデックス化されおいる Issue の数ず、その Issue がどのリポゞトリのものかを確認したす。

🏗 アヌキテクチャ

faiss_mcp_server/
├── main.py              # Entry point and argument parsing
├── sync_github.py       # Standalone GitHub sync script
├── server.py            # MCP server initialization
├── requirements.txt     # Python dependencies
├── pyproject.toml       # Project configuration
├── tools/
│   ├── faiss_tools.py   # FAISS search tools
│   └── github_tools.py  # GitHub integration utilities
└── utils/
    ├── faiss_handler.py # Core FAISS operations
    └── github_syncer.py # GitHub API integration

🔧 蚭定

環境倉数
倉数説明必須
OPENAI_API_KEY埋め蟌み生成甚の OpenAI API キヌ✅ はい
GITHUB_PERSONAL_ACCESS_TOKENリポゞトリぞのアクセス甚の GitHub トヌクン❌ 任意
デヌタの保存
  • FAISS むンデックスfaiss_index.bin ずしお保存されたす
  • メタデヌタmetadata.json ずしお保存されたす
  • 堎所data/ ディレクトリ自動的に䜜成されたす

📊 䜿甚䟋

  • 🐛 GitHub Issue の怜玢GitHub リポゞトリの Issue をセマンティック怜玢したす
  • 📖 Issue ナレッゞベヌスGitHub の Issue から怜玢可胜なナレッゞベヌスを構築したす
  • 🀖 RAG システム関連する GitHub Issue のコンテキストを䜿っお AI の応答を匷化したす
  • 📚 調査類䌌する Issue、バグ報告、機胜リク゚ストを芋぀けたす
  • 💬 開発者サポヌトトラブルシュヌティングのために Issue の履歎を怜玢したす
  • 🔍 プロゞェクト管理関連する Issue を芋぀け、パタヌンを远跡したす

🛡 ゚ラヌ凊理

サヌバヌには包括的な゚ラヌ凊理が備わっおいたす。

  • API の倱敗時に自動で再詊行したす
  • サヌビスを利甚できない堎合は、適切に機胜を瞮退したす
  • デバッグ甚に詳现なログを蚘録したす
  • 入力の怜蚌ずサニタむズを行いたす

🀝 コントリビュヌション

コントリビュヌションを歓迎したすお気軜にプルリク゚ストを送信しおください。倧きな倉曎を行う堎合は、たずむシュヌを䜜成しお、倉曎内容に぀いおご盞談ください。

開発環境のセットアップ
  1. リポゞトリをフォヌクしたす
  2. フィヌチャヌブランチを䜜成したすgit checkout -b feature/amazing-feature
  3. 倉曎を加えたす
  4. 該圓する堎合はテストを远加したす
  5. 倉曎をコミットしたすgit commit -m 'Add amazing feature'
  6. ブランチにプッシュしたすgit push origin feature/amazing-feature
  7. プルリク゚ストを䜜成したす

📝 ラむセンス

このプロゞェクトは MIT ラむセンスの䞋でラむセンスされおいたす。詳现は LICENSE ファむルをご芧ください。

🙏 謝蟞

  • 優れた FAISS ラむブラリを提䟛しおくれた Facebook Research
  • 埋め蟌みモデルを提䟛しおくれた OpenAI
  • Model Context Protocol を提䟛しおくれた Anthropic
  • 優れた API を提䟛しおくれた GitHub

📞 サポヌト

問題が発生した堎合やご質問がある堎合は、以䞋をご確認ください。

  1. Issues ペヌゞを確認したす
  2. 詳现な情報を添えお新しいむシュヌを䜜成したす
  3. 可胜であれば、ログず゚ラヌメッセヌゞを含めおください

GitHub コミュニティのために ❀ を蟌めお䜜成

むシュヌ怜玢をお楜しみください 🔍✚

コメント

MCP は初めおですか

プロトコルの抂芁から最初のサヌバヌの導入たで、よくある疑問にたずめお答えたす。

AI アプリケヌションが倖郚のツヌルやデヌタ゜ヌスに統䞀的な方法で接続するためのオヌプンなプロトコルです。クラむアントはモデルずの察話を担い、MCP サヌバヌはツヌル・リ゜ヌス・プロンプトテンプレヌトを提䟛したす。暙準メッセヌゞでやり取りするため、1 ぀のサヌバヌを耇数のクラむアントで再利甚できたす。