MCP Server について
AI アシスタント向けの Python 製 MCP サーバーで、データベース、Web、ローカルブラウザー、Java のソースや Javadoc を扱うツールを提供します。利用可能なツールは起動引数やクライアントが渡すプロジェクトのワークスペースによって変わります。
主な機能
- 01PostgreSQL と SqlServer の読み取りクエリ
- 02任意のデータベース更新操作
- 03Brave Search による Web 検索
- 04ブラウザー起動と HTTP GET リクエスト
- 05Java ソースと Javadoc の検索
活用シーン
- 01AI アシスタントから設定済みデータベースを検索
- 02Web 検索とページ内容の取得
- 03URL やローカル HTML ファイルのブラウザー表示
- 04Java 依存ライブラリのソースと Javadoc の確認
MCP 対応
stdio 経由で、データベース、Web、ブラウザー、HTTP、および任意の Java ツールを MCP クライアントに公開します。クライアントからワークスペースのパスを受け取ることもできます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP サーバー
AI アシスタントが安全で管理された環境で操作を実行できるよう、さまざまなツールを提供する Model Context Protocol (MCP) サーバーの Python 実装です。
この README の大部分は AI によって書かれていることにご注意ください。
インストール
- Python 3.14 以降がインストールされていることを確認します
- このリポジトリをクローンします
- 依存関係をインストールします。
pip install -e .
または、uv などの最新の Python パッケージマネージャーを使用します。
uv pip install -e .
設定
MCP サーバーでは、次の構造の設定ファイルを ~/.mcp-server/config.yml に用意する必要があります。
# Operating system
os: Linux
# Brave Search API configuration
braveSearch:
apiUrl: "https://api.search.brave.com/res/v1/web/search"
apiKey: "your-brave-api-key"
# Database connection settings
database:
min_size: 1
max_size: 3
max_queries: 5000 # optional: connections are recycled after this many queries
max_inactive_connection_lifetime: 300 # optional: seconds
# Database connection profiles
musiciandb: # This is referenced by --db-name parameter
vendor: postgresql
dbname: "postgresdb"
host: "localhost"
port: 5432
readonly:
# credentials for readonly access
username: "readonly"
password: "readonly"
full:
# credentials for full access
username: "admin"
password: "secret"
# Browser command for opening URLs
browserCommand: firefox
Gradle のセットアップ
Gradle プロジェクトで get_sourceツールを使用するには、このタスクを build.gradle に追加する必要があります。
tasks.register('listClassesInDeps') {
doLast {
configurations.compileClasspath.resolve().each { file ->
if (file.name.endsWith('.jar')) {
println file.absolutePath
}
}
configurations.runtimeClasspath.resolve().each { file ->
if (file.name.endsWith('.jar')) {
println file.absolutePath
}
}
}
}
使用方法
次のコマンドで MCP サーバーを実行します。
python mcp_server_low.py [--project-folder /path/to/workspace] [--db-name musiciandb] [--build-tool Maven|Gradle]
パラメーター:
--project-folder:省略可能。現在のワークスペースまたはプロジェクトディレクトリへのパス--db-name:省略可能。設定ファイルから使用するデータベース設定の名前--build-tool:省略可能。Java プロジェクトのサポートに「Maven」または「Gradle」を指定します
GitHub Copilot 向け VS Code 連携
GitHub Copilot で使用するために、この MCP サーバーを VS Code と連携するには、次の手順に従います。
前提条件
- 最新バージョンの VS Code がインストールされていることを確認します
- GitHub Copilot がインストールされ、VS Code で正しく設定されていることを確認します
- MCP サーバーがローカルマシンで実行されている必要があります
設定手順
VS Code の設定(ファイル > ユーザー設定 > 設定、または macOS では Cmd+, を押します)を開き、次の設定を settings.json に追加します。
"github.copilot.advanced": {
"mcp": {
"servers": [
{
"name": "Python MCP Server",
"transport": "stdio",
"command": "uv",
"args": [
"/path/to/your/mcp-server/mcp_server_low.py",
"--project-folder",
"${workspaceFolder}",
"--db-name",
"musiciandb",
"--build-tool",
"Maven"
],
"description": "Local Python MCP Server providing database, web, and system tools"
}
]
}
}
-
/path/to/your/mcp-server/mcp_server.pyを MCP サーバースクリプトの実際のパスに、your-db-nameをデータベース設定名に置き換えます。 -
設定を保存して、VS Code を再起動します。
Copilot での MCP ツールの使用
設定が完了すると、GitHub Copilot は MCP サーバーが提供するツールにアクセスして使用できるようになります。
-
VS Code で Copilot Chat を開きます(
Ctrl+Shift+Iを押すか、Copilot Chat アイコンをクリックします) -
MCP サーバーが提供するツールを使って操作を実行するよう、Copilot に依頼します。
Can you get the current time from the system?Please search for information about Python best practices. -
Copilot は依頼に応じて、適切な MCP ツールを自動的に使用します。
トラブルシューティング
MCP サーバーとの連携で問題が発生した場合:
- MCP サーバーが正しく実行されていることを確認します
- VS Code の設定が正しいことを確認します
- VS Code の開発者ツール(ヘルプ > 開発者ツールの切り替え)でエラーメッセージを確認します
- サーバー側のエラーがないか、
mcp_server.logファイルを確認します
チームで使用する場合の注意事項
MCP サーバーの設定をチームで共有するには:
- ユーザー設定ではなく、ワークスペース設定に MCP サーバーの設定を追加します
- リポジトリ内の
.vscode/settings.jsonファイルに設定を保存します - すべてのチームメンバーが MCP サーバーをインストールし、正しく設定していることを確認します
利用可能なツール
MCP サーバーは、AI アシスタント向けに次のツールを提供します。
データベース操作
readonly_sql_query(dbname, query):PostgreSQL または SqlServer データベースに対して読み取り専用の SQL クエリを実行し、結果を JSON で返しますmodifying_sql_statement(dbname, statement):PostgreSQL または SqlServer データベースに対してデータを変更する SQL 文を実行します(「full」データベース認証情報が設定されている場合のみ利用できます)
Web 操作
web_search(query):Brave Search API を使って Web を検索します。上位の結果から URL、説明、および取得したコンテンツを返します(HTML コンテンツはテキストに変換されます)open_in_browser(url):URL または HTML ファイルをローカルブラウザーで開きますhttp_get_request(url, headers):指定した URL に対して、オプションのヘッダーを付けて HTTP GET リクエストを送信します
Java ビルドツール(buildTool が設定されている場合のみ利用可能)
get_source(class_name):Java クラスのソースコードを返します(Java 標準ライブラリのクラスには対応していません)get_javadoc(class_name):Java クラスの Javadoc を取得します(Java 標準ライブラリのクラスには対応していません)
API
MCP サーバー
サーバーは、セキュアな通信のために stdio トランスポートで動作するよう設定された、MCP Python パッケージの低レベル MCP 実装を使用します。 低レベル実装が必要な理由は 2 つあります。
- ツール一覧のエントリは起動引数に依存します
- MCP クライアントから提供される場合(Copilot など)、
roots/listを使用してプロジェクトのワークスペースパスを特定します
MCP サーバーのメソッド
@server.list_tools(): 利用可能な MCP ツールを返す関数を登録するデコレーターです@server.call_tool(): すべてのツール呼び出しを処理する関数を登録するデコレーターですserver.run(): stdio トランスポートと初期化オプションを使用して MCP サーバーを起動しますserver_lifespan(): リソースのクリーンアップを含む、サーバーの起動とシャットダウンのライフサイクルを管理する非同期コンテキストマネージャーです
クライアントの使用方法
クライアントは、任意の MCP クライアント実装を使用してこの MCP サーバーに接続できます。クライアントの例については、Model Context Protocol リポジトリを参照してください。
開発
前提条件
- Python 3.12+
- PostgreSQL(データベースツール用)
- Brave Search API キー(ウェブ検索機能用)
プロジェクト構成
mcp_server_low.py: ツール定義を含むメインのサーバー実装pyproject.toml: プロジェクトとパッケージの管理設定(uvを使用)bin/: ヘルパースクリプトと実行可能ファイルを格納gradle-decompile.sh: Gradle プロジェクトを逆コンパイルするスクリプトjd-cli.jar: Java デコンパイラーのコマンドラインツール
tests/: 単体テストと統合テストを格納test_mcp_low.py: 低レベル MCP サーバーのテストtest_page.html: テスト用 HTML ページ
utils/: ユーティリティモジュールargs.py: コマンドライン引数の解析db.py: データベース接続とコンテキスト管理helpers.py: 汎用ユーティリティ関数mcp.py: MCP 関連ユーティリティweb.py: HTTP クライアントユーティリティと HTML 処理
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。