Agent Skill · Prismatic

prismatic-api

Prismatic API access patterns and GraphQL reference. Covers the two-tier access hierarchy (MCP tools → Prism CLI), CLI usage rules, GraphQL query patterns, pagination, authentication, and managing platform resources programmatically.

Provider: Prismatic Path in repo: plugin/skills/prismatic-api/SKILL.md

Skill body

Prismatic API

Reference documentation for Prismatic platform operations and the standardized API access hierarchy.

API Access Method Hierarchy

Prismatic API access follows a two-tier priority system for interactive agents (e.g., Orby). Builder agents (cni-builder, component-builder) use their own script-based pipelines and should not use MCP tools directly — see their agent docs for details.

Priority 1: MCP Tools (Interactive Agents Only)

Use MCP tools when operating within an interactive agent conversation (e.g., Orby). These handle auth, retries, and output formatting automatically.

MCP Tool Operation
mcp__plugin_prismatic-skills_prism__prism_me Check auth / user profile
mcp__plugin_prismatic-skills_prism__prism_components_list List / search components
mcp__plugin_prismatic-skills_prism__prism_components_init Initialize new component
mcp__plugin_prismatic-skills_prism__prism_components_publish Publish component
mcp__plugin_prismatic-skills_prism__prism_components_generate_manifest Generate component manifest
mcp__plugin_prismatic-skills_prism__prism_integrations_list List / search integrations
mcp__plugin_prismatic-skills_prism__prism_integrations_init Initialize new CNI
mcp__plugin_prismatic-skills_prism__prism_integrations_import Import / update CNI
mcp__plugin_prismatic-skills_prism__prism_integrations_convert Convert YAML to CNI
mcp__plugin_prismatic-skills_prism__prism_integrations_flows_list List flows for integration
mcp__plugin_prismatic-skills_prism__prism_integrations_flows_test Test a flow
mcp__plugin_prismatic-skills_prism__prism_integrations_flows_listen Listen for webhook payloads
mcp__plugin_prismatic-skills_prism__prism_integrations_generate_flow Generate flow boilerplate
mcp__plugin_prismatic-skills_prism__prism_integrations_generate_config_page Generate config page
mcp__plugin_prismatic-skills_prism__prism_integrations_generate_config_var Generate config variable
mcp__plugin_prismatic-skills_prism__prism_integrations_add_connection_config_var Add connection config var
mcp__plugin_prismatic-skills_prism__prism_integrations_add_datasource_config_var Add datasource config var
mcp__plugin_prismatic-skills_prism__prism_install_component_manifest Install component manifest in CNI
mcp__plugin_prismatic-skills_prism__prism_install_legacy_component_manifest Legacy manifest install

Priority 2: Prism CLI (Scripts + Agents)

For scripts and operations not covered by MCP tools:

Built-in commands (via prism-retry.ts):

prism integrations:list --extended --output json
prism components:publish --directory ./my-component
prism integrations:import --directory ./my-integration

Custom GraphQL queries (via shared/graphql.ts):

import { graphql, GraphQLError } from "./shared/graphql.js";

const data = graphql('query { customers { nodes { id name } } }');

Or directly via CLI:

prism graphql:query 'query { customers { nodes { id name } } }'
prism graphql:query 'query($id: ID!) { customer(id: $id) { name } }' \
  --variables '{"id": "Q3VzdG9tZXI6..."}'

Decision Tree

Agent calling directly?  → Use MCP tool if available, else `prism` via Bash
Script?                  → Use shared/graphql.ts for custom queries,
                           prism-retry.ts for built-in CLI commands

Rule: NEVER create inline GraphQL clients — always use shared/graphql.ts imports.

Common Operations Cheat Sheet

These are the most frequently needed GraphQL operations. Use these exact queries — don’t guess the field names.

Operation Reference File Query/Mutation Name
Find test instance for an integration references/instances.md → “Get Test (System) Instance” instances(integration: $id, isSystem: true)
Get execution result with logs references/execution-and-logs.md → “Get Execution Result with Step Results” executionResult(id: $id)
Publish an integration version references/integrations.md → “Mutation: Publish Integration” publishIntegration(input: { id: $id })
Set marketplace availability references/integrations.md → “Mutation: Set Marketplace Availability” updateIntegrationMarketplaceConfiguration
Clear instance persisted state references/instances.md → “Mutation: Clear Instance Persisted State” updateInstance(input: { id: $id, persistedData: "{}" })
Update config variables (safe) references/instances.md → “Mutation: Update Instance Config Variables” updateInstanceConfigVariables (NOT updateInstance)

Read the referenced file section for the full query with all fields. Do not reconstruct queries from memory.

CLI Usage Rules

  1. prism must be installed globally (npm install -g @prismatic-io/prism) — never use npx prism
  2. All list commands: always use --extended --output json
  3. --extended and --columns are mutually exclusive — always prefer --extended
  4. For graphql:query: always use --variables flag, never string interpolation
  5. Auth is handled by the CLI — no custom token exchange needed

API Endpoint

Authentication

Obtain tokens via Prism CLI. See references/authentication.md.

Quick reference:

Pagination

All collection queries use Relay cursor-based pagination. See references/pagination-and-filtering.md.

query($after: String) {
  resources(after: $after, first: 100) {
    nodes { id name }
    pageInfo { hasNextPage endCursor }
  }
}

Critical Patterns

  1. Enum values are lowercase strings: variableScope: "customer" not "CUSTOMER", managedBy: "org" not "ORG"
  2. Use updateInstanceConfigVariables (partial, safe) not updateInstance (replaces ALL config vars)
  3. Always deploy after config changes: Call deployInstance to activate
  4. Use parameterized variables: Never string-concatenate into queries
  5. Check mutation errors: Mutations return errors { field messages } alongside results

Key References by Resource Type

Core Resources

Connections & Config

Operational

Skill frontmatter

version: 1.0.0 user-invocable: false