Amazon Location Service MCPサーバー
Amazon Location Service 用の Model Context Protocol (MCP) サーバーです
この MCP サーバーは、場所検索と地理座標を中心に、Amazon Location Service の機能にアクセスするためのツールを提供します。
機能
- 場所の検索: ジオコーディングを使用して場所を検索します
- 場所の詳細取得: PlaceId を指定して特定の場所の詳細を取得します
- リバースジオコーディング: 座標を住所に変換します
- 周辺検索: 指定した位置の近くにある場所を検索します
- 営業中の場所の検索: 現在営業中の場所を検索します
- ルート計算: Amazon Location Service を使用して地点間のルートを計算します
- 経由地点の最適化: Amazon Location Service を使用してルートの経由地点の順序を最適化します
前提条件
要件
- Amazon Location Service が有効な AWS アカウントを持っていること
- Astral または GitHub README から
uvをインストールすること uv python install 3.10を使用して Python 3.10 以降をインストールすること(より新しいバージョンでも可)
インストール
| Kiro | Cursor | VS Code |
|---|---|---|
Amazon Location MCP サーバーを利用する方法は次のとおりです。
設定
MCP 設定ファイルでサーバーを設定します。AWS 全体で MCP を利用する方法はいくつかあり、今後さらに多くの製品への対応を追加していく予定です(例: Kiro の場合は ~/.kiro/settings/mcp.json)。
{
"mcpServers": {
"awslabs.aws-location-mcp-server": {
"command": "uvx",
"args": ["awslabs.aws-location-mcp-server@latest"],
"env": {
"AWS_PROFILE": "your-aws-profile",
"AWS_REGION": "us-east-1",
"FASTMCP_LOG_LEVEL": "ERROR"
},
"disabled": false,
"autoApprove": []
}
}
}
Windows でのインストール
Windows ユーザーの場合、MCP サーバーの設定形式は少し異なります。
{
"mcpServers": {
"awslabs.aws-location-mcp-server": {
"disabled": false,
"timeout": 60,
"type": "stdio",
"command": "uv",
"args": [
"tool",
"run",
"--from",
"awslabs.aws-location-mcp-server@latest",
"awslabs.aws-location-mcp-server.exe"
],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR",
"AWS_PROFILE": "your-aws-profile",
"AWS_REGION": "us-east-1"
}
}
}
}
一時的な認証情報の使用
一時的な認証情報(AWS STS、IAM ロール、フェデレーションから取得したものなど)を使用する場合は次のとおりです。
{
"mcpServers": {
"awslabs.aws-location-mcp-server": {
"command": "uvx",
"args": ["awslabs.aws-location-mcp-server@latest"],
"env": {
"AWS_ACCESS_KEY_ID": "your-temporary-access-key",
"AWS_SECRET_ACCESS_KEY": "your-temporary-secret-key",
"AWS_SESSION_TOKEN": "your-session-token",
"AWS_REGION": "us-east-1",
"FASTMCP_LOG_LEVEL": "ERROR"
},
"disabled": false,
"autoApprove": []
}
}
}
Docker の設定
docker build -t awslabs/aws-location-mcp-server . でビルドした後、次のように設定します。
{
"mcpServers": {
"awslabs.aws-location-mcp-server": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"awslabs/aws-location-mcp-server"
],
"env": {
"AWS_PROFILE": "your-aws-profile",
"AWS_REGION": "us-east-1"
},
"disabled": false,
"autoApprove": []
}
}
}
Docker で一時的な認証情報を使用する場合
{
"mcpServers": {
"awslabs.aws-location-mcp-server": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"awslabs/aws-location-mcp-server"
],
"env": {
"AWS_ACCESS_KEY_ID": "your-temporary-access-key",
"AWS_SECRET_ACCESS_KEY": "your-temporary-secret-key",
"AWS_SESSION_TOKEN": "your-session-token",
"AWS_REGION": "us-east-1"
},
"disabled": false,
"autoApprove": []
}
}
}
環境変数
AWS_PROFILE: 認証情報に使用する AWS CLI プロファイルAWS_REGION: 使用する AWS リージョン(デフォルト: us-east-1)AWS_ACCESS_KEY_IDとAWS_SECRET_ACCESS_KEY: 明示的な AWS 認証情報(AWS_PROFILE の代替)AWS_SESSION_TOKEN: 一時的な認証情報用のセッショントークン(AWS_ACCESS_KEY_ID および AWS_SECRET_ACCESS_KEY と併用)FASTMCP_LOG_LEVEL: ログレベル(ERROR、WARNING、INFO、DEBUG)
ツール
このサーバーは、MCP インターフェースを通じて次のツールを公開します。
search_places
Amazon Location Service のジオコーディング機能を使用して場所を検索します。
search_places(query: str, max_results: int = 5, mode: str = 'summary') -> dict
get_place
一意の場所 ID を使用して特定の場所の詳細を取得します。
get_place(place_id: str, mode: str = 'summary') -> dict
reverse_geocode
リバースジオコーディングを使用して座標を住所に変換します。
reverse_geocode(longitude: float, latitude: float) -> dict
search_nearby
特定の位置の近くにある場所を検索します。オプションで検索半径の拡大が可能です。
search_nearby(longitude: float, latitude: float, radius: int = 500, max_results: int = 5,
query: str = None, max_radius: int = 10000, expansion_factor: float = 2.0,
mode: str = 'summary') -> dict
search_places_open_now
現在営業中の場所を検索します。必要に応じて検索半径を拡大します。
search_places_open_now(query: str, max_results: int = 5, initial_radius: int = 500,
max_radius: int = 50000, expansion_factor: float = 2.0) -> dict
calculate_route
Amazon Location Service を使用して 2 地点間のルートを計算します。
calculate_route(
departure_position: list, # [longitude, latitude]
destination_position: list, # [longitude, latitude]
travel_mode: str = 'Car', # 'Car', 'Truck', 'Walking', or 'Bicycle'
optimize_for: str = 'FastestRoute' # 'FastestRoute' or 'ShortestRoute'
) -> dict
ルートのジオメトリ、距離、所要時間、およびターンバイターンの経路案内を返します。
departure_position: 出発地点の [longitude, latitude] のリスト。destination_position: 目的地の [longitude, latitude] のリスト。travel_mode: 移動手段。'Car'、'Truck'、'Walking'、'Bicycle'のいずれか。optimize_for: ルートの最適化方法。'FastestRoute'または'ShortestRoute'のいずれか。
詳細については AWS ドキュメントを参照してください。
geocode
場所の名前または住所から座標を取得します。
geocode(location: str) -> dict
optimize_waypoints
Amazon Location Service の geo-routes API を使用して経由地点の順序を最適化します。
optimize_waypoints(
origin_position: list, # [longitude, latitude]
destination_position: list, # [longitude, latitude]
waypoints: list, # List of waypoints, each as a dict with at least Position [longitude, latitude]
travel_mode: str = 'Car',
mode: str = 'summary'
) -> dict
最適化された経由地点の順序、総距離、および所要時間を返します。
Amazon Location Service のリソース
このサーバーは、Amazon Location Service の geo-places API とルート計算 API を次の用途に使用します。
- ジオコーディング(住所から座標への変換)
- リバースジオコーディング(座標から住所への変換)
- 場所の検索(名前やカテゴリなどによる場所の検索)
- 場所の詳細(特定の場所に関する情報の取得)
- ルート計算(地点間のルートの検索)
セキュリティに関する考慮事項
- 認証情報の管理には AWS プロファイルを使用してください
- IAM ポリシーを使用して、必要な Amazon Location Service リソースのみにアクセスを制限してください
- セキュリティを強化するために、AWS STS から取得した一時的な認証情報(AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY、AWS_SESSION_TOKEN)を使用してください
- アプリケーションやサービスには、一時的な認証情報を持つ AWS IAM ロールを実装してください
- 認証情報を定期的にローテーションし、一時的な認証情報には実用上可能な限り短い有効期限を使用してください