Pipefy Introspection logo

Pipefy Introspection

Organization
pipefy
pipefy-introspection

Use this skill when you need to discover GraphQL type shapes, mutation signatures, enum values, or execute arbitrary GraphQL as a fallback. This is the first fallback tier (Tier 2) when dedicated operations fail or don't exist for an operation.

Overview

Publisherpipefy
Repositoryai-toolkit
Skill namepipefy-introspection
Stars
52
Forks
24
Bundled files
2
LicenseApache-2.0
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 2 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by pipefy on GitHub. Read the source before you install it.

Installation

Install the Pipefy Introspection AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/pipefy/ai-toolkit/tree/main/plugins/pipefy/skills/pipefy-introspection
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/pipefy/ai-toolkit.git /tmp/ai-toolkit
mkdir -p .claude/skills
cp -r /tmp/ai-toolkit/plugins/pipefy/skills/pipefy-introspection .claude/skills/pipefy-introspection
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Pipefy Introspection in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Pipefy Introspection on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Pipefy Introspection is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

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"
  2. Get the full mutation signature:

    introspect_mutation mutation_name="createLabel"
  3. Discover input type fields:

    introspect_type type_name="CreateLabelInput"
  4. 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).

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Pipefy Introspection AI skill do?

Use this skill when you need to discover GraphQL type shapes, mutation signatures, enum values, or execute arbitrary GraphQL as a fallback. This is the first fallback tier (Tier 2) when dedicated operations fail or don't exist for an operation.

Why use Pipefy Introspection on TypingMind?

Because you install it once and use it with any model. Pipefy Introspection is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Pipefy Introspection in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/pipefy/ai-toolkit/tree/main/plugins/pipefy/skills/pipefy-introspection. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Pipefy Introspection?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Pipefy Introspection?

As many as you like. As long as a model supports skills, you can use Pipefy Introspection with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Pipefy Introspection AI skill free?

Yes. It is published on GitHub by pipefy under the Apache-2.0 license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇