View a markdown version of this page

Menggunakan titik akhir MCP Registry - Batu Dasar Amazon AgentCore

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menggunakan titik akhir MCP Registry

Migrasi Sekarang Dibuka

AWS Agen Registry telah diluncurkan di bawah agent-registry namespace baru. Dukungan untuk bedrock-agentcore namespace pratinjau publik akan dihentikan pada 17 September 2026. Untuk petunjuk migrasi, lihat Panduan migrasi registri komprehensif.

Gambaran umum

Setiap registri mengekspos MCP-compatible titik akhir mengikuti spesifikasi 2025-11-25 di situs web Model Context Protocol. Titik akhir mendukung daftar alat dan pemanggilan alat untuk mencari catatan registri.

contoh
AWS Agent Registry namespace
https://agent-registry.<region>.api.aws/registry/<registryId>/mcp
Amazon Bedrock AgentCore namespace (to be deprecated)
https://bedrock-agentcore.<region>.amazonaws.com/registry/<registryId>/mcp

Di agent-registry namespace, titik akhir MCP mengekspos ketiga API bidang data penemuan sebagai alat MCP:

  • search_discoverable_registry_records— Pencarian bahasa alami untuk catatan yang disetujui.

  • list_discoverable_registry_records— Daftar halaman catatan yang disetujui.

  • batch_get_discoverable_registry_record— Pengambilan massal konten rekaman penuh dengan ID catatan.

Di bedrock-agentcore namespace, hanya search_registry_records alat yang diekspos. Tabel berikut menunjukkan definisi alat:

contoh
AWS Agent Registry namespace
Tool name: search_discoverable_registry_records Description: Searches for approved registry records using natural language queries. Returns metadata for matching records. Parameters: - searchQuery (required): string - Natural language search query - maxResults: integer - Maximum number of results to return (1-20, default 10) - filter: object - Optional metadata filter using structured JSON operators. Supports field-level operators ($eq, $ne, $in) and logical operators ($and, $or) on filterable fields (name, recordType, recordVersion). Example: {"recordType": {"$eq": "MCP"}} --- Tool name: list_discoverable_registry_records Description: Returns paginated summaries of approved records in the registry. Summaries include record metadata but not descriptor content. Use batch_get_discoverable_registry_record to fetch full descriptors after identifying the records you need. Parameters: - maxResults: integer - Maximum number of results per page (1-100, default 20) - nextToken: string - Pagination token from a previous response. Omit for the first page. - filters: array - Optional list of filter entries in the form {"name": "<field>", "values": ["<value>"]}. Supported filter names: recordType (valid values: AGENT, MCP, SKILL, CUSTOM) and descriptorType (valid values: a2aAgentCard, mcpServer, agentSkillsDefinition, custom). Duplicate filter names are rejected. If you specify multiple values for a single filter, the values are joined by OR. If you specify multiple filters, the filters are joined by AND. --- Tool name: batch_get_discoverable_registry_record Description: Retrieves the full descriptor content for up to 100 approved records in a single call. Common use case: after identifying records with list_discoverable_registry_records or search_discoverable_registry_records, fetch their full descriptors in one call rather than making one call per record. Parameters: - recordIds (required): array - List of 1-100 record ARNs or IDs to retrieve from the registry. The response returns HTTP 200 even on partial failure. Records that could not be retrieved appear in an errors list with an errorCode (RESOURCE_NOT_FOUND, ACCESS_DENIED, or INTERNAL_ERROR) rather than causing the whole call to fail.
Amazon Bedrock AgentCore namespace (to be deprecated)
Tool name: search_registry_records Description: Searches for registry records using natural language queries. Returns metadata for matching records. Parameters: - searchQuery (required): string - Natural language search query - maxResults: integer - Maximum number of results to return (1-20, default 10) - filter: object - Optional metadata filter using structured JSON operators. Supports field-level operators ($eq, $ne, $in) and logical operators ($and, $or) on filterable fields (name, descriptorType, version). Example: {"descriptorType": {"$eq": "MCP"}}

Anda dapat terhubung ke registri dari klien MCP yang ada, seperti Kiro, Claude, dll.

Sambungkan ke titik akhir MCP OAuth-based registri dari klien MCP yang ada

Izin

Titik akhir MCP akan menggunakan yang sama CustomJWTAuthorizerConfiguration untuk mengotorisasi permintaan masuk.

.well-known/oauth-protected-resourceJalurnya adalah: https://agent-registry.<region>.api.aws/.well-known/oauth-protected-resource/registry/<registryId>/mcp (https://bedrock-agentcore.<region>.amazonaws.com/.well-known/oauth-protected-resource/registry/<registryId>/mcpuntuk registri yang masih ada di bedrock-agentcore namespace).

Klien dapat menemukan metadata dari WWW-Authenticate header juga:

contoh
AWS Agent Registry namespace
www-authenticate: Bearer resource_metadata="https://agent-registry.<region>.api.aws/.well-known/oauth-protected-resource/registry/<registryId>/mcp"
Amazon Bedrock AgentCore namespace (to be deprecated)
www-authenticate: Bearer resource_metadata="https://bedrock-agentcore.<region>.amazonaws.com/.well-known/oauth-protected-resource/registry/<registryId>/mcp"

Setelah Anda memperoleh token akses, Anda dapat memvalidasinya:

contoh
AWS Agent Registry namespace
curl -s -X POST "https://agent-registry.<region>.api.aws/registry/<registryId>/mcp" \ -H "Authorization: Bearer ${ACCESS_TOKEN}" \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_discoverable_registry_records","arguments":{"searchQuery":"weather"}}}'
Amazon Bedrock AgentCore namespace (to be deprecated)
curl -s -X POST "https://bedrock-agentcore.<region>.amazonaws.com/registry/<registryId>/mcp" \ -H "Authorization: Bearer ${ACCESS_TOKEN}" \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_registry_records","arguments":{"searchQuery":"weather"}}}'

Bergantung pada server otorisasi dan persyaratan keamanan organisasi, Anda dapat memilih salah satu pendekatan berikut untuk mengonfigurasi klien MCP Anda:

  1. Token pembawa: gunakan proses terpisah untuk mengambil token pembawa dan mengkonfigurasinya di header klien MCP

  2. Pre-registered klien: buat klien di server otorisasi Anda, dan izinkan daftar klien pada konfigurasi registri.

  3. Registrasi klien dinamis: jika server otorisasi Anda mendukung pendaftaran klien dinamis (DCR), Anda dapat mengizinkan daftar audiens dalam konfigurasi registri.

OAuth-based Pengaturan klien MCP

Gunakan token pembawa

Di sebagian besar IDE, Anda dapat mengonfigurasi token pembawa header otorisasi dalam konfigurasi mcp. Misalnya, Kiro IDE mendukung variabel lingkungan menggunakan ${ENV_VAR} sintaks. Untuk detailnya, lihat Meng amankan koneksi MCP di situs web Kiro. Anda dapat menggunakan contoh berikut:

contoh
AWS Agent Registry namespace
{ "mcpServers": { "my-registry": { "type": "http", "url": "https://agent-registry.<region>.api.aws/registry/<registryId>/mcp", "headers": { "Authorization": "Bearer ${ACCESS_TOKEN}" } } } }
Amazon Bedrock AgentCore namespace (to be deprecated)
{ "mcpServers": { "my-registry": { "type": "http", "url": "https://bedrock-agentcore.<region>.amazonaws.com/registry/<registryId>/mcp", "headers": { "Authorization": "Bearer ${ACCESS_TOKEN}" } } } }

Pre-registered Klien

Anda dapat membuat klien baru berdasarkan pemberian kode otorisasi di server otorisasi Anda, dan menggunakan klien untuk mengakses registri. Misalnya, buat klien di kumpulan pengguna Cognito.

Setelah Anda memiliki ID klien, pastikan Anda mengizinkannya di registri:

contoh
AWS Agent Registry namespace
aws agent-registry-control update-registry \ --registry-id <registryId> \ --discovery-configuration '{ "authorizerConfiguration": { "optionalValue": { "customJWTAuthorizer": { "discoveryUrl": "https://<example-domain>/.well-known/openid-configuration", "allowedClients": ["<client-id>"] } } } }'
Amazon Bedrock AgentCore namespace (to be deprecated)
aws bedrock-agentcore-control update-registry \ --registry-id <registryId> \ --authorizer-configuration '{ "optionalValue": { "customJWTAuthorizer": { "discoveryUrl": "https://<example-domain>/.well-known/openid-configuration", "allowedClients": ["<client-id>"] } } }'

Kemudian Anda dapat mengonfigurasi klien MCP Anda jika mendukung penentuan clientID. Contoh dalam kode Claude:

contoh
AWS Agent Registry namespace
{ "mcpServers": { "pre-registered-registry": { "type": "http", "url": "https://agent-registry.<region>.api.aws/registry/<registryId>/mcp", "oauth": { "clientId": "<client-id>", "callbackPort": "<port-number>" } } } }
Amazon Bedrock AgentCore namespace (to be deprecated)
{ "mcpServers": { "pre-registered-registry": { "type": "http", "url": "https://bedrock-agentcore.<region>.amazonaws.com/registry/<registryId>/mcp", "oauth": { "clientId": "<client-id>", "callbackPort": "<port-number>" } } } }
catatan

Beberapa server otorisasi seperti Auth0 dan Cognito tidak mengizinkan Anda mengonfigurasi berbagai port sebagai URI pengalihan yang diizinkan, jadi Anda perlu mengaturnya secara eksplisit di redirect/callback URL yang diizinkan klien yang telah terdaftar sebelumnya, serta di mcp.json.

Pendaftaran klien dinamis

Sebagian besar aplikasi klien MCP mendukung pendaftaran klien dinamis. Dalam hal ini, Anda tidak harus menentukan allowedClients nilai dalam registri. Sebagai gantinya, Anda dapat memilih untuk mengaturallowedAudience. Nilainya bisa sama dengan registri MCP Anda. Anda harus mengonfigurasi server otorisasi Anda untuk mengeluarkan JWT dengan aud bidang dengan nilai yang sama seperti diallowedAudience.

contoh
AWS Agent Registry namespace
aws agent-registry-control update-registry \ --registry-id <registryId> \ --discovery-configuration '{ "authorizerConfiguration": { "optionalValue": { "customJWTAuthorizer": { "discoveryUrl": "https://<example-domain>/.well-known/openid-configuration", "allowedAudience": ["https://agent-registry.<region>.api.aws/registry/<registryId>/mcp"] } } } }'
Amazon Bedrock AgentCore namespace (to be deprecated)
aws bedrock-agentcore-control update-registry \ --registry-id <registryId> \ --authorizer-configuration '{ "optionalValue": { "customJWTAuthorizer": { "discoveryUrl": "https://<example-domain>/.well-known/openid-configuration", "allowedAudience": ["https://bedrock-agentcore.<region>.amazonaws.com/registry/<registryId>/mcp"] } } }'

Kemudian Anda dapat mengkonfigurasi klien MCP Anda hanya menggunakan url:

contoh
AWS Agent Registry namespace
{ "mcpServers": { "dcr-registry": { "type": "http", "url": "https://agent-registry.<region>.api.aws/registry/<registryId>/mcp" } } }
Amazon Bedrock AgentCore namespace (to be deprecated)
{ "mcpServers": { "dcr-registry": { "type": "http", "url": "https://bedrock-agentcore.<region>.amazonaws.com/registry/<registryId>/mcp" } } }

Kesalahan umum saat Anda mengatur pendaftaran klien dinamis:

  • Anda harus memastikan server otorisasi mendukung pendaftaran klien dinamis.

  • Server otorisasi harus mengeluarkan JWT dengan aud bidang, yang diizinkan di registri Anda. CustomJWTAuthorizerConfiguration

  • Saat ini registri tidak mengembalikan tantangan cakupan di header www-authenticate. Beberapa klien MCP mendukung penentuan secara eksplisit oauthScopes dalam konfigurasi, seperti Kir o.

Sambungkan ke titik akhir MCP IAM-based registri dari klien MCP yang ada

Izin

Untuk inisialisasi MCP dan daftar alat:

contoh
AWS Agent Registry namespace
{ "Effect": "Allow", "Action": "agent-registry:InvokeRegistryMcp", "Resource": "arn:aws:agent-registry:*:<account>:registry/*" }
Amazon Bedrock AgentCore namespace (to be deprecated)
{ "Effect": "Allow", "Action": "bedrock-agentcore:InvokeRegistryMcp", "Resource": "arn:aws:bedrock-agentcore:*:<account>:registry/*" }

Untuk mencari melalui pemanggilan alat MCP, Anda juga perlu:

contoh
AWS Agent Registry namespace
{ "Effect": "Allow", "Action": [ "agent-registry:InvokeRegistryMcp", "agent-registry:SearchDiscoverableRegistryRecords" ], "Resource": "arn:aws:agent-registry:*:<account>:registry/*" }
Amazon Bedrock AgentCore namespace (to be deprecated)
{ "Effect": "Allow", "Action": [ "bedrock-agentcore:InvokeRegistryMcp", "bedrock-agentcore:SearchRegistryRecords" ], "Resource": "arn:aws:bedrock-agentcore:*:<account>:registry/*" }

Anda dapat memverifikasi izin dengan perintah:

contoh
AWS Agent Registry namespace
curl -s -X POST "https://agent-registry.<region>.api.aws/registry/<registryId>/mcp" \ -H "Content-Type: application/json" \ -H "X-Amz-Security-Token: ${AWS_SESSION_TOKEN}" \ --aws-sigv4 "aws:amz:<region>:agent-registry" \ --user "${AWS_ACCESS_KEY_ID}:${AWS_SECRET_ACCESS_KEY}" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_discoverable_registry_records","arguments":{"searchQuery":"weather"}}}'
Amazon Bedrock AgentCore namespace (to be deprecated)
curl -s -X POST "https://bedrock-agentcore.<region>.amazonaws.com/registry/<registryId>/mcp" \ -H "Content-Type: application/json" \ -H "X-Amz-Security-Token: ${AWS_SESSION_TOKEN}" \ --aws-sigv4 "aws:amz:<region>:bedrock-agentcore" \ --user "${AWS_ACCESS_KEY_ID}:${AWS_SECRET_ACCESS_KEY}" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_registry_records","arguments":{"searchQuery":"weather"}}}'

IAM-based Pengaturan klien MCP

Anda dapat menggunakan mcp-proxy-for-aws di situs GitHub web untuk terhubung ke registri. IAM-based Misalnya, di Kiro mcp.json:

contoh
AWS Agent Registry namespace
{ "mcpServers": { "iam-based-registry": { "disabled": false, "type": "stdio", "command": "uvx", "args": [ "mcp-proxy-for-aws@latest", "https://agent-registry.<region>.api.aws/registry/<registryId>/mcp", "--service", "agent-registry", "--region", "<region>", "--profile", "my-profile" ] } } }
Amazon Bedrock AgentCore namespace (to be deprecated)
{ "mcpServers": { "iam-based-registry": { "disabled": false, "type": "stdio", "command": "uvx", "args": [ "mcp-proxy-for-aws@latest", "https://bedrock-agentcore.<region>.amazonaws.com/registry/<registryId>/mcp", "--service", "bedrock-agentcore", "--region", "<region>", "--profile", "my-profile" ] } } }

Kembangkan klien MCP Anda sendiri

Untuk referensi kode lebih lanjut tentang cara memanggil titik akhir MCP Registri, termasuk dari IDE populer seperti Kiro atau Claude Code, silakan merujuk ke referensi kode sampel di repositori kode publik.