MCP Server について
MCP Server は、AI アプリケーションにコマンド実行、データ処理、ナレッジ管理のツールを提供するプラグイン型フレームワーク兼サービスです。単独でも他のプロジェクトに組み込んでも利用でき、HTTP/SSE エンドポイントと YAML のツール定義に対応します。
主な機能
- 01プラグイン型ツールフレームワーク
- 02同期・非同期のコマンド実行
- 03RestrictedPython による式評価
- 04DataFrame 分析・可視化 UI
- 05YAML によるツールとプロンプト設定
- 06プラグインの導入と更新
活用シーン
- 01出力を記録しながらスクリプトを実行
- 02DataFrame の分析と可視化
- 03制限付き Python 式の評価
- 04Azure DevOps や Git プラグインの追加
MCP 対応
コマンド実行、ブラウザー自動化、データサービス、プラグインなどの登録済みツールを MCP 経由で公開します。クライアントは SSE エンドポイントから接続できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP サーバー
MCP サーバーは、AI を活用したコマンド実行、プラグインベースのツール、同期スクリプト実行、安全な Python 評価、ナレッジ管理などの高度な機能を提供する包括的なフレームワークです。スタンドアロンサービスとして実行することも、他のプロジェクトに組み込んで、ツールの呼び出しやタスクの管理に一貫した API を提供することもできます。
プロジェクト構成
- mcp_tools/ – 同時実行管理を強化したプラグインフレームワークと組み込みツール
- server/ – HTTP/SSE エンドポイントと DataFrame UI を備えた Starlette サーバーの実装
- plugins/ – 拡張可能なプラグイン(Azure DevOps、Git ツール、ナレッジインデックス作成、Kusto、CircleCI)
- config/ – 環境マネージャーと設定ヘルパー
- utils/ – コアユーティリティ(非同期ジョブ、グラフインターフェース、メモリ管理、ベクトルストア、PyEval)
- scripts/ – インストール、ユーティリティスクリプト、自動化された提出ワークフロー
- assets/ – 画像とドキュメントのリソース
インストール
このプロジェクトでは、依存関係の管理に uv を使用します。次のコマンドで依存関係をインストールします。
uv sync
または、pip を使って開発モードでインストールします。
pip install -e .
環境設定
設定は .env ファイルで管理します。テンプレートからファイルを作成し、設定を編集します。
cp config/env.template .env
重要な変数には、リポジトリのパス(GIT_ROOT)、Azure Repo の詳細(AZREPO_ORG、AZREPO_PROJECT、AZREPO_REPO)、外部ツール設定用のオプションの PRIVATE_TOOL_ROOT があります。環境マネージャーは、リポジトリのルート、現在のディレクトリ、ホームディレクトリにある .env ファイルを自動的に読み込みます。
コード内で設定にアクセスするには、次のようにします。
from config import env_manager
env_manager.load()
root = env_manager.get_git_root()
詳しくは docs/config_overview.md を参照してください。
サーバーの実行
依存関係をインストールし、.env を設定したら、次のコマンドでサーバーを起動します。
uv run server/main.py
SSE エンドポイント http://0.0.0.0:8000/sse に接続するか、server/api.py にある追加のルートを使用してください。
バックグラウンドジョブのエンドポイントについては、docs/background_jobs_api.md に記載されています。
Docker
サーバーをコンテナで実行するための Dockerfile が含まれています。
次のコマンドでイメージをビルドします。
docker build -t mcp-server .
次に、ポート 8000 を公開してコンテナを起動します。
docker run -p 8000:8000 mcp-server
詳しくは docs/docker.md を参照してください。
設定ファイル
サーバーは YAML ファイルからプロンプトとツール定義を読み込みます。
server/prompts.yamlserver/tools.yaml
プライベート設定の上書きファイルは、server/.private/ または PRIVATE_TOOL_ROOT で指定されたフォルダーに配置できます。ファイルは次の順序で解決されます。
PRIVATE_TOOL_ROOTserver/.private/server/内のデフォルト設定
ツールシステム
ツールはモジュール式のプラグインであり、mcp_tools を通じて登録されます。組み込みユーティリティには次のものがあります。
- コマンド実行ツール – 実行完了までのサポートを備えた同期・非同期のコマンド実行
- ブラウザー自動化 – Web 操作用の Playwright 統合
- PyEval – RestrictedPython を使用した安全な Python 式評価
- DataFrame サービス – Web インターフェースを備えたデータ分析と可視化
- 時間ヘルパー – 時間ベースのユーティリティとスケジューリング
- YAML ツールローダー – YAML ファイルからの動的なツール定義
plugins/ ディレクトリには、Azure DevOps 統合、Git 操作、ナレッジインデックス作成、Kusto クエリ、CircleCI ワークフローなどの追加プラグインがあります。カスタムツールの作成については、mcp_tools/docs/creating_tools.md を参照してください。
Web インターフェースでは、次の包括的なダッシュボードを利用できます。
/tools– 登録済みのすべてのツールを参照し、詳細を表示/dataframes– DataFrame を対話的に管理・可視化/knowledge– ナレッジグラフの探索と管理/pyeval– 安全な Python 評価インターフェース
プラグイン管理
外部プラグインは、plugin_config.yaml で宣言するとインストールできます。各
エントリでは、owner/repository 形式の plugin_repo を指定し、プラグインがサブフォルダーにある場合は
任意で sub_dir を指定します。例:
plugins:
- plugin_repo: "github_owner/repo"
sub_dir: "path/to/plugin"
type: "python"
この設定に基づいてプラグインをクローンまたは更新するには、refresh_plugins オペレーションを指定して
mcp_admin ツールを実行します。再インストールの前にインストール済みのプラグインをすべて削除するには、
force=true を渡します。
テストの実行
すべてのテストスイートを実行するには、次のコマンドを実行します。
scripts/run_tests.sh
または、mcp_tools/tests、plugins/*/tests、server/tests を対象に pytest を直接実行します。
主な機能(v0.2.0)
- 実行完了までの同期実行 – 出力を包括的にキャプチャする同期スクリプト実行
- PyEval セキュリティ – RestrictedPython を使用した安全な Python 式評価
- 強化された DataFrame UI – データ分析と可視化のためのレスポンシブなウェブインターフェース
次のステップ
mcp_tools/docs/とdocs/のドキュメントを参照して、ツールの作成、依存性注入、高度な機能について学びます。server/の設定サンプルファイルを確認し、独自のツールを追加してみます。- 具体的な実装を確認するには、
plugins/ディレクトリのプラグインを調べます。 - ベクトルストア、グラフインターフェース、メモリ管理などの高度なユーティリティについては、
utils/ディレクトリを確認します。 - 詳細なリリースノートと最近の更新については、
CHANGELOG.mdを参照してください。
エディターとの連携
Cursor/VSCode などのエディターでは、次の設定を追加して SSE エンドポイントを使用できます。
{
"mcpServers": {
"mymcp-sse": { "url": "http://0.0.0.0:8000/sse" }
}
}
デモのスクリーンショット

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