Token导航 LogoToken导航TokenDH.com
Phoneappli API MCP Server Using Apimanagement logo
运维云端stdio官方级别未说明来源级核验

Phoneappli API MCP Server Using Apimanagement

MCP Server

使用Azure API Management Basic v2实现的PHONE APPLI API MCP服务器,提供OpenAPI规范验证、自动部署和MCP兼容性检查等功能。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
API集成自动化部署Python

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

koudaiii

提供方

koudaiii

最后核验

2026/5/17 20:22

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

uv run python src/validate.py docs/v1.20.0.yaml

详细介绍

PHONE应用API MCP服务器,使用Azure API管理

![CI](https://github.com/koudaiii/phoneappli-api-mcp-server-using-apimanagement/actions/workflows/ci.yml)

Azure API Management Basic v2 使用PHONE APPLI API 的,之MCP 服务器实现。

  • Support 版本

- PHONE APPLI API 版本 v1.20

概要

此项目包括:电话应用API 的Azure API Management 而需要与环境混合的每条反射光线,进行环境采样。

主要功能:

  • ✅ OpenAPI Specification (v1.20.0) 验证
  • ✅ Azure API Management Basic v2 Bicep+Azure Verified Modules
  • ✅ OpenAPI Spec 自动导入
  • ✅ 完全自动化的部署脚本
  • ✅ X-Pa-Api-Key 透明传送页眉
  • ✅ 支持沙箱/生产环境切换
  • ✅ MCP (Model Context Protocol) 兼容性检查和自动英语化

前提条件

  • python: 3.11 以上
  • 紫外线: Python 包管理器(安装方法)
  • Azure命令行界面: Azure 命令行工具(安装方法)
  • 疫情: YAML 处理器(安装方法)
  • Azure 预订:活动Azure 预订

快速启动

1.设置环境

# リポジトリのクローン
git clone https://github.com/koudaiii/phoneappli-api-mcp-server-using-apimanagement.git
cd phoneappli-api-mcp-server-using-apimanagement

# 環境のブートストラップ(uv、Azure CLI、依存関係のインストール)
./script/bootstrap

# Azure にログイン
az login

2. OpenAPI Spec 验证

./script/validate

出力例:

==> Validating OpenAPI Specification...
  File: /path/to/docs/v1.20.0.yaml

✓ File loaded successfully

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ OpenAPI Specification Info   ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
OpenAPI Version: 3.0.3
Title: PHONE APPLI API
Version: 1.20
Paths: 45
Operations: 120

✓ Validation successful!

3. Azure 部署到

# デプロイ実行(API Management 作成 + API インポート)
./script/deploy

可在环境变量中自定义:

# デフォルト(サンドボックス環境)
./script/deploy

# 本番環境へのデプロイ
export ENVIRONMENT="production"
./script/deploy

# その他のカスタマイズ
export LOCATION="eastus"
export DEPLOYMENT_NAME="my-custom-deployment"
export ENVIRONMENT="production"
./script/deploy

MCP Server 安装,安装

4.资源清理

./script/cleanup 

项目结构

.
├── docs/
│   └── v1.20.0.yaml          # PHONE APPLI API OpenAPI Specification
├── infra/                     # Azure インフラストラクチャ (Bicep)
│   ├── main.bicep            # メインテンプレート
│   ├── main.bicepparam       # パラメータ定義
│   ├── resources.bicep       # 追加リソース定義
│   ├── modules/              # カスタムモジュール
│   └── README.md             # インフラドキュメント
├── script/                    # 自動化スクリプト
│   ├── bootstrap             # 環境セットアップ
│   ├── validate              # OpenAPI バリデーション
│   ├── analyzer              # API description 解析
│   ├── fix-descriptions      # Description の 1000文字制限対応
│   ├── check-mcp-compatibility # MCP 互換性チェック(タグ名、operationId、summary 抽出)
│   ├── convert-to-english    # OpenAPI 仕様書の英語化(MCP 対応)
│   ├── deploy                # デプロイ実行
│   ├── reimport              # API の再インポート
│   ├── test                  # API テスト
│   └── cleanup               # リソース削除
├── src/                       # Python 実装
│   ├── validate.py           # OpenAPI バリデーションロジック
│   ├── import_api.py         # API インポートロジック
│   └── __init__.py
├── tests/                     # テストコード
├── pyproject.toml            # Python プロジェクト設定(uv管理)
├── PLAN.md                   # 実装プラン
└── README.md                 # このファイル

用法

OpenAPI Spec 验证

Python 也可以直接运行脚本:

uv run python src/validate.py docs/v1.20.0.yaml

API Description 分析

MCP工具注册description 将条目添加到文档注册表。确认当前状态:

./script/analyzer

出力例:

====================================================================================================
OpenAPI 仕様書解析結果: ./docs/v1.20.0.yaml
検出されたエンドポイント数: 45
====================================================================================================

📊 統計情報:
  📝 総エンドポイント数: 45
  ⚠️  1000文字超過: 0 個
  📏 最大記述文字数: 992
  📏 最小記述文字数: 17
  📏 平均記述文字数: 453.9

Description 修改

超过1000个字符description 自动缩短到950个字符(保留信息):

./script/fix-descriptions

此脚本为:

  • 超过1000个字符description 减少到950个字符
  • 保留重要信息(参数、功能和限制)
  • YAML完全保留结构(使用yq)

MCP 兼容性检查

OpenAPI 仕样书のMCP (Model Context Protocol) 互换性を确认:

./script/check-mcp-compatibility

出力例:

=====================================================================================================
MCP互換性チェック: ./docs/v1.20.0.yaml
=====================================================================================================

📊 統計情報:
  総タグ数: 11
  総エンドポイント数: 45

🔍 抽出結果:

[1] タグ名一覧
  • internal-contacts
  • profiles
  • departments
  ...

[2] operationId一覧
  • list_internal_contacts
  • create_internal_contact
  • get_internal_contact
  ...

[3] summary一覧 (MCP Tools Name)
  • List Internal Contacts
  • Create Internal Contact
  • Get Internal Contact
  ...

=====================================================================================================
✓ 抽出完了
=====================================================================================================

此脚本为:

  • 提取标记名称(在MCP中ASCII 需要字符)
  • operationId (建议使用snake_case)
  • summary 提取(MCP Tools Name 作为…使用所以英语是必须的)
  • 新的API 用于版本发布时的转换前后确认

OpenAPI 仕样书の英语化(MCP对应)

新的API 版本发布时的英语说明:

# 1. 現状確認
./script/check-mcp-compatibility docs/vX.XX.X.yaml

# 2. 自動変換(タグ名、operationId、summary を英語化)
./script/convert-to-english docs/vX.XX.X.yaml

# 3. 変換結果確認
./script/check-mcp-compatibility docs/vX.XX.X.yaml

# 4. バリデーション
./script/validate

MCP (Model Context Protocol) 要件:

  • 标记名称:日本语→英语(例: 社内連絡先internal-contacts
  • 操作ID:PascalCase→ 蛇病例(例如: UsersGetlist_internal_contacts
  • 总结:日本语→英语(例: 社内連絡先一覧取得List Internal Contacts

- ⚠️ 重要: summary 啊MCP Tools Name 的规格化距离的幂函数

Description 管理

单击功能区上description 啊MCP Tools 中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积。

Description 确认

description 确认的状态:

# デフォルト(docs/v1.20.0.yaml をチェック)
./script/check-descriptions

# 別のYAMLファイルをチェック
./script/check-descriptions docs/vX.XX.X.yaml

此脚本检查:

  • ✅ 天空的description 查找
  • ✅ 超过1000个字符description (MCP Tools的限制)
  • ✅ 所有的description 列表显示

出力例:

=== Checking descriptions in docs/v1.20.0.yaml ===
Maximum description length for MCP Tools: 1000 characters

=== Issues ===

✅ No issues found!

=== All Descriptions ===

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Path: GET /users
Operation ID: list_internal_contacts
Summary: List Internal Contacts
Description Length: 902 chars

Description:
ツール名: List Internal Contacts
説明: 社内電話帳に登録された連絡先(ユーザ)の情報を一覧で取得します。
...

=== Summary ===
Total endpoints: 42
Empty descriptions: 0
Too long (> 1000 chars): 0
OK: 42

Description 格式指南

description 中所述修改相应参数的值docs/sample-description-for-mcp.md 请参见模板:

description: |
  ツール名: [英語のツール名]
  説明: [日本語の簡潔な説明]

  機能:
  - [機能1の説明]
  - [機能2の説明]

  パラメータ:
  必須パラメータ:
  - [パラメータ名] ([type]): [説明]

  オプションパラメータ:
  - [パラメータ名] ([type]): [説明] (デフォルト: [値])

  取得できるデータ:
  - [データ項目1]
  - [データ項目2]

  用途:
  - [ユースケース1]
  - [ユースケース2]

  制限:
  - [制限事項1]
  - APIキーごとのレート制限適用

  例:

方法/路径 \[请求示例\]

⚠️ 重要: description 必须包含在1000个字符以内(MCP Tools的限制)

API 重新导入

现有API Management 在实例中API 重新导入:

./script/reimport -g  -apim 

可选:

  • -g, --resource-group: Azure 资源组名称(必需)
  • -apim, --apim-name: API Management 服务名称(必需)
  • -api, --api-id: API ID(可选,默认值:phoneappli-api)
  • -spec, --spec-file: OpenAPI Spec 文件路径(可选,默认值:docs/v1.20.0.yaml)

例:

# 基本的な使い方
./script/reimport -g my-resource-group -apim my-apim-service

# カスタム設定
./script/reimport -g my-rg -apim my-apim -api custom-api-id -spec docs/custom.yaml

此脚本为:

  1. OpenAPI Spec 验证
  2. Description 分析长度
  3. 当前API备份配置
  4. API 重新导入
  5. 显示结果

API 手动导入

现有API Management 在实例中API 导入:

uv run python src/import_api.py \
  --resource-group "my-rg" \        # または -g (必須)
  --apim-name "my-apim-instance" \  # または -n (必須)
  --openapi-spec "docs/v1.20.0.yaml" \  # または -s (必須)
  --api-id "phoneappli-api" \       # オプション (デフォルト: phoneappli-api)
  --api-path "phoneappli" \         # オプション (デフォルト: phoneappli)
  --environment "sandbox"           # または -e (オプション: sandbox/production, デフォルト: sandbox)

环境选项:

  • sandbox:沙箱环境(https://api-sandbox.phoneappli.net/v1)-默认值
  • production:本番环境(https://api.phoneappli.net/v1)

导入生产环境示例:

uv run python src/import_api.py \
  -g "my-rg" \
  -n "my-apim-instance" \
  -s "docs/v1.20.0.yaml" \
  -e "production"

出力例:

╭──────────────────────────────────────────╮
│ Azure API Management - API Import        │
╰──────────────────────────────────────────╯

✓ Authenticated to subscription: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Loading OpenAPI spec from: docs/v1.20.0.yaml
✓ Loaded API: PHONE APPLI API (v1.20)

Importing API to API Management: my-apim-instance
  Resource Group: my-rg
  API ID: phoneappli-api
  API Path: /phoneappli
  Environment: sandbox
  Backend URL: https://api-sandbox.phoneappli.net/v1

╭─ Import Result ─────────────────────────╮
│ ✓ API imported successfully!            │
│                                          │
│ API Details:                             │
│   Name: PHONE APPLI API                  │
│   Version: 1.20                          │
│   Path: /phoneappli                      │
│   API ID: phoneappli-api                 │
│   Environment: sandbox                   │
│                                          │
│ Backend URL:                             │
│   https://api-sandbox.phoneappli.net/v1 │
│                                          │
│ Gateway URL:                             │
│   https://my-apim-instance.azure-api... │
╰──────────────────────────────────────────╯

Bicep 直接部署模板

cd infra

# パラメータファイルを編集
vim main.bicepparam

# デプロイ実行
az deployment group create \
  --name phoneappli-api-deployment \
  --resource-group phoneappli-api-mcp-rg \
  --template-file main.bicep \
  --parameters main.bicepparam

技术栈

|类别|技术| |---------|------| |IaC |蓝色二头肌 Azure验证模块(AVM) | 包管理 紫外线 | 验证openapi-spec-validator | |Azure SDK | Azure管理API管理,Azure身份| |CLI |点击,丰富| |代码质量|ruff, mypy |

环境变数

|变量名|说明|默认值| |-------|------|------------| | DEPLOYMENT_NAME 部署名称(也用作资源组名称) phoneappli-api-mcp-{timestamp} | | LOCATION |目标区域| japaneast | | ENVIRONMENT |目标环境(sandboxproduction) | sandbox |

故障排除

uv 缺少

curl -LsSf https://astral.sh/uv/install.sh | sh

yq 缺少

macOS:

brew install yq

Linux:

# Debian/Ubuntu
sudo apt-get install yq

# または、バイナリを直接ダウンロード
wget https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 -O /usr/local/bin/yq
chmod +x /usr/local/bin/yq

Azure CLI 旧版本

az upgrade

Azure bicep 旧版本

az bicep upgrade

API Management 配置时间

API Management Basic v2 进行动态观察时的轴心点。./script/deploy 自动等待完成。

API 导入失败

  1. API Management 已完成配置
  2. OpenAPI Spec 验证是否成功: ./script/validate
  3. Azure 确认登录状态: az account show

开発

添加依赖关系

# 本番依存関係
uv add 

# 開発依存関係
uv add --dev 

代码质量检查

# Linting
uv run ruff check .

# Type checking
uv run mypy src/

# Formatting
uv run ruff format .

运行测试

# すべてのテストを実行
./script/test

# カバレッジレポート付きでテストを実行
./script/test -c

# 詳細な出力でテストを実行
./script/test -v

# 特定のテストファイルを実行
./script/test tests/test_validate.py

# カバレッジと詳細出力の両方
./script/test -c -v

# 直接 pytest を実行する場合
uv run pytest

测试脚本选项:

  • -c, --coverage显示覆盖报告
  • -v, --verbose:详细输出
  • -w, --watch:监视模式(需要pytest-watch)
  • -h, --help:显示帮助消息

许可证

MIT License - 了解更多信息 许可证 来修改标记元素的显示属性。

参考资料

目录标签

目录标签

API集成自动化部署PythonAPI管理本地部署Azure集成OpenAPI验证MCP兼容性

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

session

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiosession部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP