list_knowledge_bases
Retrieve all available Amazon Bedrock Knowledge Bases to manage RAG data sources, document ingestion, and query configurations.
Instructions
すべてのAmazon Bedrock Knowledge Baseの一覧を取得します。
Returns: KnowledgeBaseListResponseDict: Knowledge Base一覧 - count: Knowledge Baseの数 - knowledge_bases: Knowledge Baseの詳細情報のリスト
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- Tool registration and handler implementation for listing knowledge bases.
@mcp.tool() # MCPツールとして公開 @handle_errors # エラーハンドリングデコレータを適用 def list_knowledge_bases() -> KnowledgeBaseListResponseDict: """ すべてのAmazon Bedrock Knowledge Baseの一覧を取得します。 Returns: KnowledgeBaseListResponseDict: Knowledge Base一覧 - count: Knowledge Baseの数 - knowledge_bases: Knowledge Baseの詳細情報のリスト """ # BedrockクライアントからすべてのKnowledge Baseを取得 # ページネーションが自動的に処理され、すべてのKnowledge Baseが取得されます knowledge_bases = bedrock_client.list_knowledge_bases() # レスポンスを整形して返す # count: Knowledge Baseの総数 # knowledge_bases: Knowledge Baseの詳細情報のリスト return { "count": len(knowledge_bases), "knowledge_bases": knowledge_bases, } - Implementation of the list_knowledge_bases logic using boto3 paginator.
def list_knowledge_bases(self) -> List[Dict[str, Any]]: """ すべてのKnowledge Baseの一覧を取得します。 ページネーションを使用して、すべてのKnowledge Baseを取得します。 Returns: List[Dict[str, Any]]: Knowledge Baseの詳細情報のリスト 各要素には以下の情報が含まれます: - knowledgeBaseId: Knowledge BaseのID - name: Knowledge Baseの名前 - status: Knowledge Baseのステータス - description: Knowledge Baseの説明(オプション) - updatedAt: 最終更新日時 Raises: ClientError: AWS API呼び出しが失敗した場合 """ try: knowledge_bases = [] # ページネーターを取得(複数ページの結果を自動的に処理) # AWS APIはページネーションを使用して結果を返すため、 # paginatorを使用することで、すべてのページを自動的に処理できます paginator = self.bedrock_agent.get_paginator("list_knowledge_bases") # すべてのページをループして結果を収集 # paginate()メソッドは、すべてのページを順番に返すイテレータを返します # 各ページには、knowledgeBaseSummariesというキーにKnowledge Baseのサマリー情報が含まれます for page in paginator.paginate(): # 各ページからKnowledge Baseサマリーを取得してリストに追加 # ページにknowledgeBaseSummariesキーがない場合(空のページなど)は空リストを返します knowledge_bases.extend(page.get("knowledgeBaseSummaries", [])) # 取得したKnowledge Baseの数をログに記録 logger.info(f"Retrieved {len(knowledge_bases)} knowledge bases") return knowledge_bases except ClientError as e: logger.error(f"Error listing knowledge bases: {e}") raise