### Windows環境でのe-Gov Law MCP Serverセットアップ(手動設定) Source: https://github.com/ryoooo/e-gov-law-mcp/blob/main/QUICKSTART.md Windows環境でe-Gov Law MCP Serverをセットアップするための手動設定手順です。FastMCP CLIが非対応のため、依存関係のインストールと設定ファイルの追加を行います。 ```bash git clone https://github.com/ryoooo/e-gov-law-mcp.git cd e-gov-law-mcp # 依存関係をインストール uv sync # Claude Desktop設定を手動で追加 # %APPDATA%\Claude\claude_desktop_config.json ``` -------------------------------- ### uvのインストール(Linux/macOS) Source: https://github.com/ryoooo/e-gov-law-mcp/blob/main/QUICKSTART.md uvコマンドラインツール(uvxを含む)がインストールされていない場合に、curlまたはpipを使用してインストールする手順です。 ```bash # uvをインストール(uvxも含まれます) curl -LsSf https://astral.sh/uv/install.sh | sh # または pip install uv ``` -------------------------------- ### Linux/macOS環境でのe-Gov Law MCP Serverセットアップ Source: https://github.com/ryoooo/e-gov-law-mcp/blob/main/QUICKSTART.md LinuxまたはmacOS環境でe-Gov Law MCP Serverをセットアップするための手順です。リポジトリのクローンとFastMCP CLIを使用したインストールが含まれます。 ```bash git clone https://github.com/ryoooo/e-gov-law-mcp.git cd e-gov-law-mcp uvx fastmcp install src/mcp_server.py:mcp -n "e-Gov Law Server" ``` -------------------------------- ### psutilインストール (Bash) Source: https://github.com/ryoooo/e-gov-law-mcp/blob/main/README.md パフォーマンス監視ライブラリであるpsutilをインストールする方法です。uv addコマンドまたはpipを使用してインストールできます。psutilはオプションであり、インストールしなくてもサーバーは動作します。 ```Bash # psutilはオプションのパフォーマンス監視ライブラリ # インストールしなくても動作します # パフォーマンス監視を有効にしたい場合 uv add psutil # または pip install psutil ``` -------------------------------- ### WSL内での直接テスト実行 Source: https://github.com/ryoooo/e-gov-law-mcp/blob/main/WSL_TROUBLESHOOTING.md WSL内でプロジェクトが直接動作するかを確認するためのコマンドです。cdコマンドでプロジェクトディレクトリに移動し、uv runコマンドでPythonスクリプトを実行します。 ```bash # WSL内で実行 cd /home/username/dev/e-gov-law-mcp uv run python src/mcp_server.py ``` -------------------------------- ### uvのインストール(Windows PowerShell) Source: https://github.com/ryoooo/e-gov-law-mcp/blob/main/QUICKSTART.md Windows環境でuvをインストールするためのPowerShellコマンドです。PowerShellを使用してインストールスクリプトを実行します。 ```powershell # uvのインストール powershell -c "irm https://astral.sh/uv/install.ps1 | iex" # ⚠️ 注意: Windows環境では uvx fastmcp install は動作しません # 上記の手動設定方法を使用してください ``` -------------------------------- ### uvによる依存関係のインストールと実行 Source: https://github.com/ryoooo/e-gov-law-mcp/blob/main/README.md uvパッケージマネージャーを使用してプロジェクトの依存関係をインストールし、サーバーを実行する方法を示します。開発環境のセットアップやパフォーマンス監視のためのpsutilの追加も含まれます。 ```Bash curl -LsSf https://astral.sh/uv/install.sh | sh powershell -c "irm https://astral.sh/uv/install.ps1 | iex" git clone https://github.com/ryoooo/e-gov-law-mcp.git cd e-gov-law-mcp uv sync # パフォーマンス監視を有効にする場合(オプション) uv add psutil ``` -------------------------------- ### サーバー起動 (STDIO/SSE) Source: https://github.com/ryoooo/e-gov-law-mcp/blob/main/docs/USAGE.md e-gov-law-mcpサーバーを起動します。STDIOトランスポートはClaude Desktop用、SSEトランスポートはWebアプリケーション用です。 ```bash # STDIO トランスポート(Claude Desktop等) uv run python src/mcp_server.py ``` ```bash # SSE トランスポート(Webアプリケーション等) uv run python src/mcp_server.py --transport sse --port 8000 ``` -------------------------------- ### Windows用e-Gov Law MCP Server設定 Source: https://github.com/ryoooo/e-gov-law-mcp/blob/main/QUICKSTART.md Windows環境でe-Gov Law MCP Serverを実行するための設定内容です。Claude Desktopの設定ファイルに追記するJSON形式のデータが含まれています。 ```json { "mcpServers": { "e-gov-law": { "command": "uv", "args": [ "run", "--directory", "C:\\Users\\\\\ユーザー名\\\\\\path\\\\\\to\\\\\\e-gov-law-mcp", "python", "run_server.py" ] } } } ``` -------------------------------- ### 品質チェック実行 (Bash) Source: https://github.com/ryoooo/e-gov-law-mcp/blob/main/docs/DEVELOPMENT.md pre-commitフックを使用して、コードフォーマット、リンティング、型チェックなどの全ての品質チェックを一度に実行するためのbashコマンド。 ```bash uv run pre-commit run --all-files # または個別に実行 uv run black --check src/ tests/ examples/ uv run ruff check src/ tests/ examples/ uv run mypy src/ ``` -------------------------------- ### 依存関係インストール (Bash) Source: https://github.com/ryoooo/e-gov-law-mcp/blob/main/README.md Windows環境で'No module named 'yaml''エラーが発生した場合の解決策です。uvコマンドを使用して依存関係をインストールするか、pipで手動でインストールします。 ```Bash # 解決方法1: uv syncで依存関係をインストール cd C:\path\to\e-gov-law-mcp uv sync # 解決方法2: 手動インストール pip install PyYAML httpx fastmcp ``` -------------------------------- ### ModuleNotFoundErrorエラーの解決策(依存関係再インストール) Source: https://github.com/ryoooo/e-gov-law-mcp/blob/main/WSL_TROUBLESHOOTING.md Pythonモジュールが見つからないエラーが発生した場合、WSL内で依存関係を再インストールする方法です。uv syncコマンドを使用して、プロジェクトに必要なパッケージを同期します。 ```bash # WSL内で実行 cd /home/username/dev/e-gov-law-mcp uv sync ``` -------------------------------- ### uvコマンドが見つからないエラーの解決策(フルパス指定) Source: https://github.com/ryoooo/e-gov-law-mcp/blob/main/WSL_TROUBLESHOOTING.md WSLでuvコマンドが見つからない場合、uvコマンドのフルパスを指定して実行する方法です。これにより、PATHが正しく設定されていなくてもuvコマンドを実行できます。 ```json { "mcpServers": { "e-gov-law": { "command": "wsl", "args": [ "bash", "-c", "cd /home/username/dev/e-gov-law-mcp && /home/username/.local/bin/uv run python src/mcp_server.py" ] } } } ``` -------------------------------- ### 権限エラー解決策(実行権限付与) Source: https://github.com/ryoooo/e-gov-law-mcp/blob/main/WSL_TROUBLESHOOTING.md Permission deniedエラーが発生した場合、スクリプトに実行権限を付与する方法です。chmod +xコマンドを使用して、スクリプトファイルに実行権限を追加します。 ```bash # WSL内で実行 chmod +x /home/username/dev/e-gov-law-mcp/src/mcp_server.py ``` -------------------------------- ### 型チェック (Bash) Source: https://github.com/ryoooo/e-gov-law-mcp/blob/main/docs/DEVELOPMENT.md Pythonコードの型チェックを実行するためのbashコマンド。Mypyを使用して型エラーを検出します。 ```bash uv run mypy src/ ``` -------------------------------- ### 新しいツールの追加 (Python) Source: https://github.com/ryoooo/e-gov-law-mcp/blob/main/docs/DEVELOPMENT.md MCPフレームワークに新しいツールを追加するためのPythonコード例。非同期処理、パラメータ、およびエラーハンドリングを含みます。 ```python @mcp.tool async def new_tool(param1: str, param2: int = 10) -> str: """ 新しいツールの説明 Args: param1: パラメータ1の説明 param2: パラメータ2の説明(デフォルト: 10) Returns: 結果の説明 """ # 入力検証 if not param1: return "Error: param1 is required" # 実装 async with await get_http_client() as client: try: # API呼び出し response = await client.get("/new-endpoint", params={"param1": param1}) response.raise_for_status() return response.text except Exception as e: logger.error(f"New tool error: {e}") return f"Error: {str(e)}" ``` -------------------------------- ### 依存関係の再インストール Source: https://github.com/ryoooo/e-gov-law-mcp/blob/main/docs/USAGE.md e-gov-law-mcpプロジェクトの依存関係を再インストールするコマンドです。 ```bash # 依存関係を再インストール uv sync --reinstall ``` -------------------------------- ### Claude Desktop 設定 Source: https://github.com/ryoooo/e-gov-law-mcp/blob/main/docs/USAGE.md Claude Desktopの設定ファイルにe-gov-law-mcpサーバーを追加する方法を示します。 ```json { "mcpServers": { "e-gov-law": { "command": "uv", "args": [ "run", "--directory", "/path/to/e-gov-law-mcp", "python", "src/mcp_server.py" ] } } } ``` -------------------------------- ### FastMCPコマンド実行 (Bash) Source: https://github.com/ryoooo/e-gov-law-mcp/blob/main/README.md FastMCPサーバーを起動するためのコマンドライン引数です。Claude Desktopの設定で使用され、依存関係チェック機能が含まれています。 ```Bash "command": "uv", "args": [ "run", "--directory", "C:\\path\\to\\e-gov-law-mcp", "python", "run_server.py" ] ``` -------------------------------- ### 依存関係の競合解決 (Bash) Source: https://github.com/ryoooo/e-gov-law-mcp/blob/main/docs/DEVELOPMENT.md 依存関係の競合が発生した場合に、uvを使用して依存関係を再インストールするためのbashコマンド。 ```bash uv sync --reinstall ``` -------------------------------- ### テストの追加 (Python) Source: https://github.com/ryoooo/e-gov-law-mcp/blob/main/docs/DEVELOPMENT.md 新しい機能に対するテストケースを作成するためのPythonコード例。Pytestとasyncioを使用して非同期テストを記述します。 ```python class TestNewFeature: @pytest.mark.asyncio async def test_new_tool_success(self): """新しいツールの成功ケースをテスト""" # テスト実装 pass @pytest.mark.asyncio async def test_new_tool_validation(self): """新しいツールの入力検証をテスト""" # テスト実装 pass ``` -------------------------------- ### 推奨される安定した設定(環境変数含む) Source: https://github.com/ryoooo/e-gov-law-mcp/blob/main/WSL_TROUBLESHOOTING.md 最も安定した実行のための推奨設定です。仮想環境のアクティベート、EGOV_API_URLとPYTHONUNBUFFERED環境変数の設定が含まれます。PYTHONUNBUFFERED=1により、出力が即座に表示されます。 ```json { "mcpServers": { "e-gov-law": { "command": "wsl", "args": [ "bash", "-c", "cd /home/username/dev/e-gov-law-mcp && source .venv/bin/activate && python src/mcp_server.py" ], "env": { "EGOV_API_URL": "https://laws.e-gov.go.jp/api/2", "PYTHONUNBUFFERED": "1" } } } } ``` -------------------------------- ### コードフォーマットとリンティング (Bash) Source: https://github.com/ryoooo/e-gov-law-mcp/blob/main/docs/DEVELOPMENT.md 開発ワークフロー中にコードのフォーマット(Black)とリンティング(Ruff)を実行するためのbashコマンド。 ```bash uv run black src/ tests/ examples/ uv run ruff check src/ tests/ examples/ ``` -------------------------------- ### テスト実行 (Bash) Source: https://github.com/ryoooo/e-gov-law-mcp/blob/main/docs/DEVELOPMENT.md Pytestを使用してプロジェクトのテストを実行するためのbashコマンド。カバレッジレポートの生成や特定のテストファイルの実行も可能です。 ```bash uv run pytest uv run pytest --cov=src --cov-report=html uv run pytest tests/test_mcp_server.py uv run pytest -v ``` -------------------------------- ### CHANGELOG作成 (Markdown) Source: https://github.com/ryoooo/e-gov-law-mcp/blob/main/docs/DEVELOPMENT.md リリースノートを作成するためのMarkdownフォーマットの例。追加、変更、修正された項目をリストします。 ```markdown ## [1.1.0] - 2024-XX-XX ### Added - 新機能の説明 ### Changed - 変更された機能の説明 ### Fixed - 修正されたバグの説明 ``` -------------------------------- ### PATHの問題解決策(.bashrc設定) Source: https://github.com/ryoooo/e-gov-law-mcp/blob/main/WSL_TROUBLESHOOTING.md WSLのログインシェルでPATHが正しく設定されない場合、.bashrcファイルにPATHを追加して設定する方法です。これにより、必要なコマンドがどこからでも実行できるようになります。 ```bash # ~/.bashrcに追加 export PATH="$HOME/.local/bin:$PATH" ``` -------------------------------- ### デバッグモード設定 Source: https://github.com/ryoooo/e-gov-law-mcp/blob/main/docs/USAGE.md e-gov-law-mcpサーバーをデバッグモードで起動するために、環境変数 `PYTHONPATH` と `LOGLEVEL` を設定する方法を示します。 ```bash export LOGLEVEL=DEBUG uv run python src/mcp_server.py ``` -------------------------------- ### Claude DesktopでのMCPサーバー設定 Source: https://github.com/ryoooo/e-gov-law-mcp/blob/main/README.md Claude Desktopでe-Gov Law MCP Server v2をMCPサーバーとして設定するためのJSON形式の設定例です。サーバーの起動コマンドやディレクトリを指定します。 ```JSON { "mcpServers": { "e-gov-law": { "command": "uv", "args": [ "run", "--directory", "/path/to/e-gov-law-mcp", "python", "run_server.py" ] } } } ``` -------------------------------- ### デバッグログレベル設定 (Bash) Source: https://github.com/ryoooo/e-gov-law-mcp/blob/main/docs/DEVELOPMENT.md デバッグモードでMCPサーバーを起動するために、ログレベルをDEBUGに設定するbashコマンド。 ```bash export PYTHONLOGLEVEL=DEBUG uv run python src/mcp_server.py ``` -------------------------------- ### uvコマンドが見つからないエラーの解決策(仮想環境使用) Source: https://github.com/ryoooo/e-gov-law-mcp/blob/main/WSL_TROUBLESHOOTING.md WSLでuvコマンドが見つからない場合、仮想環境をアクティベートしてからuvコマンドを実行する方法です。これにより、仮想環境内のuvコマンドが利用可能になります。 ```json { "mcpServers": { "e-gov-law": { "command": "wsl", "args": [ "bash", "-c", "cd /home/username/dev/e-gov-law-mcp && source .venv/bin/activate && python src/mcp_server.py" ] } } } ``` -------------------------------- ### 開発環境セットアップとテスト実行 Source: https://github.com/ryoooo/e-gov-law-mcp/blob/main/README.md プロジェクトのローカル開発環境をセットアップし、様々なテスト(機能、セキュリティ、パフォーマンス、FastMCP統合)を実行するためのBashコマンドを提供します。コード品質向上のためのフォーマット、リント、型チェックコマンドも含まれます。 ```Bash git clone https://github.com/ryoooo/e-gov-law-mcp.git cd e-gov-law-mcp uv sync --dev # 全テスト実行(40+テスト) uv run pytest # カバレッジ付きテスト uv run pytest --cov=src # セキュリティテスト uv run pytest test_comprehensive_ultra.py::TestSecurityAndRobustness -v # パフォーマンステスト uv run pytest test_comprehensive_ultra.py::TestPerformanceAndScalability -v # FastMCP統合テスト uv run pytest test_fastmcp_integration.py -v # フォーマット uv run black src/ tests/ # リント uv run ruff check src/ tests/ # 型チェック uv run mypy src/ ``` -------------------------------- ### 新しいリソースの追加 (Python) Source: https://github.com/ryoooo/e-gov-law-mcp/blob/main/docs/DEVELOPMENT.md MCPフレームワークに新しいリソースを登録するためのPythonコード例。リソースのURIとスキーマを定義します。 ```python @mcp.resource("schema://new_resource") def get_new_resource() -> dict: """新しいリソースの説明""" return { "data": "リソースデータ", "metadata": { "version": "1.0", "description": "説明" } } ``` -------------------------------- ### WSLディストリビューション指定によるuvコマンド実行 Source: https://github.com/ryoooo/e-gov-law-mcp/blob/main/WSL_TROUBLESHOOTING.md 複数のWSLディストリビューションが存在する場合、特定のディストリビューションを指定してuvコマンドを実行する方法です。wsl -dコマンドにディストリビューション名を指定します。 ```json { "mcpServers": { "e-gov-law": { "command": "wsl", "args": [ "-d", "Ubuntu", // ディストリビューション名を指定 "bash", "-c", "cd /home/username/dev/e-gov-law-mcp && uv run python src/mcp_server.py" ] } } } ``` -------------------------------- ### Python FastMCPクライアントによる法律検索 Source: https://github.com/ryoooo/e-gov-law-mcp/blob/main/README.md FastMCPライブラリを使用して、e-Gov Law MCP Server v2に接続し、法律の条文検索やバッチ検索を実行するPythonコード例です。非同期処理とツールの呼び出し方法を示しています。 ```Python import asyncio import json from fastmcp import Client async def search_example(): async with Client(["uv", "run", "python", "src/mcp_server.py"]) as client: # 民法192条を検索 result = await client.call_tool("find_law_article", { "law_name": "民法", "article_number": "192" }) print(result[0].text) # バッチ検索 batch_data = json.dumps([ {"law": "民法", "article": "192"}, {"law": "憲法", "article": "9"} ]) batch_result = await client.call_tool("batch_find_articles", { "law_article_pairs": batch_data }) asyncio.run(search_example()) ``` -------------------------------- ### キャッシュ統計取得 (Python) Source: https://github.com/ryoooo/e-gov-law-mcp/blob/main/README.md 現在のキャッシュ統計情報を取得するためのAPI呼び出しです。パフォーマンス監視やデバッグに役立ちます。 ```Python await client.call_tool("get_cache_stats", {}) ``` -------------------------------- ### HTTPクライアントの最適化 (Python) Source: https://github.com/ryoooo/e-gov-law-mcp/blob/main/docs/DEVELOPMENT.md パフォーマンス向上のため、HTTPクライアントの接続プールを設定するPythonコード例。 ```python # 接続プールの設定 async def get_http_client() -> httpx.AsyncClient: return httpx.AsyncClient( base_url=API_URL, timeout=30.0, limits=httpx.Limits(max_keepalive_connections=5, max_connections=10) ) ``` -------------------------------- ### テスト失敗時のデバッグ (Bash) Source: https://github.com/ryoooo/e-gov-law-mcp/blob/main/docs/DEVELOPMENT.md テストが失敗した場合に、詳細なトレースバックを表示してデバッグするためのbashコマンド。 ```bash uv run pytest -v --tb=short ``` -------------------------------- ### 開発環境セットアップ (Bash) Source: https://github.com/ryoooo/e-gov-law-mcp/blob/main/docs/DEVELOPMENT.md プロジェクトのクローン、依存関係のインストール、およびpre-commitフックのセットアップを行うための基本的なbashコマンド。 ```bash git clone https://github.com/your-username/e-gov-law-mcp.git cd e-gov-law-mcp uv sync --dev uv run pre-commit install ``` -------------------------------- ### e-Gov APIおよびサーバー設定用環境変数 Source: https://github.com/ryoooo/e-gov-law-mcp/blob/main/README.md e-Gov法令APIへのアクセス設定や、MCPサーバーの動作をカスタマイズするための環境変数を示します。APIエンドポイント、トークン、サーバー名、設定ファイルのパスなどを定義します。 ```Bash # e-Gov API設定 export EGOV_API_URL="https://laws.e-gov.go.jp/api/2" export EGOV_API_TOKEN="" # 通常は不要 # サーバー設定 export MCP_SERVER_NAME="e-Gov Law Server v2" export LAW_CONFIG_PATH="config/laws.yaml" ``` -------------------------------- ### キーワード検索 (search_laws_by_keyword) Source: https://github.com/ryoooo/e-gov-law-mcp/blob/main/docs/USAGE.md 法令本文内でのキーワード全文検索を実行します。必須のキーワードとオプションの法令種別、取得件数で絞り込みます。 ```json { "keyword": "契約", "law_type": "Act", "limit": 10 } ``` -------------------------------- ### 頻出法律プリフェッチ (Python) Source: https://github.com/ryoooo/e-gov-law-mcp/blob/main/README.md 頻繁にアクセスされる法律データを事前にロード(プリフェッチ)するためのAPI呼び出しです。これにより、応答時間が短縮されます。 ```Python await client.call_tool("prefetch_common_laws", {}) ``` -------------------------------- ### 型エラーのデバッグ (Bash) Source: https://github.com/ryoooo/e-gov-law-mcp/blob/main/docs/DEVELOPMENT.md Mypyを使用して型エラーを特定し、エラーコードを表示するためのbashコマンド。 ```bash uv run mypy src/ --show-error-codes ``` -------------------------------- ### 詳細なエラー出力のためのデバッグ設定 Source: https://github.com/ryoooo/e-gov-law-mcp/blob/main/WSL_TROUBLESHOOTING.md デバッグ時に詳細なエラー出力を取得し、ログファイルに保存するための設定です。コマンドの標準エラー出力を標準出力にリダイレクトし、teeコマンドでファイルに書き出します。 ```json { "mcpServers": { "e-gov-law": { "command": "wsl", "args": [ "bash", "-c", "cd /home/username/dev/e-gov-law-mcp && uv run python src/mcp_server.py 2>&1 | tee /tmp/mcp-debug.log" ] } } } ``` -------------------------------- ### batch_find_articles API呼び出し (Python) Source: https://github.com/ryoooo/e-gov-law-mcp/blob/main/README.md 複数の法律の条文を一度に検索するためのバッチ処理APIです。法律名と条文番号のペアのリストをJSON形式で渡し、高速な一括検索を実行します。最大200件まで対応可能です。 ```Python batch_data = json.dumps([ {"law": "民法", "article": "192"}, {"law": "憲法", "article": "9"}, {"law": "会社法", "article": "423"} ]) await client.call_tool("batch_find_articles", { "law_article_pairs": batch_data }) ``` -------------------------------- ### コミットメッセージ規約 (Markdown) Source: https://github.com/ryoooo/e-gov-law-mcp/blob/main/docs/DEVELOPMENT.md Gitコミットメッセージの規約を示すMarkdownの例。機能追加、詳細説明、関連Issueのクローズを含みます。 ```markdown feat: 新機能の追加 詳細な説明... Closes #123 ``` -------------------------------- ### 入力検証 (Python) Source: https://github.com/ryoooo/e-gov-law-mcp/blob/main/docs/DEVELOPMENT.md セキュリティとデータの整合性を確保するために、入力値を検証するPython関数。 ```python def validate_input(value: str, max_length: int = 100) -> bool: """入力値を検証""" if not value or len(value) > max_length: return False # その他の検証ロジック return True ```