シンプルなMCPツールサーバー
SSE トランスポートを使用して Web サイト取得ツールを公開するシンプルな MCP サーバー。
要件
Python 3.10 以上 (Python 3.13 でテスト済み)
Related MCP server: MCP Server Fetch TypeScript
インストール
# Create a virtual environment
python3 -m venv venv
# Activate the virtual environment
source venv/bin/activate
# Install the package and dependencies
pip install -r requirements.txtMCP Python SDK ドキュメント
MCP Python SDKのドキュメントは、小さなファイルに分割され、 docs/ディレクトリに整理されています。この構造により、AIエージェントがSDKを操作し、理解しやすくなります。ドキュメントの内容は以下のとおりです。
コアコンセプト(サーバー、リソース、ツールなど)
さまざまなモードでのMCPサーバーの実行
例と高度な使用法
さらにもっと!
使用法
このパッケージには、MCP サーバーを管理するためのいくつかのコマンドを含むコマンドライン インターフェイス (CLI) が用意されています。
サーバーの起動
デフォルト ポート (7000) でサーバーを起動するか、カスタム ポートを指定します。
# Using default port (7000)
python -m mcp_simple_tool start
# Using custom port
python -m mcp_simple_tool start --port 8000サーバーの管理
# Check if server is running
python -m mcp_simple_tool check [--port PORT]
# Stop the server
python -m mcp_simple_tool stop [--port PORT]
# Restart the server (stop and start)
python -m mcp_simple_tool restart [--port PORT]再起動コマンドは次の処理を実行します。
指定されたポート上の既存のサーバーを停止します
バックグラウンドで新しいサーバーを起動する
サーバーが応答するまで待ちます
server.log へのログ出力
CLIクイックリファレンス
指示 | 目的 |
| サーバーを起動する |
| サーバーを停止する |
| 健康チェック |
| 停止と開始 |
サーバーツール
サーバーは次のツールを公開します。
fetch :リモートHTTP フェッチャー – 絶対 URL を指定すると、ページ テキストが返されます。
url: 取得するウェブサイトのURL(必須)
search_docs : SDK ドキュメント全体のセマンティック検索。上位 k 個の抜粋を返します。
query: 検索フレーズまたは質問(必須)k: 返される上位一致の数(オプション、デフォルト = 3)
get_content :
search_docsによって返された一致の完全なローカル ファイルを取得します。file: ドキュメントへの相対パス(必須)
開発セットアップ
開発の場合は、追加のツールをインストールします。
pip install -e .
pip install -r requirements.txt一般的なタスクには Makefile を使用します。
# Format code
make fmt
# Run linters
make lint
# Run tests
make testテストスイートには、特にSSEエンドポイントでのハングアップを防ぐため、すべてのテストに20秒のタイムアウトが組み込まれています。個々のテストでは、 @pytest.mark.timeout(seconds)デコレータを使用して、より厳密なタイムアウトを指定できます。
セマンティック検索インデックス
search_docs ツールでは、ベクター インデックスを手動で構築または再構築できます。
# Build or rebuild the semantic search index
python scripts/build_doc_index.pyインデックスが存在しない場合は、ツールを初めて使用したときに自動的にインデックスが構築されます。
プロジェクトアーキテクチャ
mcp_simple_tool/
__init__.py # Package initialization
__main__.py # Entry point when run as module
cli.py # Command-line interface
server/ # Server implementation
__init__.py # Server package initialization
app.py # ASGI application setup
config.py # Configuration settings
handlers.py # Tool implementations
http.py # HTTP utilities
semantic_search/ # Semantic search functionality
__init__.py # Package initialization
indexing.py # Build and persist vector store
search.py # Load index and query helpersカーソルを使用する
このMCPサーバーは、Cursorをクライアントとして使用できます。セットアップ手順:
ターミナルでサーバーを実行します。
source venv/bin/activate
python -m mcp_simple_tool start
# or use the restart command
python -m mcp_simple_tool restart.cursor/mcp.jsonファイルを作成してカーソルを構成します。
{
"mcpServers": {
"website-fetcher-sse": {
"url": "http://localhost:7000/sse"
}
}
}カーソルを使用するときはプロンプトでサーバーを指定してください