pipefy/ai-toolkit

pipefy-introspection

Use this skill when you need to discover GraphQL type shapes, mutation signatures, enum values, or execute arbitrary GraphQL as a fallback.

소스 보기

사용 방법

  1. 설치 명령을 복사하고 자신의 에이전트 환경에 설치하기 전에 소스 패키지를 확인하세요.
  2. 필요한 도구, 인증 정보, 지원 환경은 원본 문서에서 확인하세요.
  3. 입력과 원하는 산출물을 설명하고 출처와 결과를 대조하세요.
npx skills add https://github.com/pipefy/ai-toolkit --skill pipefy-introspection

시작 전 확인

  • 설치에는 모델 구독, API 한도, 파일 접근 권한이 포함되지 않습니다.
  • 별점 수와 설치 수는 활동 지표이며 독립적인 품질·보안 검증이 아닙니다.
원본 Skill 문서

원본 저장소의 제목, 예시, 코드, 표, 링크, 이미지를 유지해 표시합니다.

Introspection & Raw GraphQL

Read only the reference for your active surface: MCP or CLI. The workflows below use shared operation names and arguments.

Schema discovery, organization info, and a fallback executor.

This is Tier 2 in the resolution strategy: when a dedicated operation fails or doesn't exist, use introspection to understand the API, then execute_graphql to run the operation directly.

If a dedicated write reports failure, re-read the target before trying a mutation through execute_graphql. Continue only when the read shows the write did not land. If the result is inconclusive, report it and stop; a second create can duplicate data.

Tier 1: dedicated operation exists — use it. Tier 2: use introspection + execute_graphql (this skill). Tier 3: direct curl/httpx fallback — see pipefy-api-fallback.


Tools

OperationRead-onlyPurpose
introspect_typeYesType shape: fields, inputFields, enumValues. Optional max_depth.
introspect_queryYesRoot query arguments and return type. Optional max_depth.
introspect_mutationYesRoot mutation arguments and return type. Optional max_depth.
search_schemaYesKeyword search on type names/descriptions. Optional kind filter.
execute_graphqlNoExecute arbitrary GraphQL.
get_organizationYesLoad organization info (name, plan, UUID, member count, pipe count).
list_organizationsYesList organizations the caller can access — no id required. The zero-knowledge entry point for org discovery.

max_depth (introspect_type / query / mutation)

max_depth defaults to 1.

  • `1` — type/field info only (no inlined sub-types).
  • `2+` — resolves referenced input/output types inline (resolvedType), so one call can replace introspecting the mutation then each input type separately.

Example:

introspect_mutation mutation_name="createCard" max_depth=2

Scalars (ID, String, Int, …) are never expanded.

kind on search_schema

Optional filter: OBJECT, INPUT_OBJECT, ENUM, SCALAR, INTERFACE, UNION.

search_schema keyword="automation" kind="INPUT_OBJECT"

When to use introspection

  • A dedicated tool returned an error and you need to understand why — introspect the input type to check argument names/types.
  • Field types for create_phase_field: the tool's input schema lists them. When the schema is not visible, or to check for drift, introspect_type('FieldTypeId') lists them.
  • Before using extra_input: introspect the corresponding input type to find optional keys.
  • Unknown mutation signature: introspect_mutation('createSomething') before execute_graphql.
  • Schema exploration: search_schema('automation') to find related types and inputs.

When to use execute_graphql

  • No dedicated operation exists for the operation.
  • A dedicated tool failed and you've used introspection to understand the correct payload.
  • Ad-hoc queries like resolving an org UUID via pipe(id: $id) { organization { uuid } }.
  • Complex nested queries that no single tool covers.

Always prefer dedicated operations. They validate inputs, handle pagination, and format errors consistently. execute_graphql is the fallback when dedicated tools can't solve the problem.


Steps — discover a mutation signature

  1. Search for the mutation by keyword:
   search_schema keyword="label"
  1. Get the full mutation signature:
   introspect_mutation mutation_name="createLabel"
  1. Discover input type fields:
   introspect_type type_name="CreateLabelInput"
  1. Execute execute_graphql with the discovered mutation and its variables.

Common fallback recipes

Ready-to-use patterns for situations where dedicated tools are insufficient.

Recipe 1 — Discover valid field types for create_phase_field

introspect_type('FieldTypeId')

CreatePhaseFieldInput.type is an ID scalar, but the API publishes its valid values as the FieldTypeId enum. The create_phase_field input schema lists the same values.

Recipe 2 — Find a card by title (not possible with find_cards)

find_cards only searches custom field values. To search by title:

execute_graphql query='query($pipeId: ID!, $first: Int) { cards(pipe_id: $pipeId, first: $first) { edges { node { id title current_phase { name } } } } }' variables='{"pipeId":"<pipe-id>","first":50}'

Filter by title client-side. For large pipes, paginate with after.

Recipe 3 — Discover what extra_input accepts for any mutation

When a tool accepts extra_input (e.g. create_automation, update_label), discover all optional keys:

introspect_mutation('createAutomation')     # find the input type name
introspect_type('CreateAutomationInput')    # see all inputFields

Compare with the tool's primary arguments to know which keys are additive via extra_input.

Recipe 4 — Discover organization IDs

To answer "which organizations do I have access to?" with nothing in hand, call list_organizations — it needs no id and returns each org's id, uuid, name, and your role. That is the entry point; reach for the GraphQL fallbacks below only when you already have a pipe.

When the user only has a pipe ID and needs its organization_id:

execute_graphql query='query($id: ID!) { pipe(id: $id) { organization { id uuid name } } }' variables='{"id":"<pipe-id>"}'

Recipe 5 — Update a select field's options after creation

To set options at creation, pass options to create_phase_field. Use this recipe to change them later.

execute_graphql query='mutation($id: ID!, $options: [String!]) { updatePhaseField(input: { id: $id, options: $options }) { phase_field { id label options } } }' variables='{"id":"<field-id>","options":["High","Medium","Low"]}'

Recipe 6 — Check phase transition rules

When move_card_to_phase fails with "not a valid target phase":

execute_graphql query='query($id: ID!) { phase(id: $id) { id name cards_can_be_moved_to_phases { id name } } }' variables='{"id":"<current-phase-id>"}'

Returns the valid destination phases from the current phase.


Success criteria

  • introspect_type returns the complete field list for the input type.
  • execute_graphql returns the expected data without errors.

Failure modes

  • `introspect_type` returns `null`: type name is case-sensitive; try PascalCase (e.g., CreateLabelInput, not create_label_input).
  • `search_schema` returns many hits: case-insensitive substring matching; broad keywords like "card" flood results. Prefer specific names like "AiAgent", "FieldCondition".
  • `introspect_mutation` is expensive: fetches all root mutation fields and filters client-side (single large query). Prefer introspect_type on the specific input type when you already know the mutation name.
  • `execute_graphql` returns GraphQL errors: check path and message.
  • Raw HTTP endpoint: the toolkit sends public-schema introspection and operations to the same endpoint, <PIPEFY_BASE_URL>/graphql (default https://app.pipefy.com/graphql). For direct calls, see pipefy-api-fallback.

See also

  • docs/mcp/tools/introspection.md — MCP parameters, query/mutation mismatch hints on execute_graphql.
  • pipefy-api-fallback — Tier 3: direct HTTP fallback when the toolkit is unavailable.
  • pipefy-pipes-and-cards — most common dedicated tools (prefer over execute_graphql).

관련 작업

같은 저장소의 Skills

더 많은 Skills

모든 Skills
pipefy
커뮤니티

pipefy-ai-agents

Use this skill when the user wants to create, read, update, delete, or troubleshoot AI agents (conversational agents with behaviors). Includes pre-flight validation and pipe-scoped knowledge bases (list, plain text/document/data lookup CRUD, access probe) attached via dataSourceIds. For traditional automations and AI automations, see pipefy-automations.

1시간 설치 수
3
GitHub Stars
50
업데이트
10월 20일
pipefy
커뮤니티

pipefy-api-fallback

Use this skill when a toolkit operation fails AND the introspection skill could not resolve the problem. This is the last-resort fallback (Tier 3): call the Pipefy GraphQL API directly using curl or httpx, authenticating with the Service Account (OAuth2) or a Personal Access Token (PAT) available as env var. Follow the 3-tier resolution strategy before reaching this point.

1시간 설치 수
3
GitHub Stars
50
업데이트
10월 20일
pipefy
커뮤니티

pipefy-attachments

Use this skill when the user wants to upload a file to a Pipefy card or table-record attachment field. Covers local and downloaded file sources, plus a presigned-URL handshake for uploading files directly.

1시간 설치 수
3
GitHub Stars
50
업데이트
10월 20일
pipefy
커뮤니티

pipefy-automations

Use this skill when the user wants to create, read, update, or delete traditional automations (if/then rules) or AI automations (prompt-driven). For AI agents (conversational), see pipefy-ai-agents.

1시간 설치 수
3
GitHub Stars
50
업데이트
10월 20일