Code Context MCP Server について
Code Context MCP Server は、ローカルの git リポジトリからコードコンテキストを提供する MCP サーバーです。リポジトリのクローン、ブランチとファイルの処理、コードチャンクの埋め込み生成、セманティック検索を行います。Ollama の埋め込みモデルを使い、ローカルリポジトリを検索したい開発者に向いています。
主な機能
- 01ローカル git リポジトリのクローンとブランチ・ファイルの処理
- 02コードのセマンティックチャンク分割
- 03Ollama によるコード埋め込みの生成
- 04チャンクを対象としたセマンティック検索
- 05glob とキーワードによる結果の絞り込み
活用シーン
- 01リポジトリ内の関連コードを意味から検索
- 02ブランチ単位のコードコンテキストを MCP クライアントへ提供
MCP 対応
本プロジェクトは MCP サーバーであり、queryRepo ツールを通じてリポジトリのセマンティック検索結果を MCP クライアントに返します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Code Context MCP サーバー
ローカルの git リポジトリからコードコンテキストを提供するための Model Context Protocol (MCP) サーバーです。このサーバーでは、次のことができます:
- git リポジトリをローカルにクローンする
- ブランチとファイルを処理する
- コードチャンクの埋め込みを生成する
- コードに対してセマンティック検索を実行する
機能
- GitHub API の代わりにローカルの git リポジトリを使用します
- データを SQLite データベースに保存します
- コードをセマンティックなチャンクに分割します
- Ollama を使用してコードチャンクの埋め込みを生成します
- コードに対してセマンティック検索を提供します
前提条件
- Node.js (v16+)
- Git
- 埋め込みモデルを備えた Ollama
インストール
# Clone the repository
git clone <repository-url>
cd code-context-mcp
# Install dependencies
npm install
# Build the project
npm run build
設定
次の環境変数を設定します:
DATA_DIR: SQLite データベース用のディレクトリ (デフォルト: '~/.codeContextMcp/data')REPO_CACHE_DIR: クローンしたリポジトリ用のディレクトリ (デフォルト: '~/.codeContextMcp/repos')
Ollama の使用
より高速で強力な埋め込みを利用するには、Ollama を使用できます:
# Install Ollama from https://ollama.ai/
# Pull an embedding model (unclemusclez/jina-embeddings-v2-base-code is recommended)
ollama pull unclemusclez/jina-embeddings-v2-base-code
使用方法
Claude Desktop での使用
Claude Desktop の設定ファイル (claude_desktop_config.json) に次の設定を追加します:
{
"mcpServers": {
"code-context-mcp": {
"command": "/path/to/your/node",
"args": ["/path/to/code-context-mcp/dist/index.js"]
}
}
}
ツール
サーバーは次のツールを提供します:
queryRepo
リポジトリをクローンし、コードを処理し、セマンティック検索を実行します:
{
"repoUrl": "https://github.com/username/repo.git",
"branch": "main", // Optional - defaults to repository's default branch
"query": "Your search query",
"keywords": ["keyword1", "keyword2"], // Optional - filter results by keywords
"filePatterns": ["**/*.ts", "src/*.js"], // Optional - filter files by glob patterns
"excludePatterns": ["**/node_modules/**"], // Optional - exclude files by glob patterns
"limit": 10 // Optional - number of results to return, default: 10
}
branch パラメータは省略可能です。指定しない場合、ツールはリポジトリのデフォルトブランチを自動的に使用します。
keywords パラメータは省略可能です。指定した場合、結果は指定されたキーワードの少なくとも 1 つを含むチャンクのみに絞り込まれます (大文字と小文字を区別しないマッチング)。
filePatterns パラメータと excludePatterns パラメータは省略可能です。これらを使用すると、glob パターン (例: すべての TypeScript ファイルを対象とする **/*.ts) を使って、処理および検索の対象となるファイルを絞り込めます。
データベーススキーマ
サーバーは次のスキーマで SQLite を使用します:
repository: リポジトリに関する情報を保存しますbranch: ブランチに関する情報を保存しますfile: ファイルに関する情報を保存しますbranch_file_association: ファイルをブランチに関連付けますfile_chunk: コードチャンクとその埋め込みを保存します
デバッグ
Mac Mx シリーズ - ARM アーキテクチャの問題
Mac の M シリーズチップ (ARM アーキテクチャ) に better-sqlite3 をインストールする際に、「mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e' or 'arm64')」のようなエラーが発生した場合は、バイナリがアーキテクチャと一致していることを確認する必要があります。この問題を解決する方法は次のとおりです:
# Check your Node.js architecture
node -p "process.arch"
# If it shows 'arm64', but you're still having issues, try:
npm rebuild better-sqlite3 --build-from-source
# Or for a clean install:
npm uninstall better-sqlite3
export npm_config_arch=arm64
export npm_config_target_arch=arm64
npm install better-sqlite3 --build-from-source
Rosetta を使用している場合は、環境全体が一貫していることを確認してください。このエラーは x86_64 バイナリがビルドされているのに、システムが arm64 を必要としていることを示しています。 設定を永続化するには、.zshrc または .bashrc に次を追加します:
export npm_config_arch=arm64
export npm_config_target_arch=arm64
Ollama 埋め込みのテスト
curl http://localhost:11434/api/embed -d '{"model":"unclemusclez/jina-embeddings-v2-base-code","input":"Llamas are members of the camelid family"}' curl http://127.0.01:11434/api/embed -d '{"model":"unclemusclez/jina-embeddings-v2-base-code","input":"Llamas are members of the camelid family"}' curl http://[::1]:11434/api/embed -d '{"model":"unclemusclez/jina-embeddings-v2-base-code","input":"Llamas are members of the camelid family"}'
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。