mcpField
M
mcp-server-requests

mcp-server-requests

ローカル
github.com/coucyaAI・エージェント749 週間前に更新

mcp-server-requests について

mcp-server-requestsは、LLM向けにウェブページの取得とHTTPリクエストを提供するMCPサーバーです。ページのMarkdown変換や整形、ファイル保存に対応し、HTTP応答全体を返します。

主な機能

  1. 01ページのMarkdown変換
  2. 02ウェブページの整形
  3. 03ページのファイル保存
  4. 04複数のHTTPメソッドに対応
  5. 05ヘッダーとUser-Agentの設定

活用シーン

  1. 01LLMにウェブページを渡す
  2. 02ページ本文の取得と整理
  3. 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 を使用します
    • どちらも指定されていない場合は、デフォルトの 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

コメント

MCP は初めてですか?

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

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