Tata kelola MCP untuk Pengembang Q - Amazon Q Developer

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

Tata kelola MCP untuk Pengembang Q

Pelanggan pro-tier yang menggunakan IAM Identity Center sebagai metode masuk dapat mengontrol akses MCP untuk pengguna dalam organisasi mereka. Secara default, pengguna Anda dapat menggunakan server MCP apa pun di klien Q mereka. Sebagai administrator, Anda memiliki kemampuan untuk sepenuhnya menonaktifkan penggunaan server MCP oleh pengguna Anda, atau menentukan daftar server MCP yang diperiksa yang diizinkan digunakan oleh pengguna Anda.

Anda mengontrol pembatasan ini menggunakan on/off sakelar MCP dan registri MCP. Sakelar MCP dan atribut registri adalah bagian dari profil Pengembang Q, yang dapat didefinisikan di tingkat organisasi atau pada tingkat akun, dengan profil tingkat akun menggantikan profil tingkat organisasi. Anda dapat menentukan kebijakan MCP default untuk organisasi Anda dan menggantinya untuk akun tertentu; misalnya, menonaktifkan MCP untuk organisasi tetapi mengaktifkannya dengan daftar izin untuk tim (akun) tertentu.

catatan

Baik sakelar dan pengaturan registri diberlakukan di sisi klien. Ketahuilah bahwa pengguna akhir Anda dapat menghindarinya.

Menonaktifkan MCP untuk organisasi Anda

Untuk menonaktifkan MCP untuk akun atau organisasi Anda:

  1. Buka konsol Kiro.

  2. Pilih Pengaturan.

  3. Pilih tab Q Developer.

  4. Alihkan Model Context Protocol (MCP) ke Off.

Menentukan daftar izin MCP untuk organisasi Anda

Untuk mengontrol server MCP mana yang dapat diakses pengguna Anda, buat file JSON dengan server yang diizinkan, sajikan melalui HTTPS, dan tambahkan URL ke profil Pengembang Q Anda. Klien Q Developer yang menggunakan profil ini memungkinkan pengguna untuk mengakses hanya server MCP di daftar izin Anda.

Menentukan URL registri MCP

  1. Buka konsol Kiro.

  2. Pilih Pengaturan.

  3. Pilih tab Q Developer.

  4. Pastikan Protokol Konteks Model (MCP) Aktifkan.

  5. Di bidang URL Registri MCP, pilih Edit.

  6. Masukkan URL file JSON registri MCP yang berisi server MCP yang terdaftar diizinkan.

  7. Pilih Simpan.

URL registri MCP dienkripsi baik dalam perjalanan maupun saat istirahat sesuai dengan kebijakan enkripsi data kami.

Format file registri MCP

Format file JSON registri adalah bagian dari skema server JSON dalam standar registri MCP v0.1. Definisi skema JSON untuk subset yang didukung oleh Q Developer tersedia di bagian skema registri di akhir dokumen ini.

Contoh berikut menunjukkan file registri MCP yang berisi kedua remote (HTTP) dan definisi server MCP lokal (stdio).

{ "servers": [ { "server": { "name": "my-remote-server", "title": "My server", "description": "My server description", "version": "1.0.0", "remotes": [ { "type": "streamable-http", "url": "https://acme.com/my-server", "headers": [ { "name": "X-My-Header", "value": "SomeValue" } ] } ] } }, { "server": { "name": "my-local-server", "title": "My server", "description": "My server description", "version": "1.0.0", "packages": [ { "registryType": "npm", "registryBaseUrl": "https://npm.acme.com", "identifier": "@acme/my-server", "transport": { "type": "stdio" }, "runtimeArguments": [ { "type": "positional", "value": "-q" } ], "packageArguments": [ { "type": "positional", "value": "start" } ], "environmentVariables": [ { "name": "ENV_VAR", "value": "ENV_VAR_VALUE" } ] } ] } } ] }

Tabel berikut mencantumkan properti untuk file JSON registri. Semua properti adalah wajib, kecuali dinyatakan lain. Lihat bagian skema registri untuk skema JSON lengkap.

Atribut bersarang tampak menjorok dari induknya. Misalnya, “header” adalah atribut anak dari “remote”, dan “name” dan “value” adalah atribut anak dari “header”.

Atribut Deskripsi Opsional? Nilai contoh

Atribut umum

name

Nama server. Harus unik dalam file registri yang diberikan.

"aws-ccapi-mcp"

title

Nama server yang dapat dibaca manusia.

Ya

“AWS CC API”

deskripsi

Deskripsi server.

“Kelola infra AWS melalui bahasa alami.”

versi

Versi server. Versi semantik (x.y.z) sangat disarankan.

“1.0.2"

Atribut server jarak jauh (HTTP)

remote

Array dengan tepat satu entri yang menentukan titik akhir jarak jauh.

-

  jenis

Harus salah satu dari “streamable-http” atau “sse”.

“streamable-http”

  url

URL titik akhir server MCP.

“https://mcp.figma.com/mcp”

  headers

Array header HTTP untuk disertakan dalam setiap permintaan.

Ya

-

    name

Nama header HTTP.

“Otorisasi”

    nilai

Nilai header HTTP.

“Pembawa MF_9.B5F-4.1Jqm”

Atribut server lokal (stdio)

paket

Array dengan tepat satu entri yang berisi definisi server MCP.

-

  RegistryType

Harus salah satu dari “npm”, “pypi”, atau “oci”.

Pelari paket berikut digunakan untuk mengunduh dan menjalankan paket server MCP:

  • Untuk tipe registri “npm”, runner “npx” digunakan

  • Untuk “pypi”, “uvx” digunakan

  • Untuk “oci”, “docker” digunakan

Mesin klien harus memiliki pelari paket yang sesuai yang sudah diinstal sebelumnya.

“npm”

  registryBaseUrl

URL registri paket.

Ya

"https://npm.acme.com"

  pengenal

Pengidentifikasi paket server.

“@acme /server-saya”

  transport

Objek dengan tepat satu properti, “type”.

-

    jenis

Harus “stdio”.

“stdio”

  RuntimeArguments

Array argumen yang disediakan untuk runtime, yaitu, ke npx, uvx atau docker.

Ya

-

    jenis

Harus “posisional”.

“posisi”

    nilai

Nilai argumen runtime.

“-q”

  PaketArguments

Array argumen yang diberikan ke server MCP.

Ya

-

    jenis

Harus “posisional”.

“posisi”

    nilai

Nilai argumen Package.

“mulai”

  Variabel Lingkungan

Array env vars untuk disetel sebelum memulai server.

Ya

-

    name

Nama variabel lingkungan.

“LOG_LEVEL”

    nilai

Nilai variabel lingkungan.

“INFO”

Melayani file registri MCP

Sajikan file JSON registri MCP melalui HTTPS menggunakan server web apa pun, seperti Amazon S3, Apache, atau nginx. URL harus dapat diakses oleh klien Q Developer di komputer pengguna Anda tetapi dapat bersifat pribadi untuk jaringan perusahaan Anda.

Titik akhir HTTPS harus memiliki sertifikat SSL yang valid yang ditandatangani oleh Otoritas Sertifikat tepercaya. Sertifikat yang ditandatangani sendiri tidak didukung.

Q Developer mengambil registri MCP saat startup dan setiap 24 jam. Selama sinkronisasi berkala, jika server MCP yang diinstal secara lokal tidak lagi ada di registri, Q Developer menghentikan server itu dan mencegah pengguna menambahkannya kembali. Jika server yang diinstal secara lokal memiliki versi yang berbeda dari server dalam registri, Q Developer meluncurkan kembali server dengan versi yang ditentukan dalam registri.

Plugin Q Pengembang

Ketika pengguna meluncurkan Q Developer, ia memeriksa apakah URL registri didefinisikan dalam profil. Jika demikian, ia mengambil JSON registri di URL itu dan memberlakukan bahwa pengguna hanya dapat menggunakan server MCP yang ditentukan dalam registri. Ketika pengguna menambahkan server MCP, Q Developer menampilkan daftar server dari registri.

Screenshot yang menunjukkan penambahan server MCP yang didefinisikan dalam registri.

Parameter server MCP Registry (URL, pengenal paket, RuntimeArguments, dan sebagainya) adalah read-only. Namun, pengguna dapat:

  1. Sesuaikan izin alat MCP (“Minta untuk menjalankan”, “Selalu jalankan”, atau “Tolak”).

  2. Pilih lingkup server MCP (Global atau Workspace).

  3. Ubah batas waktu permintaan.

  4. Tentukan variabel lingkungan tambahan untuk server MCP lokal.

  5. Tentukan header HTTP tambahan untuk server MCP jarak jauh.

catatan

Variabel lingkungan yang ditentukan pengguna atau header HTTP mengesampingkan definisi registri. Ini memungkinkan pengguna untuk menentukan atribut khusus untuk pengaturan mereka, seperti kunci otentikasi atau jalur folder lokal.

Skema JSON registri MCP

Skema JSON berikut mendefinisikan format file registri MCP yang didukung oleh Q Developer. Anda dapat menggunakan skema ini untuk memvalidasi file registri apa pun yang Anda buat.

{ "$schema": "https://json-schema.org/draft-07/schema", "properties": { "servers": { "type": "array", "items": { "type": "object", "properties": { "server": { "$ref": "#/definitions/ServerDetail" } }, "required": [ "server" ] } } }, "definitions": { "ServerDetail": { "properties": { "name": { "description": "Server name. Must be unique within a given registry file.", "example": "weather-mcp", "maxLength": 200, "minLength": 3, "pattern": "^[a-zA-Z0-9._-]+$", "type": "string" }, "title": { "description": "Optional human-readable title or display name for the MCP server. MCP subregistries or clients MAY choose to use this for display purposes.", "example": "Weather API", "maxLength": 100, "minLength": 1, "type": "string" }, "description": { "description": "Clear human-readable explanation of server functionality. Should focus on capabilities, not implementation details.", "example": "MCP server providing weather data and forecasts via OpenWeatherMap API", "maxLength": 100, "minLength": 1, "type": "string" }, "version": { "description": "Version string for this server. SHOULD follow semantic versioning (e.g., '1.0.2', '2.1.0-alpha'). Equivalent of Implementation.version in MCP specification. Non-semantic versions are allowed but may not sort predictably. Version ranges are rejected (e.g., '^1.2.3', '~1.2.3', '\u003e=1.2.3', '1.x', '1.*').", "example": "1.0.2", "maxLength": 255, "type": "string" }, "packages": { "items": { "$ref": "#/definitions/Package" }, "type": "array" }, "remotes": { "items": { "anyOf": [ { "$ref": "#/definitions/StreamableHttpTransport" }, { "$ref": "#/definitions/SseTransport" } ] }, "type": "array" } }, "required": [ "name", "description", "version" ], "type": "object" }, "Package": { "properties": { "registryType": { "description": "Registry type indicating how to download packages (e.g., 'npm', 'pypi', 'oci')", "enum": [ "npm", "pypi", "oci" ], "type": "string" }, "registryBaseUrl": { "description": "Base URL of the package registry", "examples": [ "https://registry.npmjs.org", "https://pypi.org", "https://docker.io" ], "format": "uri", "type": "string" }, "identifier": { "description": "Package identifier - either a package name (for registries) or URL (for direct downloads)", "examples": [ "@modelcontextprotocol/server-brave-search", "https://github.com/example/releases/download/v1.0.0/package.mcpb" ], "type": "string" }, "transport": { "anyOf": [ { "$ref": "#/definitions/StdioTransport" }, { "$ref": "#/definitions/StreamableHttpTransport" }, { "$ref": "#/definitions/SseTransport" } ], "description": "Transport protocol configuration for the package" }, "runtimeArguments": { "description": "A list of arguments to be passed to the package's runtime command (such as docker or npx).", "items": { "$ref": "#/definitions/PositionalArgument" }, "type": "array" }, "packageArguments": { "description": "A list of arguments to be passed to the package's binary.", "items": { "$ref": "#/definitions/PositionalArgument" }, "type": "array" }, "environmentVariables": { "description": "A mapping of environment variables to be set when running the package.", "items": { "$ref": "#/definitions/KeyValueInput" }, "type": "array" } }, "required": [ "registryType", "identifier", "transport" ], "type": "object" }, "StdioTransport": { "properties": { "type": { "description": "Transport type", "enum": [ "stdio" ], "example": "stdio", "type": "string" } }, "required": [ "type" ], "type": "object" }, "StreamableHttpTransport": { "properties": { "type": { "description": "Transport type", "enum": [ "streamable-http" ], "example": "streamable-http", "type": "string" }, "url": { "description": "URL template for the streamable-http transport. Variables in {curly_braces} reference argument valueHints, argument names, or environment variable names. After variable substitution, this should produce a valid URI.", "example": "https://api.example.com/mcp", "type": "string" }, "headers": { "description": "HTTP headers to include", "items": { "$ref": "#/definitions/KeyValueInput" }, "type": "array" } }, "required": [ "type", "url" ], "type": "object" }, "SseTransport": { "properties": { "type": { "description": "Transport type", "enum": [ "sse" ], "example": "sse", "type": "string" }, "url": { "description": "Server-Sent Events endpoint URL", "example": "https://mcp-fs.example.com/sse", "format": "uri", "type": "string" }, "headers": { "description": "HTTP headers to include", "items": { "$ref": "#/definitions/KeyValueInput" }, "type": "array" } }, "required": [ "type", "url" ], "type": "object" }, "PositionalArgument": { "properties": { "type": { "enum": [ "positional" ], "example": "positional", "type": "string" }, "value": { "description": "The value for the input.", "type": "string" } }, "required": [ "type", "value" ], "type": "object" }, "KeyValueInput": { "properties": { "name": { "description": "Name of the header or environment variable.", "example": "SOME_VARIABLE", "type": "string" }, "value": { "description": "The value for the input.", "type": "string" } }, "required": [ "name" ], "type": "object" } }, "required": [ "servers" ], "type": "object" }