MCP Server Example for Indonesian Customs Tariff & Hascode API について
この教育用サンプルは、Hascode APIを使ってインドネシアの関税とHSコードのデータを扱うMCPサーバーの構築方法を示します。AIクライアントに通関情報を提供する方法を学ぶ開発者向けです。
主な機能
- 01Hascode API連携の例
- 02関税とHSコード情報の取得
- 03MCPのリソース、ツール、プロンプトの例
- 04通関データをAIクライアントに接続
活用シーン
- 01特定分野のMCPサーバー構築を学ぶ
- 02インドネシアの関税検索を試作する
- 03HSコードデータをAIクライアントに提供する
MCP 対応
関税表とHSコードデータをMCPのリソースやツールとして公開し、一般的な通関質問向けのプロンプトを用意する例です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
インドネシアの関税・Hascode API 向け MCP サーバーの例
このリポジトリでは、インドネシアの関税データとHascode API の統合を題材に、教育目的に合わせてカスタマイズした**Model Context Protocol(MCP)**サーバーの実装例を紹介しています。このプロジェクトでは、Hascode などの API に接続し、AI モデル向けに関税や HS コードの情報を取得する機能的な MCP サーバーの構築方法を説明します。
MCP とは?
MCP(Model Context Protocol)は、大規模言語モデル(LLM)に構造化されたコンテキストを提供するために設計されたオープン標準です。MCP は AI 用の USB-C ポートのようなものと考えることができます。関税 API、HS コード検索、物流データベースなど、さまざまな外部データソースにモデルを接続するための標準化された方法を提供します。
主なメリット
- リアルタイムの HS コードや関税率情報を提供するHascode APIなどのサービス向けに、事前構築された統合機能を利用できます
- さまざまな LLM プロバイダー(OpenAI、Anthropic など)に対応できる柔軟性があります
- 輸入・輸出関税体系などの規制対象データに安全にアクセスするための、明確な抽象化レイヤーを備えています
アーキテクチャの概要
MCP は、複数のデータアクセスポイントに対応するクライアント・サーバーアーキテクチャを採用しています。
- MCP ホスト:構造化された関税データを要求する Claude Desktop などの AI ツールや、企業向けアシスタントです
- MCP クライアント:サーバーとの 1 対 1 の通信を処理するプロトコル仲介役です
- MCP サーバー:API 経由でインドネシアの関税を取得するなど、データや機能を提供する軽量なコンポーネントです
- データソース:ローカルファイル(例:PDF の関税表)や、Hascode などのリモート API、税関データベースが含まれます
MCP の主な概念
MCP サーバーは通常、次の 3 種類の機能を提供します。
- リソース:HS コードのデータセット、関税表、API レスポンス(例:特定の製品に対する関税率)です
- ツール:LLM が最新の税関情報を取得するために呼び出せる API 関数です
- プロンプト:事前設定済みのテンプレートです(例:「インドネシアで HS コード 8703.23.91.00 に適用される輸入関税はいくらですか?」)
システム要件
- Python 3.10 以降
- MCP SDK 1.2.0 以降
uvパッケージマネージャー
はじめに
uv パッケージマネージャーのインストール
MacOS/Linux の場合:
curl -LsSf https://astral.sh/uv/install.sh | sh
その後、ターミナルを再起動して uv コマンドを有効にします。
プロジェクトのセットアップ
- MCP プロジェクトを初期化します:
uv init mcp-server
cd mcp-server
uv venv
source .venv/bin/activate # Use .venv\Scripts\activate on Windows
uv add "mcp[cli]" httpx
- メインのサーバーファイルを作成します:
touch main.py
例:Hascode API との統合
main.py では、Hascode を使って関税データを取得するリソースを定義できます:
import httpx
from mcp import Resource
class HsCodeTariffResource(Resource):
def read(self, hs_code: str):
response = httpx.get(f"https://api.hascode.id/tariff?code={hs_code}")
return response.json()
サーバーの実行
サーバーを起動します:
uv run main.py
Claude Desktop への接続
- Claude Desktop をインストールします
- 次の場所にある設定ファイルを編集します:
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"mcp-server": {
"command": "uv",
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/YOUR/mcp-server",
"run",
"main.py"
]
}
}
}
- Claude Desktop を再起動します
トラブルシューティング
Claude Desktop がサーバーを検出できない場合:
- 設定ファイルのパスと構文を確認します
- すべてのディレクトリに絶対パスを使用します
uvがインストールされ、正常に動作していることを確認します- Claude のログで接続に関する問題を確認します
ライセンス
このプロジェクトは MIT License のもとでライセンスされています。詳細については、LICENSE ファイルを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。