MCPTool
Tenant-defined Lua tool with assignment-scoped MCP invocation.
Tool identity.
nameString!Stable lowercase name. Renaming requires replacement.
titleString!Human-readable tool title.
descriptionString!Instructions explaining when and how to use this tool.
sourceString!Tool-owned Lua source defining exports.handler(input).
inputAnnotationsString!JSON Pointer keyed metadata for inferred inputs; structural keywords are forbidden.
outputAnnotationsString!JSON Pointer keyed metadata for inferred outputs; structural keywords are forbidden.
enabledBoolean!Whether assigned callers can discover and invoke the published tool.
publishedBoolean!Publish this exact authored definition, or false to withdraw publication.
readOnlyBoolean!Client hint; does not enforce read-only execution.
destructiveBoolean!Client hint describing destructive effects.
idempotentBoolean!Client hint describing repeat-call behavior.
openWorldBoolean!Client hint indicating interaction with external systems.
Direct user assignments. An empty array clears assignments.
Team assignments. An empty array clears assignments.
inputSchemaStringServer-generated inputSchema.
outputSchemaStringServer-generated outputSchema.
revisionString!Server-generated revision.
Server-generated publishedVersionId.
createdAtString!Server-generated createdAt.
updatedAtString!Server-generated updatedAt.
View exact SDL
"""Tenant-defined Lua tool with assignment-scoped MCP invocation."""
type MCPTool @iac_resource(name: "mcp_tool") @iac_ops(create: "createMCPTool", read: "mcpTool", update: "updateMCPTool", delete: "deleteMCPTool") @iac_precondition(field: "revision", input: "expectedRevision") @iac_replace(strategy: DESTROY_BEFORE_CREATE) {
"""Tool identity."""
id: MCPToolID! @iac_identity(assignedBy: SERVER) @iac_computed
"""Stable lowercase name. Renaming requires replacement."""
name: String! @iac_forcesReplace
"""Human-readable tool title."""
title: String!
"""Instructions explaining when and how to use this tool."""
description: String!
"""Tool-owned Lua source defining exports.handler(input)."""
source: String! @iac_artifact(language: LUA, validators: ["lua-typecheck"])
"""
JSON Pointer keyed metadata for inferred inputs; structural keywords are forbidden.
"""
inputAnnotations: String! @iac_artifact(language: JSON)
"""
JSON Pointer keyed metadata for inferred outputs; structural keywords are forbidden.
"""
outputAnnotations: String! @iac_artifact(language: JSON)
"""Whether assigned callers can discover and invoke the published tool."""
enabled: Boolean!
"""
Publish this exact authored definition, or false to withdraw publication.
"""
published: Boolean!
"""Client hint; does not enforce read-only execution."""
readOnly: Boolean!
"""Client hint describing destructive effects."""
destructive: Boolean!
"""Client hint describing repeat-call behavior."""
idempotent: Boolean!
"""Client hint indicating interaction with external systems."""
openWorld: Boolean!
"""Direct user assignments. An empty array clears assignments."""
userIds: [UserID!]! @iac_ref(resource: "service_account")
"""Team assignments. An empty array clears assignments."""
teamIds: [TeamID!]! @iac_ref(resource: "team")
"""Server-generated inputSchema."""
inputSchema: String @iac_computed
"""Server-generated outputSchema."""
outputSchema: String @iac_computed
"""Server-generated revision."""
revision: String! @iac_computed
"""Server-generated publishedVersionId."""
publishedVersionId: MCPToolVersionID @iac_computed
"""Server-generated createdAt."""
createdAt: String! @iac_computed
"""Server-generated updatedAt."""
updatedAt: String! @iac_computed
}One stable address across all schema views. Follow a field’s type to explore connections between domains.