AWS ナレッジベース取得 MCP サーバー
Bedrock エージェント ランタイムを使用して AWS ナレッジベースから情報を取得するための MCP サーバー実装。
特徴
- RAG (Retrieval-Augmented Generation) : クエリとナレッジベース ID に基づいて、AWS ナレッジベースからコンテキストを取得します。
- 複数の結果の取得をサポート: カスタマイズ可能な数の結果を取得するオプション。
ツール
- aws_kb から取得
- AWS ナレッジベースを使用して取得操作を実行します。
- 入力:
query
(文字列): 取得のための検索クエリ。knowledgeBaseId
(文字列): AWS ナレッジベースの ID。n
(数値、オプション): 取得する結果の数 (デフォルト: 3)。
- 応答形式:
- 応答では、次の 2 つの個別のコンテンツ項目が返されます。
- ナレッジ ベースからの生のコンテキストを含むテキスト項目。
- メタデータ (ID、ファイル名、スニペット、スコア) を含む構造化 RAG ソースを含む JSON アイテム。
- この分離により、結果をより柔軟に処理できるようになります。
構成
AWS認証情報の設定
AWS 認証情報を構成するには、次の 2 つのオプションがあります。
オプション1: IAMアクセスキー
- AWS マネジメントコンソールから AWS アクセスキー ID、シークレットアクセスキー、リージョンを取得します。
- これらの資格情報に、Bedrock エージェント ランタイム操作に対する適切な権限があることを確認します。
- 以下の設定例に示すように環境変数を設定します。
- 一時的な認証情報の場合は、
AWS_SESSION_TOKEN
環境変数を使用してセッショントークンを提供することもできます。
オプション2: AWS SSO (シングルサインオン)
サーバーは AWS SSO 認証情報をサポートするようになりました。
- SSO プロファイルを使用して AWS CLI を設定します:
aws configure sso
- MCP サーバー構成では、AWS_REGION 環境変数のみを設定します。
- サーバーは、SSO 資格情報を含むデフォルトの資格情報プロバイダー チェーンを使用します。
オプション: デフォルトのナレッジベース ID を構成する
オプションで、デフォルトで使用する 1 つ以上のナレッジ ベース ID を指定できます。
- JSON 形式でナレッジ ベース ID の配列を作成します。
- これを設定内の AWS_KB_IDS 環境変数として設定します。
- これを構成すると、
knowledgeBaseId
パラメータはツール内でオプションになります。
Claude Desktopでの使用
これをclaude_desktop_config.json
に追加します:
IAM アクセスキーを使用した Docker
{
"mcpServers": {
"aws-kb-retrieval": {
"command": "docker",
"args": [ "run", "-i", "--rm", "-e", "AWS_ACCESS_KEY_ID", "-e", "AWS_SECRET_ACCESS_KEY", "-e", "AWS_REGION", "-e", "AWS_KB_IDS", "mcp/aws-kb-retrieval-server" ],
"env": {
"AWS_ACCESS_KEY_ID": "YOUR_ACCESS_KEY_HERE",
"AWS_SECRET_ACCESS_KEY": "YOUR_SECRET_ACCESS_KEY_HERE",
"AWS_SESSION_TOKEN": "YOUR_OPTIONAL_SESSION_ID_FOR_SSO_TEMPORARY_CREDENTIALS_HERE",
"AWS_REGION": "YOUR_AWS_REGION_HERE",
"AWS_KB_IDS": "[\"kb-12345\", \"kb-67890\"]"
}
}
}
}
AWS SSO を使用した Docker
{
"mcpServers": {
"aws-kb-retrieval": {
"command": "docker",
"args": [ "run", "-i", "--rm", "-e", "AWS_REGION", "-e", "AWS_KB_IDS", "-v", "${HOME}/.aws:/root/.aws", "mcp/aws-kb-retrieval-server" ],
"env": {
"AWS_ACCESS_KEY_ID": "YOUR_ACCESS_KEY_HERE",
"AWS_SECRET_ACCESS_KEY": "YOUR_SECRET_ACCESS_KEY_HERE",
"AWS_SESSION_TOKEN": "YOUR_OPTIONAL_SESSION_ID_FOR_SSO_TEMPORARY_CREDENTIALS_HERE",
"AWS_REGION": "YOUR_AWS_REGION_HERE",
"AWS_KB_IDS": "[\"kb-12345\", \"kb-67890\"]"
}
}
}
}
IAM アクセスキーを使用した NPX
{
"mcpServers": {
"aws-kb-retrieval": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-aws-kb-retrieval"
],
"env": {
"AWS_ACCESS_KEY_ID": "YOUR_ACCESS_KEY_HERE",
"AWS_SECRET_ACCESS_KEY": "YOUR_SECRET_ACCESS_KEY_HERE",
"AWS_SESSION_TOKEN": "YOUR_OPTIONAL_SESSION_ID_FOR_SSO_TEMPORARY_CREDENTIALS_HERE",
"AWS_REGION": "YOUR_AWS_REGION_HERE",
"AWS_KB_IDS": "[\"kb-12345\", \"kb-67890\"]"
}
}
}
}
AWS SSO を使用した NPX
{
"mcpServers": {
"aws-kb-retrieval": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-aws-kb-retrieval"
],
"env": {
"AWS_ACCESS_KEY_ID": "YOUR_ACCESS_KEY_HERE",
"AWS_SECRET_ACCESS_KEY": "YOUR_SECRET_ACCESS_KEY_HERE",
"AWS_SESSION_TOKEN": "YOUR_OPTIONAL_SESSION_ID_FOR_SSO_TEMPORARY_CREDENTIALS_HERE",
"AWS_REGION": "YOUR_AWS_REGION_HERE",
"AWS_KB_IDS": "[\"kb-12345\", \"kb-67890\"]"
}
}
}
}
ローカルリポジトリ(クローン/ビルドされたリポジトリから)
{
"mcpServers": {
"aws-kb": {
"command": "node",
"args": [
"/path/to/mcp-aws-kb/dist/index.js"
],
"env": {
"AWS_ACCESS_KEY_ID": "YOUR_ACCESS_KEY_HERE",
"AWS_SECRET_ACCESS_KEY": "YOUR_SECRET_ACCESS_KEY_HERE",
"AWS_SESSION_TOKEN": "YOUR_OPTIONAL_SESSION_ID_FOR_SSO_TEMPORARY_CREDENTIALS_HERE",
"AWS_REGION": "YOUR_AWS_REGION_HERE",
"AWS_KB_IDS": "[\"kb-12345\", \"kb-67890\"]"
},
"disabled": false,
"autoApprove": [
"retrieve_from_aws_kb"
],
"timeout": 120
}
}
}
建物
ドッカー:
docker build -t mcp/aws-kb-retrieval -f src/aws-kb-retrieval-server/Dockerfile .
ライセンス
このMCPサーバーはMITライセンスに基づいてライセンスされています。つまり、MITライセンスの条件に従って、ソフトウェアを自由に使用、改変、配布することができます。詳細については、プロジェクトリポジトリのLICENSEファイルをご覧ください。
このREADMEでは、サーバーパッケージの名前が@modelcontextprotocol/server-aws-kb-retrieval
であることを前提としています。パッケージ名とインストールの詳細が異なる場合は、設定に合わせて調整してください。また、サーバースクリプトが正しくビルドされていること、およびすべての依存関係がpackage.json
で適切に管理されていることを確認してください。