mcp-server-requests について
mcp-server-requestsは、LLM向けにウェブページの取得とHTTPリクエストを提供するMCPサーバーです。ページのMarkdown変換や整形、ファイル保存に対応し、HTTP応答全体を返します。
主な機能
- 01ページのMarkdown変換
- 02ウェブページの整形
- 03ページのファイル保存
- 04複数のHTTPメソッドに対応
- 05ヘッダーとUser-Agentの設定
活用シーン
- 01LLMにウェブページを渡す
- 02ページ本文の取得と整理
- 03取得した内容の保存
MCP 対応
MCPクライアント向けにfetch、fetch_to_file、http_requestツールを公開し、ページ取得、保存、HTTPリクエストを可能にします。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
mcp-server-requests
LLM がウェブコンテンツを取得して処理できるように、HTTP リクエスト機能を提供する MCP サーバーです。
機能
- fetch:ウェブコンテンツ取得ツール
- ウェブコンテンツを Markdown 形式に変換できます
- ウェブコンテンツから、script、style、meta などの視覚的でない要素を除外できます
- ウェブコンテンツを LLM のコンテキストに取り込みます。Markdown への変換や視覚的でない要素の除外によって、トークン消費量を削減できます
- fetch_to_file:ウェブコンテンツ保存ツール
- ウェブコンテンツは LLM のコンテキストに取り込まれないため、過度なトークン消費を防げます
- http_request:汎用 HTTP リクエストツール
- すべての HTTP メソッド(GET、POST、PUT、PATCH、DELETE)に対応
- カスタムリクエストヘッダーに対応
- テキストおよび JSON のリクエストボディに対応
- LLM に HTTP レスポンスの完全な情報(ステータス、ヘッダー、ボディ)を返します
- カスタム User-Agent に対応
- User-Agent のランダム生成に対応
--use-rootで制御する MCP Root 機能に対応。root機能を備えた MCP クライアントで使用できます
インストール
git clone https://github.com/coucya/mcp-server-requests.git
cd mcp-server-requests
pip install .
使い方
MCP サーバーの設定
{
"mcpServers": {
"mcp-server-requests": {
"command": "python",
"args": [
"-m",
"mcp_server_requests"
]
}
}
}
コマンドライン
0. MCP サーバーを起動する
MCP サーバーを直接起動します。
python -m mcp_server_requests
オプション
--user-agent TEXT:カスタム User-Agent 文字列を指定します--random-user-agent [browser=xxx;os=xxx]:ランダムに生成した User-Agent を使用します--force-user-agent:LLM が指定した UA を無視し、コマンドラインで指定した User-Agent を強制的に使用します--list-os-and-browser:ランダムな User-Agent の生成に使用できるブラウザーと OS を一覧表示します--use-root:ファイル操作でワークスペースのルートをサポートします(root機能に対応した MCP クライアントが必要です)--allow-external-file-access:ワークスペース外のファイル操作を許可します(--use-rootと併用する場合のみ)
オプションの詳細
-
--user-agentと--random-user-agentは相互排他的で、同時には使用できません -
User-Agent の設定方法:
- カスタム文字列:
--user-agent "Mozilla/5.0 (...)"を指定します - 完全にランダム:
--random-user-agentを指定します - 条件を指定したランダム生成:
- ブラウザーの種類を指定:
--random-user-agent browser=chrome - OS を指定:
--random-user-agent os=windows - ブラウザーと OS の両方を指定:
--random-user-agent browser=chrome;os=windows - 注:ブラウザーと OS のパラメーターでは大文字と小文字が区別されません
- ブラウザーの種類を指定:
- カスタム文字列:
-
--list-os-and-browserを使用すると、--random-user-agentで利用できるブラウザーと OS を確認できます。 -
--force-user-agentオプションは User-Agent の優先順位を制御します。--force-user-agentが有効な場合:コマンドラインで指定した User-Agent(--user-agentまたは--random-user-agent経由)を強制的に使用します--force-user-agentが無効な場合:- LLM が
headersで User-Agent を指定している場合は、LLM が指定したものを使用します - それ以外の場合は、コマンドラインで指定した User-Agent を使用します
- LLM が
- どちらも指定されていない場合は、デフォルトの User-Agent を使用します:
Mozilla/5.0 (compatible; mcp-server-requests/{version})
-
--use-rootを有効にすると、ワークスペースのルートを基準にファイルを操作できます。- 前提条件:
root機能に対応した MCP クライアントが必要です - 有効な場合:
fetch_to_fileでは絶対パスと相対パスを使用できます。相対パスはワークスペースのルートを基準とします - 無効な場合:
fetch_to_fileでは絶対パスを使用する必要があり、ファイルは指定された絶対パスの場所に保存されます
- 前提条件:
-
--allow-external-file-access:ワークスペース外のファイル操作を許可するかどうかを制御します(--use-rootと併用する場合のみ使用できます)- 前提条件:
--use-rootが有効である必要があります。--use-rootが有効でない場合、このオプションは効果がありません - 有効な場合:
fetch_to_fileでワークスペースディレクトリ外のファイルを操作できます - 無効な場合:
fetch_to_fileで操作できるのはワークスペースディレクトリ内のファイルのみです。絶対パスを指定しても、ワークスペース外のファイルは操作できません
- 前提条件:
1. fetch - Web コンテンツの取得
fetch サブコマンドは、MCP の fetch ツールと同等の機能で、コンテンツ取得機能を実演するために使用します。
python -m mcp_server_requests fetch <URL> [--return-content {raw,basic_clean,strict_clean,markdown}]
オプション:
--return-content: 返すコンテンツの形式(デフォルト: markdown)- raw: 未処理の HTML コンテンツをそのまま返します(レスポンスヘッダーを含む)
- basic_clean: 構造を維持したまま、表示されないタグ(script、style、meta など)を削除する基本的なクリーンアップです
- strict_clean: 表示されないタグとほとんどの HTML 属性を削除し、必要最小限の構造だけを残す厳密なクリーンアップです
- markdown: HTML をクリーンな Markdown 形式に変換します
機能
MCP ツールの詳細
1. fetch - Web コンテンツの取得
指定した URL からコンテンツを取得し、指定した形式で返します。
パラメーター:
- url(必須、string): 対象 URL。HTTP/HTTPS プロトコルに対応しています
- return_content(任意、enum): コンテンツの処理形式。デフォルトは "markdown" です
"raw": 完全な HTTP レスポンスヘッダーとともに、未処理の HTML コンテンツをそのまま返します"basic_clean": HTML の構造を維持したまま、表示されないタグ(script、style、meta など)を削除する基本的なクリーンアップです"strict_clean": 表示されないタグとほとんどの HTML 属性を削除し、必要最小限の構造だけを残す厳密なクリーンアップです"markdown": HTML コンテンツをクリーンな Markdown 形式に変換します
戻り値: 指定した形式に従って処理されたコンテンツ
2. fetch_to_file - Web コンテンツを取得してファイルに保存
指定した URL からコンテンツを取得し、ファイルに保存します。
パラメーター:
- url(必須、string): 対象 URL
- file_path(必須、string): ファイルの保存先パス
--use-rootが有効な場合: 相対パス(ワークスペースのルートを基準とする)を指定する必要があります--use-rootが無効な場合: 絶対パスを指定する必要があります
- return_content(任意、enum): コンテンツの処理形式。デフォルトは "markdown" で、選択肢は fetch ツールと同じです
機能:
- ネストしたパスに対して、親ディレクトリを自動的に作成します
- すべてのファイルは UTF-8 エンコーディングで保存されます
--use-rootが有効な場合、--allow-external-file-accessと組み合わせてファイルアクセスの範囲を制御できます
戻り値: 操作結果またはエラーメッセージ
3. http_request - 汎用 HTTP リクエストツール
任意のメソッドを使用して HTTP リクエストを送信し、完全なレスポンスを取得します。
パラメーター:
- url(必須、string): 対象 URL
- method(任意、enum): HTTP メソッド。デフォルトは "GET" です
"GET"、"POST"、"PUT"、"PATCH"、"DELETE"
- query(任意、object): キーと値のペアで指定する URL クエリパラメーター。自動的に URL エンコードされます
- headers(任意、object): カスタム HTTP リクエストヘッダー
- data(任意、string): テキスト形式のリクエストボディデータ。json パラメーターとは併用できません
- json(任意、任意の型): JSON 形式のリクエストボディデータ。data パラメーターとは併用できません
パラメーターの制約:
dataとjsonのパラメーターは同時に使用できませんjsonパラメーターを使用すると、Content-Type: application/jsonが自動的に設定されますdataパラメーターを使用する場合は、適切なContent-Typeを手動で設定することをおすすめします
戻り値: 完全な HTTP レスポンス(ステータス行、レスポンスヘッダー、レスポンスボディ)
注記: 個別の HTTP メソッドツール(http_get、http_post、http_put、http_patch、http_delete)は削除され、統合された http_request ツールに置き換えられました。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。