Skip to content

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

Open

Description

@helpcodeai

👋 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, shipped by us
Directus @dor1smeow 20 Sep 2026 #697 ✅ merged
Baserow @7k777 23 Sep 2026 #828 ✅ merged
Gitea @abdd8433 15 Oct 2026 #1275 ✅ merged
Prometheus @Parth-Jadhav-2004 21 Oct 2026 in progress
Strapi @YYDW-1211 24 Oct 2026 in progress
Ollama @srinivasa-reddy25 25 Oct 2026 #1250 ✅ merged
NocoDB @Manideep667320 25 Oct 2026 #1254 ✅ merged
Home Assistant @GallaGit 25 Oct 2026 #1285 ✅ merged
Immich @GallaGit 27 Oct 2026 in progress (#1238)
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 22 Oct 2026:

Dev & project tooling — GitLab (shipped), Bitbucket (shipped), Gitea (shipped), Confluence (covered by the Atlassian connector), Sonarqube (own issue: #1240), Monday.com (shipped), Smartsheet, Pipefy, Podio
Self-hosted & infra — Grafana (shipped), Prometheus (claimed 21 Oct), Home Assistant (shipped), Immich (claimed 27 Oct, #1238)
Content & data platforms — Strapi (claimed 24 Oct), Directus (merged), Baserow (merged), NocoDB (merged), Figma (shipped), Miro (shipped)
Finance & payments — Xero (shipped), Zoho Books (shipped), Qonto (shipped), Revolut Business (shipped), SumUp, Klarna
Scheduling & documents — Cal.com (shipped), Docusign (shipped)
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

  1. abdd8433 commented on Oct 15, 2026

    @abdd8433
    Contributor

    Hi! I'd like to claim Gitea. I'll open a PR within 14 days. Thanks!

  2. helpcodeai commented on Oct 15, 2026

    @helpcodeai
    ContributorAuthor

    @abdd8433 Gitea is yours: claimed on 15 Oct, I added you to the table above. Please open the PR by 29 Oct.

    We checked that no adapter for Gitea (or Forgejo) is in the catalogue or planned in our own connector batches, so nobody will land on top of your work.

    A few pointers:

    • intl/coingecko.json is a good template for a REST API with a token. Gitea takes Authorization: token <TOKEN>; please make the instance URL an env var (e.g. GITEA_URL), since most Gitea servers are self-hosted.
    • Start read-only: repositories, issues, pull requests, releases, organisations.
    • Run node scripts/regenerate-catalog.mjs and node scripts/validate-adapters.mjs before opening the PR, and tag @keysersoft for review.

    Thanks for contributing!

  3. Parth-Jadhav-2004 commented on Oct 21, 2026

    @Parth-Jadhav-2004

    I'd like to claim Prometheus, checked and there's no adapter for it under adapters/. Plan is a read-only HTTP API adapter (instant/range queries, series, labels, targets, alerts) with optional bearer/basic auth, plus a live spec behind RUN_PROMETHEUS_LIVE. PR within the 14 days.

  4. helpcodeai commented on Oct 21, 2026

    @helpcodeai
    ContributorAuthor

    @Parth-Jadhav-2004 Prometheus is yours, thanks! I added you to the table above, so the PR is due by 4 Nov. We checked: there's no Prometheus adapter in the catalogue and nothing planned on our side, so nobody will land on top of your work.

    A few pointers:

    • Make the server address an env var (PROMETHEUS_URL), since almost every Prometheus is self-hosted. On AnythingMCP Cloud it has to be reachable from the internet, worth a line in the instructions.
    • We already ship intl/grafana.json, which can run PromQL through a Grafana data source. Please word the descriptions so the AI knows this one talks to Prometheus directly. Otherwise it picks the wrong tool when both are installed.
    • An adapter has a single authType. Most Prometheus servers have no auth, and the ones that do use basic auth or sit behind a proxy with a token. Have a look at how de/destatis-genesis.json uses optionalEnvVars, pick what keeps setup simplest and tell us in the PR. We can sort out the details in review.
    • Keep answers small. Range queries can return huge payloads, so give step a sensible default and use short time ranges in the examples.
    • intl/grafana.live.spec.ts is a good pattern for the RUN_PROMETHEUS_LIVE spec.

    Then the usual: node scripts/regenerate-catalog.mjs, node scripts/validate-adapters.mjs, and open the PR.

  5. sharmis-tp commented on Oct 22, 2026

    @sharmis-tp

    I'd like to claim a target from the pool. I'd add the adapter as a single JSON file following the existing pre-built adapters and test each tool against a real account or instance of the service, opening the PR well within the 14-day window. Which targets are still free after the #642 and #647 wave, so I don't pick one that already shipped?

  6. helpcodeai commented on Oct 22, 2026

    @helpcodeai
    ContributorAuthor

    @sharmis-tp thanks for asking first, and sorry: the list in the issue body was out of date. Since 19 Sep we shipped GitLab, Bitbucket, Monday.com, Grafana, Figma, Miro, Xero, Zoho Books, Qonto, Revolut Business, Cal.com and DocuSign ourselves, and Confluence is covered by the Atlassian connector. Gitea and Prometheus are claimed (see the table). I've just cleaned up the list above.

    I checked the rest against main this morning. These are still free and we have nothing planned for them: SonarQube, Smartsheet, Pipefy, Podio, Home Assistant, Immich, Strapi, NocoDB, SumUp, Klarna and onOffice.

    Since you want to test every tool for real, pick one you have an account or an instance for. If you don't, Home Assistant, Immich, Strapi, NocoDB and SonarQube all run locally in Docker in a few minutes. onOffice is the trickiest one because it signs requests with HMAC, de/kaufland.json shows how that works.

    Tell me which one here and I'll add you to the table with today's date. Then follow the "Add an adapter" steps in AGENTS.md, starting from npm run adapter:new.

  7. YYDW-1211 commented on Oct 24, 2026

    @YYDW-1211
    Contributor

    I'd like to claim Strapi. I checked the current adapter catalogue, the claim table, comments, and open pull requests and couldn't find an existing Strapi adapter or active implementation. I plan to add a token-authenticated REST adapter covering useful core content API operations, validate it against a local Strapi instance, regenerate the catalogue, and run the adapter validator and backend tests. I can open the PR within the 14-day window.

  8. helpcodeai commented on Oct 24, 2026

    @helpcodeai
    ContributorAuthor

    @YYDW-1211 Strapi is yours, thanks for checking the catalogue and the open PRs first. I've added you to the table above.

    A few pointers:

    • intl/directus.json is the closest existing adapter: a headless CMS with a user-supplied base URL, a static token in Authorization: Bearer, read-only tools. Copy its shape and the tone of its instructions.
    • Use a {{STRAPI_URL}} base URL so both Strapi Cloud and self-hosted instances work. In instructions, say that an instance on a private network must be allowed through SSRF_ALLOWED_HOSTS on a self-hosted AnythingMCP, and that only publicly reachable instances work on Cloud.
    • Target Strapi 5's REST API and say so in instructions (v4 responses are shaped differently). A read-only API token is enough for a first version; keep create, update and delete out of scope.
    • Content-type names go into the request path, so percent-encode them the way Directus does for collections.
    • The six steps in AGENTS.md ("Add an adapter") and a intl/strapi.live.spec.ts with live calls behind RUN_STRAPI_LIVE=1.

    The window is 14 days, so a PR by 7 Nov. If you need longer, just say so here.

  9. srinivasa-reddy25 commented on Oct 25, 2026

    @srinivasa-reddy25
    Contributor

    I'd like to claim Ollama. I checked the catalogue, the claim table and open PRs: there's no Ollama adapter (the closest are intl/huggingface.json and intl/mistral.json, which are hosted APIs). Plan: a REST adapter on a user-supplied OLLAMA_URL (default http://localhost:11434, with the SSRF_ALLOWED_HOSTS note for local/private hosts) and an optional OLLAMA_API_KEY sent as a Bearer token for Ollama Cloud or an authenticating proxy. Tools: version (probe), list local and running models, show model details, chat, generate and embed, all non-streaming. No pull/delete/copy/push, so the adapter never changes which models are installed. Includes a live spec gated behind RUN_OLLAMA_LIVE=1. PR shortly.

  10. helpcodeai commented on Oct 25, 2026

    @helpcodeai
    ContributorAuthor

    @srinivasa-reddy25 Ollama is yours, thanks for checking first. I'm reviewing #1250 now.

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