1NCE API MCP Server について
AI エージェントと 1NCE IoT 接続管理プラットフォームをつなぐ MCP サーバーです。SIM カードや注文を管理するチーム向けに、OAuth 2.0 認証で 1NCE API を利用し、ツール、リソース、定義済みプロンプトを提供します。
主な機能
- 01OAuth 2.0 認証
- 02製品の照会と注文管理
- 03SIM の状態と使用量の確認
- 04SIM 設定の更新と接続リセット
- 05リソースと定義済みプロンプト
活用シーン
- 01利用可能な IoT 接続製品の確認
- 02注文の作成と状況の追跡
- 03SIM の状態、容量、使用量の確認
- 04SIM 設定の更新や接続のリセット
MCP 対応
MCP クライアントに 1NCE の製品、注文、SIM 管理ツールを公開し、SIM 状態や製品のリソース、一般的なタスク向けプロンプトも提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
1NCE IoT Platform MCP Server
AI エージェントが自然言語を通じて 1NCE IoT 接続管理プラットフォームを操作できるようにする、Model Context Protocol(MCP)サーバーです。
概要
このプロジェクトは、IoT 接続を管理するために、大規模言語モデル(LLM)を 1NCE API に接続するミドルウェア層を提供します。AI アシスタントは次の操作を行えます。
- 製品情報の取得
- 注文の管理
- SIM カードのステータスの監視
- データおよび SMS の利用枠の確認
- SIM の設定の更新
- 接続情報の表示
これらの機能を Model Context Protocol を通じて公開することで、AI エージェントは自然言語を使って IoT インフラストラクチャを操作でき、接続デバイスの管理を簡素化できます。
機能
- 認証:1NCE API を利用した OAuth 2.0 トークンベースの安全な認証
- 製品管理:利用可能な IoT 接続製品の照会
- 注文管理:注文の作成と追跡
- SIM 管理:SIM カードの監視と設定
- リソース:SIM のステータスと製品データへの直接アクセス
- プロンプト:一般的なタスク向けの事前定義済みインタラクションテンプレート
前提条件
- Python 3.8+
- FastMCP v2
- API 認証情報を持つ 1NCE アカウント
インストール
- このリポジトリをクローンします
git clone https://github.com/yourusername/1nce-mcp-server.git
cd 1nce-mcp-server
- 必要な依存関係をインストールします
pip install fastmcp httpx
- 1NCE API 認証情報を環境変数に設定します
export ONCE_CLIENT_ID="your_client_id"
export ONCE_CLIENT_SECRET="your_client_secret"
使用方法
FastMCP を使ったインストール
この MCP サーバーを使うには、FastMCP CLI を使ってインストールする方法を推奨します。
fastmcp install 1nce_mcp.py
これにより、Claude Desktop を含む、互換性のある MCP クライアントからサーバーを利用できるようになります。
直接実行する
開発またはテストでは、サーバーを直接実行できます。
python 1nce_mcp.py
クライアントで使用する
FastMCP クライアントを使って、プログラムからサーバーを操作できます。
from fastmcp import Client
async with Client("1nce_mcp.py") as client:
# Get list of products
products = await client.call_tool("get_all_products")
print(products)
# Check SIM status
sim_status = await client.call_tool("get_sim_status", {"iccid": "your_sim_iccid"})
print(sim_status)
利用可能なツール
製品ツール
get_all_products()- 利用可能なすべての 1NCE 製品を取得します
注文ツール
get_all_orders(page, page_size, sort)- ページネーション付きで注文一覧を取得しますget_order_by_number(order_number)- 指定した注文の詳細を取得しますcreate_order(products, delivery_address, customer_reference)- 新しい注文を作成します
SIM ツール
get_all_sims(page, page_size, query, sort)- フィルタリングオプションを指定して SIM カードを一覧表示しますget_sim_details(iccid)- 指定した SIM の詳細情報を取得しますget_sim_status(iccid)- SIM の接続ステータスを確認しますget_sim_data_quota(iccid)- SIM の残りデータ利用枠を確認しますget_sim_sms_quota(iccid)- SIM の残り SMS 利用枠を確認しますupdate_sim_status(iccid, status, label, imei_lock)- SIM の設定を更新しますget_sim_usage(iccid, start_date, end_date)- 指定期間の利用統計を取得しますget_sim_events(iccid, page, page_size, sort)- SIM のイベント履歴を取得しますreset_sim_connectivity(iccid)- SIM の接続リセットを実行します
使用例
SIM のステータスを確認する
from fastmcp import Client
async with Client("1nce_mcp.py") as client:
# Check SIM status
sim_status = await client.call_tool("get_sim_status", {
"iccid": "8988303000123456789"
})
print(f"SIM Status: {sim_status.get('status')}")
# Check data quota
quota = await client.call_tool("get_sim_data_quota", {
"iccid": "8988303000123456789"
})
print(f"Remaining data: {quota.get('volume')} MB")
print(f"Expires on: {quota.get('expiry_date')}")
注文を作成する
from fastmcp import Client
async with Client("1nce_mcp.py") as client:
# Create an order for 5 SIM cards
order = await client.call_tool("create_order", {
"products": [{"productId": 1001, "quantity": 5}],
"customer_reference": "IoT-Project-XYZ"
})
print(f"Order created with number: {order.get('order_number')}")
セキュリティ
- MCP サーバーを使用するには、1NCE API 認証情報を環境変数に設定する必要があります
- OAuth 2.0 と Basic Authentication を使用して認証します
- アクセストークンは動的に取得され、永続的には保存されません
- サーバーが公開する API 操作は必要なものに限定されており、書き込み操作より読み取り操作を優先します
コントリビューション
コントリビューションを歓迎します!お気軽に Pull Request を送信してください。
ライセンス
このプロジェクトは MIT License の下でライセンスされています。詳細は LICENSE ファイルをご覧ください。
謝辞
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。