mcpField
M
MCP Server

MCP Server

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

MCP Server について

AI アシスタント向けの Python 製 MCP サーバーで、データベース、Web、ローカルブラウザー、Java のソースや Javadoc を扱うツールを提供します。利用可能なツールは起動引数やクライアントが渡すプロジェクトのワークスペースによって変わります。

主な機能

  1. 01PostgreSQL と SqlServer の読み取りクエリ
  2. 02任意のデータベース更新操作
  3. 03Brave Search による Web 検索
  4. 04ブラウザー起動と HTTP GET リクエスト
  5. 05Java ソースと Javadoc の検索

活用シーン

  1. 01AI アシスタントから設定済みデータベースを検索
  2. 02Web 検索とページ内容の取得
  3. 03URL やローカル HTML ファイルのブラウザー表示
  4. 04Java 依存ライブラリのソースと Javadoc の確認

MCP 対応

stdio 経由で、データベース、Web、ブラウザー、HTTP、および任意の Java ツールを MCP クライアントに公開します。クライアントからワークスペースのパスを受け取ることもできます。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

MCP サーバー

AI アシスタントが安全で管理された環境で操作を実行できるよう、さまざまなツールを提供する Model Context Protocol (MCP) サーバーの Python 実装です。

この README の大部分は AI によって書かれていることにご注意ください。

インストール

  1. Python 3.14 以降がインストールされていることを確認します
  2. このリポジトリをクローンします
  3. 依存関係をインストールします。
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 と連携するには、次の手順に従います。

前提条件
  1. 最新バージョンの VS Code がインストールされていることを確認します
  2. GitHub Copilot がインストールされ、VS Code で正しく設定されていることを確認します
  3. 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"
      }
    ]
  }
}
  1. /path/to/your/mcp-server/mcp_server.py を MCP サーバースクリプトの実際のパスに、your-db-name をデータベース設定名に置き換えます。

  2. 設定を保存して、VS Code を再起動します。

Copilot での MCP ツールの使用

設定が完了すると、GitHub Copilot は MCP サーバーが提供するツールにアクセスして使用できるようになります。

  1. VS Code で Copilot Chat を開きます(Ctrl+Shift+I を押すか、Copilot Chat アイコンをクリックします)

  2. MCP サーバーが提供するツールを使って操作を実行するよう、Copilot に依頼します。

    Can you get the current time from the system?
    
    Please search for information about Python best practices.
    
  3. Copilot は依頼に応じて、適切な MCP ツールを自動的に使用します。

トラブルシューティング

MCP サーバーとの連携で問題が発生した場合:

  1. MCP サーバーが正しく実行されていることを確認します
  2. VS Code の設定が正しいことを確認します
  3. VS Code の開発者ツール(ヘルプ > 開発者ツールの切り替え)でエラーメッセージを確認します
  4. サーバー側のエラーがないか、mcp_server.log ファイルを確認します
チームで使用する場合の注意事項

MCP サーバーの設定をチームで共有するには:

  1. ユーザー設定ではなく、ワークスペース設定に MCP サーバーの設定を追加します
  2. リポジトリ内の .vscode/settings.json ファイルに設定を保存します
  3. すべてのチームメンバーが 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 処理

ライセンス

MIT

コメント

MCP は初めてですか?

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

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