Skip to content

🐣 Good first issue: contribute a new MCP adapter #150

Description

@keysersoft

👋 New here? Adding a pre-built MCP adapter is the most beginner-friendly way to contribute. It's typically a single JSON file and takes ~30 minutes once you've picked a target.

Claimed targets

Comment below to claim one. A claim without a PR for 14 days goes back in the pool, no hard feelings, life happens.

target who since PR
GitLab @ndycode 30 Aug 2026 claim lapsed 20 Sep, back in the pool — @ndycode, it is yours again the moment you say so
Directus @dor1smeow 20 Sep 2026 #697 ✅ merged
Baserow @7k777 23 Sep 2026 in progress
Sentry @Nagharjun17 12 Sep 2026 #551 ✅ merged
Airtable @Rudra-G-23 13 Sep 2026 #610 ✅ merged
Matomo @dor1smeow 16 Sep 2026 #641 — superseded by us, see below. Our mistake.

Pick a target

⚠️ 19 Sep 2026 — we shipped 64 adapters at once and it cost @dor1smeow a claim

A large connector wave landed in #642 and #647. It included Odoo, Kaufland Marketplace, Zalando Partner and Matomo — four of the six targets this section was advertising as free, and Matomo was assigned to @dor1smeow six days earlier, with a spec from me in the thread below. Their PR #641 was finished, correct, and closed as a duplicate of work they never knew was coming.

That is not a collision, it is us failing to say what we were building. I am sorry. The list below has been rebuilt and every entry was checked against the catalogue on 19 Sep, slug by slug, with a script rather than from memory. If you are mid-way through something and we have just landed on top of it, say so here and I will make it right.

Anything with a public API is welcome. Verified free as of 19 Sep 2026:

Dev & project tooling — GitLab (claim lapsed 20 Sep — free, and @ndycode has first refusal), Bitbucket, Gitea, Confluence, Sonarqube, Monday.com, Smartsheet, Pipefy, Podio
Self-hosted & infra — Grafana, Prometheus, Uptime Kuma, Home Assistant, Immich, Vaultwarden
Content & data platforms — Strapi, Directus (claimed 20 Sep), Baserow (claimed 23 Sep), NocoDB, Figma, Miro
Finance & payments — Xero, Zoho Books, Qonto, Revolut Business, SumUp, Klarna
Scheduling & documents — Cal.com, Docusign
Hard-protocol, for the adventurous — Twinfield (SOAP headers), Firebird, DB2/IBM i. These need engine work first; comment before starting and I will tell you what is missing.

onOffice has moved out of that group: v0.10.0 added HMAC request signing (authType: "HMAC"), so an adapter can now describe the canonical string its vendor signs instead of waiting on engine work. kaufland.json is the worked example. It is free and it is a good one.

Before you claim one, still check packages/backend/src/adapters/ for the slug — 257 adapters ship today and this list ages. The community wishlist is the place to propose others. Check the table above and the open PRs so we don't duplicate effort, then comment here saying which one you'll work on.

Step-by-step

  1. Fork the repo and create a branch (adapter/<saas-slug>).
  2. Pick an existing adapter close to yours as a template, they all live under packages/backend/src/adapters/<region>/:
    • For a REST API with a token: intl/coingecko.json or de/dhl-tracking.json
    • For a REST API where an account id has to go into the path: intl/whatsapp-business.json (see the {{ENV_VAR}} placeholders)
    • For a GraphQL service: intl/shopware-6.json
    • For an API without auth at all: de/vies-vat.json
  3. Copy it, rename it your-saas.json, and update slug, name, description, instructions, baseUrl, the authType/authConfig block and requiredEnvVars, then the tools[], one entry per endpoint you want to expose.
  4. Run node scripts/regenerate-catalog.mjs. It rewrites packages/backend/src/adapters/catalog.ts for you, please don't edit that file by hand.
  5. Run node scripts/validate-adapters.mjs and npm test -w packages/backend. The validator now prints a rule id, the JSON path and a suggested fix for every blocking error, so read its output before asking. The parametrised packages/backend/src/adapters/catalog.spec.ts validates every adapter. If yours talks to a live API you can add an opt-in live spec next to it, intl/nominatim.live.spec.ts shows the pattern (skipped unless an env flag is set).
  6. Open a PR. Tag @keysersoft for review.

What we look for in a good adapter

  • ✅ Real, useful tools (not just "list everything")
  • ✅ Clear description strings, the AI uses them to decide when to call the tool
  • ✅ Path/query/body parameters mapped explicitly (don't rely on auto-detection alone)
  • ✅ Auth correctly scoped (least privilege wins). If every call needs an account or org id, make it an env var and use {{MY_VAR}} in the path instead of a tool parameter
  • ✅ At least one example value per tool
  • ✅ Read-only first. Write tools are fine in a second PR once the read side works

You don't need to touch the website: the guide page, logo and marketplace listing are generated on our side after the merge.

Resources

We're happy to pair on the first PR, don't be shy 🙌

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions