🚀 高度なMCPサーバー
この高度なMCPサーバーは、ウェブスクレイピング、データ分析、システム監視、ファイル操作、API統合、レポート生成などの高度な機能を提供します。Pythonで構築され、Claude DesktopなどのMCP互換クライアントとシームレスに統合できるように設計されています。

🚀 クイックスタート
最も速くサーバーを利用する方法は、GitHubでホストされているバージョンを使用することです。
{
"mcpServers": {
"advanced-server": {
"command": "uvx",
"args": ["--from", "git+https://github.com/hezronkimutai/mcp_server.git", "python", "advanced_mcp_server.py"],
"disabled": false,
"autoApprove": ["scrape_website", "analyze_data", "system_monitor", "file_operations", "api_integration", "database_query", "generate_report"]
}
}
}
この設定をMCPクライアント(例:Claude Desktop)に追加し、すぐにサーバーを使用できます!
✨ 主な機能
🌐 ウェブスクレイピングとコンテンツ分析
- BeautifulSoup4を使用した高度なHTML解析
- リンク、画像、クリーンテキストなどのスマートなコンテンツ抽出
- SQLiteデータベースへの自動データ永続化
- コンテンツ分析と包括的な統計情報
- 重複検出とコンテンツの重複排除
📊 データ分析と可視化
- pandasを統合したCSVファイル分析
- 要約、相関関係、分布などの統計的洞察
- トレンド検出とパターン分析
- matplotlibとseabornを使用した専門的な可視化
- 複数形式でのエクスポート機能
🖥️ システム監視とパフォーマンス
- CPU、メモリ、ディスク使用率のリアルタイム監視
- 設定可能な間隔と監視期間
- トレンド分析を伴う履歴データ追跡
- パフォーマンスアラートとしきい値監視
- リソース最適化の推奨事項
📁 高度なファイル操作
- パターンマッチングを使用したインテリジェントなファイル検索
- コンテンツ分析とメタデータ抽出
- 自動バックアップの作成と管理
- 一時ファイルとキャッシュファイルのクリーンアップ操作
- ファイル比較と差分分析
- バッチ操作のサポート
🔌 API統合とキャッシュ
- 完全なHTTPメソッドサポート(GET、POST、PUT、DELETEなど)
- 設定可能なTTLを持つインテリジェントなキャッシュシステム
- 指数バックオフを伴う自動リトライロジック
- レスポンス検証とエラーハンドリング
- レート制限とリクエストスロットリング
🗄️ データベース操作と管理
- データ永続化のための組み込みSQLiteデータベース
- 安全チェック付きのカスタムSQLクエリ実行
- データエクスポートユーティリティ(CSV、JSON、XML)
- スキーマ管理とマイグレーション
- クエリ最適化とパフォーマンス監視
📋 包括的なレポート生成
- アクション可能な推奨事項を含むシステムヘルスレポート
- ウェブスクレイピング分析とコンテンツ要約
- 統計的洞察を含むデータ分析レポート
- 複数の出力形式(Markdown、JSON、HTML、PDF)
- 統合されたチャートとインタラクティブな可視化
- 自動スケジューリングと配信オプション
📦 インストール
前提条件
- Python 3.8以上(推奨:Python 3.11以上)
- pip パッケージマネージャー
- Git(GitHubからのインストールの場合)
方法1:GitHubからの直接インストール(推奨)
ローカル設定は不要です!サーバーはGitHubから直接実行できます。
{
"mcpServers": {
"advanced-server": {
"command": "uvx",
"args": ["--from", "git+https://github.com/hezronkimutai/mcp_server.git", "python", "advanced_mcp_server.py"],
"disabled": false,
"autoApprove": ["scrape_website", "analyze_data", "system_monitor", "file_operations", "api_integration", "database_query", "generate_report"]
}
}
}
方法2:ローカルインストール
開発またはカスタマイズのために使用します。
- リポジトリをクローンします:
git clone https://github.com/hezronkimutai/mcp_server.git
cd mcp_server
- 依存関係をインストールします:
pip install -r requirements.txt
- 実行可能にします(Unix/Linux/macOSの場合):
chmod +x advanced_mcp_server.py
- MCP設定に追加します:
{
"mcpServers": {
"advanced-server": {
"command": "python",
"args": ["C:/path/to/mcp_server/advanced_mcp_server.py"],
"disabled": false,
"autoApprove": ["scrape_website", "analyze_data", "system_monitor", "file_operations", "api_integration", "database_query", "generate_report"]
}
}
}
方法3:パッケージとしてのインストール
Pythonパッケージとしてインストールします。
pip install git+https://github.com/hezronkimutai/mcp_server.git
次に、MCP設定で使用します。
{
"mcpServers": {
"advanced-server": {
"command": "advanced-mcp-server",
"disabled": false,
"autoApprove": ["scrape_website", "analyze_data", ",system_monitor", "file_operations", "api_integration", "database_query", "generate_report"]
}
}
}
🛠️ 利用可能なツール
🌐 scrape_website
コンテンツ分析とデータベース保存を伴う高度なウェブスクレイピング。
パラメータ:
url(必須):スクレイピングするターゲットURL
extract_links(オプション、デフォルト: false):すべてのハイパーリンクを抽出する
extract_images(オプション、デフォルト: false):画像URLとメタデータを抽出する
save_to_db(オプション、デフォルト: true):コンテンツをデータベースに保存する
実際の使用例:
{
"url": "https://example.com"
}
{
"url": "https://news.ycombinator.com",
"extract_links": true,
"extract_images": true,
"save_to_db": true
}
{
"url": "https://blog.example.com/post/123",
"extract_links": false,
"extract_images": false,
"save_to_db": true
}
📊 analyze_data
専門的な可視化を伴う包括的な統計分析。
パラメータ:
file_path(必須):CSVファイルのパス
analysis_type(必須):分析タイプ - "summary", "correlation", "distribution", "trends", "outliers"
create_visualization(オプション、デフォルト: true):チャートとグラフを生成する
columns(オプション):分析する特定の列
save_results(オプション、デフォルト: true):分析結果をデータベースに保存する
実際の使用例:
{
"file_path": "/data/sales_2024.csv",
"analysis_type": "trends",
"create_visualization": true,
"columns": ["revenue", "units_sold", "date"]
}
{
"file_path": "/data/customers.csv",
"analysis_type": "correlation",
"create_visualization": true,
"save_results": true
}
{
"file_path": "/logs/performance_metrics.csv",
"analysis_type": "summary",
"create_visualization": false
}
🖥️ system_monitor
アラート機能を備えたリアルタイムのシステムパフォーマンス監視。
パラメータ:
duration_minutes(オプション、デフォルト: 1):監視期間
interval_seconds(オプション、デフォルト: 10):データ収集間隔
save_metrics(オプション、デフォルト: true):メトリクスをデータベースに保存する
alert_thresholds(オプション):CPU/メモリ/ディスク使用率のアラートレベル
generate_report(オプション、デフォルト: false):パフォーマンスレポートを作成する
実際の使用例:
{
"duration_minutes": 2,
"interval_seconds": 5,
"save_metrics": true
}
{
"duration_minutes": 30,
"interval_seconds": 60,
"save_metrics": true,
"alert_thresholds": {"cpu": 80, "memory": 90, "disk": 85},
"generate_report": true
}
{
"duration_minutes": 1,
"interval_seconds": 30,
"save_metrics": false
}
📁 file_operations
インテリジェントな検索と分析を伴う高度なファイルシステム操作。
パラメータ:
operation(必須):操作タイプ - "search", "analyze", "backup", "cleanup", "compare", "organize"
path(必須):ターゲットファイルまたはディレクトリのパス
pattern(オプション):検索パターン(正規表現とグロブをサポート)
options(オプション):操作固有の設定
recursive(オプション、デフォルト: true):サブディレクトリを含める
file_types(オプション):ファイル拡張子でフィルタリング
実際の使用例:
{
"operation": "search",
"path": "/project/src",
"pattern": "TODO|FIXME|HACK",
"options": {"case_sensitive": false, "context_lines": 2},
"recursive": true,
"file_types": [".py", ".js", ".ts"]
}
{
"operation": "analyze",
"path": "/project",
"options": {"include_stats": true, "generate_tree": true},
"recursive": true
}
{
"operation": "cleanup",
"path": "/project",
"pattern": "*.tmp|*.cache|__pycache__",
"options": {"dry_run": false, "backup_before_delete": true}
}
{
"operation": "backup",
"path": "/important/data",
"options": {"destination": "/backups", "compression": "gzip", "exclude_patterns": ["*.log", "*.tmp"]}
}
🔌 api_integration
インテリジェントなキャッシュとエラーハンドリングを伴う堅牢なAPI統合。
パラメータ:
endpoint(必須):APIエンドポイントのURL
method(オプション、デフォルト: "GET"):HTTPメソッド
headers(オプション):リクエストヘッダーの辞書
data(オプション):リクエストボディ(JSON、フォームデータ、または生データ)
params(オプション):URLクエリパラメータ
use_cache(オプション、デフォルト: true):レスポンスキャッシュを有効にする
cache_duration_hours(オプション、デフォルト: 1):キャッシュのTTL
timeout_seconds(オプション、デフォルト: 30):リクエストのタイムアウト
retry_attempts(オプション、デフォルト: 3):リトライ試行回数
実際の使用例:
{
"endpoint": "https://api.openweathermap.org/data/2.5/weather",
"method": "GET",
"params": {"q": "London", "appid": "your_api_key"},
"use_cache": true,
"cache_duration_hours": 1
}
{
"endpoint": "https://api.example.com/users",
"method": "POST",
"headers": {"Content-Type": "application/json", "Authorization": "Bearer token"},
"data": {"name": "John Doe", "email": "john@example.com"},
"use_cache": false,
"retry_attempts": 5,
"timeout_seconds": 60
}
{
"endpoint": "https://api.github.com/graphql",
"method": "POST",
"headers": {"Authorization": "Bearer github_token"},
"data": {"query": "query { viewer { login } }"},
"use_cache": true,
"cache_duration_hours": 24
}
🗄️ database_query
安全チェックと結果フォーマットを伴うSQLクエリの実行。
パラメータ:
query(必須):実行するSQLクエリ
table(オプション):単純な操作のターゲットテーブル
limit(オプション、デフォルト: 100):最大結果数
format(オプション、デフォルト: "json"):出力形式 - "json", "csv", "html"
parameters(オプション):プリペアドステートメントのクエリパラメータ
export_file(オプション):結果をファイルに保存する
実際の使用例:
{
"query": "SELECT url, title, LENGTH(content) as content_length FROM web_scrapes WHERE scraped_at > datetime('now', '-7 days') ORDER BY scraped_at DESC",
"limit": 50,
"format": "json"
}
{
"query": "SELECT DATE(recorded_at) as date, AVG(cpu_percent) as avg_cpu, MAX(memory_percent) as max_memory FROM system_metrics WHERE recorded_at > datetime('now', '-30 days') GROUP BY DATE(recorded_at)",
"format": "csv",
"export_file": "/reports/performance_trends.csv"
}
{
"query": "SELECT endpoint, COUNT(*) as request_count, AVG(LENGTH(response_data)) as avg_response_size FROM api_cache GROUP BY endpoint",
"limit": 20
}
📋 generate_report
可視化と洞察を伴う包括的なレポートの作成。
パラメータ:
report_type(必須):レポートタイプ - "system_health", "web_analysis", "data_summary", "api_usage", "custom"
format(オプション、デフォルト: "markdown"):出力形式 - "markdown", "json", "html", "pdf"
include_charts(オプション、デフォルト: true):可視化を生成する
time_range(オプション):データの時間範囲フィルター
save_to_file(オプション):レポートを指定されたファイルに保存する
email_recipients(オプション):レポート配信のメールアドレス
template(オプション):カスタムレポートテンプレート
実際の使用例:
{
"report_type": "system_health",
"format": "html",
"include_charts": true,
"time_range": "7_days",
"save_to_file": "/reports/weekly_health_report.html"
}
{
"report_type": "web_analysis",
"format": "markdown",
"include_charts": true,
"time_range": "30_days",
"save_to_file": "/reports/scraping_summary.md"
}
{
"report_type": "custom",
"format": "pdf",
"include_charts": true,
"template": "business_dashboard",
"save_to_file": "/reports/monthly_bi_report.pdf",
"email_recipients": ["manager@company.com", "analyst@company.com"]
}
🗄️ データベーススキーマ
サーバーは、最適化されたテーブルを持つSQLiteデータベースを自動的に作成および管理します。
📊 web_scrapes
全文検索機能を備えたウェブスクレイピング結果を格納します。
id:主キー(INTEGER)
url:スクレイピングされたURL(TEXT、インデックス付き)
title:ページタイトル(TEXT)
content:抽出されたテキストコンテンツ(TEXT)
links_count:抽出されたリンクの数(INTEGER)
images_count:抽出された画像の数(INTEGER)
word_count:コンテンツの単語数(INTEGER)
scraped_at:タイムスタンプ(TIMESTAMP、インデックス付き)
📈 system_metrics
リアルタイムおよび履歴のシステムパフォーマンスデータを格納します。
id:主キー(INTEGER)
cpu_percent:CPU使用率のパーセンテージ(REAL)
memory_percent:メモリ使用率のパーセンテージ(REAL)
disk_usage:ディスク使用率のパーセンテージ(REAL)
network_io:ネットワークI/O統計(TEXT)
process_count:アクティブなプロセスの数(INTEGER)
recorded_at:タイムスタンプ(TIMESTAMP、インデックス付き)
🔄 api_cache
TTL管理を伴うインテリジェントなAPIレスポンスキャッシュを格納します。
id:主キー(INTEGER)
endpoint:APIエンドポイントのURL(TEXT、インデックス付き)
method:HTTPメソッド(TEXT)
response_data:キャッシュされたレスポンス(TEXT)
response_status:HTTPステータスコード(INTEGER)
response_size:レスポンスのサイズ(バイト)(INTEGER)
cached_at:キャッシュのタイムスタンプ(TIMESTAMP、インデックス付き)
expires_at:キャッシュの有効期限(TIMESTAMP、インデックス付き)
📁 file_operations
ファイル操作の履歴とメタデータを格納します。
id:主キー(INTEGER)
operation_type:実行された操作(TEXT)
file_path:ターゲットファイル/ディレクトリのパス(TEXT)
file_size:ファイルのサイズ(バイト)(INTEGER)
operation_result:操作の結果(TEXT)
execution_time:実行にかかった時間(秒)(REAL)
created_at:タイムスタンプ(TIMESTAMP、インデックス付き)
🚨 トラブルシューティング
一般的なインストール問題
Pythonバージョンの互換性
python --version
欠落している依存関係
pip install -r requirements.txt
pip install mcp aiohttp pandas matplotlib seaborn beautifulsoup4 psutil requests
pip install --upgrade pip
pip install --force-reinstall -r requirements.txt
パーミッションエラー(Unix/Linux/macOS)
chmod +x advanced_mcp_server.py
python advanced_mcp_server.py
MCP設定の問題
サーバーが起動しない
- MCPクライアントのログを確認してエラーメッセージを確認します。
- 設定内のファイルパスを検証して絶対パスであることを確認します。
- サーバーを手動でテストします。
python advanced_mcp_server.py
GitHubモードでのインポートエラー
{
"mcpServers": {
"advanced-server": {
"command": "uvx",
"args": ["--from", "git+https://github.com/hezronkimutai/mcp_server.git", "python", "advanced_mcp_server.py"],
"env": {
"PYTHONPATH": ".",
"PYTHONUNBUFFERED": "1"
},
"disabled": false
}
}
}
ツールの承認問題
ツールがautoApproveリストに含まれていることを確認します。
"autoApprove": [
"scrape_website",
"analyze_data",
"system_monitor",
"file_operations",
"api_integration",
"database_query",
"generate_report"
]
ランタイムの問題
メモリ使用量
- 大規模なデータセット:
limitパラメータを使用してチャンクで処理します。
- 長時間の監視:より短い間隔または期間を使用します。
- データベースのサイズ:古いデータを定期的にクリーンアップします。
ネットワークタイムアウト
- API呼び出しのタイムアウト値を増やす
- ファイアウォール設定を確認して外向きの接続を許可することを確認
- バルク操作の場合は小さいバッチサイズを使用
ファイルパーミッションエラー
- Windows:必要に応じて管理者として実行します。
- Unix/Linux:ファイル/ディレクトリのパーミッションを確認します。
- 絶対パスを使用して相対パスの問題を回避します。
パフォーマンス最適化
データベースパフォーマンス
python -c "
import sqlite3
conn = sqlite3.connect('server.db')
conn.execute('VACUUM')
conn.execute('ANALYZE')
conn.close()
"
メモリ管理
- 大規模なファイル操作にはストリーミングを使用します。
- 可視化プロットを生成した後はクリアします。
- 大規模なクエリの場合は結果のページネーションを実装します。
🔒 セキュリティに関する考慮事項
データ保護
- データベース暗号化:機密データはローカルSQLiteに格納されます。
- APIキー:コードではなく環境変数に格納します。
- ファイルアクセス:サーバーはシステムのファイルパーミッションを尊重します。
- 入力検証:すべての入力はサニタイズおよび検証されます。
ネットワークセキュリティ
- HTTPSのみ:API呼び出しは安全な接続を使用します。
- レート制限:組み込みのリクエストスロットリングがあります。
- エラーハンドリング:エラーで機密情報が公開されることはありません。
- キャッシュ:機密APIレスポンスはキャッシュから除外できます。
ベストプラクティス
- 定期的な更新:依存関係を最新の状態に保ちます。
- アクセス制御:MCPサーバーへのアクセスを適切に制限します。
- 監視:セキュリティイベントのためにシステム監視を使用します。
- バックアップ:定期的にデータベースと設定をバックアップします。
🤝 コントリビューション
私たちはコントリビューションを歓迎します!以下は、Advanced MCP Serverを改善する方法です。
🚀 コントリビューターのクイックスタート
- GitHubでリポジトリをフォークします。
- あなたのフォークをローカルにクローンします。
git clone https://github.com/YOUR_USERNAME/mcp_server.git
cd mcp_server
- 機能ブランチを作成します。
git checkout -b feature/amazing-feature
- 開発環境をセットアップします。
pip install -r requirements.txt
pip install -r requirements-dev.txt
🛠️ 開発ガイドライン
コードスタイル
- PEP 8 Pythonスタイルガイドラインに従います。
- 型ヒントを関数パラメータと戻り値に使用します。
- すべての関数とクラスにドキュメント文字列を追加します。
- 関数を焦点を絞った単一目的に保ちます。
テスト
python -m pytest tests/
python advanced_mcp_server.py --test-mode
新しいツールの追加
handle_list_tools()でツールを定義します。
Tool(
name="your_new_tool",
description="Clear description of what it does",
inputSchema={
"type": "object",
"properties": {
"parameter_name": {
"type": "string",
"description": "Parameter description"
}
},
"required": ["parameter_name"]
}
)
handle_call_tool()でハンドラーを実装します。
elif request.params.name == "your_new_tool":
return await self.your_new_tool_method(request.params.arguments)
- メソッドを作成します。
async def your_new_tool_method(self, args: Dict[str, Any]) -> List[types.TextContent]:
"""
Implement your tool functionality here.
Args:
args: Dictionary of tool arguments
Returns:
List of TextContent with results
"""
pass
- README.mdでドキュメントを更新します。
データベースの変更
- スキーマの変更にはマイグレーションスクリプトを作成します。
- 可能な限り下位互換性を維持します。
- コミットメッセージでスキーマの変更をドキュメント化します。
📝 コミットガイドライン
コンベンショナルコミットを使用します。
git commit -m "feat: add new data visualization tool"
git commit -m "fix: resolve database connection timeout"
git commit -m "docs: update API documentation"
git commit -m "refactor: optimize file search algorithm"
🐛 バグレポート
バグを報告する際には、以下を含めてください。
- オペレーティングシステムとPythonバージョン
- 使用しているMCPクライアント(Claude Desktopなど)
- エラーメッセージとスタックトレース
- 問題を再現する手順
- 期待される動作と実際の動作
💡 機能リクエスト
新しい機能の場合、以下を行ってください。
- 既存の問題を確認して重複を避けます。
- ユースケースを説明し、解決しようとしている問題を明確にします。
- 機能の使用方法の例を提供します。
- 下位互換性を考慮します。
🔄 プルリクエストのプロセス
- 必要に応じてドキュメントを更新します。
- 新しい機能のためにテストを追加/更新します。
- すべてのテストが通過することを確認します。
- 該当する場合はCHANGELOG.mdを更新します。
- メンテナーにレビューを依頼します。
📋 開発ロードマップ
予定されている機能と改善点:
- [ ] 多形式のデータエクスポート(Excel、Parquet、XML)
- [ ] 自動レポートの高度なスケジューリング
- [ ] カスタム拡張のためのプラグインシステム
- [ ] サーバー管理のためのウェブダッシュボード
- [ ] 簡単なデプロイのためのDockerコンテナ化
- [ ] Redisサポートを伴う分散キャッシュ
- [ ] データ分析のための機械学習統合
- [ ] リアルタイム通知とアラート
- [ ] 認証と承認システム
- [ ] クライアントごとのAPIレート制限
- [ ] CI/CDを伴う包括的なテストスイート
- [ ] パフォーマンスベンチマークツール
🏗️ リポジトリ構造
mcp_server/
├── 📄 advanced_mcp_server.py # 主なMCPサーバーの実装
├── 📄 requirements.txt # Pythonの依存関係
├── 📄 setup.py # パッケージの設定
├── 📄 README.md # このドキュメント
├── 📄 CHANGELOG.md # バージョン履歴(予定)
├── 📄 LICENSE # MITライセンス(予定)
│
├── 🗂️ configs/ # 設定ファイル
│ ├── 📄 github_mcp_config.json # GitHubデプロイ設定
│ ├── 📄 local_mcp_config.json # ローカル開発設定
│ ├── 📄 mcp_config_direct.json # 直接実行設定
│ └── 📄 working_mcp_config.json # 動作中の設定
│
├── 🗂️ docs/ # ドキュメント(予定)
│ ├── 📄 mcp_github_configs.md # GitHub設定ガイド
│ ├── 📄 api_reference.md # APIドキュメント(予定)
│ ├── 📄 examples.md # 使用例(予定)
│ └── 📄 troubleshooting.md # トラブルシューティングガイド(予定)
│
├── 🗂️ scripts/ # ユーティリティスクリプト
│ ├── 📄 github_mcp_runner.py # GitHub実行ラッパー
│ └── 📄 run_github_mcp.py # 代替ランナー
│
├── 🗂️ tests/ # テストスイート(予定)
│ ├── 📄 test_server.py # サーバーテスト
│ ├── 📄 test_tools.py # ツール機能テスト
│ └── 📄 test_integration.py # 統合テスト
│
└── 🗂️ examples/ # 使用例(予定)
├── 📄 basic_usage.py # 基本的なサーバーの使用方法
├── 📄 advanced_analysis.py # 複雑なデータ分析
└── 📄 custom_tools.py # カスタムツールの開発
📁 主要なファイルの説明
advanced_mcp_server.py:すべてのツールを備えたコアサーバーの実装
requirements.txt:バージョン制約を持つすべてのPython依存関係
setup.py:パッケージのメタデータとインストール設定
github_mcp_runner.py:GitHubからサーバーを実行するためのラッパー
- 設定ファイル:さまざまなシナリオに対応したすぐに使えるMCP設定
🌟 使用例
📊 ビジネスインテリジェンスダッシュボード
{"duration_minutes": 60, "interval_seconds": 300, "save_metrics": true}
{"file_path": "/data/sales.csv", "analysis_type": "trends", "create_visualization": true}
{"report_type": "data_summary", "format": "html", "include_charts": true}
🔍 コンテンツ調査と分析
{"url": "https://competitor.com", "extract