ACEをMCP化する「acemcp」—コードベースのセマンティック検索サーバ
概要
acemcpは、ACE(Augment Context Engine)をMCPとして稼働させるためのPython製サーバプロジェクトで、コードベースのインデックス化とセマンティック検索を目的としています。READMEによれば、uvパッケージ管理下で mcp、httpx、fastapi、uvicorn、toml、websockets といった依存を追加して動かす設計で、初回起動時に ~/.acemcp/settings.toml が生成され、BATCH_SIZE や MAX_LINES_PER_BLOB、BASE_URL、TOKEN、TEXT_EXTENSIONS といった動作パラメータを設定できます。FastAPIを用いたHTTP/WSインターフェースを持ち、外部のAPI(埋め込み生成や検索バックエンド)とトークンで連携する想定です。
リポジトリの統計情報
- スター数: 45
- フォーク数: 10
- ウォッチャー数: 45
- コミット数: 2
- ファイル数: 8
- メインの言語: Python
主な特徴
- コードベースのインデックス化とセマンティック検索をMCPサーバとして提供
- FastAPI + uvicorn + websockets による非同期・双方向通信をサポート
- 初回起動で ~/.acemcp/settings.toml を自動生成し、バッチサイズや扱う拡張子を設定可能
- 外部API(BASE_URL)とBearerトークンで連携して埋め込みや検索を委託できる設計
技術的なポイント
acemcpは軽量Pythonサーバとして、コードリポジトリを分割・バッチ処理して外部サービスに問い合わせることでセマンティック検索を実現するアーキテクチャを採っています。READMEのインストール手順から依存には mcp(内部のMCPプロトコル/クライアント)、httpx(非同期HTTPクライアント)、fastapi(APIサーバ)、uvicorn(ASGIサーバ)、toml(設定ファイル読み書き)、websockets(双方向通信)が含まれており、これらを組み合わせて非同期I/Oを前提にした高スループット処理を行う想定です。
設定は ~/.acemcp/settings.toml に保存され、BATCH_SIZE によるドキュメントの一括処理、MAX_LINES_PER_BLOB による大きなファイルのチャンク化、TEXT_EXTENSIONS による対象ファイル選定など、インデックス作成時の挙動を細かく制御できます。BASE_URL と TOKEN は外部の埋め込みあるいは検索APIを利用するためのエンドポイントと認証情報であり、この設計によりローカルでの前処理(トークン管理やチャンク生成)と外部の高性能検索サービス(例:ベクトルDBや専用API)を組み合わせられます。
実装面では、ファイル読み取り→行数や拡張子でフィルタ→MAX_LINES_PER_BLOBで分割→BATCH_SIZEごとにまとめて外部へ送信、という典型的なパイプラインが想定できます。FastAPIはREST/WS両方の接続点を提供し、websocketsを使うことでクライアント側へインデックス進捗や検索結果のストリーミングが可能です。httpxによる非同期リクエストは外部APIへの並列呼び出しを効率化し、uvicorn+ASGIの組合せで同時接続を捌けます。
現状コミット数・ファイル数が少ないため基礎骨格の段階ですが、pre-commit設定(.pre-commit-config.yaml)やPythonバージョン指定(.python-version)、ライセンス、README が揃っており、開発フローや配布・運用への最低限の配慮が見えます。今後の拡張点としては、埋め込み生成・保存の具体的なストレージ(ローカルDB/ベクトルDB)、認証・権限管理、バッチ処理の再試行・フェイルオーバー、ファイル差分検出・インクリメンタル更新、メタデータ管理といった機能が考えられます。
プロジェクトの構成
主要なファイルとディレクトリ:
- .gitignore: file
- .pre-commit-config.yaml: file
- .python-version: file
- LICENSE: file
- README.md: file
…他 3 ファイル
(リポジトリは現時点で小規模な骨組みが中心で、将来的にインデクサやストレージの実装が追加される余地があります。)
まとめ
ACEをMCP化してコードのセマンティック検索を実現する軽量プロトタイプ。将来性あり。
リポジトリ情報:
- 名前: acemcp
- 説明: 一个将ACE(Augment Context Engine) 做成MCP的项目
- スター数: 45
- 言語: Python
- URL: https://github.com/qy527145/acemcp
- オーナー: qy527145
- アバター: https://avatars.githubusercontent.com/u/39358262?v=4
READMEの抜粋:
Acemcp
MCP server for codebase indexing and semantic search.
Installation
uv add mcp httpx fastapi "uvicorn[standard]" toml websockets
uv sync
Configuration
The configuration file is automatically created at ~/.acemcp/settings.toml on first run with default values.
Edit ~/.acemcp/settings.toml to configure:
BATCH_SIZE = 10
MAX_LINES_PER_BLOB = 800
BASE_URL = "https://your-api-endpoint.com"
TOKEN = "your-bearer-token-here"
TEXT_EXTENSIONS = [".py", ".js", ".t...