mcpField
C
Curl MCP Server

Curl MCP Server

ローカル
github.com/neeraj15022001開発ツール473 週間前に更新

Curl MCP Server について

Curl MCP Serverは、MCPクライアントから安全制限付きでcURLを実行するMCPサーバーです。HTTPリクエストやカスタムコマンド、ファイルダウンロードに対応し、URL検証やタイムアウト、出力サイズ制限を備えています。

主な機能

  1. 01HTTP GETリクエスト
  2. 02HTTP POSTリクエスト
  3. 03制限付きカスタムcURLコマンド
  4. 04メタデータ付きファイルダウンロード
  5. 05URLと引数の安全性検証
  6. 06タイムアウトと出力サイズ制限

活用シーン

  1. 01カスタムヘッダー付きAPIリクエストの送信
  2. 02JSONなどのリクエストデータの投稿
  3. 03ファイルのダウンロードとメタデータ確認

MCP 対応

MCPクライアント向けに、cURLリクエストとダウンロードのツールを提供するMCPサーバーです。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Curl MCP サーバー

ターミナルシェルとの統合を通じて、安全な curl コマンド実行機能を提供する Model Context Protocol(MCP)サーバーです。

機能

  • GET リクエスト:カスタムヘッダーを指定して HTTP GET リクエストを実行します
  • POST リクエスト:コンテンツタイプを設定して POST データを送信します
  • カスタムコマンド:安全上の制限を設けて、カスタム curl コマンドを実行します
  • ファイルのダウンロード:ファイルをダウンロードし、メタデータを取得します
  • セキュリティ:危険な操作を防ぐ保護機能を内蔵しています
  • タイムアウト:リクエストのタイムアウトを設定できます(最大 30 秒)
  • 出力制限:出力サイズが過剰になるのを防ぎます

インストール

# Clone or create the project directory
mkdir curl-mcp-server
cd curl-mcp-server

# Install dependencies
npm install @modelcontextprotocol/sdk
npm install -D typescript @types/node tsx

# Create src directory and add the TypeScript code
mkdir src
# Place the server code in src/index.ts

# Build the project
npm run build

前提条件

  • Node.js 18+
  • curl コマンドが PATH で利用可能であること
  • TypeScript コンパイラー

利用可能なツール

1. curl_get

HTTP GET リクエストを実行します。

パラメーター:

  • url(必須):リクエスト先の URL
  • headers(任意):「Key: Value」形式のヘッダーの配列
  • timeout(任意):タイムアウト秒数(デフォルト:10、最大:30)
  • follow_redirects(任意):HTTP リダイレクトに従うかどうか(デフォルト:true)

例:

{
  "url": "https://api.github.com/user",
  "headers": ["Authorization: token YOUR_TOKEN"],
  "timeout": 15
}
2. curl_post

HTTP POST リクエストを実行します。

パラメーター:

  • url(必須):リクエスト先の URL
  • data(必須):送信する POST データ
  • content_type(任意):Content-Type ヘッダー(デフォルト:"application/json")
  • headers(任意):追加ヘッダーの配列
  • timeout(任意):タイムアウト秒数(デフォルト:10、最大:30)

例:

{
  "url": "https://api.example.com/data",
  "data": "{\"key\": \"value\"}",
  "content_type": "application/json",
  "headers": ["Authorization: Bearer TOKEN"]
}
3. curl_custom

自由に制御できるカスタム curl コマンドを実行します。

パラメーター:

  • args(必須):curl 引数の配列(curl コマンドを除く)
  • timeout(任意):タイムアウト秒数(デフォルト:10、最大:30)

例:

{
  "args": ["-X", "PUT", "-H", "Content-Type: application/json", "-d", "{\"status\": \"updated\"}", "https://api.example.com/resource/123"],
  "timeout": 20
}
4. curl_download

ファイルをダウンロードし、メタデータを取得します。

パラメーター:

  • url(必須):ダウンロード元の URL
  • output_file(任意):出力ファイルのパス
  • timeout(任意):タイムアウト秒数(デフォルト:30、最大:30)

例:

{
  "url": "https://example.com/file.pdf",
  "output_file": "/tmp/downloaded_file.pdf"
}

セキュリティ機能

  • URL 検証:HTTP および HTTPS の URL のみ許可されます
  • 引数フィルタリング:危険な curl フラグはブロックされます
  • 出力制限:メモリーの問題を防ぐため、出力サイズは最大 1MB です
  • タイムアウト:すべてのリクエストでタイムアウトを設定できます
  • 安全なデフォルト値:すべてのパラメーターに適切なデフォルト値が設定されています

ブロックされる操作

セキュリティ上、次の curl 操作は制限されています。

  • ファイルのアップロード(--upload-file、--form)
  • 設定ファイルの読み込み(--config)
  • 制限のないファイル出力(専用のツールを通じて制御されます)
  • バイナリデータのアップロード
  • トレースファイルの生成

使用例

基本的な GET リクエスト
# Through MCP client
{
  "tool": "curl_get",
  "arguments": {
    "url": "https://httpbin.org/get"
  }
}
JSON データを使った POST
{
  "tool": "curl_post",
  "arguments": {
    "url": "https://httpbin.org/post",
    "data": "{\"message\": \"hello world\"}",
    "content_type": "application/json"
  }
}
カスタムヘッダー
{
  "tool": "curl_get",
  "arguments": {
    "url": "https://api.github.com/user",
    "headers": [
      "Authorization: token ghp_xxxxxxxxxxxx",
      "User-Agent: MyApp/1.0"
    ]
  }
}

サーバーの実行

# Development mode
npm run dev

# Production mode
npm run build
npm start

Claude Desktop との統合

Claude Desktop の設定に追加します。

{
  "mcpServers": {
    "curl": {
      "command": "node",
      "args": ["/path/to/curl-mcp-server/build/index.js"]
    }
  }
}

エラー処理

サーバーは次の内容について、詳細なエラーメッセージを提供します。

  • 無効な URL
  • タイムアウトエラー
  • curl の実行失敗
  • 出力サイズ制限の超過
  • セキュリティ違反

制限事項

  • リクエストのタイムアウトは最大 30 秒です
  • 出力サイズは最大 1MB です
  • HTTP/HTTPS プロトコルのみサポートしています
  • セキュリティ上、一部の curl フラグはブロックされます

貢献

問題の報告や機能強化のリクエストを歓迎します。変更を加えた場合は、特にセキュリティ関連の変更について、十分にテストしてください。

ライセンス

MIT License — 詳細については LICENSE file を参照してください。

コメント

MCP は初めてですか?

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

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