Skip to main content
Glama
sjk4425

ncloud-mcp-server

by sjk4425

ncloud_functions_create_trigger

Create or update a Cloud Functions trigger that fires actions on cron schedules, GitHub pushes, Object Storage events, and other linked sources.

Instructions

Create or update a Cloud Functions trigger (PUT, API v2.1 (/ncf/api/v2) — idempotent). type is a query parameter and cannot change after creation. Body fields are FLAT (no wrapper) and depend on type: cron → cronOption (required). cronOption is a 5-field UNIX cron expression: 'minute hour day-of-month month day-of-week' (e.g. '0 8 * * ' = 08:00 daily, '/5 * * * *' = every 5 minutes). The expression is evaluated in KST (Asia/Seoul, UTC+9) — live-verified on 2026-09-15 in the KR region (public zone): a trigger set to '41 22 * * *' fired at 22:41:00 KST. The official guide (guide.ncloud-docs.com/docs/cloudfunctions-cron-vpc) does not document the time zone, so re-verify with a probe trigger before relying on it in another region. github → credential {username, accessToken, repository} + events [...] (required); link {productName, apiName, stageName} is required on first creation (API Gateway must be subscribed). insight → insightLink [{prodKey, ruleGrpId, reminderTime?, enableNotiWhenEventClose?}] (optional). object_storage → objectStorageLink [{bucketName, eventRuleName}] (required). Beware of recursion if the linked action writes to the same bucket. source_commit → sourceCommitLink [{repositoryName, webhookName, enable?}] (required; KR VPC only). secret_manager → secretManagerLink [{secretName}] (required; KR VPC only; one secret can be linked to one trigger). Link actions afterwards with ncloud_functions_link_trigger_action. Use dryRun=true to preview.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
linkNogithub only: API Gateway endpoint to create the webhook on — productName + apiName + stageName (required when creating; ignored on update)
typeYesTrigger type (query parameter; immutable after creation)
dryRunNoPreview the request without calling the API
eventsNogithub only: events to trigger on, e.g. ['push'] or ['*']
platformNoPlatform (default: vpc). Singapore/Japan regions support vpc only.vpc
credentialNogithub only: GitHub credentials
cronOptionNocron only. 5-field UNIX cron 'min hour dom mon dow', e.g. '0 8 * * *'. Evaluated in KST (UTC+9) — live-verified 2026-09-15 on KR; the time zone is not documented by Ncloud.
parametersNoDefault parameters as a {key: value} JSON object, merged into every invocation (precedence: runtime > trigger > action > package)
descriptionNoDescription (0-3000 bytes)
insightLinkNoinsight only: Cloud Insight event rules to link
triggerNameYesTrigger name: 1-50 chars of letters, digits, '-' and '_'; must not start with '-'; unique across packages/actions/triggers
sourceCommitLinkNosource_commit only: repository webhooks to link
objectStorageLinkNoobject_storage only: bucket event rules to link
secretManagerLinkNosecret_manager only: secrets to link

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv2.0.1
    • changedInput schema / properties / link / description
      Previous value: -"github only: API Gateway endpoint to create the webhook on (required when creating; ignored on update)"New value: +"github only: API Gateway endpoint to create the webhook on — productName + apiName + stageName (required when creating; ignored on update)"
    • addedInput schema / properties / link / properties / productId
      Added value: +{
      +  "description": "API Gateway product ID (API v2.0 / Government zone)",
      +  "type": "string"
      +}
    • changedInput schema / properties / link / properties / productName / description
      Previous value: -"API Gateway product name"New value: +"API Gateway product name (API v2.1)"
    • changedInput schema / properties / link / required
      Previous value: -[
      -  "productName",
      -  "apiName",
      -  "stageName"
      -]New value: +[
      +  "apiName",
      +  "stageName"
      +]
  2. Changed22 schema fields changedv1.15.0
    • addedInput schema / properties / credential
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "github only: GitHub credentials",
      +  "properties": {
      +    "accessToken": {
      +      "description": "GitHub access token",
      +      "type": "string"
      +    },
      +    "repository": {
      +      "description": "Repository name or 'Organization/repository'",
      +      "type": "string"
      +    },
      +    "username": {
      +      "description": "GitHub user name",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "username",
      +    "accessToken",
      +    "repository"
      +  ],
      +  "type": "object"
      +}
    • addedInput schema / properties / cronOption
      Added value: +{
      +  "description": "cron only. 5-field UNIX cron 'min hour dom mon dow', e.g. '0 8 * * *'. Evaluated in KST (UTC+9) — live-verified 2026-09-15 on KR; the time zone is not documented by Ncloud.",
      +  "type": "string"
      +}
    • addedInput schema / properties / description
      Added value: +{
      +  "description": "Description (0-3000 bytes)",
      +  "maxLength": 3000,
      +  "type": "string"
      +}
    • addedInput schema / properties / dryRun
      Added value: +{
      +  "default": false,
      +  "description": "Preview the request without calling the API",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / events
      Added value: +{
      +  "description": "github only: events to trigger on, e.g. ['push'] or ['*']",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / insightLink
      Added value: +{
      +  "description": "insight only: Cloud Insight event rules to link",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "enableNotiWhenEventClose": {
      +        "description": "Also invoke when the event closes (default false)",
      +        "type": "boolean"
      +      },
      +      "prodKey": {
      +        "description": "Cloud Insight event rule prodKey",
      +        "type": "string"
      +      },
      +      "reminderTime": {
      +        "description": "Reminder interval in minutes (5-720)",
      +        "maximum": 720,
      +        "minimum": 5,
      +        "type": "integer"
      +      },
      +      "ruleGrpId": {
      +        "description": "Cloud Insight event rule ruleGrpId",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "prodKey",
      +      "ruleGrpId"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • changedInput schema / properties / link / additionalProperties
      Previous value: -{}New value: +false
    • changedInput schema / properties / link / description
      Previous value: -"Link configuration for GitHub type: { productId, apiName, stageName }"New value: +"github only: API Gateway endpoint to create the webhook on (required when creating; ignored on update)"
    • addedInput schema / properties / link / properties
      Added value: +{
      +  "apiName": {
      +    "description": "API Gateway API name",
      +    "type": "string"
      +  },
      +  "productName": {
      +    "description": "API Gateway product name",
      +    "type": "string"
      +  },
      +  "stageName": {
      +    "description": "API Gateway stage name",
      +    "type": "string"
      +  }
      +}
    • addedInput schema / properties / link / required
      Added value: +[
      +  "productName",
      +  "apiName",
      +  "stageName"
      +]
    • addedInput schema / properties / objectStorageLink
      Added value: +{
      +  "description": "object_storage only: bucket event rules to link",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "bucketName": {
      +        "description": "Object Storage bucket name",
      +        "type": "string"
      +      },
      +      "eventRuleName": {
      +        "description": "Object Storage event rule name",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "bucketName",
      +      "eventRuleName"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / parameters
      Added value: +{
      +  "additionalProperties": {},
      +  "description": "Default parameters as a {key: value} JSON object, merged into every invocation (precedence: runtime > trigger > action > package)",
      +  "type": "object"
      +}
    • changedInput schema / properties / platform / description
      Previous value: -"Platform type (default: vpc)"New value: +"Platform (default: vpc). Singapore/Japan regions support vpc only."
    • addedInput schema / properties / secretManagerLink
      Added value: +{
      +  "description": "secret_manager only: secrets to link",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "secretName": {
      +        "description": "Secret Manager secret name",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "secretName"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / sourceCommitLink
      Added value: +{
      +  "description": "source_commit only: repository webhooks to link",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "enable": {
      +        "description": "Webhook enabled (default true)",
      +        "type": "boolean"
      +      },
      +      "repositoryName": {
      +        "description": "SourceCommit repository name",
      +        "type": "string"
      +      },
      +      "webhookName": {
      +        "description": "SourceCommit webhook name",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "repositoryName",
      +      "webhookName"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • removedInput schema / properties / trigger
      Removed value: -{
      -  "additionalProperties": {},
      -  "description": "Trigger configuration object (structure varies by type)",
      -  "type": "object"
      -}
    • changedInput schema / properties / triggerName / description
      Previous value: -"Name of the trigger to create or update"New value: +"Trigger name: 1-50 chars of letters, digits, '-' and '_'; must not start with '-'; unique across packages/actions/triggers"
    • addedInput schema / properties / triggerName / maxLength
      Added value: +50
    • addedInput schema / properties / triggerName / minLength
      Added value: +1
    • changedInput schema / properties / type / description
      Previous value: -"Trigger type"New value: +"Trigger type (query parameter; immutable after creation)"
    • changedInput schema / properties / type / enum
      Previous value: -[
      -  "cron",
      -  "github",
      -  "insight",
      -  "object_storage",
      -  "source_commit"
      -]New value: +[
      +  "cron",
      +  "github",
      +  "insight",
      +  "object_storage",
      +  "source_commit",
      +  "secret_manager"
      +]
    • changedInput schema / required
      Previous value: -[
      -  "triggerName",
      -  "type",
      -  "trigger"
      -]New value: +[
      +  "triggerName",
      +  "type"
      +]
  3. First observedv1.10.1

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare destructiveHint=false, so the description carries the behavioral load and does so richly: idempotent PUT semantics, type immutability, per-type required fields, link required on first creation but 'ignored on update', a recursion hazard warning for object_storage, and KR VPC-only restrictions for source_commit/secret_manager. The KST timezone disclosure with a live-verification date, region caveat, and advice to re-verify elsewhere is unusually high-value context not present in any structured field.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded and dense: the identity/semantics sentence comes first, then type-specific requirements, then linking/preview guidance. Every sentence carries information, but the KST time-zone claim is duplicated between the prose and the cronOption schema description, and the paragraph form makes the per-type rules harder to scan than a list would.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 14-parameter tool with deep nested objects and no output schema, this covers the create-vs-update path, per-type requirements, and preview mode thoroughly. Remaining gaps are minor: no statement of auth/permission prerequisites for the API Gateway subscription beyond 'must be subscribed', and update-path behavior is only specified for `link` ('ignored on update') while other fields' update semantics are left implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds semantics the schema cannot express: that body fields are FLAT with no wrapper, that `type` travels as a query parameter, and the per-type field mapping (cron→cronOption, github→credential+events+link, insight→insightLink, etc.) that spans multiple schema properties. The cron format explanation, examples, and precedence note give an agent what it needs without guessing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Create or update a Cloud Functions trigger') and immediately pins the transport and semantics (PUT, API v2.1 /ncf/api/v2, idempotent). It also distinguishes itself from the sibling ncloud_functions_link_trigger_action by explicitly deferring action linking to it, which is the most confusable neighbor.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear operational context: 'Link actions afterwards with ncloud_functions_link_trigger_action' and 'Use dryRun=true to preview', plus the hard constraint that `type` is immutable after creation, implying a new trigger is needed to change it. It does not state when to use this vs. create_package/create_action or name any explicit exclusion, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools