Skip to main content
Glama
sjk4425

ncloud-mcp-server

by sjk4425

ncloud_functions_create_trigger

Create or update a Cloud Functions trigger to invoke functions on cron schedules, GitHub events, object storage changes, SourceCommit, Insight, or Secret Manager events.

Instructions

Create or update a Cloud Functions trigger (PUT /ncf/api/v2, API v2.1 — 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: 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 (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. 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"
      +]
  2. First observedv1.10.1

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the sparse annotations (only destructiveHint=false), the description discloses idempotency, the immutable type query parameter, flat body encoding, and type-dependent required fields. It also flags non-obvious runtime behavior: cron expressions are evaluated in KST (live-verified), the official docs omit this, recursion risk for object_storage, and VPC/region restrictions for source_commit and secret_manager. This is well beyond what the annotation conveys.

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?

The description is front-loaded with the action and HTTP method before descending into type-specific details. It is dense, but every sentence carries operational information; the live-verified KST example and doc gap warning justify their length. The single unbroken paragraph could be more scannable with bullets, but the content is appropriately sized for six trigger types.

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

Completeness5/5

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

For a tool with 14 parameters, six type-specific variants, and no output schema, the description covers required fields per type, cross-tool next step, region restrictions, a safety warning about recursion, and a dry-run preview option. Nothing needed to decide whether and how to call the tool is missing. The schema fills the remaining value-format details.

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 substantial conditional semantics the schema cannot express: cron → cronOption with format and examples ('0 8 * * *' = 08:00 daily), github requiring credential+events and link on first creation, and link behavior on update. It also adds boundary conditions such as one-secret-per-trigger and dryRun preview. This materially improves correct parameter construction.

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?

Opens with a specific verb+resource: 'Create or update a Cloud Functions trigger', and anchors it to PUT /ncf/api/v2 with idempotency. This cleanly distinguishes it from sibling functions tools like ncloud_functions_link_trigger_action, and the later reference to that sibling reinforces the boundary. The purpose is unambiguous even without inspecting the schema.

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?

The description gives clear context for when to call it: creating, updating, or re-applying a trigger idempotently, with type-specific body requirements. It also names the adjacent workflow step, 'Link actions afterwards with ncloud_functions_link_trigger_action.' It does not spell out when-not-to-use relative to get/list/delete triggers, but the relevant sibling boundary is explicit.

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