WebAPI MCP 服务器 について
既存の Web API を MCP ツールとして登録するサーバーで、エージェントから業務 API を呼び出す用途に向いています。JSON・Markdown のファイルやディレクトリから定義を一括読み込みでき、デフォルトヘッダーも管理できます。
主な機能
- 01Web API の MCP ツール化
- 02実行中の API 登録・削除
- 03JSON・Markdown 定義の一括読み込み
- 04グローバルデフォルトヘッダーの設定
- 05ネストされたレスポンスデータの抽出
活用シーン
- 01エージェントから既存の業務 API を呼び出す
- 02ディレクトリから API 定義を読み込む
- 03デフォルトヘッダーによる API リクエスト権限の管理
MCP 対応
API の登録・削除・一覧表示や定義の一括読み込みを行うツールを提供します。登録した Web API を MCP クライアントから呼び出せます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
7掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| name | string | はい | API 名 |
| url | string | はい | API エンドポイント URL |
| method | enum | いいえ | HTTP メソッドGET | POST | PUT | DELETE | PATCH |
| description | string | いいえ | API の説明 |
| parameters | object | いいえ | API パラメーター定義 |
| headers | object | いいえ | API 固有のヘッダー |
| resultPath | string | いいえ | 結果へのアクセスパス(例:data.items) |
詳細
WebAPI MCP サーバー
従来のWeb APIをMCPツールに変換するサーバーです。APIインターフェースの一括登録に対応し、MCPツールを通じてデフォルトのリクエストヘッダーを設定できます。
利点:
- 従来のRAG方式よりシンプルで、デプロイも容易です。また、従来の業務システムと大規模言語モデルを直接連携できるため、冗長なコードや作業を増やす追加インターフェースの開発が不要です。
- JSONファイル、mdファイル、またはファイルディレクトリからの一括インポートに対応しています。
- RAGではベクトルデータベースを使ってデータを分割・検索しますが、モデルがAPIを直接呼び出してデータを取得することで、より正確で信頼性の高い結果を得られます。
- データの安全性を確保できます。変換したMCPツールのリクエストヘッダーパラメーターを設定することで、データ権限をより正確に管理・制御できます。
原文へのリンク:https://blog.csdn.net/qq_39336120/article/details/147537618
機能の特徴
- API変換 - あらゆるWeb APIをMCPツールに自動変換
- 動的登録 - 実行時にAPIを動的に登録・削除
- グローバルリクエストヘッダー - すべてのAPIのデフォルトリクエストヘッダーを一元管理
- 柔軟なパラメーター - さまざまなパラメーターの型と検証に対応
- 結果パス - ネストされたレスポンスから特定のデータを抽出可能
- 一括読み込み - ファイルまたはディレクトリからAPI定義を一括読み込み可能
Cursorまたはその他のMCPクライアントへの導入方法
{
"mcpServers": {
"webapi-mcp-server": {
"command": "npx",
"args": [
"-y",
"@yinzhouzhi/webapi-mcp-server",
"start"
]
}
}
}
インストール
# 克隆项目
git clone <repository-url>
cd webapi-mcp-server
# 安装依赖
npm install
# 初始化项目目录
npm run setup
使用方法
サーバーの起動
npm start
# 使用自定义配置启动
npm start -- --config path/to/config.json --apis-dir path/to/apis
# 使用环境变量启动
WEBAPI_CONFIG_FILE=path/to/config.json WEBAPI_APIS_DIR=path/to/apis WEBAPI_DEBUG=true npm start
設定ファイルのオプション
設定ファイルはJSON、YAML、YML形式に対応しており、以下のオプションを含めることができます。
{
"apiDirectories": [ // 包含API定义文件的目录列表
"./apis",
"./more-apis"
],
"apiFiles": [ // 单独API定义文件的路径列表
"./specific-api.json",
"./another-api.md"
],
"globalHeaders": { // 应用于所有API请求的默认请求头
"User-Agent": "WebAPI MCP Client/1.0", // 用户代理
"Accept": "application/json", // 接受的内容类型
"Authorization": "Bearer YOUR_TOKEN" // 授权令牌
},
"debug": true // 是否启用调试模式
}
| 設定項目 | 型 | 説明 |
|---|---|---|
apiDirectories | 配列 | API定義ファイルを含むディレクトリの一覧 |
apiFiles | 配列 | 個別のAPI定義ファイルのパス一覧 |
globalHeaders | オブジェクト | すべてのAPIリクエストに適用するデフォルトリクエストヘッダー |
debug | ブール値 | デバッグモードを有効にするかどうか |
実行例
npm run run-example
CLIツールを使った利用方法
# 启动服务器
npm run start
# 显示示例
npm run example
環境変数の設定
サーバーは環境変数でも設定できます。
| 環境変数 | 説明 |
|---|---|
WEBAPI_CONFIG_FILE | 設定ファイルのパス |
WEBAPI_APIS_DIR | API定義ディレクトリのパス |
WEBAPI_DEBUG | デバッグモードを有効化('true'に設定) |
MCPツール
サーバーには、以下のMCPツールが組み込まれています。
| ツール名 | 説明 |
|---|---|
register_web_api | Web APIをMCPツールとして登録し、MCPプロトコル経由で直接呼び出せるようにします。 |
set_default_headers | すべてのAPIリクエストに適用するグローバルなデフォルトリクエストヘッダーを設定します。 |
list_registered_apis | 現在登録されているすべてのWeb APIとその設定を一覧表示します。 |
unregister_api | 登録済みのWeb APIツールを削除します。 |
load_api_from_file | 指定したファイルからAPI定義を読み込み、MCPツールとして登録します。 |
load_apis_from_directory | 指定したディレクトリからすべてのAPI定義ファイルを読み込み、MCPツールとして登録します。 |
load_from_config | 設定ファイルからAPI定義と設定を読み込みます。 |
API定義の形式
APIはJSON形式またはMarkdown形式で定義できます。
JSON形式
{
"name": "weather",
"description": "获取当前天气信息",
"url": "https://api.example.com/weather",
"method": "GET",
"parameters": {
"city": {
"type": "string",
"required": true, // 是否必填
"description": "城市名称"
},
"units": {
"type": "string",
"required": false,
"description": "温度单位 (celsius, fahrenheit)"
}
},
"headers": {
"X-API-Key": "your-api-key"
},
"resultPath": "data.current"
}
JSON形式のフィールドの説明
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
name | 文字列 | はい | MCP呼び出しに使用する、APIツールの一意な名前 |
description | 文字列 | はい | API機能の簡単な説明 |
url | 文字列 | はい | APIの完全なURLアドレス。パラメーター付きURLテンプレートに対応 |
method | 文字列 | はい | HTTPリクエストメソッド(GET、POST、PUT、DELETEなど) |
parameters | オブジェクト | いいえ | APIパラメーターの定義。各パラメーターにはtype、required、description属性が含まれます |
headers | オブジェクト | いいえ | このAPI固有のリクエストヘッダー(グローバルリクエストヘッダーと結合されます) |
resultPath | 文字列 | いいえ | レスポンスから結果を抽出するパス。ドット記法を使用します(例:"data.items") |
bodyTemplate | オブジェクト/文字列 | いいえ | POST/PUTリクエストのリクエストボディテンプレート |
responseType | 文字列 | いいえ | 想定するレスポンスの型(json、text、blobなど) |
transform | 文字列 | いいえ | レスポンスの変換に使用するJavaScriptコード文字列 |
Markdown形式
# Weather API
获取当前天气信息
## URL
https://api.example.com/weather
## 方法
GET
## 参数
- city (string, required): 城市名称
- units (string, optional): 温度单位 (celsius, fahrenheit)
## 请求头
- X-API-Key: your-api-key
## 结果路径
data.current
Markdown形式の仕様
Markdown形式のAPI定義は、以下の構造に従う必要があります。
- レベル1の見出し(#):APIの名前。MCPツール名として使用されます。
- 説明:見出しの下のテキストがAPIの説明になります。
- URLセクション:
## URLで始め、次の行にAPIの完全なURLを記述します。 - メソッドセクション:
## 方法で始め、次の行にHTTPメソッド(GET、POSTなど)を記述します。 - パラメーターセクション(任意):
## 参数で始め、各パラメーターをリスト項目として記述します。- 形式:
パラメーター名 (型, required/optional): 説明
- 形式:
- リクエストヘッダーセクション(任意):
## 请求头で始め、各リクエストヘッダーをリスト項目として記述します。- 形式:
リクエストヘッダー名: 値
- 形式:
- 結果パスセクション(任意):
## 结果路径で始め、次の行に結果を抽出するパスを記述します。 - リクエストボディテンプレート(任意):
## 请求体で始め、その後にJSON形式のリクエストボディテンプレートを記述します。 - レスポンスの型(任意):
## 响应类型で始め、想定するレスポンスの型を指定します。 - 変換関数(任意):
## 转换函数で始め、JavaScriptの変換コードを含めます。
詳細ドキュメント
- Web APIをMCPツールに変換 - MCPツールを使ってAPIを登録・管理する方法
例
APIの例を確認して、以下の方法をご覧ください。
- グローバルなデフォルトリクエストヘッダーを設定する
- Web APIを登録する
- 登録済みのAPIを一覧表示する
- 登録済みのAPIを呼び出す
- APIを削除する
エクスポートされたAPI
const webapi = require('webapi-mcp-server');
// 创建自定义服务器
const server = webapi.createServer({
debug: true,
configFile: './config.json',
apisDir: './apis'
});
// 使用其他导出函数
webapi.registerApi(apiDefinition);
webapi.unregisterApi('apiName');
webapi.getRegisteredApis();
webapi.loadApiFile('./path/to/api.json');
webapi.loadApisFromDirectory('./apis');
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。