mcpField
C
Code Context MCP Server

Code Context MCP Server

ローカル
github.com/fkesheh開発ツール2669 週間前に更新

Code Context MCP Server について

Code Context MCP Server は、ローカルの git リポジトリからコードコンテキストを提供する MCP サーバーです。リポジトリのクローン、ブランチとファイルの処理、コードチャンクの埋め込み生成、セманティック検索を行います。Ollama の埋め込みモデルを使い、ローカルリポジトリを検索したい開発者に向いています。

主な機能

  1. 01ローカル git リポジトリのクローンとブランチ・ファイルの処理
  2. 02コードのセマンティックチャンク分割
  3. 03Ollama によるコード埋め込みの生成
  4. 04チャンクを対象としたセマンティック検索
  5. 05glob とキーワードによる結果の絞り込み

活用シーン

  1. 01リポジトリ内の関連コードを意味から検索
  2. 02ブランチ単位のコードコンテキストを MCP クライアントへ提供

MCP 対応

本プロジェクトは MCP サーバーであり、queryRepo ツールを通じてリポジトリのセマンティック検索結果を MCP クライアントに返します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Code Context MCP サーバー

ローカルの git リポジトリからコードコンテキストを提供するための Model Context Protocol (MCP) サーバーです。このサーバーでは、次のことができます:

  1. git リポジトリをローカルにクローンする
  2. ブランチとファイルを処理する
  3. コードチャンクの埋め込みを生成する
  4. コードに対してセマンティック検索を実行する

機能

  • 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

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。