Skip to content

feat: add Pipefy adapter (Part of #982) - #1373

Merged
helpcodeai merged 6 commits into
HelpCode-ai:mainfrom
juliasadler:feat/pipefy-adapter
Nov 2, 2026
Merged

helpcodeai merged 6 commits into
HelpCode-ai:mainfrom
juliasadler:feat/pipefy-adapter

Conversation

@juliasadler

@juliasadler juliasadler commented Nov 1, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Adds a read-only Pipefy adapter (work management platform) as a single JSON file, claiming one of the free targets from the claim-pool in #982. Pipefy was verified free: no adapter in packages/backend/src/adapters/, not in the claim table, no open PR.

Note: I first claimed onOffice in the thread, then released it — digging into the onOffice API docs showed its HMAC v2 signs timestamp+token+resourcetype+actionid and puts the signature inside the JSON body per action, which the adapter HMAC engine (header/query placement only) cannot express. Pipefy fits the existing engine cleanly (GraphQL + bearer token).

Changes

  • packages/backend/src/adapters/intl/pipefy.json — new adapter, 6 read-only GraphQL tools:
    • pipefy_list_organizations (probe — lightest documented query, doubles as auth check)
    • pipefy_list_pipes, pipefy_get_pipe, pipefy_list_cards (paginated via first/after, cap 50), pipefy_get_card, pipefy_get_phase
    • authType: BEARER_TOKEN → Authorization: Bearer <token> via PIPEFY_API_TOKEN (PAT from app.pipefy.com/tokens or a Service Account token)
  • packages/backend/src/adapters/intl/pipefy.live.spec.ts — static conformance spec (auth, probe, pagination cap, variable mapping) + opt-in live block gated behind RUN_PIPEFY_LIVE=1
  • packages/backend/src/adapters/catalog.ts — regenerated (node scripts/regenerate-catalog.mjs)
  • Count files 680 → 681 (node scripts/adapter-count.mjs --check): README.md, README.de.md, README.ja.md, README.zh-CN.md, glama.json, CITATION.cff, server.json, package.json
  • llms.txt, llms-full.txt — regenerated
  • packages/frontend/public/logos/connectors/pipefy.svg — logo

Type

  • New feature

Testing

  • node scripts/validate-adapters.mjs --warn — exit 0, zero new warnings for pipefy (4 pre-existing warnings belong to other adapters)
  • node scripts/adapter-count.mjs --check — "OK: every quoted count equals 681 adapters"
  • node scripts/generate-llms-txt.mjs --check — clean
  • New pipefy.live.spec.ts static suite — mirrors the catalog.spec.ts gates for this adapter (slug unique, authType valid, probe runnable with no required params, every GraphQL $var provided via queryParams, no bodyMapping.variables); all pass
  • Live API calls — not run: no Pipefy credentials available in this environment (opt-in block is skipped in CI by design, same as other adapters)

GraphQL shapes were taken from the official Pipefy developer docs (developers.pipefy.com/reference/*); the one header discrepancy in their docs (Authentication vs Authorization) was resolved in favor of Authorization: Bearer, corroborated by their community and a working open-source integration. I did not include the community-sourced me query — the probe uses the documented organizations query instead.

Checklist

  • My code follows the existing code style (copied the intl/monday.json GraphQL patterns)
  • I have tested my changes locally (see Testing above)
  • I have updated documentation (instructions block in the adapter JSON)
  • All existing tests pass — validator + count checker green; full Jest suite runs in CI
  • This PR has a descriptive title

Related Issues

Part of #982 (claim-pool: Pipefy was a free target; claimed in the thread)

Add a read-only GraphQL adapter for Pipefy (work management platform).

Six tools: list_organizations (probe), list_pipes, get_pipe, list_cards (paginated), get_card, get_phase.

Bearer token auth via PIPEFY_API_TOKEN. Follows the claim-pool in HelpCode-ai#982.
@github-actions

github-actions Bot commented Nov 1, 2026 •

Copy link
Copy Markdown

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

@github-actions

github-actions Bot commented Nov 1, 2026

Copy link
Copy Markdown

👋 Welcome, @juliasadler, and thanks for opening your first PR on AnythingMCP!

A few quick pointers:

  • Make sure CI is green before requesting review (Backend, Frontend, Playwright, CodeQL, Trivy).
  • If this is a new adapter, the parametrised catalog.spec.ts test will validate it automatically.
  • Sign off your commits if you can — it's not blocking, just nice to have.

Someone from the core team will look at this within ~48h. If you don't hear back, please ping us in Discussions / Q&A.

⭐ While you wait — if you find AnythingMCP useful, a star helps others discover it.

@juliasadler

Copy link
Copy Markdown
Contributor Author

I have read the CLA Document and I hereby sign the CLA

github-actions Bot added a commit that referenced this pull request Nov 1, 2026

@helpcodeai helpcodeai left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks Julia, and thanks for writing down why onOffice does not fit the engine. That is useful for the next person.

The adapter itself looks good: fixed host, bearer token, read only, every variable goes through queryParams, and first is capped at 50. A few small things before we merge:

  1. Please change "fixes #982" in the title and in the body to "Part of #982". #982 is the claim pool for everybody, and GitHub would close it on merge.
  2. pipefy.json is one single line. All other adapters are pretty printed with 2 spaces and a newline at the end. Please format it the same way (for example node -e with JSON.stringify(x, null, 2)), so future diffs stay readable.
  3. The live block in pipefy.live.spec.ts makes no HTTP call. Please call the API for real when RUN_PIPEFY_LIVE=1, like intl/todoist.live.spec.ts does: send the organizations query with PIPEFY_API_TOKEN and check that data.organizations is an array. It is fine that you cannot run it yourself.
  4. The logo looks hand drawn. If Pipefy publishes an official SVG mark (press kit or brand page), please use that one.

I will approve the CI runs now so you get feedback on the rest.

Address changes-requested review on HelpCode-ai#1373:

- pretty-print pipefy.json (2-space indent + trailing newline), matching
  the format of all other adapters for readable future diffs
- pipefy.live.spec.ts: the live block now performs a real GraphQL call
  (organizations query with PIPEFY_API_TOKEN) when RUN_PIPEFY_LIVE=1 and
  asserts data.organizations is an array; still skipped in CI without a token
- PR title/body changed from 'fixes HelpCode-ai#982' to 'Part of HelpCode-ai#982' so the
  claim-pool issue is not auto-closed on merge (done via API)
- logo: no official Pipefy SVG press kit found; keeping the current mark
@juliasadler juliasadler changed the title feat: add Pipefy adapter (fixes #982) feat: add Pipefy adapter (Part of #982) Nov 1, 2026
@juliasadler

Copy link
Copy Markdown
Contributor Author

Thanks for the review! All four points are addressed in commit b47c1c2 (pushed to this branch):

  1. Title/body wording — changed to "Part of 🐣 Good first issue: contribute a new MCP adapter #982" in both the title and the Related Issues section, so the claim-pool issue stays open after merge.
  2. pipefy.json formatting — pretty-printed with 2-space indent + trailing newline, matching every other adapter; future diffs stay readable.
  3. Live spec — the RUN_PIPEFY_LIVE=1 block now performs a real POST https://api.pipefy.com/graphql with the organizations query using PIPEFY_API_TOKEN, and asserts data.organizations is an array. Still skipped in CI without a token. I have no real token, so I could not execute it locally — the syntax was validated and the static suite is untouched.
  4. Logo — I searched for an officially published Pipefy SVG (press kit / brand page) and could not find one, so I am keeping the current mark for now. Happy to swap in an official asset if you can point me at one.

Validation on the new commit: validate-adapters.mjs --warn exit 0 with zero new warnings for pipefy, adapter-count.mjs --check OK (681 adapters), plus my 28 pipefy conformance gates all pass.

@helpcodeai helpcodeai left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, all four points are done and the adapter looks good: fixed host, read-only queries, ids passed only as GraphQL variables, page size capped at 50.

I merged main into your branch because the adapter count files had moved on (691 on main, so Pipefy makes 692) and regenerated the catalog and llms files.

About the logo: we have no official Pipefy SVG either. Pipefy is not in Simple Icons. Your mark is fine for now. If Pipefy publishes an SVG later, we will swap the file in packages/frontend/public/logos/connectors/pipefy.svg.

It will be merged as soon as CI is green.

@helpcodeai
helpcodeai enabled auto-merge (squash) November 2, 2026 08:30
@helpcodeai
helpcodeai merged commit c545cdb into HelpCode-ai:main Nov 2, 2026
14 checks passed
@github-actions github-actions Bot locked and limited conversation to collaborators Nov 2, 2026
@helpcodeai

Copy link
Copy Markdown
Contributor

Merged, thank you @juliasadler. Pipefy will be in the catalog on AnythingMCP Cloud with one of the next updates. Thanks also for the careful changes after the review.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants