Repository navigation
feat: add Pipefy adapter (Part of #982) - #1373
Conversation
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.
|
All contributors have signed the CLA ✍️ ✅ |
|
👋 Welcome, @juliasadler, and thanks for opening your first PR on AnythingMCP! A few quick pointers:
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. |
|
I have read the CLA Document and I hereby sign the CLA |
helpcodeai
left a comment
There was a problem hiding this comment.
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:
- 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.
pipefy.jsonis 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 examplenode -ewithJSON.stringify(x, null, 2)), so future diffs stay readable.- The live block in
pipefy.live.spec.tsmakes no HTTP call. Please call the API for real whenRUN_PIPEFY_LIVE=1, likeintl/todoist.live.spec.tsdoes: send theorganizationsquery withPIPEFY_API_TOKENand check thatdata.organizationsis an array. It is fine that you cannot run it yourself. - 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
|
Thanks for the review! All four points are addressed in commit b47c1c2 (pushed to this branch):
Validation on the new commit: |
There was a problem hiding this comment.
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.
|
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. |
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+actionidand 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 viafirst/after, cap 50),pipefy_get_card,pipefy_get_phaseauthType: BEARER_TOKEN→Authorization: Bearer <token>viaPIPEFY_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 behindRUN_PIPEFY_LIVE=1packages/backend/src/adapters/catalog.ts— regenerated (node scripts/regenerate-catalog.mjs)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.jsonllms.txt,llms-full.txt— regeneratedpackages/frontend/public/logos/connectors/pipefy.svg— logoType
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— cleanpipefy.live.spec.tsstatic suite — mirrors thecatalog.spec.tsgates for this adapter (slug unique, authType valid, probe runnable with no required params, every GraphQL$varprovided viaqueryParams, nobodyMapping.variables); all passGraphQL shapes were taken from the official Pipefy developer docs (developers.pipefy.com/reference/*); the one header discrepancy in their docs (
AuthenticationvsAuthorization) was resolved in favor ofAuthorization: Bearer, corroborated by their community and a working open-source integration. I did not include the community-sourcedmequery — the probe uses the documentedorganizationsquery instead.Checklist
intl/monday.jsonGraphQL patterns)Related Issues
Part of #982 (claim-pool: Pipefy was a free target; claimed in the thread)