connectkit 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- connectkit-0.1.0/.env +1 -0
- connectkit-0.1.0/.gitignore +7 -0
- connectkit-0.1.0/LICENSE +21 -0
- connectkit-0.1.0/PKG-INFO +197 -0
- connectkit-0.1.0/README.md +169 -0
- connectkit-0.1.0/STRATEGY.md +111 -0
- connectkit-0.1.0/connectkit/__init__.py +26 -0
- connectkit-0.1.0/connectkit/backends/__init__.py +0 -0
- connectkit-0.1.0/connectkit/backends/cli.py +220 -0
- connectkit-0.1.0/connectkit/backends/mcp.py +87 -0
- connectkit-0.1.0/connectkit/bridge.py +116 -0
- connectkit-0.1.0/connectkit/meta_tools.py +290 -0
- connectkit-0.1.0/connectkit/oauth.py +168 -0
- connectkit-0.1.0/connectkit/runtime.py +189 -0
- connectkit-0.1.0/connectkit/sdk_adapter.py +42 -0
- connectkit-0.1.0/connectkit/spec.py +161 -0
- connectkit-0.1.0/connectkit/utils.py +52 -0
- connectkit-0.1.0/connectkit/vault.py +202 -0
- connectkit-0.1.0/connectors/accelo.yaml +26 -0
- connectkit-0.1.0/connectors/active-campaign.yaml +28 -0
- connectkit-0.1.0/connectors/acuity-scheduling.yaml +20 -0
- connectkit-0.1.0/connectors/addepar.yaml +26 -0
- connectkit-0.1.0/connectors/adobe-commerce.yaml +34 -0
- connectkit-0.1.0/connectors/adobe-workfront.yaml +26 -0
- connectkit-0.1.0/connectors/adobe.yaml +20 -0
- connectkit-0.1.0/connectors/adyen.yaml +32 -0
- connectkit-0.1.0/connectors/affinity-v2.yaml +22 -0
- connectkit-0.1.0/connectors/affinity.yaml +22 -0
- connectkit-0.1.0/connectors/aimfox.yaml +22 -0
- connectkit-0.1.0/connectors/aircall.yaml +20 -0
- connectkit-0.1.0/connectors/airtable.yaml +47 -0
- connectkit-0.1.0/connectors/algolia.yaml +31 -0
- connectkit-0.1.0/connectors/amazon-selling-partner.yaml +46 -0
- connectkit-0.1.0/connectors/amazon.yaml +26 -0
- connectkit-0.1.0/connectors/amplitude.yaml +34 -0
- connectkit-0.1.0/connectors/anrok.yaml +22 -0
- connectkit-0.1.0/connectors/anthropic.yaml +28 -0
- connectkit-0.1.0/connectors/apaleo.yaml +20 -0
- connectkit-0.1.0/connectors/apify.yaml +25 -0
- connectkit-0.1.0/connectors/apollo.yaml +22 -0
- connectkit-0.1.0/connectors/apple-app-store.yaml +16 -0
- connectkit-0.1.0/connectors/appstle-subscriptions.yaml +22 -0
- connectkit-0.1.0/connectors/asana.yaml +20 -0
- connectkit-0.1.0/connectors/ashby.yaml +22 -0
- connectkit-0.1.0/connectors/atlas-so.yaml +22 -0
- connectkit-0.1.0/connectors/atlassian-service-account-api-token.yaml +34 -0
- connectkit-0.1.0/connectors/atlassian.yaml +26 -0
- connectkit-0.1.0/connectors/attention.yaml +22 -0
- connectkit-0.1.0/connectors/attio.yaml +20 -0
- connectkit-0.1.0/connectors/auth0.yaml +28 -0
- connectkit-0.1.0/connectors/autodesk.yaml +20 -0
- connectkit-0.1.0/connectors/autotask.yaml +40 -0
- connectkit-0.1.0/connectors/auvik.yaml +34 -0
- connectkit-0.1.0/connectors/avalara.yaml +34 -0
- connectkit-0.1.0/connectors/avoma.yaml +22 -0
- connectkit-0.1.0/connectors/aws-iam.yaml +34 -0
- connectkit-0.1.0/connectors/aws-inspector2.yaml +34 -0
- connectkit-0.1.0/connectors/aws-multi-service.yaml +40 -0
- connectkit-0.1.0/connectors/aws.yaml +38 -0
- connectkit-0.1.0/connectors/axiom.yaml +28 -0
- connectkit-0.1.0/connectors/azure-devops.yaml +28 -0
- connectkit-0.1.0/connectors/bamboohr.yaml +31 -0
- connectkit-0.1.0/connectors/basecamp.yaml +34 -0
- connectkit-0.1.0/connectors/battlenet.yaml +32 -0
- connectkit-0.1.0/connectors/beehiiv.yaml +28 -0
- connectkit-0.1.0/connectors/bettercontact.yaml +22 -0
- connectkit-0.1.0/connectors/bigcommerce.yaml +35 -0
- connectkit-0.1.0/connectors/bill.yaml +20 -0
- connectkit-0.1.0/connectors/bing-webmasters.yaml +20 -0
- connectkit-0.1.0/connectors/bird.yaml +34 -0
- connectkit-0.1.0/connectors/bitbucket.yaml +23 -0
- connectkit-0.1.0/connectors/bitdefender.yaml +28 -0
- connectkit-0.1.0/connectors/bitly.yaml +20 -0
- connectkit-0.1.0/connectors/blackbaud.yaml +20 -0
- connectkit-0.1.0/connectors/blandai.yaml +22 -0
- connectkit-0.1.0/connectors/boldsign.yaml +20 -0
- connectkit-0.1.0/connectors/booking-com.yaml +34 -0
- connectkit-0.1.0/connectors/box.yaml +62 -0
- connectkit-0.1.0/connectors/braintree.yaml +23 -0
- connectkit-0.1.0/connectors/braze.yaml +28 -0
- connectkit-0.1.0/connectors/brevo-api-key.yaml +22 -0
- connectkit-0.1.0/connectors/brex-api-key.yaml +22 -0
- connectkit-0.1.0/connectors/brex-staging.yaml +20 -0
- connectkit-0.1.0/connectors/brex.yaml +24 -0
- connectkit-0.1.0/connectors/builder-io-private.yaml +28 -0
- connectkit-0.1.0/connectors/builder-io-public.yaml +28 -0
- connectkit-0.1.0/connectors/buildium.yaml +28 -0
- connectkit-0.1.0/connectors/builtwith.yaml +22 -0
- connectkit-0.1.0/connectors/bullhorn.yaml +42 -0
- connectkit-0.1.0/connectors/cal-com-v1.yaml +22 -0
- connectkit-0.1.0/connectors/cal-com-v2.yaml +22 -0
- connectkit-0.1.0/connectors/calendly.yaml +20 -0
- connectkit-0.1.0/connectors/callrail.yaml +22 -0
- connectkit-0.1.0/connectors/candis.yaml +20 -0
- connectkit-0.1.0/connectors/canny.yaml +22 -0
- connectkit-0.1.0/connectors/canva.yaml +20 -0
- connectkit-0.1.0/connectors/canvas-lms.yaml +26 -0
- connectkit-0.1.0/connectors/certn.yaml +22 -0
- connectkit-0.1.0/connectors/chargebee.yaml +28 -0
- connectkit-0.1.0/connectors/chattermill.yaml +28 -0
- connectkit-0.1.0/connectors/checkhq.yaml +22 -0
- connectkit-0.1.0/connectors/checkr-partner-staging.yaml +26 -0
- connectkit-0.1.0/connectors/checkr-partner.yaml +26 -0
- connectkit-0.1.0/connectors/chorus.yaml +22 -0
- connectkit-0.1.0/connectors/cin7-core.yaml +28 -0
- connectkit-0.1.0/connectors/circle-so.yaml +22 -0
- connectkit-0.1.0/connectors/clari-copilot.yaml +28 -0
- connectkit-0.1.0/connectors/clay.yaml +28 -0
- connectkit-0.1.0/connectors/clearbit.yaml +46 -0
- connectkit-0.1.0/connectors/clerk.yaml +22 -0
- connectkit-0.1.0/connectors/cleverreach.yaml +22 -0
- connectkit-0.1.0/connectors/clickhouse.yaml +28 -0
- connectkit-0.1.0/connectors/clicksend.yaml +28 -0
- connectkit-0.1.0/connectors/clickup.yaml +51 -0
- connectkit-0.1.0/connectors/clio.yaml +27 -0
- connectkit-0.1.0/connectors/close.yaml +23 -0
- connectkit-0.1.0/connectors/cloudbeds.yaml +20 -0
- connectkit-0.1.0/connectors/cloudflare.yaml +25 -0
- connectkit-0.1.0/connectors/cloudtalk.yaml +28 -0
- connectkit-0.1.0/connectors/clover.yaml +32 -0
- connectkit-0.1.0/connectors/coda.yaml +22 -0
- connectkit-0.1.0/connectors/codeclimate.yaml +28 -0
- connectkit-0.1.0/connectors/codegen.yaml +22 -0
- connectkit-0.1.0/connectors/companycam.yaml +22 -0
- connectkit-0.1.0/connectors/connectwise-psa-staging.yaml +28 -0
- connectkit-0.1.0/connectors/connectwise-psa.yaml +52 -0
- connectkit-0.1.0/connectors/constant-contact.yaml +20 -0
- connectkit-0.1.0/connectors/conta-azul.yaml +20 -0
- connectkit-0.1.0/connectors/contactout.yaml +22 -0
- connectkit-0.1.0/connectors/contentful.yaml +29 -0
- connectkit-0.1.0/connectors/contentstack.yaml +38 -0
- connectkit-0.1.0/connectors/convertkit.yaml +42 -0
- connectkit-0.1.0/connectors/copper-api-key.yaml +28 -0
- connectkit-0.1.0/connectors/copper.yaml +20 -0
- connectkit-0.1.0/connectors/coros.yaml +20 -0
- connectkit-0.1.0/connectors/crisp-plugin-install.yaml +20 -0
- connectkit-0.1.0/connectors/crisp.yaml +28 -0
- connectkit-0.1.0/connectors/crunchbase.yaml +22 -0
- connectkit-0.1.0/connectors/cursor.yaml +22 -0
- connectkit-0.1.0/connectors/customerio.yaml +57 -0
- connectkit-0.1.0/connectors/cyberimpact.yaml +22 -0
- connectkit-0.1.0/connectors/databricks.yaml +56 -0
- connectkit-0.1.0/connectors/datacandy.yaml +46 -0
- connectkit-0.1.0/connectors/datadog.yaml +60 -0
- connectkit-0.1.0/connectors/datev.yaml +23 -0
- connectkit-0.1.0/connectors/datto-rmm.yaml +26 -0
- connectkit-0.1.0/connectors/deel.yaml +20 -0
- connectkit-0.1.0/connectors/deepl.yaml +52 -0
- connectkit-0.1.0/connectors/demodesk.yaml +22 -0
- connectkit-0.1.0/connectors/devin.yaml +22 -0
- connectkit-0.1.0/connectors/dialpad.yaml +20 -0
- connectkit-0.1.0/connectors/digitalocean.yaml +23 -0
- connectkit-0.1.0/connectors/discord.yaml +48 -0
- connectkit-0.1.0/connectors/discourse.yaml +34 -0
- connectkit-0.1.0/connectors/dixa.yaml +28 -0
- connectkit-0.1.0/connectors/document360.yaml +22 -0
- connectkit-0.1.0/connectors/docusign.yaml +20 -0
- connectkit-0.1.0/connectors/drata.yaml +22 -0
- connectkit-0.1.0/connectors/drchrono.yaml +20 -0
- connectkit-0.1.0/connectors/dropbox-sign.yaml +20 -0
- connectkit-0.1.0/connectors/dropbox.yaml +60 -0
- connectkit-0.1.0/connectors/e-conomic.yaml +28 -0
- connectkit-0.1.0/connectors/ebay.yaml +20 -0
- connectkit-0.1.0/connectors/egnyte.yaml +26 -0
- connectkit-0.1.0/connectors/elasticsearch.yaml +65 -0
- connectkit-0.1.0/connectors/elevenlabs.yaml +22 -0
- connectkit-0.1.0/connectors/elevio.yaml +28 -0
- connectkit-0.1.0/connectors/emarsys.yaml +32 -0
- connectkit-0.1.0/connectors/employment-hero.yaml +20 -0
- connectkit-0.1.0/connectors/entrata.yaml +22 -0
- connectkit-0.1.0/connectors/envoy.yaml +20 -0
- connectkit-0.1.0/connectors/epic-games.yaml +20 -0
- connectkit-0.1.0/connectors/evaluagent.yaml +34 -0
- connectkit-0.1.0/connectors/eventbrite.yaml +20 -0
- connectkit-0.1.0/connectors/exa.yaml +22 -0
- connectkit-0.1.0/connectors/exact-online.yaml +26 -0
- connectkit-0.1.0/connectors/exist.yaml +20 -0
- connectkit-0.1.0/connectors/expensify.yaml +28 -0
- connectkit-0.1.0/connectors/facebook.yaml +20 -0
- connectkit-0.1.0/connectors/factorial.yaml +20 -0
- connectkit-0.1.0/connectors/fairing.yaml +22 -0
- connectkit-0.1.0/connectors/falai.yaml +22 -0
- connectkit-0.1.0/connectors/fanvue.yaml +27 -0
- connectkit-0.1.0/connectors/fathom.yaml +22 -0
- connectkit-0.1.0/connectors/fellow.yaml +28 -0
- connectkit-0.1.0/connectors/fiber-ai.yaml +22 -0
- connectkit-0.1.0/connectors/figma.yaml +50 -0
- connectkit-0.1.0/connectors/fillout-api-key.yaml +28 -0
- connectkit-0.1.0/connectors/fillout.yaml +26 -0
- connectkit-0.1.0/connectors/findymail.yaml +22 -0
- connectkit-0.1.0/connectors/firecrawl.yaml +51 -0
- connectkit-0.1.0/connectors/fireflies.yaml +22 -0
- connectkit-0.1.0/connectors/firstbase.yaml +22 -0
- connectkit-0.1.0/connectors/fiserv-api-key.yaml +22 -0
- connectkit-0.1.0/connectors/fitbit.yaml +20 -0
- connectkit-0.1.0/connectors/float.yaml +28 -0
- connectkit-0.1.0/connectors/folk.yaml +22 -0
- connectkit-0.1.0/connectors/fortnox.yaml +22 -0
- connectkit-0.1.0/connectors/freeagent.yaml +20 -0
- connectkit-0.1.0/connectors/freepik.yaml +22 -0
- connectkit-0.1.0/connectors/freshbooks.yaml +20 -0
- connectkit-0.1.0/connectors/freshdesk.yaml +31 -0
- connectkit-0.1.0/connectors/freshsales.yaml +34 -0
- connectkit-0.1.0/connectors/freshservice.yaml +28 -0
- connectkit-0.1.0/connectors/freshteam.yaml +28 -0
- connectkit-0.1.0/connectors/front-api-key.yaml +22 -0
- connectkit-0.1.0/connectors/front.yaml +20 -0
- connectkit-0.1.0/connectors/ftp.yaml +66 -0
- connectkit-0.1.0/connectors/fullenrich.yaml +22 -0
- connectkit-0.1.0/connectors/gamma.yaml +22 -0
- connectkit-0.1.0/connectors/garmin.yaml +20 -0
- connectkit-0.1.0/connectors/gebruder-weiss.yaml +20 -0
- connectkit-0.1.0/connectors/gem.yaml +28 -0
- connectkit-0.1.0/connectors/gerrit.yaml +22 -0
- connectkit-0.1.0/connectors/getresponse.yaml +42 -0
- connectkit-0.1.0/connectors/ghost-content.yaml +34 -0
- connectkit-0.1.0/connectors/github-app.yaml +28 -0
- connectkit-0.1.0/connectors/github.yaml +80 -0
- connectkit-0.1.0/connectors/gitlab.yaml +70 -0
- connectkit-0.1.0/connectors/glyphic.yaml +22 -0
- connectkit-0.1.0/connectors/gong.yaml +31 -0
- connectkit-0.1.0/connectors/google-ads.yaml +61 -0
- connectkit-0.1.0/connectors/google-analytics.yaml +59 -0
- connectkit-0.1.0/connectors/google-gemini.yaml +22 -0
- connectkit-0.1.0/connectors/google-maps.yaml +22 -0
- connectkit-0.1.0/connectors/google-play.yaml +23 -0
- connectkit-0.1.0/connectors/google-workspace.yaml +69 -0
- connectkit-0.1.0/connectors/google.yaml +23 -0
- connectkit-0.1.0/connectors/gorgias.yaml +26 -0
- connectkit-0.1.0/connectors/grafana.yaml +31 -0
- connectkit-0.1.0/connectors/grain-api-key.yaml +22 -0
- connectkit-0.1.0/connectors/grain.yaml +20 -0
- connectkit-0.1.0/connectors/granola.yaml +22 -0
- connectkit-0.1.0/connectors/greenhouse-assessment.yaml +28 -0
- connectkit-0.1.0/connectors/greenhouse-harvest-partner.yaml +20 -0
- connectkit-0.1.0/connectors/greenhouse-harvest.yaml +22 -0
- connectkit-0.1.0/connectors/greenhouse-ingestion.yaml +20 -0
- connectkit-0.1.0/connectors/greenhouse-job-board.yaml +28 -0
- connectkit-0.1.0/connectors/greenhouse-onboarding.yaml +28 -0
- connectkit-0.1.0/connectors/greenhouse.yaml +26 -0
- connectkit-0.1.0/connectors/grist.yaml +28 -0
- connectkit-0.1.0/connectors/gumroad.yaml +20 -0
- connectkit-0.1.0/connectors/guru.yaml +28 -0
- connectkit-0.1.0/connectors/gusto-demo.yaml +20 -0
- connectkit-0.1.0/connectors/gusto.yaml +20 -0
- connectkit-0.1.0/connectors/hackerrank-work.yaml +22 -0
- connectkit-0.1.0/connectors/harvest.yaml +26 -0
- connectkit-0.1.0/connectors/health-gorilla.yaml +20 -0
- connectkit-0.1.0/connectors/helpscout-docs.yaml +22 -0
- connectkit-0.1.0/connectors/helpscout-mailbox.yaml +20 -0
- connectkit-0.1.0/connectors/hex.yaml +28 -0
- connectkit-0.1.0/connectors/heygen.yaml +20 -0
- connectkit-0.1.0/connectors/heymarket.yaml +32 -0
- connectkit-0.1.0/connectors/heyreach.yaml +22 -0
- connectkit-0.1.0/connectors/hibob-service-user.yaml +28 -0
- connectkit-0.1.0/connectors/highlevel-white-label.yaml +20 -0
- connectkit-0.1.0/connectors/highlevel.yaml +20 -0
- connectkit-0.1.0/connectors/holded.yaml +22 -0
- connectkit-0.1.0/connectors/hover.yaml +20 -0
- connectkit-0.1.0/connectors/hubspot.yaml +64 -0
- connectkit-0.1.0/connectors/icypeas.yaml +22 -0
- connectkit-0.1.0/connectors/incident-io.yaml +25 -0
- connectkit-0.1.0/connectors/insightly.yaml +28 -0
- connectkit-0.1.0/connectors/instagram.yaml +20 -0
- connectkit-0.1.0/connectors/instantly.yaml +22 -0
- connectkit-0.1.0/connectors/intercom.yaml +29 -0
- connectkit-0.1.0/connectors/intuit.yaml +20 -0
- connectkit-0.1.0/connectors/ironclad.yaml +26 -0
- connectkit-0.1.0/connectors/itglue.yaml +28 -0
- connectkit-0.1.0/connectors/jazzhr.yaml +22 -0
- connectkit-0.1.0/connectors/jira-data-center-api-key.yaml +28 -0
- connectkit-0.1.0/connectors/jira-data-center.yaml +26 -0
- connectkit-0.1.0/connectors/jira.yaml +73 -0
- connectkit-0.1.0/connectors/jobadder.yaml +20 -0
- connectkit-0.1.0/connectors/jobber.yaml +26 -0
- connectkit-0.1.0/connectors/jobvite.yaml +28 -0
- connectkit-0.1.0/connectors/jotform.yaml +22 -0
- connectkit-0.1.0/connectors/jumpcloud.yaml +22 -0
- connectkit-0.1.0/connectors/juniper-mist.yaml +28 -0
- connectkit-0.1.0/connectors/justworks.yaml +20 -0
- connectkit-0.1.0/connectors/kafka.yaml +70 -0
- connectkit-0.1.0/connectors/kandji.yaml +28 -0
- connectkit-0.1.0/connectors/keap.yaml +20 -0
- connectkit-0.1.0/connectors/kintone-user-api.yaml +28 -0
- connectkit-0.1.0/connectors/kintone.yaml +26 -0
- connectkit-0.1.0/connectors/klaviyo.yaml +22 -0
- connectkit-0.1.0/connectors/klicktipp.yaml +22 -0
- connectkit-0.1.0/connectors/klipfolio.yaml +22 -0
- connectkit-0.1.0/connectors/knowbe4.yaml +28 -0
- connectkit-0.1.0/connectors/kustomer.yaml +28 -0
- connectkit-0.1.0/connectors/lagrowthmachine.yaml +22 -0
- connectkit-0.1.0/connectors/lastpass.yaml +28 -0
- connectkit-0.1.0/connectors/lattice.yaml +22 -0
- connectkit-0.1.0/connectors/leadmagic.yaml +22 -0
- connectkit-0.1.0/connectors/lemlist.yaml +22 -0
- connectkit-0.1.0/connectors/lessonly.yaml +28 -0
- connectkit-0.1.0/connectors/lever.yaml +22 -0
- connectkit-0.1.0/connectors/lightspeed-retail.yaml +26 -0
- connectkit-0.1.0/connectors/linear.yaml +65 -0
- connectkit-0.1.0/connectors/linkedin.yaml +20 -0
- connectkit-0.1.0/connectors/linkhut.yaml +20 -0
- connectkit-0.1.0/connectors/listmonk.yaml +34 -0
- connectkit-0.1.0/connectors/lob.yaml +22 -0
- connectkit-0.1.0/connectors/lokalise.yaml +20 -0
- connectkit-0.1.0/connectors/loop-returns.yaml +22 -0
- connectkit-0.1.0/connectors/loops-so.yaml +22 -0
- connectkit-0.1.0/connectors/luma.yaml +22 -0
- connectkit-0.1.0/connectors/lumos.yaml +22 -0
- connectkit-0.1.0/connectors/mailchimp.yaml +29 -0
- connectkit-0.1.0/connectors/mailerlite.yaml +42 -0
- connectkit-0.1.0/connectors/mailgun.yaml +22 -0
- connectkit-0.1.0/connectors/mailjet.yaml +28 -0
- connectkit-0.1.0/connectors/make.yaml +28 -0
- connectkit-0.1.0/connectors/manatal.yaml +22 -0
- connectkit-0.1.0/connectors/maximizer-on-premise.yaml +26 -0
- connectkit-0.1.0/connectors/maximizer.yaml +32 -0
- connectkit-0.1.0/connectors/maxio.yaml +28 -0
- connectkit-0.1.0/connectors/mcp-generic.yaml +26 -0
- connectkit-0.1.0/connectors/mercury.yaml +20 -0
- connectkit-0.1.0/connectors/metabase.yaml +31 -0
- connectkit-0.1.0/connectors/microsoft-365.yaml +66 -0
- connectkit-0.1.0/connectors/microsoft-dynamics.yaml +75 -0
- connectkit-0.1.0/connectors/microsoft-entra-id.yaml +68 -0
- connectkit-0.1.0/connectors/microsoft-teams-bot.yaml +35 -0
- connectkit-0.1.0/connectors/microsoft-tenant-specific.yaml +29 -0
- connectkit-0.1.0/connectors/microsoft.yaml +23 -0
- connectkit-0.1.0/connectors/mindbody.yaml +34 -0
- connectkit-0.1.0/connectors/minimax.yaml +28 -0
- connectkit-0.1.0/connectors/miro.yaml +20 -0
- connectkit-0.1.0/connectors/missive.yaml +22 -0
- connectkit-0.1.0/connectors/mixpanel.yaml +31 -0
- connectkit-0.1.0/connectors/mollie.yaml +20 -0
- connectkit-0.1.0/connectors/momentum-io.yaml +22 -0
- connectkit-0.1.0/connectors/monday.yaml +61 -0
- connectkit-0.1.0/connectors/mongodb.yaml +55 -0
- connectkit-0.1.0/connectors/mural.yaml +20 -0
- connectkit-0.1.0/connectors/mysql.yaml +66 -0
- connectkit-0.1.0/connectors/namely.yaml +26 -0
- connectkit-0.1.0/connectors/nationbuilder.yaml +26 -0
- connectkit-0.1.0/connectors/netlify.yaml +42 -0
- connectkit-0.1.0/connectors/netsuite-tba.yaml +20 -0
- connectkit-0.1.0/connectors/netsuite.yaml +31 -0
- connectkit-0.1.0/connectors/next-cloud-ocs.yaml +22 -0
- connectkit-0.1.0/connectors/nocrm.yaml +28 -0
- connectkit-0.1.0/connectors/northbeam.yaml +34 -0
- connectkit-0.1.0/connectors/notion.yaml +55 -0
- connectkit-0.1.0/connectors/nyne-ai.yaml +28 -0
- connectkit-0.1.0/connectors/ocean-io.yaml +22 -0
- connectkit-0.1.0/connectors/odoo.yaml +26 -0
- connectkit-0.1.0/connectors/okta-preview.yaml +26 -0
- connectkit-0.1.0/connectors/okta.yaml +28 -0
- connectkit-0.1.0/connectors/one-drive-personal.yaml +22 -0
- connectkit-0.1.0/connectors/onlogist.yaml +22 -0
- connectkit-0.1.0/connectors/oomnitza.yaml +28 -0
- connectkit-0.1.0/connectors/open-hands.yaml +22 -0
- connectkit-0.1.0/connectors/openai.yaml +25 -0
- connectkit-0.1.0/connectors/oracle-hcm.yaml +34 -0
- connectkit-0.1.0/connectors/ordinal.yaml +22 -0
- connectkit-0.1.0/connectors/osu.yaml +20 -0
- connectkit-0.1.0/connectors/oura.yaml +20 -0
- connectkit-0.1.0/connectors/outreach.yaml +23 -0
- connectkit-0.1.0/connectors/pagerduty.yaml +41 -0
- connectkit-0.1.0/connectors/paligo.yaml +34 -0
- connectkit-0.1.0/connectors/pandadoc-api-key.yaml +22 -0
- connectkit-0.1.0/connectors/pandadoc.yaml +20 -0
- connectkit-0.1.0/connectors/paycom.yaml +28 -0
- connectkit-0.1.0/connectors/paycor.yaml +34 -0
- connectkit-0.1.0/connectors/payfit.yaml +20 -0
- connectkit-0.1.0/connectors/paypal.yaml +20 -0
- connectkit-0.1.0/connectors/pendo.yaml +22 -0
- connectkit-0.1.0/connectors/pennylane-company-api.yaml +22 -0
- connectkit-0.1.0/connectors/pennylane.yaml +20 -0
- connectkit-0.1.0/connectors/peopledatalabs.yaml +22 -0
- connectkit-0.1.0/connectors/perdoo.yaml +22 -0
- connectkit-0.1.0/connectors/perk.yaml +20 -0
- connectkit-0.1.0/connectors/perplexity.yaml +22 -0
- connectkit-0.1.0/connectors/personio-recruiting.yaml +46 -0
- connectkit-0.1.0/connectors/pingone.yaml +32 -0
- connectkit-0.1.0/connectors/pinterest.yaml +20 -0
- connectkit-0.1.0/connectors/pipedream.yaml +22 -0
- connectkit-0.1.0/connectors/pipedrive.yaml +29 -0
- connectkit-0.1.0/connectors/pivotaltracker.yaml +22 -0
- connectkit-0.1.0/connectors/plain.yaml +22 -0
- connectkit-0.1.0/connectors/pleo.yaml +32 -0
- connectkit-0.1.0/connectors/podium.yaml +26 -0
- connectkit-0.1.0/connectors/postgres.yaml +48 -0
- connectkit-0.1.0/connectors/posthog.yaml +31 -0
- connectkit-0.1.0/connectors/postman.yaml +41 -0
- connectkit-0.1.0/connectors/practicefusion.yaml +35 -0
- connectkit-0.1.0/connectors/precisefp.yaml +20 -0
- connectkit-0.1.0/connectors/printful.yaml +20 -0
- connectkit-0.1.0/connectors/private-api-bearer.yaml +22 -0
- connectkit-0.1.0/connectors/prive.yaml +22 -0
- connectkit-0.1.0/connectors/procore.yaml +26 -0
- connectkit-0.1.0/connectors/productboard.yaml +23 -0
- connectkit-0.1.0/connectors/prospeo.yaml +22 -0
- connectkit-0.1.0/connectors/provenexpert.yaml +28 -0
- connectkit-0.1.0/connectors/prtg-classic.yaml +28 -0
- connectkit-0.1.0/connectors/pylon.yaml +22 -0
- connectkit-0.1.0/connectors/qualia.yaml +34 -0
- connectkit-0.1.0/connectors/qualtrics.yaml +26 -0
- connectkit-0.1.0/connectors/quentn.yaml +28 -0
- connectkit-0.1.0/connectors/quickbase.yaml +34 -0
- connectkit-0.1.0/connectors/quickbooks.yaml +26 -0
- connectkit-0.1.0/connectors/quipteams.yaml +22 -0
- connectkit-0.1.0/connectors/rabbitmq.yaml +72 -0
- connectkit-0.1.0/connectors/ragieai.yaml +22 -0
- connectkit-0.1.0/connectors/ramp.yaml +23 -0
- connectkit-0.1.0/connectors/rapidapi.yaml +28 -0
- connectkit-0.1.0/connectors/razorpay.yaml +28 -0
- connectkit-0.1.0/connectors/readwise-reader.yaml +22 -0
- connectkit-0.1.0/connectors/readwise.yaml +22 -0
- connectkit-0.1.0/connectors/reapit.yaml +26 -0
- connectkit-0.1.0/connectors/recall-ai.yaml +28 -0
- connectkit-0.1.0/connectors/recharge.yaml +22 -0
- connectkit-0.1.0/connectors/recruitcrm.yaml +22 -0
- connectkit-0.1.0/connectors/recruitee.yaml +34 -0
- connectkit-0.1.0/connectors/recruiterflow.yaml +22 -0
- connectkit-0.1.0/connectors/reddit.yaml +22 -0
- connectkit-0.1.0/connectors/redis.yaml +57 -0
- connectkit-0.1.0/connectors/refiner.yaml +22 -0
- connectkit-0.1.0/connectors/replicate.yaml +22 -0
- connectkit-0.1.0/connectors/reply-io.yaml +22 -0
- connectkit-0.1.0/connectors/resend.yaml +25 -0
- connectkit-0.1.0/connectors/retell-ai.yaml +22 -0
- connectkit-0.1.0/connectors/ring-central.yaml +20 -0
- connectkit-0.1.0/connectors/ringover.yaml +22 -0
- connectkit-0.1.0/connectors/rippling-shop-app.yaml +26 -0
- connectkit-0.1.0/connectors/rippling.yaml +22 -0
- connectkit-0.1.0/connectors/rock-gym-pro.yaml +28 -0
- connectkit-0.1.0/connectors/rocketlane.yaml +22 -0
- connectkit-0.1.0/connectors/rocketreach.yaml +22 -0
- connectkit-0.1.0/connectors/rootly.yaml +25 -0
- connectkit-0.1.0/connectors/sage-hr.yaml +28 -0
- connectkit-0.1.0/connectors/sage-people.yaml +29 -0
- connectkit-0.1.0/connectors/sage.yaml +22 -0
- connectkit-0.1.0/connectors/salesforce-experience-cloud.yaml +32 -0
- connectkit-0.1.0/connectors/salesforce.yaml +63 -0
- connectkit-0.1.0/connectors/salesloft.yaml +23 -0
- connectkit-0.1.0/connectors/schwab.yaml +20 -0
- connectkit-0.1.0/connectors/scrapedo.yaml +22 -0
- connectkit-0.1.0/connectors/segment.yaml +20 -0
- connectkit-0.1.0/connectors/sellsy.yaml +20 -0
- connectkit-0.1.0/connectors/semrush.yaml +22 -0
- connectkit-0.1.0/connectors/sendgrid.yaml +22 -0
- connectkit-0.1.0/connectors/sentinelone.yaml +28 -0
- connectkit-0.1.0/connectors/sentry.yaml +51 -0
- connectkit-0.1.0/connectors/servicem8.yaml +20 -0
- connectkit-0.1.0/connectors/servicenow.yaml +26 -0
- connectkit-0.1.0/connectors/shipstation-v2.yaml +22 -0
- connectkit-0.1.0/connectors/shipstation.yaml +28 -0
- connectkit-0.1.0/connectors/shopify-api-key.yaml +28 -0
- connectkit-0.1.0/connectors/shopify-partner.yaml +28 -0
- connectkit-0.1.0/connectors/shopify.yaml +29 -0
- connectkit-0.1.0/connectors/shortcut.yaml +25 -0
- connectkit-0.1.0/connectors/signnow.yaml +20 -0
- connectkit-0.1.0/connectors/simpro.yaml +26 -0
- connectkit-0.1.0/connectors/skio.yaml +22 -0
- connectkit-0.1.0/connectors/slab.yaml +22 -0
- connectkit-0.1.0/connectors/slack.yaml +66 -0
- connectkit-0.1.0/connectors/smartlead-ai.yaml +22 -0
- connectkit-0.1.0/connectors/smartrecruiters-api-key.yaml +22 -0
- connectkit-0.1.0/connectors/smartsheet.yaml +26 -0
- connectkit-0.1.0/connectors/smugmug.yaml +20 -0
- connectkit-0.1.0/connectors/snapchat.yaml +20 -0
- connectkit-0.1.0/connectors/snipe-it.yaml +28 -0
- connectkit-0.1.0/connectors/snowflake-jwt.yaml +44 -0
- connectkit-0.1.0/connectors/snowflake.yaml +29 -0
- connectkit-0.1.0/connectors/splitwise.yaml +20 -0
- connectkit-0.1.0/connectors/spotify.yaml +23 -0
- connectkit-0.1.0/connectors/squarespace.yaml +26 -0
- connectkit-0.1.0/connectors/squareup.yaml +22 -0
- connectkit-0.1.0/connectors/stackexchange.yaml +20 -0
- connectkit-0.1.0/connectors/statista.yaml +22 -0
- connectkit-0.1.0/connectors/stay-ai.yaml +22 -0
- connectkit-0.1.0/connectors/store-leads.yaml +22 -0
- connectkit-0.1.0/connectors/strava-web.yaml +22 -0
- connectkit-0.1.0/connectors/strava.yaml +22 -0
- connectkit-0.1.0/connectors/streak.yaml +22 -0
- connectkit-0.1.0/connectors/stripe-api-key.yaml +28 -0
- connectkit-0.1.0/connectors/stripe-app.yaml +20 -0
- connectkit-0.1.0/connectors/stripe-express.yaml +20 -0
- connectkit-0.1.0/connectors/stripe.yaml +52 -0
- connectkit-0.1.0/connectors/supabase.yaml +28 -0
- connectkit-0.1.0/connectors/survey-monkey.yaml +20 -0
- connectkit-0.1.0/connectors/tailscale-api-key.yaml +28 -0
- connectkit-0.1.0/connectors/tally.yaml +22 -0
- connectkit-0.1.0/connectors/teamleader.yaml +20 -0
- connectkit-0.1.0/connectors/teamtailor.yaml +28 -0
- connectkit-0.1.0/connectors/teamwork.yaml +20 -0
- connectkit-0.1.0/connectors/telegram.yaml +22 -0
- connectkit-0.1.0/connectors/terraform.yaml +22 -0
- connectkit-0.1.0/connectors/thrivecart-api-key.yaml +22 -0
- connectkit-0.1.0/connectors/ticktick.yaml +20 -0
- connectkit-0.1.0/connectors/tiktok-accounts.yaml +20 -0
- connectkit-0.1.0/connectors/tiktok-ads.yaml +20 -0
- connectkit-0.1.0/connectors/tiktok-personal.yaml +20 -0
- connectkit-0.1.0/connectors/timely.yaml +20 -0
- connectkit-0.1.0/connectors/tldv.yaml +22 -0
- connectkit-0.1.0/connectors/todoist.yaml +23 -0
- connectkit-0.1.0/connectors/toggl.yaml +31 -0
- connectkit-0.1.0/connectors/torii.yaml +22 -0
- connectkit-0.1.0/connectors/trakstar-hire.yaml +22 -0
- connectkit-0.1.0/connectors/trello.yaml +56 -0
- connectkit-0.1.0/connectors/tremendous.yaml +20 -0
- connectkit-0.1.0/connectors/triple-whale.yaml +22 -0
- connectkit-0.1.0/connectors/tsheetsteam.yaml +20 -0
- connectkit-0.1.0/connectors/tumblr.yaml +20 -0
- connectkit-0.1.0/connectors/twenty-crm-self-hosted.yaml +28 -0
- connectkit-0.1.0/connectors/twenty-crm.yaml +22 -0
- connectkit-0.1.0/connectors/twilio.yaml +55 -0
- connectkit-0.1.0/connectors/twinfield.yaml +32 -0
- connectkit-0.1.0/connectors/twitch.yaml +22 -0
- connectkit-0.1.0/connectors/twitter-v2.yaml +22 -0
- connectkit-0.1.0/connectors/twitter.yaml +20 -0
- connectkit-0.1.0/connectors/typeform.yaml +23 -0
- connectkit-0.1.0/connectors/typefully-v2.yaml +22 -0
- connectkit-0.1.0/connectors/typefully.yaml +22 -0
- connectkit-0.1.0/connectors/uber.yaml +20 -0
- connectkit-0.1.0/connectors/ukg-pro-wfm.yaml +35 -0
- connectkit-0.1.0/connectors/ukg-pro.yaml +40 -0
- connectkit-0.1.0/connectors/unanet.yaml +40 -0
- connectkit-0.1.0/connectors/unauthenticated.yaml +20 -0
- connectkit-0.1.0/connectors/unipile.yaml +34 -0
- connectkit-0.1.0/connectors/upsales.yaml +22 -0
- connectkit-0.1.0/connectors/valley-api-key.yaml +22 -0
- connectkit-0.1.0/connectors/vercel.yaml +43 -0
- connectkit-0.1.0/connectors/vimeo.yaml +20 -0
- connectkit-0.1.0/connectors/vtex.yaml +34 -0
- connectkit-0.1.0/connectors/wakatime.yaml +20 -0
- connectkit-0.1.0/connectors/wave-accounting.yaml +20 -0
- connectkit-0.1.0/connectors/wealthbox.yaml +20 -0
- connectkit-0.1.0/connectors/webex.yaml +20 -0
- connectkit-0.1.0/connectors/webflow.yaml +23 -0
- connectkit-0.1.0/connectors/webinarjam.yaml +22 -0
- connectkit-0.1.0/connectors/wejam.yaml +22 -0
- connectkit-0.1.0/connectors/whatsapp-business.yaml +22 -0
- connectkit-0.1.0/connectors/whoop.yaml +20 -0
- connectkit-0.1.0/connectors/wildix-pbx.yaml +26 -0
- connectkit-0.1.0/connectors/wise-api-key.yaml +22 -0
- connectkit-0.1.0/connectors/wiseagent.yaml +20 -0
- connectkit-0.1.0/connectors/wiza.yaml +22 -0
- connectkit-0.1.0/connectors/woocommerce.yaml +34 -0
- connectkit-0.1.0/connectors/wordpress.yaml +20 -0
- connectkit-0.1.0/connectors/workable.yaml +31 -0
- connectkit-0.1.0/connectors/workday.yaml +40 -0
- connectkit-0.1.0/connectors/workos.yaml +22 -0
- connectkit-0.1.0/connectors/workpath.yaml +22 -0
- connectkit-0.1.0/connectors/wrike.yaml +26 -0
- connectkit-0.1.0/connectors/xai.yaml +22 -0
- connectkit-0.1.0/connectors/xero.yaml +21 -0
- connectkit-0.1.0/connectors/yahoo.yaml +26 -0
- connectkit-0.1.0/connectors/yandex.yaml +20 -0
- connectkit-0.1.0/connectors/youtube.yaml +67 -0
- connectkit-0.1.0/connectors/zapier-nla.yaml +20 -0
- connectkit-0.1.0/connectors/zapier.yaml +25 -0
- connectkit-0.1.0/connectors/zendesk-sell.yaml +20 -0
- connectkit-0.1.0/connectors/zendesk.yaml +62 -0
- connectkit-0.1.0/connectors/zenefits.yaml +20 -0
- connectkit-0.1.0/connectors/zoho.yaml +35 -0
- connectkit-0.1.0/connectors/zoom.yaml +59 -0
- connectkit-0.1.0/connectors/zorus.yaml +22 -0
- connectkit-0.1.0/pyproject.toml +50 -0
- connectkit-0.1.0/tests/__init__.py +0 -0
- connectkit-0.1.0/tests/test_bridge.py +161 -0
- connectkit-0.1.0/tests/test_cli_adapter.py +319 -0
- connectkit-0.1.0/tests/test_connector_specs.py +168 -0
- connectkit-0.1.0/tests/test_mcp_adapter.py +166 -0
- connectkit-0.1.0/tests/test_oauth.py +326 -0
- connectkit-0.1.0/tests/test_runtime.py +222 -0
- connectkit-0.1.0/tests/test_spec.py +371 -0
- connectkit-0.1.0/tests/test_vault.py +275 -0
- connectkit-0.1.0/uv.lock +553 -0
connectkit-0.1.0/.env
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
PYPI_TOKEN=pypi-AgEIcHlwaS5vcmcCJDEyNDliNWIwLTllMDYtNDhlOS04ZjI5LTZlMmYwODBlNzg1ZgACKlszLCIwMDVlMmRlOC03ZDM3LTRhNDYtYjkyZi03Nzg0YmM3MzgwMTgiXQAABiBiyMQbu2oeVt0dJrvlLqCkNJZuZjE7dTnCGLkuMuv-dw
|
connectkit-0.1.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Eddy Vinck
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: connectkit
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Connect AI agents to SaaS — one YAML file per service. OAuth, token vault, tool discovery.
|
|
5
|
+
Author: Eddy Xu
|
|
6
|
+
License: MIT
|
|
7
|
+
License-File: LICENSE
|
|
8
|
+
Keywords: agent,ai,connector,mcp,oauth,saas,tools
|
|
9
|
+
Classifier: Development Status :: 3 - Alpha
|
|
10
|
+
Classifier: Intended Audience :: Developers
|
|
11
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
12
|
+
Classifier: Programming Language :: Python :: 3
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
16
|
+
Classifier: Topic :: Internet :: WWW/HTTP
|
|
17
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
18
|
+
Requires-Python: >=3.11
|
|
19
|
+
Requires-Dist: cryptography>=41.0
|
|
20
|
+
Requires-Dist: fastapi>=0.129
|
|
21
|
+
Requires-Dist: httpx>=0.28
|
|
22
|
+
Requires-Dist: pydantic>=2.0
|
|
23
|
+
Requires-Dist: pyyaml>=6.0
|
|
24
|
+
Provides-Extra: dev
|
|
25
|
+
Requires-Dist: pytest-asyncio>=0.24; extra == 'dev'
|
|
26
|
+
Requires-Dist: pytest>=8.0; extra == 'dev'
|
|
27
|
+
Description-Content-Type: text/markdown
|
|
28
|
+
|
|
29
|
+
# ConnectKit
|
|
30
|
+
|
|
31
|
+
> **Purposefully built for AI Agents.** ConnectKit gives agents access to user SaaS accounts — Gmail, Calendar, Drive, GitHub, Slack, and 520+ more — through one YAML file per service. OAuth, API keys, token vault, and tool discovery handled automatically. Used in production by the [Executive Assistant](https://github.com/open-assistants-lab) agent system.
|
|
32
|
+
|
|
33
|
+
> **Embedded. Local. Open source.** No cloud APIs, no hosted auth services. Runs entirely on-device with an encrypted SQLite credential vault + local YAML specs. Ships as a single Python package with zero external infrastructure dependencies.
|
|
34
|
+
|
|
35
|
+
**Connect AI agents to SaaS.** One YAML file per service. OAuth, token vault, tool discovery — handled automatically.
|
|
36
|
+
|
|
37
|
+
```python
|
|
38
|
+
from connectkit import ConnectKitBridge
|
|
39
|
+
|
|
40
|
+
bridge = ConnectKitBridge(user_id="alice")
|
|
41
|
+
await bridge.discover()
|
|
42
|
+
|
|
43
|
+
# Agent gets tools for all connected services
|
|
44
|
+
tools = bridge.get_tool_definitions()
|
|
45
|
+
# → [google-workspace__gmail_list, github__issue_list, salesforce__soql_query, ...]
|
|
46
|
+
|
|
47
|
+
# Show the connector catalog
|
|
48
|
+
catalog = bridge.list_available()
|
|
49
|
+
# → [{name: "google-workspace", connected: true, setup_guide_url: "..."}, ...]
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Why ConnectKit?
|
|
53
|
+
|
|
54
|
+
Every AI agent that needs access to user SaaS accounts ends up wiring three things together: OAuth flows, credential storage, and CLI/MCP tool wrappers. You build `/auth/google/login`, `/auth/google/callback`, token refresh logic, subprocess calls for `gws gmail list`... then you do it again for GitHub, again for Outlook.
|
|
55
|
+
|
|
56
|
+
ConnectKit does all of that once, done right. One YAML file per service. No Python code per connector.
|
|
57
|
+
|
|
58
|
+
| Feature | Status |
|
|
59
|
+
|---------|--------|
|
|
60
|
+
| 524 SaaS connectors (from Nango's 779-provider baseline) | ✅ |
|
|
61
|
+
| YAML-based connector spec (no Python code per service) | ✅ |
|
|
62
|
+
| Encrypted SQLite credential vault (Fernet) | ✅ |
|
|
63
|
+
| Universal OAuth 2.0 router (one endpoint, all services) | ✅ |
|
|
64
|
+
| CLI adapter backend (wraps any SaaS CLI) | ✅ |
|
|
65
|
+
| MCP adapter backend (connects to MCP servers) | ✅ |
|
|
66
|
+
| Dual CLI + MCP support per connector (53+ connectors) | ✅ |
|
|
67
|
+
| Connector catalog (list available services + status) | ✅ |
|
|
68
|
+
| Agent meta-tools (list, connect, disconnect, health) | ✅ |
|
|
69
|
+
| Per-user credential isolation | ✅ |
|
|
70
|
+
| Self-hosted support (base_url for self-hosted instances) | ✅ |
|
|
71
|
+
| No external API dependencies (works offline) | ✅ |
|
|
72
|
+
|
|
73
|
+
## Installation
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
pip install connectkit
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Core Concepts
|
|
80
|
+
|
|
81
|
+
### One YAML file per service
|
|
82
|
+
|
|
83
|
+
```yaml
|
|
84
|
+
# connectors/google-workspace.yaml
|
|
85
|
+
name: google-workspace
|
|
86
|
+
display: "Google Workspace"
|
|
87
|
+
setup_guide_url: "https://developers.google.com/workspace/guides/create-credentials"
|
|
88
|
+
auth:
|
|
89
|
+
type: oauth2
|
|
90
|
+
oauth2:
|
|
91
|
+
authorize_url: https://accounts.google.com/o/oauth2/v2/auth
|
|
92
|
+
token_url: https://oauth2.googleapis.com/token
|
|
93
|
+
scopes:
|
|
94
|
+
- https://www.googleapis.com/auth/gmail.readonly
|
|
95
|
+
- https://www.googleapis.com/auth/calendar.readonly
|
|
96
|
+
required_fields:
|
|
97
|
+
- name: client_id
|
|
98
|
+
label: "Client ID"
|
|
99
|
+
input_type: text
|
|
100
|
+
- name: client_secret
|
|
101
|
+
label: "Client Secret"
|
|
102
|
+
input_type: password
|
|
103
|
+
tool_sources:
|
|
104
|
+
- type: cli
|
|
105
|
+
command: gws
|
|
106
|
+
install: npm install -g @googleworkspace/cli
|
|
107
|
+
- type: mcp
|
|
108
|
+
server_name: google-workspace
|
|
109
|
+
command: gws mcp
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### Auth types
|
|
113
|
+
|
|
114
|
+
| Type | Use for | Example |
|
|
115
|
+
|------|---------|---------|
|
|
116
|
+
| `oauth2` | OAuth 2.0 (Google, Microsoft, GitHub, Slack, 234+ services) | Browser authorization → tokens vaulted |
|
|
117
|
+
| `api_key` | API keys (Firecrawl, Stripe, Twilio, 288+ services) | Paste key into form → vaulted |
|
|
118
|
+
| `none` | No auth needed (local tools) | Auto-connected |
|
|
119
|
+
|
|
120
|
+
### Tool source backends
|
|
121
|
+
|
|
122
|
+
| Backend | Count | Best for |
|
|
123
|
+
|---------|-------|----------|
|
|
124
|
+
| **CLI** | 63 | SaaS with official CLIs (gws, gh, glab, m365, stripe, sf, vercel, etc.) |
|
|
125
|
+
| **MCP** | 514 | SaaS with MCP servers (first-party or community) |
|
|
126
|
+
| **Dual** (CLI + MCP) | 53 | Best available backend picked at runtime |
|
|
127
|
+
|
|
128
|
+
### CredentialVault
|
|
129
|
+
|
|
130
|
+
All tokens are stored in an encrypted SQLite database (Fernet encryption). One vault per user. Master key from `CONNECTKIT_VAULT_KEY` env var.
|
|
131
|
+
|
|
132
|
+
```python
|
|
133
|
+
from connectkit import CredentialVault
|
|
134
|
+
|
|
135
|
+
vault = CredentialVault("./data/users/alice")
|
|
136
|
+
vault.store_token("google-workspace", "oauth2", {
|
|
137
|
+
"access_token": "ya29...", "refresh_token": "1//..."
|
|
138
|
+
})
|
|
139
|
+
token = vault.get_token("google-workspace")
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### OAuth flow
|
|
143
|
+
|
|
144
|
+
```python
|
|
145
|
+
# 1. User fills in client_id + client_secret → stored in vault via POST /connectors/connect
|
|
146
|
+
# 2. Flutter renders "Connect" button → opens:
|
|
147
|
+
# GET /auth/login?service=google-workspace&user_id=alice
|
|
148
|
+
# 3. Browser redirects to Google OAuth → user authorizes
|
|
149
|
+
# 4. Google redirects to:
|
|
150
|
+
# GET /auth/callback?code=...&state=...
|
|
151
|
+
# 5. Gateway exchanges code for tokens → stores in vault
|
|
152
|
+
# 6. Google Workspace: ✅ Connected
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
OAuth states are Fernet-encrypted and self-contained — any vault with the same key can validate them (10-minute TTL).
|
|
156
|
+
|
|
157
|
+
### Self-Hosted Support
|
|
158
|
+
|
|
159
|
+
Services like Firecrawl, Sentry, GitLab offer self-hosted deployments. ConnectKit supports them with an optional `base_url` field:
|
|
160
|
+
|
|
161
|
+
```yaml
|
|
162
|
+
required_fields:
|
|
163
|
+
- name: base_url
|
|
164
|
+
label: "Self-Hosted URL"
|
|
165
|
+
placeholder: "https://firecrawl.example.com"
|
|
166
|
+
input_type: url
|
|
167
|
+
help_text: "Leave empty for cloud version"
|
|
168
|
+
optional: true
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
## Connector Catalog
|
|
172
|
+
|
|
173
|
+
| Category | Count | Services |
|
|
174
|
+
|----------|-------|----------|
|
|
175
|
+
| dev-tools | 120+ | GitHub, GitLab, Jira, Bitbucket, GitLab, Sentry, Datadog, PagerDuty, Snowflake, Vercel, Netlify, Postman, Figma |
|
|
176
|
+
| productivity | 80+ | Google Workspace, Microsoft 365, Notion, Airtable, Monday, ClickUp, Trello, Asana, Evernote |
|
|
177
|
+
| crm | 50+ | HubSpot, Salesforce, Pipedrive, Zoho CRM, Close, Copper |
|
|
178
|
+
| communication | 40+ | Slack, Discord, Zoom, Twilio, WhatsApp, Intercom, Zendesk |
|
|
179
|
+
| payment | 30+ | Stripe, Square, PayPal, Braintree, Adyen, Checkout.com |
|
|
180
|
+
| marketing | 30+ | Mailchimp, Klaviyo, SendGrid, Apollo, Brevo, Constant Contact |
|
|
181
|
+
| e-commerce | 25+ | Shopify, WooCommerce, Amazon Selling Partner, BigCommerce |
|
|
182
|
+
| analytics | 20+ | Mixpanel, Amplitude, PostHog, Tableau, Looker, Heap |
|
|
183
|
+
| hr | 20+ | BambooHR, Workday, Gusto, Personio, Greenhouse, Lever |
|
|
184
|
+
| storage | 15+ | Dropbox, Box, Google Drive, OneDrive, Egnyte |
|
|
185
|
+
| other | 90+ | Everything else |
|
|
186
|
+
|
|
187
|
+
## License
|
|
188
|
+
|
|
189
|
+
MIT — see [LICENSE](LICENSE).
|
|
190
|
+
|
|
191
|
+
## Author
|
|
192
|
+
|
|
193
|
+
Eddy Xu
|
|
194
|
+
|
|
195
|
+
## Status
|
|
196
|
+
|
|
197
|
+
Alpha — actively developed. Core spec model, vault, OAuth router, and adapter backends are stable with full test coverage (152+ tests). 524 connectors shipped. Currently used in production in the Executive Assistant agent system.
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
# ConnectKit
|
|
2
|
+
|
|
3
|
+
> **Purposefully built for AI Agents.** ConnectKit gives agents access to user SaaS accounts — Gmail, Calendar, Drive, GitHub, Slack, and 520+ more — through one YAML file per service. OAuth, API keys, token vault, and tool discovery handled automatically. Used in production by the [Executive Assistant](https://github.com/open-assistants-lab) agent system.
|
|
4
|
+
|
|
5
|
+
> **Embedded. Local. Open source.** No cloud APIs, no hosted auth services. Runs entirely on-device with an encrypted SQLite credential vault + local YAML specs. Ships as a single Python package with zero external infrastructure dependencies.
|
|
6
|
+
|
|
7
|
+
**Connect AI agents to SaaS.** One YAML file per service. OAuth, token vault, tool discovery — handled automatically.
|
|
8
|
+
|
|
9
|
+
```python
|
|
10
|
+
from connectkit import ConnectKitBridge
|
|
11
|
+
|
|
12
|
+
bridge = ConnectKitBridge(user_id="alice")
|
|
13
|
+
await bridge.discover()
|
|
14
|
+
|
|
15
|
+
# Agent gets tools for all connected services
|
|
16
|
+
tools = bridge.get_tool_definitions()
|
|
17
|
+
# → [google-workspace__gmail_list, github__issue_list, salesforce__soql_query, ...]
|
|
18
|
+
|
|
19
|
+
# Show the connector catalog
|
|
20
|
+
catalog = bridge.list_available()
|
|
21
|
+
# → [{name: "google-workspace", connected: true, setup_guide_url: "..."}, ...]
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Why ConnectKit?
|
|
25
|
+
|
|
26
|
+
Every AI agent that needs access to user SaaS accounts ends up wiring three things together: OAuth flows, credential storage, and CLI/MCP tool wrappers. You build `/auth/google/login`, `/auth/google/callback`, token refresh logic, subprocess calls for `gws gmail list`... then you do it again for GitHub, again for Outlook.
|
|
27
|
+
|
|
28
|
+
ConnectKit does all of that once, done right. One YAML file per service. No Python code per connector.
|
|
29
|
+
|
|
30
|
+
| Feature | Status |
|
|
31
|
+
|---------|--------|
|
|
32
|
+
| 524 SaaS connectors (from Nango's 779-provider baseline) | ✅ |
|
|
33
|
+
| YAML-based connector spec (no Python code per service) | ✅ |
|
|
34
|
+
| Encrypted SQLite credential vault (Fernet) | ✅ |
|
|
35
|
+
| Universal OAuth 2.0 router (one endpoint, all services) | ✅ |
|
|
36
|
+
| CLI adapter backend (wraps any SaaS CLI) | ✅ |
|
|
37
|
+
| MCP adapter backend (connects to MCP servers) | ✅ |
|
|
38
|
+
| Dual CLI + MCP support per connector (53+ connectors) | ✅ |
|
|
39
|
+
| Connector catalog (list available services + status) | ✅ |
|
|
40
|
+
| Agent meta-tools (list, connect, disconnect, health) | ✅ |
|
|
41
|
+
| Per-user credential isolation | ✅ |
|
|
42
|
+
| Self-hosted support (base_url for self-hosted instances) | ✅ |
|
|
43
|
+
| No external API dependencies (works offline) | ✅ |
|
|
44
|
+
|
|
45
|
+
## Installation
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
pip install connectkit
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Core Concepts
|
|
52
|
+
|
|
53
|
+
### One YAML file per service
|
|
54
|
+
|
|
55
|
+
```yaml
|
|
56
|
+
# connectors/google-workspace.yaml
|
|
57
|
+
name: google-workspace
|
|
58
|
+
display: "Google Workspace"
|
|
59
|
+
setup_guide_url: "https://developers.google.com/workspace/guides/create-credentials"
|
|
60
|
+
auth:
|
|
61
|
+
type: oauth2
|
|
62
|
+
oauth2:
|
|
63
|
+
authorize_url: https://accounts.google.com/o/oauth2/v2/auth
|
|
64
|
+
token_url: https://oauth2.googleapis.com/token
|
|
65
|
+
scopes:
|
|
66
|
+
- https://www.googleapis.com/auth/gmail.readonly
|
|
67
|
+
- https://www.googleapis.com/auth/calendar.readonly
|
|
68
|
+
required_fields:
|
|
69
|
+
- name: client_id
|
|
70
|
+
label: "Client ID"
|
|
71
|
+
input_type: text
|
|
72
|
+
- name: client_secret
|
|
73
|
+
label: "Client Secret"
|
|
74
|
+
input_type: password
|
|
75
|
+
tool_sources:
|
|
76
|
+
- type: cli
|
|
77
|
+
command: gws
|
|
78
|
+
install: npm install -g @googleworkspace/cli
|
|
79
|
+
- type: mcp
|
|
80
|
+
server_name: google-workspace
|
|
81
|
+
command: gws mcp
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### Auth types
|
|
85
|
+
|
|
86
|
+
| Type | Use for | Example |
|
|
87
|
+
|------|---------|---------|
|
|
88
|
+
| `oauth2` | OAuth 2.0 (Google, Microsoft, GitHub, Slack, 234+ services) | Browser authorization → tokens vaulted |
|
|
89
|
+
| `api_key` | API keys (Firecrawl, Stripe, Twilio, 288+ services) | Paste key into form → vaulted |
|
|
90
|
+
| `none` | No auth needed (local tools) | Auto-connected |
|
|
91
|
+
|
|
92
|
+
### Tool source backends
|
|
93
|
+
|
|
94
|
+
| Backend | Count | Best for |
|
|
95
|
+
|---------|-------|----------|
|
|
96
|
+
| **CLI** | 63 | SaaS with official CLIs (gws, gh, glab, m365, stripe, sf, vercel, etc.) |
|
|
97
|
+
| **MCP** | 514 | SaaS with MCP servers (first-party or community) |
|
|
98
|
+
| **Dual** (CLI + MCP) | 53 | Best available backend picked at runtime |
|
|
99
|
+
|
|
100
|
+
### CredentialVault
|
|
101
|
+
|
|
102
|
+
All tokens are stored in an encrypted SQLite database (Fernet encryption). One vault per user. Master key from `CONNECTKIT_VAULT_KEY` env var.
|
|
103
|
+
|
|
104
|
+
```python
|
|
105
|
+
from connectkit import CredentialVault
|
|
106
|
+
|
|
107
|
+
vault = CredentialVault("./data/users/alice")
|
|
108
|
+
vault.store_token("google-workspace", "oauth2", {
|
|
109
|
+
"access_token": "ya29...", "refresh_token": "1//..."
|
|
110
|
+
})
|
|
111
|
+
token = vault.get_token("google-workspace")
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### OAuth flow
|
|
115
|
+
|
|
116
|
+
```python
|
|
117
|
+
# 1. User fills in client_id + client_secret → stored in vault via POST /connectors/connect
|
|
118
|
+
# 2. Flutter renders "Connect" button → opens:
|
|
119
|
+
# GET /auth/login?service=google-workspace&user_id=alice
|
|
120
|
+
# 3. Browser redirects to Google OAuth → user authorizes
|
|
121
|
+
# 4. Google redirects to:
|
|
122
|
+
# GET /auth/callback?code=...&state=...
|
|
123
|
+
# 5. Gateway exchanges code for tokens → stores in vault
|
|
124
|
+
# 6. Google Workspace: ✅ Connected
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
OAuth states are Fernet-encrypted and self-contained — any vault with the same key can validate them (10-minute TTL).
|
|
128
|
+
|
|
129
|
+
### Self-Hosted Support
|
|
130
|
+
|
|
131
|
+
Services like Firecrawl, Sentry, GitLab offer self-hosted deployments. ConnectKit supports them with an optional `base_url` field:
|
|
132
|
+
|
|
133
|
+
```yaml
|
|
134
|
+
required_fields:
|
|
135
|
+
- name: base_url
|
|
136
|
+
label: "Self-Hosted URL"
|
|
137
|
+
placeholder: "https://firecrawl.example.com"
|
|
138
|
+
input_type: url
|
|
139
|
+
help_text: "Leave empty for cloud version"
|
|
140
|
+
optional: true
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
## Connector Catalog
|
|
144
|
+
|
|
145
|
+
| Category | Count | Services |
|
|
146
|
+
|----------|-------|----------|
|
|
147
|
+
| dev-tools | 120+ | GitHub, GitLab, Jira, Bitbucket, GitLab, Sentry, Datadog, PagerDuty, Snowflake, Vercel, Netlify, Postman, Figma |
|
|
148
|
+
| productivity | 80+ | Google Workspace, Microsoft 365, Notion, Airtable, Monday, ClickUp, Trello, Asana, Evernote |
|
|
149
|
+
| crm | 50+ | HubSpot, Salesforce, Pipedrive, Zoho CRM, Close, Copper |
|
|
150
|
+
| communication | 40+ | Slack, Discord, Zoom, Twilio, WhatsApp, Intercom, Zendesk |
|
|
151
|
+
| payment | 30+ | Stripe, Square, PayPal, Braintree, Adyen, Checkout.com |
|
|
152
|
+
| marketing | 30+ | Mailchimp, Klaviyo, SendGrid, Apollo, Brevo, Constant Contact |
|
|
153
|
+
| e-commerce | 25+ | Shopify, WooCommerce, Amazon Selling Partner, BigCommerce |
|
|
154
|
+
| analytics | 20+ | Mixpanel, Amplitude, PostHog, Tableau, Looker, Heap |
|
|
155
|
+
| hr | 20+ | BambooHR, Workday, Gusto, Personio, Greenhouse, Lever |
|
|
156
|
+
| storage | 15+ | Dropbox, Box, Google Drive, OneDrive, Egnyte |
|
|
157
|
+
| other | 90+ | Everything else |
|
|
158
|
+
|
|
159
|
+
## License
|
|
160
|
+
|
|
161
|
+
MIT — see [LICENSE](LICENSE).
|
|
162
|
+
|
|
163
|
+
## Author
|
|
164
|
+
|
|
165
|
+
Eddy Xu
|
|
166
|
+
|
|
167
|
+
## Status
|
|
168
|
+
|
|
169
|
+
Alpha — actively developed. Core spec model, vault, OAuth router, and adapter backends are stable with full test coverage (152+ tests). 524 connectors shipped. Currently used in production in the Executive Assistant agent system.
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# ConnectKit Strategy
|
|
2
|
+
|
|
3
|
+
## The Core Insight
|
|
4
|
+
|
|
5
|
+
**Nango = integration platform that added agent tooling on top.**
|
|
6
|
+
**ConnectKit = agent tool runtime that uses connectors as the means, not the end.**
|
|
7
|
+
|
|
8
|
+
| Dimension | Nango | ConnectKit |
|
|
9
|
+
|-----------|-------|------------|
|
|
10
|
+
| Core abstraction | TypeScript functions that call APIs | Tools as first-class agent primitives |
|
|
11
|
+
| Who writes the integration | Human or AI → TypeScript, deployed to Nango | Agent discovers, connects, and invokes — zero human boilerplate |
|
|
12
|
+
| Tool model | Function with Zod schema → exposed via MEP | Tool = (auth + backend) discovered at runtime by the agent |
|
|
13
|
+
| Meta-tools | None | Agents manage their own tool belt |
|
|
14
|
+
|
|
15
|
+
## Positioning
|
|
16
|
+
|
|
17
|
+
> **ConnectKit: The agent-native tool runtime.**
|
|
18
|
+
>
|
|
19
|
+
> *Connectors aren't integrations. They're tools your agent discovers, connects, and composes — autonomously.*
|
|
20
|
+
|
|
21
|
+
| Old message | New message |
|
|
22
|
+
|---|---|
|
|
23
|
+
| "544+ YAML connector specs" | "Tools your agent can install without human help" |
|
|
24
|
+
| "Local OAuth router and encrypted vault" | "Durable, self-healing auth for unattended agents" |
|
|
25
|
+
| "CLI and MCP adapters" | "Pluggable backends: CLI, MCP, HTTP, and composed tools" |
|
|
26
|
+
| "Own the connector runtime" | "Own your agent's tool belt" |
|
|
27
|
+
|
|
28
|
+
## Where Nango cannot follow
|
|
29
|
+
|
|
30
|
+
Nango's architecture is a server with TypeScript functions. This creates structural gaps:
|
|
31
|
+
|
|
32
|
+
1. **Every new tool requires a deploy** — ConnectKit's YAML-only model means an agent can connect to a new SaaS service by just downloading a spec file. No CI/CD, no deployment.
|
|
33
|
+
2. **No local subprocess model** — Nango runs functions server-side. ConnectKit inherits the user's CLI environment: `gws`, `gh`, `aws`, `docker`, etc. are automatically tools.
|
|
34
|
+
3. **No local-first** — Nango free self-host is feature-gated. ConnectKit is fully local by design.
|
|
35
|
+
4. **No meta-tools** — Nango cannot let agents list, connect, disconnect, or compose tools dynamically because its model is "deploy TypeScript to our runtime." ConnectKit's model is "load a YAML, inject auth, spawn a process."
|
|
36
|
+
|
|
37
|
+
**The killer slide:** "Nango makes you deploy TypeScript. ConnectKit makes you write five lines of YAML. One requires a DevOps pipeline. The other requires a text editor."
|
|
38
|
+
|
|
39
|
+
## What to build
|
|
40
|
+
|
|
41
|
+
### P0 (quick wins, existing code)
|
|
42
|
+
|
|
43
|
+
1. **Decouple `meta_tools.py` from EA**
|
|
44
|
+
- Currently imports `src.sdk.tools`, `src.config`, `src.app_logging` — EA-internal modules
|
|
45
|
+
- Refactor into `connectkit/meta/` — return generic Pydantic models, not EA-specific ToolDefinition
|
|
46
|
+
- Provide adapters: one dict output for EA, one for LangChain, one for OpenAI SDK
|
|
47
|
+
- **Why:** Meta-tools are the strongest differentiator. They need to work anywhere.
|
|
48
|
+
|
|
49
|
+
2. **Implement real MCP lifecycle management**
|
|
50
|
+
- Replace `_is_mcp_placeholder` stubs in `runtime.py` with a `MCPServerManager` that:
|
|
51
|
+
- Spawns the MCP server subprocess with injected credentials
|
|
52
|
+
- Calls `tools/list` at runtime to discover real tools
|
|
53
|
+
- Proxies `tools/call` requests with per-user env isolation
|
|
54
|
+
- Handles restart on crash and graceful shutdown
|
|
55
|
+
- **Why:** MCP is the fastest-growing tool protocol. Placeholder stubs undercut credibility.
|
|
56
|
+
|
|
57
|
+
3. **Add token refresh**
|
|
58
|
+
- OAuth tokens with `refresh_token` are stored but never used
|
|
59
|
+
- Add `refresh_expired_tokens()` to vault, background check in runtime
|
|
60
|
+
- **Why:** "Agent-native" means durable unattended operation. Stale tokens kill that promise.
|
|
61
|
+
|
|
62
|
+
4. **Switch `tool_descriptions` to JSON Schema**
|
|
63
|
+
- Replace free-text `ToolDescription` with full JSON Schema for params and return types
|
|
64
|
+
- Every connector spec produces an OpenAI-compatible `functions` array
|
|
65
|
+
- **Why:** Agents need structured schemas to reason about tool calls, not free-text help strings.
|
|
66
|
+
|
|
67
|
+
### P1 (medium-term)
|
|
68
|
+
|
|
69
|
+
5. **Implement the HTTP backend**
|
|
70
|
+
- `HTTPToolSource` is modeled in `spec.py` but `runtime.py` has no handling for `ToolSourceType.HTTP`
|
|
71
|
+
- Build it: proxy calls through injected auth headers
|
|
72
|
+
- **Why:** Many SaaS APIs are HTTP-native. CLI and MCP are not always available.
|
|
73
|
+
|
|
74
|
+
6. **Add credential validation on connect**
|
|
75
|
+
- After storing a token, make a test call (e.g., `GET /user` or equivalent)
|
|
76
|
+
- Report connection status as "connected" or "broken" immediately
|
|
77
|
+
- **Why:** Silent failures erode trust in unattended agents.
|
|
78
|
+
|
|
79
|
+
7. **Add tool deduplication**
|
|
80
|
+
- If a connector has both CLI and MCP sources, pick the best one (MCP > CLI > HTTP) instead of returning duplicate tools
|
|
81
|
+
- **Why:** Agents shouldn't see the same capability twice.
|
|
82
|
+
|
|
83
|
+
### P2 (moonshot differentiator)
|
|
84
|
+
|
|
85
|
+
8. **Dynamic tool composition**
|
|
86
|
+
- Build a `compose` meta-tool that lets an agent create new tools at runtime
|
|
87
|
+
- Example: "Create a tool that searches Gmail for invoices, extracts amounts, and writes them to a Google Sheet"
|
|
88
|
+
- ConnectKit chains `gmail.search` → `sheets.append` and registers the result as a named tool
|
|
89
|
+
- **Why:** This is where you leapfrog Nango entirely. They require a human to write a TypeScript function. ConnectKit lets the agent do it.
|
|
90
|
+
- **Message:** "Agents don't just *use* tools. They *compose* them."
|
|
91
|
+
|
|
92
|
+
## Competitor comparison
|
|
93
|
+
|
|
94
|
+
| Feature | ConnectKit | Nango (OSS) | Nango (Cloud) | Composio | Arcade |
|
|
95
|
+
|---------|-----------|-------------|---------------|----------|--------|
|
|
96
|
+
| OSS license | MIT | MIT | Proprietary | Partial | No |
|
|
97
|
+
| Self-hosted with full features | Yes | No (feature-gated) | N/A | N/A | No |
|
|
98
|
+
| YAML-only connector model | Yes | No (TypeScript) | No (TypeScript) | No | No |
|
|
99
|
+
| Local CLI subprocess tools | Yes | No | No | No | No |
|
|
100
|
+
| Per-user encrypted vault | Yes | Server-side | Server-side | Server-side | Server-side |
|
|
101
|
+
| Meta-tools for agents | Partial (EA-coupled) | No | No | No | No |
|
|
102
|
+
| MCP lifecycle management | No (placeholder) | No | Yes (hosted) | Yes | Yes |
|
|
103
|
+
| Token refresh | No | Yes | Yes | Yes | Yes |
|
|
104
|
+
| Dynamic tool composition | No | No | No | No | No |
|
|
105
|
+
| Structured LLM tool schemas | Partial (free-text) | Yes (Zod) | Yes (Zod) | Yes | Yes |
|
|
106
|
+
|
|
107
|
+
## The narrative
|
|
108
|
+
|
|
109
|
+
When someone asks "why not just use Nango?":
|
|
110
|
+
|
|
111
|
+
"Nango connects your app to APIs. ConnectKit connects your agent to tools. That sounds similar but it's a different model: Nango runs TypeScript functions on their server; ConnectKit loads a YAML spec, injects local credentials, and spawns CLI or MCP processes on your machine. One requires a deployment pipeline. The other requires a text editor. One treats tools as API wrappers. The other treats tools as capabilities an agent discovers, connects, and composes autonomously."
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"""ConnectKit — connect AI agents to SaaS accounts.
|
|
2
|
+
|
|
3
|
+
One YAML file per service. OAuth, token vault, and tool discovery handled automatically.
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
__version__ = "0.1.0"
|
|
7
|
+
|
|
8
|
+
from connectkit.bridge import ConnectKitBridge
|
|
9
|
+
from connectkit.meta_tools import TOOL_SPECS
|
|
10
|
+
from connectkit.sdk_adapter import ToolSpec
|
|
11
|
+
from connectkit.spec import AuthType, ConnectorSpec, RequiredField, ToolSourceType, CLIToolSource
|
|
12
|
+
from connectkit.utils import ensure_cli_installed
|
|
13
|
+
from connectkit.vault import CredentialVault
|
|
14
|
+
|
|
15
|
+
__all__ = [
|
|
16
|
+
"ConnectorSpec",
|
|
17
|
+
"AuthType",
|
|
18
|
+
"ToolSourceType",
|
|
19
|
+
"RequiredField",
|
|
20
|
+
"CredentialVault",
|
|
21
|
+
"ConnectKitBridge",
|
|
22
|
+
"ToolSpec",
|
|
23
|
+
"TOOL_SPECS",
|
|
24
|
+
"CLIToolSource",
|
|
25
|
+
"ensure_cli_installed",
|
|
26
|
+
]
|
|
File without changes
|