Skip to content

About

Open-source tool-calling platform for AI agents: 80+ integrations with OAuth, MCP server deployment, memory and agent flows.

Topics

Resources

Contributing

Security policy

Stars

8 stars

Watchers

0 watching

Forks

Latest commit

 

History

976 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VeyraX — Agentic Component Interface

VeyraX is Agentic Component Interface

One API key. 80+ tools. Any AI agent.
Open-source tool calling, OAuth, MCP, memory and flows for Claude, Cursor and your own LLM apps.

MIT License 83 integrations Python 3.11 Next.js 14 PRs welcome Follow @vargastartup on X

Quickstart · How it works · Integrations · Architecture · Contributing

VeyraX is an infrastructure layer that connects AI agents to the tools people actually use. One API key gives an agent (Claude, Cursor, your own LLM app) authenticated access to 80+ integrations and thousands of MCP servers, plus long-term memory and multi-step automation flows.

Tip

If VeyraX is useful to you, give it a ⭐. It helps other people find the project.

How it works

Integrations → VeyraX → UI component

The agent calls a tool through VeyraX; VeyraX authenticates on behalf of the user, calls the underlying API and returns both structured data and a ready-to-render UI component.

Agent shows events as cards Agent renders a checkout form Agent adds an event to the calendar

Features

  • Tool calling API — a single, uniform interface (/tools, /tool-call/{tool}/{method}) over 80+ integrations: Gmail, Google Calendar/Drive/Docs/Sheets, Slack, Notion, Linear, Jira, Confluence, GitHub, Outlook, Dropbox, Asana, Trello, Figma, Airtable, Vercel, Sentry, PostgreSQL, ClickHouse, Snowflake, Perplexity, Tavily, Exa, Firecrawl, Browserbase, E2B and many more (see aci_server/integrations).
  • OAuth & credential management — users connect their accounts once; tokens and API keys are stored encrypted (AES) and injected into tool calls on their behalf.
  • MCP — expose all connected tools to MCP clients, and deploy any GitHub-hosted MCP server "in two clicks" (Dockerfile generation, build via GitHub Actions, push to Docker Hub).
  • Memory — retain information automatically across user requests and make it available to any agent.
  • Flows — describe a routine in natural language, turn it into an agent-powered multi-step workflow, run it on demand or on a schedule.
  • Semantic tool search — vector index over tools and providers so agents can find the right tool.
  • UI components — integrations return structured components (component.json) that the frontend renders.

Screenshots

Integrations catalog Connect a tool
Integrations catalog Connect a tool
Deploy an MCP server from GitHub Create a flow from a prompt
Deploy MCP Create a flow
Memory Flow overview & API
Memory Flow
Auth for your users Explore & deploy MCPs
Auth Deploy

Architecture

Path Description
aci_server/ Python backend: FastAPI app, integrations, agent runtime (OpenAI Agents SDK / OpenRouter), flows, memory, MCP deployment, Celery workers
aci_server/integrations/<name>/ One folder per integration: client.py, service.py, route.py, schema.py, examples.yaml, component.json, tests.py
main/ Next.js 14 web app: landing, dashboard, integrations, playground, flows, settings, billing (Stripe)
services/whatsapp-bridge/ Go service exposing WhatsApp through a REST API
nginx/, docker-compose*.yml Deployment configuration (reverse proxy, Celery/Flower, Redis, Datadog)
.github/workflows/ GitHub Action that builds and publishes MCP server images

Main dependencies: Supabase (Postgres + Auth + Storage), Redis, Upstash Vector / Qdrant, OpenRouter (all LLM, embedding and speech-to-text calls; models are set in aci_server/llm.py and main/lib/ai/openrouter.ts).

Integrations

83 integrations live in aci_server/integrations; 79 of them are registered by default and loaded into the tool catalog. Each one is exposed as /{integration}/{method} and through the unified /tool-call/{tool}/{method} endpoint.

Auth: OAuth — user connects an account; API key — user's or server key; RapidAPI — key from RapidAPI; Credentials — host/user/password or connection string; None — public API.

Integrations marked with † are implemented but not registered in INTEGRATION_ROUTERS (aci_server/main.py).

Category Integrations
Productivity & Docs Airtable Asana Cal.com Coda Confluence Dropbox Figma Google Calendar Google Docs Google Drive Google Sheets Motion Notion Readwise TickTick Todoist Trello Typeform
Communication Mail (IMAP/SMTP) Outlook Resend Slack WhatsApp
Developer tools & Infrastructure 21st.dev Browser Use Browserbase E2B GitHub Jira Linear n8n PostHog Postman Sentry UploadThing Vercel
Databases ClickHouse Neon PostgreSQL Snowflake Supabase
Search & Web Brave Search DuckDuckGo Exa Firecrawl Hacker News Tavily YouTube
AI & Media Bannerbear Cloudinary fal.ai HeyGen Perplexity Replicate Revid
CRM & Sales Apollo Hunter.io
Social Facebook Instagram LinkedIn Reddit X (Twitter)
Travel, Local & Real Estate Airbnb Google Maps Skyscanner Yelp Zillow
Commerce & Finance Amazon Binance P2P Bybit P2P OKX P2P
Utilities Dub HTTP Request IPinfo OpenWeather SVGL Zip Code
VeyraX VeyraX Memory VeyraX Auth

Click a category below for what an agent can do with each integration.

Productivity & Docs (19)
Integration What an agent can do Auth
Airtable Records CRUD, attachments, CSV sync, fields and tables OAuth
Asana Tasks, subtasks, projects, tags, teams, workspaces OAuth
Cal.com Bookings (create, reschedule, cancel), schedules, event types API key
Coda Docs, pages, tables, columns and rows, page export API key
Confluence Spaces, pages CRUD, content search OAuth
DocuSign † Envelopes, documents, signing views OAuth
Dropbox Files and folders: list, upload, download, move, share, search OAuth
Figma Files, nodes, images, components, styles, team projects OAuth
Google Calendar Calendars and events CRUD OAuth
Google Docs Create, read, edit and search documents OAuth
Google Drive Files and folders, upload/download, permissions OAuth
Google Sheets Read/write/append values, sheets, formulas, search OAuth
Motion Tasks, recurring tasks, projects, comments, schedules API key
Notion Databases, pages, blocks, search, users OAuth
Readwise Save, list, update and delete Reader documents API key
TickTick Tasks and projects OAuth
Todoist Projects, sections, tasks, labels, comments OAuth
Trello Boards, lists, cards, checklists, organizations OAuth
Typeform Forms, responses, webhooks, workspaces API key
Communication (6)
Integration What an agent can do Auth
Gmail † Read, send and delete messages, drafts OAuth
Mail (IMAP/SMTP) Any mailbox: read, send, folders, auto-detect server settings Credentials
Outlook Messages, drafts, calendars and events OAuth
Resend Send emails (single/batch), broadcasts, domains, audiences, contacts API key
Slack Channels, messages, DMs, threads OAuth
WhatsApp Chats, messages, contacts via the WhatsApp bridge QR pairing
Developer tools & Infrastructure (13)
Integration What an agent can do Auth
21st.dev Search UI components, generate component prompts API key
Browser Use Run and control browser automation tasks API key
Browserbase Headless browser sessions, contexts, logs, recordings API key
E2B Code sandboxes: run code and commands, files API key
GitHub Repositories, issues, pull requests, commits, reviews OAuth
Jira Issues CRUD, projects, statuses, transitions, users OAuth
Linear Issues (search, create, update, comment), projects, teams OAuth
n8n Workflows, executions, users, credentials, tags API key
PostHog HogQL queries, insights, dashboards, events, projects API key
Postman Collections, environments, workspaces API key
Sentry Teams, projects, issues, releases, alert rules OAuth
UploadThing File uploads (incl. from URL), file management API key
Vercel Projects, deployments, domains, environment variables OAuth
Databases (5)
Integration What an agent can do Auth
ClickHouse Run queries, list tables and columns Credentials
Neon Run queries, list tables and columns Credentials
PostgreSQL Run queries, list tables and columns Credentials
Snowflake Run queries, list tables and columns Credentials
Supabase Run queries, list tables and columns Credentials
Search & Web (7)
Integration What an agent can do Auth
Brave Search Web, image, video and news search API key
DuckDuckGo Search and fetch page content None
Exa Neural search, page contents, similar pages API key
Firecrawl Scrape, crawl, map sites, structured extraction API key
Hacker News Top/new/best stories, items, comments, users None
Tavily Web search and content extraction API key
YouTube Search videos, video details, captions, transcripts API key
AI & Media (7)
Integration What an agent can do Auth
Bannerbear Generate images, videos, GIFs and collections from templates API key
Cloudinary Upload, transform, rename and delete assets API key
fal.ai Discover and run generative models, queue status, uploads API key
HeyGen Avatar videos, voices, templates, translation API key
Perplexity Web-grounded chat completions API key
Replicate Run models, predictions, deployments, trainings API key
Revid Generate and publish short-form videos API key
CRM & Sales (3)
Integration What an agent can do Auth
Apollo Search people and organizations, get details RapidAPI
HighLevel † Businesses, calendars, slots, contacts and more API key
Hunter.io Domain search, email finder/verifier, enrichment API key
Social (5)
Integration What an agent can do Auth
Facebook Search and read public pages, posts, groups, events RapidAPI
Instagram Profiles, posts, comments, followers RapidAPI
LinkedIn Profiles, companies, posts, jobs, people search RapidAPI
Reddit Read, post, comment, edit, vote, search OAuth
X (Twitter) Profiles, timelines, tweets, threads, lists, search RapidAPI
Travel, Local & Real Estate (5)
Integration What an agent can do Auth
Airbnb Search listings, listing details None
Google Maps Geocoding, places, directions, distance matrix, elevation API key
Skyscanner Flights (one-way, round-trip, anywhere), price calendars, hotels RapidAPI
Yelp Search businesses, details, reviews, menus RapidAPI
Zillow Properties, Zestimates, comps, market data RapidAPI
Commerce & Finance (4)
Integration What an agent can do Auth
Amazon Product search, items, variations, browse nodes (PA-API) API key
Binance P2P P2P crypto offers RapidAPI
Bybit P2P P2P crypto offers RapidAPI
OKX P2P P2P crypto offers RapidAPI
Utilities (6)
Integration What an agent can do Auth
Dub Short links (bulk too), QR codes, analytics, events API key
HTTP Request Call any HTTP endpoint None
IPinfo IP geolocation (single/bulk), ASN info API key
OpenWeather Weather forecast API key
SVGL Search SVG brand logos by name or category None
Zip Code Look up places by zip code or city None
VeyraX (3)
Integration What an agent can do Auth
VeyraX Memory Save, get, update and delete user memories VeyraX API key
VeyraX Auth Tool connection status, connection links VeyraX API key
VeyraX MCP † Search and deploy MCP servers, connection links VeyraX API key

Quickstart

You need Docker (running), the Supabase CLI and Node.js 18+. Then, from the repository root:

./quickstart.sh

One command, safe to re-run. It:

  1. starts a local Supabase with the full schema and the tool catalog (79 integrations, ~930 actions);
  2. creates .env and main/.env.local for it (existing files are kept);
  3. starts the backend with Docker Compose and the frontend with Next.js;
  4. runs a smoke test: creates a demo user and an API key, connects Hacker News and calls a tool through the backend.

At the end it prints where everything runs:

What Where
App http://localhost:3000, log in as demo@example.com / demo-password-123
Backend API docs http://localhost:8000/docs
Supabase Studio http://127.0.0.1:54323
Demo API key printed, together with a ready-to-run curl tool call

The first run takes a few minutes (Docker images, npm packages); later runs take under a minute. Stop everything with ./quickstart.sh stop; the database is kept.

  • Tools with an API key or no auth work right away. The chat, agent and flows need an OpenRouter key: run OPENROUTER_API_KEY=... ./quickstart.sh before .env exists, or add it to .env and main/.env.local later.
  • OAuth integrations (Slack, Notion, …) also need your own OAuth app credentials in .env.
  • If another local Supabase project already uses the default ports, the script runs this one on ports 544xx and prints the actual URLs.

Getting started

The sections below are the manual version of what ./quickstart.sh does.

Prerequisites

  • Docker and Docker Compose
  • Node.js 18+ (for the frontend)
  • Supabase CLI for a local database, or a hosted Supabase project
  • An OpenRouter API key (every model call goes through OpenRouter)

Database

The schema lives in supabase/migrations and the tool catalog (79 integrations, ~930 actions, OAuth scopes) in supabase/seed.sql.

Local (recommended):

supabase start            # first run pulls images; applies migrations + seed.sql
supabase status -o env    # URLs and keys for the .env files

Use the legacy JWT keys from supabase status -o env: ANON_KEY and SERVICE_ROLE_KEY. The new sb_publishable_… / sb_secret_… keys are rejected by the pinned supabase Python client. supabase db reset wipes the local database and re-applies everything. Studio runs at http://127.0.0.1:54323.

port is already allocated means another local Supabase project uses the default ports: stop it with supabase stop --project-id <name> (its data is kept), or see Running multiple local projects.

Hosted Supabase project:

supabase link --project-ref <your-project-ref>
supabase db push --include-seed

Or run the files from supabase/migrations/ (in order) and then supabase/seed.sql in the SQL Editor.

Plain PostgreSQL 15+ with psql (no Supabase, e.g. for a quick check or CI):

supabase/psql/test.sh                     # throwaway local cluster, removed afterwards (needs initdb 15+)
supabase/psql/test.sh postgresql://...    # or an existing empty database

It applies supabase/psql/bootstrap.sql (the Supabase roles and auth helpers), then the migrations and seed.sql twice to check idempotency. It finishes with RLS smoke checks run as anon, two users and service_role, inside a transaction that is rolled back.

Billing views read Stripe data from a stripe schema. The baseline migration creates empty placeholder tables there; to show real subscriptions, replace them with the Supabase Stripe Wrapper.

Configuration

  1. Backend: cp .env.example .env and fill in the REQUIRED section.
  2. Frontend: cp main/.env.example main/.env.local and fill in the REQUIRED section.
  3. Never commit real .env files — they are git-ignored.

With local Supabase the backend runs in Docker, so it reaches the database at http://host.docker.internal:54321. The frontend runs on the host and uses http://127.0.0.1:54321.

Everything in the OPTIONAL sections can stay empty: only the integrations and features you configure will work.

Tool catalog

supabase/seed.sql is generated; don't edit it by hand. Its sources:

  • the integrations registered in INTEGRATION_ROUTERS (aci_server/main.py): input/output schemas, examples.yaml, component.json;
  • aci_server/db/scripts/catalog.json: name, description, category, auth method, logo, custom auth fields, OAuth scopes and which scopes each action needs.
# regenerate supabase/seed.sql after changing an integration or catalog.json
docker-compose run --rm --no-deps -v "$PWD/supabase:/supabase" aci_server python db/scripts/seed_tools.py --sql /supabase/seed.sql

# validate only
docker-compose run --rm --no-deps aci_server python db/scripts/seed_tools.py --dry-run

# upsert the catalog into the database from .env (SUPABASE_URL / SUPABASE_SERVICE_KEY) without resetting it
docker-compose run --rm --no-deps aci_server python db/scripts/seed_tools.py            # all integrations
docker-compose run --rm --no-deps aci_server python db/scripts/seed_tools.py slack exa  # only some

Seeding is idempotent and never deletes rows. Actions of an OAuth integration are enabled for a user only if they are listed in that integration's action_scopes.

Run the backend

docker-compose up --build

The API is available at http://localhost:8000 (OpenAPI docs at /docs), Celery Flower at http://localhost:5555.

Run the frontend

cd main
npm install
npm run dev

The web app is available at http://localhost:3000.

Integration tests

  1. Run all tests in Docker
docker-compose exec aci_server /app/run_tests.sh
  1. Run tests for a specific integration
docker-compose exec aci_server /app/run_tests.sh dropbox

Adding an integration

See CONTRIBUTING.md.

Contributing & security

Contributions are welcome — see CONTRIBUTING.md. To report a vulnerability, follow SECURITY.md.

License

MIT

About

Open-source tool-calling platform for AI agents: 80+ integrations with OAuth, MCP server deployment, memory and agent flows.

Topics

Resources

Contributing

Security policy

Stars

8 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages