[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-google-cloud-database-query-skill":3,"mdc-nzybk9-key":34,"related-repo-google-cloud-database-query-skill":593,"related-org-google-cloud-database-query-skill":603},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":24,"repoUrl":25,"updatedAt":26,"license":27,"forks":28,"topics":29,"repo":30,"sourceUrl":32,"mdContent":33},"database-query-skill","query AlloyDB databases","Query AlloyDB databases via the QueryData API.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"google-cloud","Google Cloud","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fgoogle-cloud.png","GoogleCloudPlatform",[13,17,20,23],{"name":14,"slug":15,"type":16},"Data Analysis","data-analysis","tag",{"name":18,"slug":19,"type":16},"Database","database",{"name":21,"slug":22,"type":16},"SQL","sql",{"name":9,"slug":8,"type":16},6,"https:\u002F\u002Fgithub.com\u002FGoogleCloudPlatform\u002Fcodelabs","2026-08-06T06:09:22.767492",null,5,[],{"repoUrl":25,"stars":24,"forks":28,"topics":31,"description":27},[],"https:\u002F\u002Fgithub.com\u002FGoogleCloudPlatform\u002Fcodelabs\u002Ftree\u002FHEAD\u002Falloydb-ai-nla\u002Fdata_agent\u002Fskills\u002Fdatabase-query-skill","---\nname: database-query-skill\ndescription: Query AlloyDB databases via the QueryData API.\n---\n\n# Database Query Skill\n\nThis skill provides instructions for querying AlloyDB databases in Google Cloud by making direct API calls to the `QueryData` interface.\n\n## Querying Databases using QueryData API\n\n### Step 1: QueryData API Request Structure\nUse the QueryData API to submit natural language prompts using environment parameters (`GOOGLE_CLOUD_PROJECT`, `ALLOYDB_LOCATION`, `ALLOYDB_CLUSTER`, `ALLOYDB_INSTANCE`, `ALLOYDB_DATABASE`, and `QUERYDATA_CONTEXTSET`):\n- **prompt**: The natural language question or instruction.\n- **context**: Contextual information about the data source.\n  - `datasourceReferences`: A mapping of datasource types to their references.\n    - `alloydb`: Reference to an AlloyDB datasource.\n      - `databaseReference`: Database details.\n        - `projectId`: Google Cloud project ID (from `GOOGLE_CLOUD_PROJECT`).\n        - `region`: Region where AlloyDB cluster is located (from `ALLOYDB_LOCATION`).\n        - `clusterId`: ID of the AlloyDB cluster (from `ALLOYDB_CLUSTER`).\n        - `instanceId`: ID of the primary AlloyDB instance (from `ALLOYDB_INSTANCE`).\n        - `databaseId`: Name of the database (from `ALLOYDB_DATABASE`).\n        - `tableIds`: List of database tables included in requests.\n      - `agentContextReference`: Reference to a predefined context set that describes the database schema, rules, and examples.\n        - `contextSetId`: Resource name of the context set (from `QUERYDATA_CONTEXTSET`, formatted as `projects\u002F{project}\u002Flocations\u002F{location}\u002FcontextSets\u002F{contextSetId}`).\n- `generationOptions`: Options to customize the output.\n  - `generateNaturalLanguageAnswer`: Whether to generate a conversational answer.\n  - `generateQueryResult`: Whether to execute the query and return the result rows.\n  - `generateExplanation`: Whether to generate an explanation of how the query was constructed.\n\n### Step 2: Parse and Format the QueryData API Response\nThe `QueryData` API automatically translates the natural language prompt into SQL, executes it against the database, and returns the query results along with a natural language answer.\n\n**Single Execution Rule**: Make **EXACTLY ONE** call to QueryData API per request.\n- Do **NOT** retry, make follow-up calls, or rephrase the prompt if 0 rows are returned.\n- Immediately return whatever response comes back from the first QueryData API call.\n\nParse the JSON response from `QueryData` API and format the response to the user with the following sections:\n\n1. **Generated SQL**: Display `generatedQuery` in a Markdown SQL code block (` ```sql ... ``` `).\n2. **Query Results**: Format `queryResult.columns` and `queryResult.rows` into a clean Markdown table (or indicate 0 rows if empty).\n3. **Natural Language Answer**: Present `naturalLanguageAnswer`.\n\n---\n\n## Troubleshooting Common Errors\n\n### AlloyDB & QueryData\n- **Cluster\u002FInstance Not Found**: Ensure that segments of the resource path match the expected format exactly.\n- **Permissions Error**: Verify that the caller has sufficient IAM permissions (`roles\u002Falloydb.admin` or `roles\u002Falloydb.databaseUser`).\n\n## Reference Directory\n\n- [QueryData API Reference](references\u002Fquerydata_api.md)\n",{"data":35,"body":36},{"name":4,"description":6},{"type":37,"children":38},"root",[39,47,62,69,76,126,380,386,398,415,435,447,520,524,530,536,574,580],{"type":40,"tag":41,"props":42,"children":43},"element","h1",{"id":4},[44],{"type":45,"value":46},"text","Database Query Skill",{"type":40,"tag":48,"props":49,"children":50},"p",{},[51,53,60],{"type":45,"value":52},"This skill provides instructions for querying AlloyDB databases in Google Cloud by making direct API calls to the ",{"type":40,"tag":54,"props":55,"children":57},"code",{"className":56},[],[58],{"type":45,"value":59},"QueryData",{"type":45,"value":61}," interface.",{"type":40,"tag":63,"props":64,"children":66},"h2",{"id":65},"querying-databases-using-querydata-api",[67],{"type":45,"value":68},"Querying Databases using QueryData API",{"type":40,"tag":70,"props":71,"children":73},"h3",{"id":72},"step-1-querydata-api-request-structure",[74],{"type":45,"value":75},"Step 1: QueryData API Request Structure",{"type":40,"tag":48,"props":77,"children":78},{},[79,81,87,89,95,96,102,103,109,110,116,118,124],{"type":45,"value":80},"Use the QueryData API to submit natural language prompts using environment parameters (",{"type":40,"tag":54,"props":82,"children":84},{"className":83},[],[85],{"type":45,"value":86},"GOOGLE_CLOUD_PROJECT",{"type":45,"value":88},", ",{"type":40,"tag":54,"props":90,"children":92},{"className":91},[],[93],{"type":45,"value":94},"ALLOYDB_LOCATION",{"type":45,"value":88},{"type":40,"tag":54,"props":97,"children":99},{"className":98},[],[100],{"type":45,"value":101},"ALLOYDB_CLUSTER",{"type":45,"value":88},{"type":40,"tag":54,"props":104,"children":106},{"className":105},[],[107],{"type":45,"value":108},"ALLOYDB_INSTANCE",{"type":45,"value":88},{"type":40,"tag":54,"props":111,"children":113},{"className":112},[],[114],{"type":45,"value":115},"ALLOYDB_DATABASE",{"type":45,"value":117},", and ",{"type":40,"tag":54,"props":119,"children":121},{"className":120},[],[122],{"type":45,"value":123},"QUERYDATA_CONTEXTSET",{"type":45,"value":125},"):",{"type":40,"tag":127,"props":128,"children":129},"ul",{},[130,142,333],{"type":40,"tag":131,"props":132,"children":133},"li",{},[134,140],{"type":40,"tag":135,"props":136,"children":137},"strong",{},[138],{"type":45,"value":139},"prompt",{"type":45,"value":141},": The natural language question or instruction.",{"type":40,"tag":131,"props":143,"children":144},{},[145,150,152],{"type":40,"tag":135,"props":146,"children":147},{},[148],{"type":45,"value":149},"context",{"type":45,"value":151},": Contextual information about the data source.\n",{"type":40,"tag":127,"props":153,"children":154},{},[155],{"type":40,"tag":131,"props":156,"children":157},{},[158,164,166],{"type":40,"tag":54,"props":159,"children":161},{"className":160},[],[162],{"type":45,"value":163},"datasourceReferences",{"type":45,"value":165},": A mapping of datasource types to their references.\n",{"type":40,"tag":127,"props":167,"children":168},{},[169],{"type":40,"tag":131,"props":170,"children":171},{},[172,178,180],{"type":40,"tag":54,"props":173,"children":175},{"className":174},[],[176],{"type":45,"value":177},"alloydb",{"type":45,"value":179},": Reference to an AlloyDB datasource.\n",{"type":40,"tag":127,"props":181,"children":182},{},[183,294],{"type":40,"tag":131,"props":184,"children":185},{},[186,192,194],{"type":40,"tag":54,"props":187,"children":189},{"className":188},[],[190],{"type":45,"value":191},"databaseReference",{"type":45,"value":193},": Database details.\n",{"type":40,"tag":127,"props":195,"children":196},{},[197,215,232,249,266,283],{"type":40,"tag":131,"props":198,"children":199},{},[200,206,208,213],{"type":40,"tag":54,"props":201,"children":203},{"className":202},[],[204],{"type":45,"value":205},"projectId",{"type":45,"value":207},": Google Cloud project ID (from ",{"type":40,"tag":54,"props":209,"children":211},{"className":210},[],[212],{"type":45,"value":86},{"type":45,"value":214},").",{"type":40,"tag":131,"props":216,"children":217},{},[218,224,226,231],{"type":40,"tag":54,"props":219,"children":221},{"className":220},[],[222],{"type":45,"value":223},"region",{"type":45,"value":225},": Region where AlloyDB cluster is located (from ",{"type":40,"tag":54,"props":227,"children":229},{"className":228},[],[230],{"type":45,"value":94},{"type":45,"value":214},{"type":40,"tag":131,"props":233,"children":234},{},[235,241,243,248],{"type":40,"tag":54,"props":236,"children":238},{"className":237},[],[239],{"type":45,"value":240},"clusterId",{"type":45,"value":242},": ID of the AlloyDB cluster (from ",{"type":40,"tag":54,"props":244,"children":246},{"className":245},[],[247],{"type":45,"value":101},{"type":45,"value":214},{"type":40,"tag":131,"props":250,"children":251},{},[252,258,260,265],{"type":40,"tag":54,"props":253,"children":255},{"className":254},[],[256],{"type":45,"value":257},"instanceId",{"type":45,"value":259},": ID of the primary AlloyDB instance (from ",{"type":40,"tag":54,"props":261,"children":263},{"className":262},[],[264],{"type":45,"value":108},{"type":45,"value":214},{"type":40,"tag":131,"props":267,"children":268},{},[269,275,277,282],{"type":40,"tag":54,"props":270,"children":272},{"className":271},[],[273],{"type":45,"value":274},"databaseId",{"type":45,"value":276},": Name of the database (from ",{"type":40,"tag":54,"props":278,"children":280},{"className":279},[],[281],{"type":45,"value":115},{"type":45,"value":214},{"type":40,"tag":131,"props":284,"children":285},{},[286,292],{"type":40,"tag":54,"props":287,"children":289},{"className":288},[],[290],{"type":45,"value":291},"tableIds",{"type":45,"value":293},": List of database tables included in requests.",{"type":40,"tag":131,"props":295,"children":296},{},[297,303,305],{"type":40,"tag":54,"props":298,"children":300},{"className":299},[],[301],{"type":45,"value":302},"agentContextReference",{"type":45,"value":304},": Reference to a predefined context set that describes the database schema, rules, and examples.\n",{"type":40,"tag":127,"props":306,"children":307},{},[308],{"type":40,"tag":131,"props":309,"children":310},{},[311,317,319,324,326,332],{"type":40,"tag":54,"props":312,"children":314},{"className":313},[],[315],{"type":45,"value":316},"contextSetId",{"type":45,"value":318},": Resource name of the context set (from ",{"type":40,"tag":54,"props":320,"children":322},{"className":321},[],[323],{"type":45,"value":123},{"type":45,"value":325},", formatted as ",{"type":40,"tag":54,"props":327,"children":329},{"className":328},[],[330],{"type":45,"value":331},"projects\u002F{project}\u002Flocations\u002F{location}\u002FcontextSets\u002F{contextSetId}",{"type":45,"value":214},{"type":40,"tag":131,"props":334,"children":335},{},[336,342,344],{"type":40,"tag":54,"props":337,"children":339},{"className":338},[],[340],{"type":45,"value":341},"generationOptions",{"type":45,"value":343},": Options to customize the output.\n",{"type":40,"tag":127,"props":345,"children":346},{},[347,358,369],{"type":40,"tag":131,"props":348,"children":349},{},[350,356],{"type":40,"tag":54,"props":351,"children":353},{"className":352},[],[354],{"type":45,"value":355},"generateNaturalLanguageAnswer",{"type":45,"value":357},": Whether to generate a conversational answer.",{"type":40,"tag":131,"props":359,"children":360},{},[361,367],{"type":40,"tag":54,"props":362,"children":364},{"className":363},[],[365],{"type":45,"value":366},"generateQueryResult",{"type":45,"value":368},": Whether to execute the query and return the result rows.",{"type":40,"tag":131,"props":370,"children":371},{},[372,378],{"type":40,"tag":54,"props":373,"children":375},{"className":374},[],[376],{"type":45,"value":377},"generateExplanation",{"type":45,"value":379},": Whether to generate an explanation of how the query was constructed.",{"type":40,"tag":70,"props":381,"children":383},{"id":382},"step-2-parse-and-format-the-querydata-api-response",[384],{"type":45,"value":385},"Step 2: Parse and Format the QueryData API Response",{"type":40,"tag":48,"props":387,"children":388},{},[389,391,396],{"type":45,"value":390},"The ",{"type":40,"tag":54,"props":392,"children":394},{"className":393},[],[395],{"type":45,"value":59},{"type":45,"value":397}," API automatically translates the natural language prompt into SQL, executes it against the database, and returns the query results along with a natural language answer.",{"type":40,"tag":48,"props":399,"children":400},{},[401,406,408,413],{"type":40,"tag":135,"props":402,"children":403},{},[404],{"type":45,"value":405},"Single Execution Rule",{"type":45,"value":407},": Make ",{"type":40,"tag":135,"props":409,"children":410},{},[411],{"type":45,"value":412},"EXACTLY ONE",{"type":45,"value":414}," call to QueryData API per request.",{"type":40,"tag":127,"props":416,"children":417},{},[418,430],{"type":40,"tag":131,"props":419,"children":420},{},[421,423,428],{"type":45,"value":422},"Do ",{"type":40,"tag":135,"props":424,"children":425},{},[426],{"type":45,"value":427},"NOT",{"type":45,"value":429}," retry, make follow-up calls, or rephrase the prompt if 0 rows are returned.",{"type":40,"tag":131,"props":431,"children":432},{},[433],{"type":45,"value":434},"Immediately return whatever response comes back from the first QueryData API call.",{"type":40,"tag":48,"props":436,"children":437},{},[438,440,445],{"type":45,"value":439},"Parse the JSON response from ",{"type":40,"tag":54,"props":441,"children":443},{"className":442},[],[444],{"type":45,"value":59},{"type":45,"value":446}," API and format the response to the user with the following sections:",{"type":40,"tag":448,"props":449,"children":450},"ol",{},[451,476,502],{"type":40,"tag":131,"props":452,"children":453},{},[454,459,461,467,469,475],{"type":40,"tag":135,"props":455,"children":456},{},[457],{"type":45,"value":458},"Generated SQL",{"type":45,"value":460},": Display ",{"type":40,"tag":54,"props":462,"children":464},{"className":463},[],[465],{"type":45,"value":466},"generatedQuery",{"type":45,"value":468}," in a Markdown SQL code block (",{"type":40,"tag":54,"props":470,"children":472},{"className":471},[],[473],{"type":45,"value":474},"```sql ... ```",{"type":45,"value":214},{"type":40,"tag":131,"props":477,"children":478},{},[479,484,486,492,494,500],{"type":40,"tag":135,"props":480,"children":481},{},[482],{"type":45,"value":483},"Query Results",{"type":45,"value":485},": Format ",{"type":40,"tag":54,"props":487,"children":489},{"className":488},[],[490],{"type":45,"value":491},"queryResult.columns",{"type":45,"value":493}," and ",{"type":40,"tag":54,"props":495,"children":497},{"className":496},[],[498],{"type":45,"value":499},"queryResult.rows",{"type":45,"value":501}," into a clean Markdown table (or indicate 0 rows if empty).",{"type":40,"tag":131,"props":503,"children":504},{},[505,510,512,518],{"type":40,"tag":135,"props":506,"children":507},{},[508],{"type":45,"value":509},"Natural Language Answer",{"type":45,"value":511},": Present ",{"type":40,"tag":54,"props":513,"children":515},{"className":514},[],[516],{"type":45,"value":517},"naturalLanguageAnswer",{"type":45,"value":519},".",{"type":40,"tag":521,"props":522,"children":523},"hr",{},[],{"type":40,"tag":63,"props":525,"children":527},{"id":526},"troubleshooting-common-errors",[528],{"type":45,"value":529},"Troubleshooting Common Errors",{"type":40,"tag":70,"props":531,"children":533},{"id":532},"alloydb-querydata",[534],{"type":45,"value":535},"AlloyDB & QueryData",{"type":40,"tag":127,"props":537,"children":538},{},[539,549],{"type":40,"tag":131,"props":540,"children":541},{},[542,547],{"type":40,"tag":135,"props":543,"children":544},{},[545],{"type":45,"value":546},"Cluster\u002FInstance Not Found",{"type":45,"value":548},": Ensure that segments of the resource path match the expected format exactly.",{"type":40,"tag":131,"props":550,"children":551},{},[552,557,559,565,567,573],{"type":40,"tag":135,"props":553,"children":554},{},[555],{"type":45,"value":556},"Permissions Error",{"type":45,"value":558},": Verify that the caller has sufficient IAM permissions (",{"type":40,"tag":54,"props":560,"children":562},{"className":561},[],[563],{"type":45,"value":564},"roles\u002Falloydb.admin",{"type":45,"value":566}," or ",{"type":40,"tag":54,"props":568,"children":570},{"className":569},[],[571],{"type":45,"value":572},"roles\u002Falloydb.databaseUser",{"type":45,"value":214},{"type":40,"tag":63,"props":575,"children":577},{"id":576},"reference-directory",[578],{"type":45,"value":579},"Reference Directory",{"type":40,"tag":127,"props":581,"children":582},{},[583],{"type":40,"tag":131,"props":584,"children":585},{},[586],{"type":40,"tag":587,"props":588,"children":590},"a",{"href":589},"references\u002Fquerydata_api.md",[591],{"type":45,"value":592},"QueryData API Reference",{"items":594,"total":602},[595],{"slug":4,"name":4,"fn":5,"description":6,"org":596,"tags":597,"stars":24,"repoUrl":25,"updatedAt":26},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[598,599,600,601],{"name":14,"slug":15,"type":16},{"name":18,"slug":19,"type":16},{"name":9,"slug":8,"type":16},{"name":21,"slug":22,"type":16},1,{"items":604,"total":789},[605,623,637,659,673,684,698,715,732,745,761,771],{"slug":606,"name":606,"fn":607,"description":608,"org":609,"tags":610,"stars":620,"repoUrl":621,"updatedAt":622},"kb-search","search and extract local knowledge base documents","Allows listing, searching and extracting information from local knowledge base documents for information about tables\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[611,614,617],{"name":612,"slug":613,"type":16},"Documentation","documentation",{"name":615,"slug":616,"type":16},"Knowledge Base","knowledge-base",{"name":618,"slug":619,"type":16},"Search","search",6749,"https:\u002F\u002Fgithub.com\u002FGoogleCloudPlatform\u002Fknowledge-catalog","2026-07-12T07:38:52.157375",{"slug":624,"name":625,"fn":626,"description":627,"org":628,"tags":629,"stars":620,"repoUrl":621,"updatedAt":636},"knowledgecatalogdiscoveryagent","knowledge_catalog_discovery_agent","search and rank Knowledge Catalog data entries","Analyzes user queries, extracts relevant predicates, and utilizes Knowledge Catalog Search to find and rank the most relevant data entries. Engages with the user throughout the process.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[630,631,632,635],{"name":14,"slug":15,"type":16},{"name":9,"slug":8,"type":16},{"name":633,"slug":634,"type":16},"Knowledge Management","knowledge-management",{"name":618,"slug":619,"type":16},"2026-07-12T07:38:22.196851",{"slug":638,"name":638,"fn":639,"description":640,"org":641,"tags":642,"stars":656,"repoUrl":657,"updatedAt":658},"contributing","contribute to Cloud Foundation Fabric","End-to-end workflow for contributing to Cloud Foundation Fabric: triaging GitHub issues, proactive feature development, validating with tests and Policy Troubleshooter, and submitting sanitized Pull Requests. Use when addressing a Fabric GitHub issue, developing a module or FAST stage change, or preparing a branch for a pull request.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[643,646,649,652,653],{"name":644,"slug":645,"type":16},"Automation","automation",{"name":647,"slug":648,"type":16},"Engineering","engineering",{"name":650,"slug":651,"type":16},"GitHub","github",{"name":9,"slug":8,"type":16},{"name":654,"slug":655,"type":16},"Pull Requests","pull-requests",2062,"https:\u002F\u002Fgithub.com\u002FGoogleCloudPlatform\u002Fcloud-foundation-fabric","2026-07-31T06:23:36.935005",{"slug":660,"name":660,"fn":661,"description":662,"org":663,"tags":664,"stars":656,"repoUrl":657,"updatedAt":672},"fabric-builder","generate Terraform code for Google Cloud","Generates idiomatic Cloud Foundation Fabric (CFF) Terraform code using CFF modules. Use when users ask to create GCP resources, use Fabric modules, or generate Terraform code for Google Cloud.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[665,666,669],{"name":9,"slug":8,"type":16},{"name":667,"slug":668,"type":16},"Infrastructure as Code","infrastructure-as-code",{"name":670,"slug":671,"type":16},"Terraform","terraform","2026-07-12T07:38:23.514555",{"slug":674,"name":674,"fn":675,"description":676,"org":677,"tags":678,"stars":656,"repoUrl":657,"updatedAt":683},"fast-prerequisites","prepare prerequisites for FAST 0-org-setup","Guides the user step-by-step through the prerequisites for the FAST 0-org-setup stage, supporting both Standard GCP and Google Cloud Dedicated (GCD) environments. Use when a user asks to prepare or run prerequisites for 0-org-setup or bootstrap the FAST landing zone.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[679,680],{"name":9,"slug":8,"type":16},{"name":681,"slug":682,"type":16},"Operations","operations","2026-08-06T05:36:21.590622",{"slug":685,"name":685,"fn":686,"description":687,"org":688,"tags":689,"stars":695,"repoUrl":696,"updatedAt":697},"agent-aware-cli","design agent-aware command-line interfaces","Guide for designing and implementing command-line interfaces (CLIs) that are equally usable by human developers and automated coding agents. Use when the user wants to build a CLI, apply CLI best practices, or use Go with Cobra and Viper.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[690,693,694],{"name":691,"slug":692,"type":16},"CLI","cli",{"name":647,"slug":648,"type":16},{"name":9,"slug":8,"type":16},1150,"https:\u002F\u002Fgithub.com\u002FGoogleCloudPlatform\u002Fvertex-ai-creative-studio","2026-07-12T07:39:08.41406",{"slug":699,"name":699,"fn":700,"description":701,"org":702,"tags":703,"stars":695,"repoUrl":696,"updatedAt":714},"build-mcp-genmedia","build and configure GenAI MCP servers","Builds the mcp-genmedia Go MCP servers (nanobanana, veo, lyria, gemini-multimodal, chirp3-hd, avtool) from source and wires them into settings.json. Use this skill whenever the MCP tools are missing or broken — typically at the start of a new session, after a container restart, or when \u002Ftmp has been wiped. The prebuilt binaries in \u002Fworkspace\u002F.local\u002Fbin\u002F have no exec bit and live on a noexec mount; this skill compiles fresh executables into \u002Ftmp\u002Fbin\u002F where execution is allowed.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[704,707,708,711],{"name":705,"slug":706,"type":16},"API Development","api-development",{"name":9,"slug":8,"type":16},{"name":709,"slug":710,"type":16},"LLM","llm",{"name":712,"slug":713,"type":16},"MCP","mcp","2026-07-12T07:39:10.911302",{"slug":716,"name":716,"fn":717,"description":718,"org":719,"tags":720,"stars":695,"repoUrl":696,"updatedAt":731},"genmedia-audio-engineer","synthesize and mix audio content","Expert in audio synthesis, music generation, and mixing. Use when creating podcasts, background scores, or multi-track audio layering using mcp-chirp3-go, mcp-lyria-go, mcp-gemini-go, mcp-nanobanana-go, and mcp-avtool-go.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[721,724,727,728],{"name":722,"slug":723,"type":16},"Audio","audio",{"name":725,"slug":726,"type":16},"Creative","creative",{"name":9,"slug":8,"type":16},{"name":729,"slug":730,"type":16},"Vertex AI","vertex-ai","2026-07-12T07:39:16.623879",{"slug":733,"name":733,"fn":734,"description":735,"org":736,"tags":737,"stars":695,"repoUrl":696,"updatedAt":744},"genmedia-image-artist","generate and edit AI images","Expert in AI image generation and editing. Use when the user needs high-quality textures, character-consistent visuals, or image-to-image editing using mcp-nanobanana-go.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[738,739,740,743],{"name":725,"slug":726,"type":16},{"name":9,"slug":8,"type":16},{"name":741,"slug":742,"type":16},"Image Generation","image-generation",{"name":729,"slug":730,"type":16},"2026-07-12T07:39:15.372822",{"slug":746,"name":746,"fn":747,"description":748,"org":749,"tags":750,"stars":695,"repoUrl":696,"updatedAt":760},"genmedia-producer","produce multi-step media content","Expert media production assistant. Use when requested to help with storyboarding, podcast creation, audio assembly, or complex multi-step media workflows using the GenMedia MCP servers (Veo, Lyria, Gemini TTS, NanoBanana).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[751,752,753,754,757],{"name":722,"slug":723,"type":16},{"name":725,"slug":726,"type":16},{"name":9,"slug":8,"type":16},{"name":755,"slug":756,"type":16},"Media","media",{"name":758,"slug":759,"type":16},"Video","video","2026-07-12T07:39:09.672849",{"slug":762,"name":762,"fn":763,"description":764,"org":765,"tags":766,"stars":695,"repoUrl":696,"updatedAt":770},"genmedia-video-editor","edit and compose video content","Expert in video composition, editing, and format conversion. Use when the user wants to generate high-quality video, overlay images on video, concatenate clips, create GIFs, or sync audio to video using mcp-avtool-go and mcp-veo-go.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[767,768,769],{"name":725,"slug":726,"type":16},{"name":9,"slug":8,"type":16},{"name":758,"slug":759,"type":16},"2026-07-12T07:39:13.749081",{"slug":772,"name":772,"fn":773,"description":774,"org":775,"tags":776,"stars":695,"repoUrl":696,"updatedAt":788},"genmedia-voice-director","generate expressive text-to-speech with Gemini","Expert in casting, directing, and generating expressive text-to-speech using Gemini TTS. Use this when the user needs virtual voice actor personas, expressive speech generation, or multiple variations of a voiceover (like \"take 3 on the bounce\").",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[777,778,779,782,785],{"name":722,"slug":723,"type":16},{"name":725,"slug":726,"type":16},{"name":780,"slug":781,"type":16},"Gemini","gemini",{"name":783,"slug":784,"type":16},"Speech","speech",{"name":786,"slug":787,"type":16},"Text-to-Speech","text-to-speech","2026-07-12T07:39:17.86673",81]