diff --git a/.github/workflows/llmstxt.yml b/.github/workflows/llmstxt.yml index e45a1cab0..3150be2df 100644 --- a/.github/workflows/llmstxt.yml +++ b/.github/workflows/llmstxt.yml @@ -9,12 +9,14 @@ on: - "app/en/**/*.mdx" - "app/en/**/_meta.tsx" - "scripts/generate-llmstxt.ts" + - "toolkit-docs-generator/data/toolkits/**" pull_request: types: [opened, synchronize, reopened] paths: - "app/en/**/*.mdx" - "app/en/**/_meta.tsx" - "scripts/generate-llmstxt.ts" + - "toolkit-docs-generator/data/toolkits/**" permissions: contents: write @@ -24,6 +26,9 @@ jobs: llmstxt: name: Generate LLMSTXT runs-on: ubuntu-latest + if: > + (github.event_name != 'pull_request' || + github.event.pull_request.head.repo.full_name == github.repository) permissions: contents: write @@ -40,6 +45,7 @@ jobs: with: ref: ${{ github.event.pull_request.head.ref || github.ref }} token: ${{ secrets.DOCS_PUBLISHABLE_GH_TOKEN }} + fetch-depth: 0 - name: Install dependencies run: npm install -g pnpm diff --git a/app/en/get-started/setup/connect-arcade-docs/page.mdx b/app/en/get-started/setup/connect-arcade-docs/page.mdx index 3fa170e18..2f5ba9a5c 100644 --- a/app/en/get-started/setup/connect-arcade-docs/page.mdx +++ b/app/en/get-started/setup/connect-arcade-docs/page.mdx @@ -5,14 +5,11 @@ description: "Learn how to speed up your development with agents in your IDEs" # Agentic development -Every page on the Arcade docs site serves as markdown. When an AI agent or coding assistant visits any docs URL, the site automatically returns `Content-Type: text/markdown` instead of HTML if: +Arcade publishes an [`llms.txt`](/llms.txt) index that agents can use to discover documentation pages. -- The request `User-Agent` header matches a known AI agent (Claude, ChatGPT, Cursor, etc.) -- The request includes the `Accept: text/markdown` header +Generated toolkit reference pages also provide complete Markdown through the **Copy page** action. This Markdown includes tool parameters, authentication requirements, outputs, examples, and custom documentation sections that load on demand in the rendered page. -This means you can point your agent directly at any docs page. No need to copy and paste or use the `llms.txt` file. The agent will receive well-formatted markdown out of the box. - -For example, you can tell your agent to visit `docs.arcade.dev/get-started/quickstarts/call-tool-agent` and it will automatically get the markdown version of that page. +Other documentation URLs serve HTML. Use `llms.txt` to give an agent the documentation index, or use **Copy page** when you need Markdown for a specific page. ## LLMs.txt diff --git a/public/llms.txt b/public/llms.txt index 1edc542c5..36909568c 100644 --- a/public/llms.txt +++ b/public/llms.txt @@ -1,4 +1,4 @@ - + # Arcade @@ -70,7 +70,7 @@ Arcade delivers three capabilities. Enforce (Agent Authorization): deploy agents - [Add remote MCP servers](https://docs.arcade.dev/en/guides/mcp-gateways/add-remote-servers): This documentation page provides a step-by-step guide for users to register and connect a remote MCP server to their Arcade project, enabling the use of its tools within MCP Gateways and SDKs. Users will learn how to configure connection settings, manage tool visibility - [Add user authorization to your MCP tools](https://docs.arcade.dev/en/guides/create-tools/tool-basics/create-tool-auth): This documentation page guides users on how to implement user authorization in their custom MCP tools using Arcade, OAuth, and various auth providers, specifically illustrating the process with a Reddit integration example. Users will learn to create tools that require OAuth for access, manage authorization - [Adding Resource Server Auth to Your MCP Server](https://docs.arcade.dev/en/guides/create-tools/secure-your-server/secure-your-mcp-server): This documentation page guides users on how to secure their HTTP MCP server using OAuth 2.1 Resource Server authentication, enabling tool-level authorization and secrets management. It outlines the prerequisites, benefits, and configuration steps necessary for implementing this security measure, ensuring that -- [Agentic development](https://docs.arcade.dev/en/get-started/setup/connect-arcade-docs): This documentation page provides guidance on utilizing agents in Integrated Development Environments (IDEs) to enhance development efficiency by accessing well-formatted markdown documentation directly from the Arcade site. It explains how AI agents can retrieve content without manual copying and introduces the LLM +- [Agentic development](https://docs.arcade.dev/en/get-started/setup/connect-arcade-docs): Documentation page - [Arcade Cloud infrastructure](https://docs.arcade.dev/en/guides/deployment-hosting/arcade-cloud): This documentation page provides an overview of the infrastructure supporting Arcade Cloud, detailing aspects such as data storage, protection, and sovereignty options. Users can learn about the management of their data, including retention policies and consent models for training data, as well as the - [Arcade Gateway Assistant](https://docs.arcade.dev/en/guides/mcp-gateways/create-via-ai): The Arcade Gateway Assistant documentation guides users in creating and managing MCP gateways through a chat interface using natural language commands. It outlines the prerequisites for setup, including creating an Arcade account and connecting to compatible chat clients, and provides step-by-step instructions for authentication and - [Arcade Glossary](https://docs.arcade.dev/en/resources/glossary): The Arcade Glossary provides definitions and explanations of key terms and concepts related to the Arcade platform, including agents, harnesses, MCP servers, and tools. This resource helps users understand the components and functionalities necessary for building, deploying, and managing applications that @@ -124,25 +124,15 @@ Arcade delivers three capabilities. Enforce (Agent Authorization): deploy agents - [On-premise MCP Servers](https://docs.arcade.dev/en/guides/deployment-hosting/on-prem): This documentation page guides users on how to deploy on-premises MCP servers within a hybrid architecture, allowing them to utilize Arcade's cloud infrastructure while maintaining control over their local environment. Users will learn to set up their MCP server, create secure tunnels for public - [Organize your MCP server and tools](https://docs.arcade.dev/en/guides/create-tools/tool-basics/organize-mcp-tools): This documentation page provides best practices for organizing your MCP server and tools, including how to define and import tools from separate files and other packages. Users will learn to maintain a clean project structure, enhance code readability, and effectively utilize decorators for tool management. - [page](https://docs.arcade.dev/en/resources/examples): This documentation page provides a collection of example applications that utilize Arcade's tools and MCP servers, showcasing various real-world scenarios and integration patterns. Users can explore complete source code and setup instructions for each example, enabling them to quickly understand and implement similar projects. -- [page](https://docs.arcade.dev/en/resources/integrations): This documentation page provides a comprehensive registry of all MCP Servers within the Arcade ecosystem, helping users identify and access available servers. It serves as a central resource for understanding the various MCP Server options. - [page](https://docs.arcade.dev/en/get-started/agent-frameworks/mastra): This documentation page guides users in building a TypeScript AI agent using the Mastra framework, enabling interaction with Gmail and Slack through Arcade tools. Users will learn to create an agent capable of reading emails, sending messages, and summarizing emails for Slack, - [page](https://docs.arcade.dev/en/get-started/agent-frameworks/langchain/auth-langchain-tools): This documentation page provides a step-by-step guide on how to authorize existing LangChain tools, such as the `GmailToolkit`, using the Arcade platform. It outlines the prerequisites, necessary package installations, and detailed instructions for initializing the Arcade client and completing -- [page](https://docs.arcade.dev/en/resources/integrations/customer-support/[toolkitId]): This documentation page provides an overview of the MCP server, including its generated documentation and key functionalities. Users can learn about the components involved, such as dynamic parameters and metadata generation, to effectively utilize the MCP server in their projects. -- [page](https://docs.arcade.dev/en/resources/integrations/databases/[toolkitId]): This documentation page provides an overview of the MCP server, including its generated documentation and key functionalities. Users will learn how to utilize the Page component along with dynamic parameters, metadata generation, and static parameters for effective server implementation. -- [page](https://docs.arcade.dev/en/resources/integrations/development/[toolkitId]): This documentation page provides an overview of the MCP server, including its generated documentation and key functionalities. Users can learn about the components involved in the server's implementation, such as dynamic parameters and metadata generation. The page serves as a reference for understanding how to -- [page](https://docs.arcade.dev/en/resources/integrations/entertainment/[toolkitId]): This documentation page provides an overview of the MCP server, including its generated documentation and key functionalities. Users will learn how to utilize the Page component and its associated methods for handling dynamic parameters and generating metadata. The page serves as a guide for developers working with -- [page](https://docs.arcade.dev/en/resources/integrations/payments/[toolkitId]): This documentation page provides an overview of the MCP server, including its generated documentation and key functionalities. Users can learn about the components involved, such as dynamic parameters and metadata generation, to effectively implement and utilize the MCP server in their projects. -- [page](https://docs.arcade.dev/en/resources/integrations/productivity/[toolkitId]): This documentation page provides an overview of the MCP server, including its generated documentation and key functionalities. It outlines the components available for importing, such as dynamic parameters and metadata generation, to assist users in effectively utilizing the MCP server. -- [page](https://docs.arcade.dev/en/resources/integrations/sales/[toolkitId]): This documentation page provides an overview of the MCP server, including its generated documentation and key functionalities. It outlines the components available for importing, such as dynamic parameters and metadata generation, to assist users in effectively utilizing the MCP server. -- [page](https://docs.arcade.dev/en/resources/integrations/search/[toolkitId]): This documentation page provides an overview of the MCP server, including its generated documentation and key functionalities. Users will learn how to utilize the MCP server through the provided imports and exports, including dynamic parameters and metadata generation. -- [page](https://docs.arcade.dev/en/resources/integrations/social/[toolkitId]): This documentation page provides an overview of the MCP server, including its generated documentation and key functionalities. It outlines the components available for importing, such as dynamic parameters and metadata generation, to assist users in implementing and utilizing the MCP server effectively. - [Providing useful tool errors](https://docs.arcade.dev/en/guides/create-tools/error-handling/useful-tool-errors): This documentation page provides guidance on effectively handling errors when building tools with Arcade MCP, emphasizing the importance of robust error management. It explains the automatic error adaptation process, outlines when to explicitly raise specific errors, and details common error scenarios encountered during tool development. - [RetryableToolError in Arcade](https://docs.arcade.dev/en/guides/create-tools/error-handling/retry-tools): This documentation page explains how to use the `RetryableToolError` in the Arcade Tool SDK to enhance tool call outcomes by providing additional context for input parameters. It outlines when to raise the error and includes an example of its application in a Slack messaging - [Run evaluations](https://docs.arcade.dev/en/guides/create-tools/evaluate-tools/run-evaluations): This documentation page provides guidance on using the `arcade evals` command to run evaluation suites across multiple providers and models, allowing users to execute, compare, and analyze evaluation results in various output formats. It covers features such as multi-provider support, - [Running an Server](https://docs.arcade.dev/en/guides/contextual-access/examples): This documentation page provides users with guidance on running open-source example webhook servers to implement Contextual Access. It includes detailed instructions for setting up both a full-featured advanced server and minimal focused examples, allowing users to quickly start using or customizing these servers for - [Secure and Brand the Auth Flow in Production](https://docs.arcade.dev/en/guides/user-facing-agents/secure-auth-production): This documentation page guides users on how to secure and customize authentication flows in production using Arcade.dev. It outlines the use of the default Arcade user verifier for development and the implementation of a custom user verifier for production applications, ensuring user safety and a tailored user - [Securing Arcade MCP Deployments](https://docs.arcade.dev/en/guides/create-tools/secure-your-server): This documentation page provides guidance on securing Arcade MCP deployments by outlining two primary methods: deploying the MCP server through the Arcade platform for built-in security features and implementing OAuth 2.1 Resource Server authentication for self-hosted setups. Users will learn how to -- [Security Research Program](https://docs.arcade.dev/en/resources/security-research-program): The Security Research Program documentation page outlines how users can report security vulnerabilities in Arcade's tools and services, emphasizing the importance of community involvement in enhancing security. It details the types of vulnerabilities sought, the reporting process, and guidelines for responsible disclosure. Additionally, +- [Security Research Program](https://docs.arcade.dev/en/resources/security-research-program): Documentation page - [Self-host Arcade with Helm](https://docs.arcade.dev/en/guides/deployment-hosting/helm): Documentation page - [Server-Level vs Tool-Level Authorization](https://docs.arcade.dev/en/learn/server-level-vs-tool-level-auth): This documentation page explains the differences between server-level authorization (Resource Server auth) and tool-level authorization in Arcade MCP servers, highlighting their respective roles in securing access to the server and external APIs. It provides guidance on when to implement each type of authorization and - [Setup Arcade with Google ADK (Python)](https://docs.arcade.dev/en/get-started/agent-frameworks/google-adk/setup-python): This documentation page provides a comprehensive guide for users to set up and integrate Arcade tools with the Google ADK framework using Python. It outlines the necessary prerequisites, teaches users how to build a Google ADK agent that utilizes Arcade tools, and explains how to @@ -152,10 +142,8 @@ Arcade delivers three capabilities. Enforce (Agent Authorization): deploy agents - [Setup Arcade with OpenAI Agents (TypeScript)](https://docs.arcade.dev/en/get-started/agent-frameworks/openai-agents/setup-typescript): This documentation page provides a comprehensive guide for setting up and building AI agents using the OpenAI Agents SDK with Arcade tools in TypeScript. It covers the integration process, including converting Arcade tools to the required format, handling authorization, and executing agent functions. - [Setup Arcade with OpenAI Agents SDK](https://docs.arcade.dev/en/get-started/agent-frameworks/openai-agents/setup-python): This documentation page guides users on how to set up and integrate Arcade tools within OpenAI Agents applications using the OpenAI Agents SDK. It covers the necessary prerequisites, provides step-by-step instructions for creating a CLI agent, and explains how to implement tool authorization - [Stytch](https://docs.arcade.dev/en/guides/user-sources/stytch): Documentation page -- [Tavily](https://docs.arcade.dev/en/resources/integrations/search/tavily): Documentation page - [The Arcade Registry](https://docs.arcade.dev/en/resources/registry-early-access): The Arcade Registry documentation provides an overview of a platform where developers can share and monetize their tools for agentic applications, similar to HuggingFace or Pypi. It explains how the registry integrates runtime metrics and user feedback to enhance tool development and usage - [Tool error handling](https://docs.arcade.dev/en/guides/tool-calling/error-handling): This documentation page provides guidance on effectively handling errors when using tools with Arcade's Tool Development Kit (TDK). It explains the error handling philosophy, outlines best practices, and offers code examples for managing output errors in various programming languages. Users will learn how -- [Tool feedback](https://docs.arcade.dev/en/resources/integrations/tool-feedback): Documentation page - [Tools](https://docs.arcade.dev/en/resources/tools): This documentation page provides an overview of Arcade's ecosystem for AI tools, enabling users to explore a catalog of pre-built integrations, create custom tools, and contribute their own tools to the community. It outlines the benefits of using Arcade tools, such as built - [Types of Tools](https://docs.arcade.dev/en/guides/create-tools/improve/types-of-tools): This documentation page explains the two types of tools offered by Arcade: Optimized and Unoptimized tools. It highlights the differences in design and functionality, emphasizing that Optimized tools are tailored for AI-powered chat interfaces to enhance performance and reliability, while Unoptimized - [Understanding `Context` and tools](https://docs.arcade.dev/en/guides/create-tools/tool-basics/runtime-data-access): This documentation page explains the purpose and usage of the `Context` class in Arcade's Tool framework, which provides tools with access to runtime capabilities and tool-specific data. Users will learn how to utilize the `Context` object to retrieve OAuth tokens, secrets @@ -172,3 +160,153 @@ Arcade delivers three capabilities. Enforce (Agent Authorization): deploy agents - [What are tools?](https://docs.arcade.dev/en/guides/tool-calling): This documentation page provides an overview of tool calling in language models, explaining how users can leverage tools to enhance the capabilities of AI models for tasks such as data retrieval and scheduling. It outlines the process of integrating tools with language models using the Arcade SDK, - [Why evaluate tools?](https://docs.arcade.dev/en/guides/create-tools/evaluate-tools/why-evaluate): This documentation page explains the importance of evaluating tools used by AI models to ensure accurate tool selection and parameter accuracy in production environments. It outlines the evaluation process, scoring components, and potential issues that can arise without proper assessments. Users can learn how to create - [Windows environment setup](https://docs.arcade.dev/en/get-started/setup/windows-environment): This documentation page provides step-by-step instructions for setting up the Arcade CLI on Windows, emphasizing the use of the `uv` package manager while offering fallback options with `pip`. It includes prerequisites, installation methods, validation steps, and troubleshooting tips to ensure + +## Integrations + +- [page](https://docs.arcade.dev/en/resources/integrations): This documentation page provides a comprehensive registry of all MCP Servers within the Arcade ecosystem, helping users identify and access available servers. It serves as a central resource for understanding the various MCP Server options. + +## Integrations - Customer Support + +- [Customer.io](https://docs.arcade.dev/en/resources/integrations/customer-support/customerio): The Customer.io toolkit lets LLMs interact with a Customer.io workspace via the Tracking and App APIs. It covers the full lifecycle of contacts, messaging, and analytics — from identifying people and recording events through sending transactional emails and triggering broadcasts. ## Capabilities - **Contact management**: Create, update, look up, search, and delete person profiles; resolve by email or ID; handle multi-match edge cases. - **Activity & message history**: Retrieve a person's timelin +- [Customer.io API](https://docs.arcade.dev/en/resources/integrations/customer-support/customerio-api): **Customer.io API Toolkit** provides a set of tools that enable easy interaction with the Customer.io App API, enhancing marketing automation workflows. **Capabilities:** - Create, manage, and delete segments, collections, and newsletters. - Fetch detailed delivery and performance metrics for campaigns and transactional messages. - Manage customer data with CRUD operations on customer attributes and activities. - Retrieve insights on message performance, including link metrics and suppression st +- [Customer.io Pipelines API](https://docs.arcade.dev/en/resources/integrations/customer-support/customerio-pipelines-api): **CustomerioPipelinesApi** enables seamless interaction with the Customer.io Track API, allowing LLMs to manage user data efficiently. This toolkit excels in automating user grouping, event tracking, and identity reconciliation, all essential for effective marketing and analytics. **Capabilities:** - Automate user grouping based on specified criteria. - Reconcile anonymous and identified user IDs for accurate tracking. - Identify users and assign traits for personalized experiences. - Send batch +- [Customer.io Track API](https://docs.arcade.dev/en/resources/integrations/customer-support/customerio-track-api): Arcade Toolkit provides comprehensive tools for integrating with the Customer.io Track API, enabling effective management of customer profiles and interactions. This toolkit facilitates operations such as updating profiles, segmenting users, and logging events. **Capabilities** - Manage customer profiles, including updates, merges, and deletions. - Add and remove devices linked to customer profiles. - Batch process multiple requests for efficiency. - Report custom metrics and log events for cust +- [Freshdesk](https://docs.arcade.dev/en/resources/integrations/customer-support/freshdesk): **Freshdesk** is a customer support platform; this toolkit lets LLM agents read and write Freshdesk data — tickets, contacts, companies, agents, groups, and the knowledge base — without a human clicking through the UI. ## Capabilities - **Ticket lifecycle** — create, read, update, merge, reply publicly, and add private internal notes to tickets; search the queue by status, priority, requester, agent, group, tag, type, or recency. - **Contact & company management** — create or update contacts and +- [Freshservice API](https://docs.arcade.dev/en/resources/integrations/customer-support/freshservice-api): FreshserviceApi provides a toolkit that enables seamless interaction with the Freshservice API, facilitating various operations for managing IT service requests. This toolkit empowers developers to automate and streamline service desk actions effectively. **Capabilities** - Activate and manage Customer Satisfaction (CSAT) surveys. - Add, update, and delete tasks, notes, and details for tickets, projects, changes, and problems. - Retrieve comprehensive details for assets, vendors, agents, and req +- [Intercom API](https://docs.arcade.dev/en/resources/integrations/customer-support/intercom-api): Arcade Toolkit for Intercom enables integration with the Intercom API, facilitating seamless interactions for managing contacts, conversations, and data attributes. This toolkit offers a variety of tools to streamline communication processes, ensuring effective customer engagement and support. **Capabilities:** - Automate contact management with CRUD operations. - Streamline conversations by attaching contacts and companies. - Support data exports and status checks for tracking user interactions +- [PagerDuty API](https://docs.arcade.dev/en/resources/integrations/customer-support/pagerduty-api): PagerDuty's API toolkit empowers developers to seamlessly integrate and manage incident response workflows through a variety of automated tools. Designed for interaction with the PagerDuty API, it facilitates comprehensive insight into incident management and team coordination. **Capabilities:** - Integrates and manages incident workflows, actions, and teams efficiently. - Automates alert notifications, service integrations, and escalation policies. - Enables customization of incident types and +- [Pylon](https://docs.arcade.dev/en/resources/integrations/customer-support/pylon): The Arcade toolkit for Pylon enables seamless interaction with Pylon's issue tracking system and team management. Designed for developers, this toolkit facilitates issue management and user interaction through various tools. **Capabilities** - Manage Pylon issues including assigning and updating statuses. - Retrieve detailed information about teams, issues, and users. - Perform advanced searches using BM25 ranking and fuzzy matching techniques. - Efficiently list and filter contacts, issues, and +- [Pylon API](https://docs.arcade.dev/en/resources/integrations/customer-support/pylon-api): Pylon API provider: a toolkit that lets LLMs call Pylon endpoints to programmatically manage accounts, contacts, issues, knowledge bases, projects, users and training data. It exposes schema-driven endpoints for CRUD, batch operations, imports, searches and workflow actions. **Capabilities** - Unified CRUD and workflow operations across accounts, contacts, issues, projects, knowledge bases, tags and training data without calling individual endpoints manually. - Schema-first GET_REQUEST_SCHEMA / +- [Zendesk](https://docs.arcade.dev/en/resources/integrations/customer-support/zendesk): Arcade's Zendesk toolkit enables seamless integration with Zendesk's customer service platform, allowing developers to interact with tickets and knowledge base articles efficiently. **Capabilities** - Retrieve and manage ticket comments and statuses. - List and paginate through tickets for dynamic retrieval. - Search for Help Center articles using various parameters. - Fetch comprehensive user profiles and account information. **OAuth** - Auth Type: OAuth2 - Provider: Unknown - Scopes: read, tic + +## Integrations - Databases + +- [Clickhouse](https://docs.arcade.dev/en/resources/integrations/databases/clickhouse): ## Arcade ClickHouse Toolkit Provides tools to connect to and explore a ClickHouse database, enabling agents to introspect structure and execute read-only queries. ## Capabilities - **Schema discovery** — enumerate databases, retrieve a default schema representation, and list all tables in the connected instance. - **Table introspection** — fetch the full column structure of any named table before querying; required prior to any SELECT execution. - **Read-only query execution** — run parameteriz +- [MongoDB](https://docs.arcade.dev/en/resources/integrations/databases/mongodb): The MongoDB toolkit connects Arcade to a MongoDB instance, enabling agents and tools to explore, query, and aggregate data across databases and collections. ## Capabilities - **Discovery**: Enumerate all databases in a MongoDB instance and all collections within a database, establishing the context needed before any query runs. - **Schema inference**: Sample documents from a collection to infer field names and data types — essential since MongoDB is schema-less and must be introspected at runtim +- [Postgres](https://docs.arcade.dev/en/resources/integrations/databases/postgres): Postgres provider enables read-only exploration and querying of a PostgreSQL database within the Arcade toolkit. It provides schema discovery, table inspection, and constrained SELECT execution to build reliable, safe queries. **Capabilities** - Discover database schemas and table structures to drive query composition rather than guessing table/column names. - Execute read-only SELECT queries with enforced construction rules (explicit columns, ORDER BY, LIMIT/OFFSET, JOIN/HAVING/WHERE clauses). +- [Weaviate API](https://docs.arcade.dev/en/resources/integrations/databases/weaviate-api): Arcade Toolkit provides tools to interface directly with the Weaviate API, enabling developers to manage and organize data efficiently. This toolkit is essential for working with databases within Weaviate, making it easier to handle complex operations. ### Capabilities - Manage database users and roles, including assignment and permissions. - Perform batch operations for data objects and references, improving efficiency. - Create, update, and delete schemas and collections. - Monitor and manage +- [YugabyteDB](https://docs.arcade.dev/en/resources/integrations/databases/yugabytedb): YugabyteDB (Yugabytedb) Arcade toolkit lets LLMs inspect and query YugabyteDB instances in a safe, read-only manner. It enables schema discovery and executing SELECT-style queries with structured JSON output to support automated analysis and query generation. **Capabilities** - Discover database structure: list tables, columns, types, and row counts to inform query design. - Execute read-only SQL inside READ ONLY transactions to prevent accidental writes. - Return results as JSON arrays of row o + +## Integrations - Development + +- [Arcade Engine API](https://docs.arcade.dev/en/resources/integrations/development/arcade-engine-api): The Arcade Engine API toolkit provides developers with the ability to seamlessly integrate language models (LLMs) with the Arcade Engine API, enabling dynamic interactions and tool management. **Capabilities** - Authorize users and workers for specific tools. - Retrieve detailed information about tools, projects, and workers. - Monitor health statuses of the Arcade Engine and workers. - Execute tools with specified parameters and manage scheduled executions. - Manage user authentication connecti +- [Bright Data](https://docs.arcade.dev/en/resources/integrations/development/brightdata): Bright Data provides a developer toolkit for large-scale web search, crawling, and scraping, enabling reliable extraction of pages and structured data without getting blocked. It supports search queries, content-to-Markdown conversion, and configurable data feeds across many site types. Designed for integration into data pipelines and analytics workflows with parameterized feeds and output formats. **Capabilities** - Scale-resistant crawling and scraping with anti-blocking behavior for sustained +- [Cursor Agents](https://docs.arcade.dev/en/resources/integrations/development/cursor-agents): The Cursor Agents toolkit wraps the Cursor Cloud Agents API, enabling programmatic control of AI coding agents that operate on GitHub repositories inside Cursor's cloud environment. ## Capabilities - **Agent lifecycle management** — launch agents on repos or named environments, archive/unarchive reversibly, or permanently delete them; verify the active account before acting. - **Run control & monitoring** — start follow-up runs on existing agents, cancel active runs (with async confirmation via +- [Cursor Agents API](https://docs.arcade.dev/en/resources/integrations/development/cursor-agents-api): The CursorAgentsApi toolkit enables developers to interact with the Cursor Background Agents API, providing a structured way to manage and utilize background agents effectively. **Capabilities:** - Manage background agents with operations to create, delete, and retrieve their statuses. - Access conversation history for insights into agent interactions. - List all agents and their recommended models for tailored implementations. - Integrate with GitHub to access user repositories seamlessly. **OA +- [Datadog](https://docs.arcade.dev/en/resources/integrations/development/datadog): Datadog toolkit for Arcade provides LLM tools to search, aggregate, and inspect Datadog logs, APM spans, and traces programmatically. It enables AI agents to perform observability triage — identifying error patterns, latency trends, and trace-level diagnostics — directly against a Datadog account. ## Capabilities - **Log & span search**: Query log events and APM spans over configurable time windows using Datadog search syntax. - **Aggregation & bucketing**: Aggregate events or spans by count, pe +- [Datadog API](https://docs.arcade.dev/en/resources/integrations/development/datadog-api): The Arcade toolkit for DatadogApi empowers developers to interact seamlessly with the Datadog API to manage monitoring, analytics, and incident responses. This toolkit enhances the ability to automate workflows, streamline operations, and effectively manage cloud resources. **Capabilities**: - Efficiently manage Datadog integrations, monitor resources, and handle alerts. - Automate operational workflows, including on-call management and incident response. - Support configuration management for A +- [Daytona](https://docs.arcade.dev/en/resources/integrations/development/daytona): Arcade's Daytona toolkit lets LLMs provision and manage isolated sandboxes, run code and commands, operate persistent sessions, manage snapshots, and perform Git and file operations inside the sandbox. It streamlines dev-loop automation including port previews and SSH access. **Capabilities** - Full sandbox lifecycle: create (from snapshot or image), start, stop, archive, delete, resize, label, list regions, and configure auto-stop / auto-archive / auto-delete intervals. - File system and conten +- [E2B](https://docs.arcade.dev/en/resources/integrations/development/e2b): Arcade.dev provides the E2b toolkit, enabling developers to run Python code in a secure sandbox environment. This toolkit is ideal for generating visualizations and executing code snippets safely. **Capabilities** - Execute Python code in a controlled environment - Generate static matplotlib charts - Return outputs as base64 encoded images or direct results **OAuth** - No OAuth authentication required. Use API keys for access. **Secrets** - Manage API keys, such as the E2B_API_KEY, to authentica +- [Firecrawl](https://docs.arcade.dev/en/resources/integrations/development/firecrawl): Firecrawl is an Arcade.dev toolkit designed for efficient web scraping tasks. It leverages the Firecrawl API to perform various operations, enabling developers to streamline their data extraction processes. **Capabilities** - Perform asynchronous and synchronous website crawls - Retrieve crawl status and data for ongoing or recent tasks - Map an entire website from a single URL - Scrape specific URLs and return data in various formats - Cancel ongoing crawl jobs seamlessly **OAuth** No OAuth aut +- [Fly.io](https://docs.arcade.dev/en/resources/integrations/development/fly-io): Fly.io toolkit for Arcade enables LLMs to fully manage Fly.io infrastructure via the Fly.io API — apps, machines, volumes, networking, secrets, certificates, and deployments. ## Capabilities - **App & release management:** List, inspect, and deploy apps across organizations; browse full release history and roll out new container images to all machines. - **Machine lifecycle:** Create, start, stop, restart, and destroy individual machines; scale machine count or change VM size/memory fleet-wide. +- [GitHub](https://docs.arcade.dev/en/resources/integrations/development/github): # GitHub Toolkit The GitHub toolkit integrates Arcade with the GitHub API, enabling LLM-powered automation of repositories, pull requests, issues, code review, and project management across personal and organization scopes. ## Capabilities - **Repository & file operations:** Create branches, read/write/update files (with safe create-vs-overwrite modes), list org and user repositories, retrieve repository metadata, and track activity history. - **Pull requests & code review:** Create, update, mer +- [GitHub API](https://docs.arcade.dev/en/resources/integrations/development/github-api): Arcade Toolkit enables seamless interaction between LLMs and the GitHub API, allowing for efficient management and development of GitHub repositories. It provides developers with tools for automation, collaboration, and project management. ### Capabilities - Automate GitHub actions and workflows for repositories. - Manage branches, access permissions, and team collaborations. - Handle repository secrets, issues, pull requests, and releases. - Perform analytics on contributions, notifications, an +- [Math](https://docs.arcade.dev/en/resources/integrations/development/math): # Math Toolkit The Arcade Math toolkit provides a set of LLM-callable tools for performing mathematical operations, from basic arithmetic to statistical and number-theory calculations. ## Capabilities - **Arithmetic & rounding:** Add, subtract, multiply, divide, modulus, absolute value, ceiling, floor, and rounding. - **Powers, roots & logarithms:** Exponentiation, square root, and logarithm with configurable base. - **Statistics & list operations:** Average (mean), median, sum of a list, and su +- [PagerDuty](https://docs.arcade.dev/en/resources/integrations/development/pagerduty): PagerDuty Arcade toolkit lets LLMs interact with PagerDuty to query incidents, schedules, services, teams, and users. It enables programmatic inspection of incident state, activity feeds, on-call rosters, and configuration objects for automated diagnostics and workflow orchestration. **Capabilities** - Unified read access to incident lifecycle and activity feeds (triggers, acknowledgements, escalations, resolutions). - Query and filter lists (incidents, on-calls, schedules, services, teams) with +- [PostHog](https://docs.arcade.dev/en/resources/integrations/development/posthog): PostHog is a product analytics and experimentation platform. The Arcade PostHog toolkit lets agents query analytics, manage experiments, and curate insights directly from a PostHog project. **Capabilities** - Build and manage dashboards, insights, funnels, trends, and retention views. - Create and iterate on experiments, feature flags, and surveys with full CRUD support. - Inspect event and property definitions, investigate errors, and compare time periods. - Run ad-hoc HogQL or insight queries +- [PostHog API](https://docs.arcade.dev/en/resources/integrations/development/posthog-api): Arcade Toolkit provides developers with the tools to interact seamlessly with the PostHog API, enhancing their ability to manage projects efficiently. The toolkit allows for various API operations such as adding collaborators, managing dashboards, and executing saved queries. **Capabilities:** - Supports managing and updating dashboards and their settings. - Facilitates the addition of collaborators for effective project collaboration. - Enables querying and manipulating project data through sav +- [Vercel](https://docs.arcade.dev/en/resources/integrations/development/vercel): The Vercel toolkit lets you manage Vercel projects, deployments, domains, and environment variables programmatically via Arcade. It covers the full project lifecycle — from creation and configuration through deployment, promotion, rollback, and teardown. ## Capabilities - **Account & team discovery** — resolve the authenticated account, list accessible teams, and inspect team details (including billing plan) to establish the correct scope before making changes. - **Project management** — create, +- [Vercel API](https://docs.arcade.dev/en/resources/integrations/development/vercel-api): VercelApi is a comprehensive toolkit enabling developers to integrate with the Vercel API for efficient project and deployment management. It provides seamless access to various functionalities related to domain management, deployment operations, team collaboration, and environmental configurations. **Capabilities** - Manage project domains, environments, and associated configurations. - Facilitate user and team management within Vercel projects. - Accept project transfer requests and add member +- [Zoho Creator API](https://docs.arcade.dev/en/resources/integrations/development/zoho-creator-api): Zoho Creator is a low-code platform for building custom business applications. The Arcade Zoho Creator toolkit lets agents interact directly with the Creator REST API to manage records, reports, forms, and application metadata. **Capabilities** - Create, read, update, and delete records across Zoho Creator forms and reports. - Bulk-insert up to 200 records per call and run asynchronous bulk read jobs. - Inspect application metadata, form field schemas, report definitions, sections, and pages. - + +## Integrations - Entertainment + +- [Imgflip](https://docs.arcade.dev/en/resources/integrations/entertainment/imgflip): Arcade provides a toolkit for seamless interaction with Imgflip, empowering developers to create and manage custom memes efficiently. Users can leverage powerful tools to search, retrieve, and create memes from a vast database. **Capabilities** - Create personalized memes using various templates. - Retrieve a list of trending meme templates. - Search over 1 million templates based on specific queries. - Access detailed template information including popularity metrics. **Secrets** - Use IMGFLIP_ +- [Spotify](https://docs.arcade.dev/en/resources/integrations/entertainment/spotify): The Arcade toolkit for Spotify empowers developers to integrate with Spotify's music streaming services seamlessly. It enables a variety of playback functionalities and retrieval of music data. **Capabilities** - Control playback by adjusting position, pausing, and resuming tracks. - Access information on available devices and currently playing tracks. - Search the Spotify catalog with advanced filtering options. - Queue and play tracks or albums based on artist, name, or ID. **OAuth** - Auth is + +## Integrations - Payments + +- [Stripe](https://docs.arcade.dev/en/resources/integrations/payments/stripe): Arcade.dev provides a powerful toolkit for integrating with Stripe, enabling seamless management of billing, customer data, and payment processes. This toolkit simplifies common tasks, making it easier for developers to leverage Stripe's capabilities. ### Capabilities - Create and manage customers, products, and prices. - Generate invoices and billing portal sessions effortlessly. - Retrieve and list pertinent data such as invoices and payment intents. - Facilitate refunds and manage financial t +- [Stripe API](https://docs.arcade.dev/en/resources/integrations/payments/stripe_api): # Overview The StripeApi toolkit enables LLMs to directly interact with the Stripe API, facilitating seamless operations related to payments, account management, and customer interactions. ## Capabilities - Manage customer accounts, payment methods, and transactions. - Retrieve detailed financial data and reports. - Perform search operations for financial entities following Stripe's Search Query Language. - Delete accounts, invoices, and payment methods efficiently. ## OAuth This toolkit does no +- [Zoho Books API](https://docs.arcade.dev/en/resources/integrations/payments/zoho-books-api): Zoho Books API toolkit lets LLMs interact directly with Zoho Books to automate accounting workflows and manage invoices, payments, expenses, projects, tax settings, inventory, and organization configuration. It exposes CRUD, reconciliation, file attachment, email and approval workflows so agents can perform end-to-end bookkeeping and operational tasks. **Capabilities** - Automate transactional lifecycles (create/read/update/delete invoices, bills, payments, credit/debit notes). - Reconcile and c + +## Integrations - Productivity + +- [Airtable API](https://docs.arcade.dev/en/resources/integrations/productivity/airtable-api): ## Arcade Toolkit for Airtable API The Airtable API toolkit allows LLMs to seamlessly interact with Airtable, enabling the management of records, collaborators, and enterprise accounts efficiently. ### Capabilities - Manage Airtable bases, records, and tables with ease. - Collaborator management, including permissions and user roles within workspaces and interfaces. - Support for batch operations to manipulate multiple records and users. - Facilitate webhooks, comments, and audit log requests fo +- [Asana](https://docs.arcade.dev/en/resources/integrations/productivity/asana): Arcade offers a toolkit for seamless interaction with Asana, enabling developers to automate project management tasks. The toolkit supports various functionalities tailored for managing tasks, tags, and projects efficiently. **Capabilities** - Create, update, and manage tasks and subtasks within Asana. - Attach files to tasks in various formats. - Retrieve detailed information about projects, teams, and users. - List and create tags for organized task management. - Mark tasks as completed to str +- [Asana API](https://docs.arcade.dev/en/resources/integrations/productivity/asana-api): AsanaApi is a toolkit that enables integration with the Asana API, allowing LLMs to manage tasks, projects, goals, and custom fields effectively. **Capabilities:** - Create, update, delete, and retrieve records for tasks, projects, goals, and custom fields. - Manage task dependencies and followers with ease. - Retrieve detailed information about various entities, including custom field settings. - Utilize asynchronous operations for project instantiation and exports. - Efficiently handle permiss +- [Ashby](https://docs.arcade.dev/en/resources/integrations/productivity/ashby): Ashby is a recruiting platform; this toolkit lets Arcade agents read and write recruiting data — candidates, applications, jobs, notes, feedback, and interview stages — via the Ashby REST API. ## Capabilities - **Candidate management**: Search candidates by name/email, fetch full profiles, read and add plain-text notes, and pull a combined debrief bundle (profile + notes + scorecards) in one call. - **Application lifecycle**: List applications (filtered by job and/or status), move applications f +- [Ashby API](https://docs.arcade.dev/en/resources/integrations/productivity/ashby-api): AshbyApi enables seamless interactions with the Ashby recruitment platform, allowing LLMs to perform various recruitment tasks efficiently. ## Capabilities - Manage candidate profiles, including adding tags and assessments. - Facilitate interview scheduling and maintain interview records. - Create and update job openings and applications. - Archive and restore candidates, jobs, and departments swiftly. - Generate and manage reports on recruitment activities. ## Secrets - **API Key**: Use the `AS +- [Box API](https://docs.arcade.dev/en/resources/integrations/productivity/box-api): BoxApi provides tools enabling LLMs to interact directly with the Box API, facilitating various file and folder operations within a Box environment. ### Capabilities - Manage files, folders, and metadata. - Collaborate with users through invitations and shared links. - Monitor upload sessions, download statuses, and event logs. - Handle legal hold and retention policies. - Integrate with third-party applications like Slack and Teams. ### OAuth - **Provider**: Unknown - **Scopes**: None ### Secre +- [Calendly API](https://docs.arcade.dev/en/resources/integrations/productivity/calendly-api): This documentation details the Arcade toolkit for integrating with the Calendly API, enabling developers to efficiently manage scheduling events and invitees. **Capabilities** - Create and cancel scheduled events as well as generate custom share links. - Manage invitees by adding, removing, or marking their attendance status. - Retrieve user and organization-specific information such as availability and event types. - Set up webhook subscriptions for real-time notifications on event changes. **O +- [ClickUp](https://docs.arcade.dev/en/resources/integrations/productivity/clickup): The Arcade.dev Toolkit for ClickUp empowers developers to efficiently manage tasks, comments, and workspace structures within ClickUp through seamless API interactions. **Capabilities** - Create, update, and retrieve tasks and comments, enabling direct engagement with team tasks. - Conduct fuzzy searches for lists, folders, and members to enhance navigability. - Retrieve insights about workspaces and configure task statuses dynamically. - Manage team assignments effectively, facilitating team co +- [ClickUp API](https://docs.arcade.dev/en/resources/integrations/productivity/clickup-api): Arcade's ClickupApi toolkit enables seamless interaction with the ClickUp API, allowing developers to manage tasks, views, checklists, and more within their ClickUp workspaces. **Capabilities**: - Create, update, and delete tasks, lists, and views. - Add comments and checklists to tasks for effective collaboration. - Retrieve and manage time entries, goals, and custom fields. - Organize tasks by using tags and dependencies for better workflow management. **OAuth**: - Provider: ClickUp; Scopes: N +- [Confluence](https://docs.arcade.dev/en/resources/integrations/productivity/confluence): **Confluence** is an Atlassian wiki and documentation platform. This toolkit gives LLM agents the ability to read, write, search, and manage Confluence spaces and pages via the Arcade tool-calling interface. ## Capabilities - **Page lifecycle** — create, rename, retrieve (single or batch), update content, and explore child pages recursively with pagination. - **Space & cloud discovery** — list all spaces, fetch space details by ID or key, retrieve available Atlassian cloud instances, and identif +- [Dropbox](https://docs.arcade.dev/en/resources/integrations/productivity/dropbox): Arcade provides a toolkit for integrating with Dropbox, enabling seamless interactions with files stored in the cloud. Developers can leverage these tools for various file management capabilities. **Capabilities** - Download files directly from Dropbox. - List items in specified folders with efficient pagination. - Search for files and folders using customized criteria, while utilizing pagination to manage large result sets. **OAuth** - **Provider**: Dropbox - **Scopes**: files.content.read, fil +- [Figma](https://docs.arcade.dev/en/resources/integrations/productivity/figma): Figma Arcade toolkit lets LLMs interact with Figma files and team libraries via the Figma API, enabling programmatic inspection, export, and lightweight collaboration on designs. It supports fetching file trees, nodes, pages, components, styles, projects, exporting images, and managing comments. **Capabilities** - Inspect and traverse file and node trees with optional raw paint/style data for detailed analysis. - Export frames/nodes as temporary image assets and retrieve thumbnails for visual ou +- [Figma API](https://docs.arcade.dev/en/resources/integrations/productivity/figma-api): Arcade Toolkit for Figma API empowers LLMs to seamlessly interact with Figma projects. This toolkit provides a robust set of capabilities for managing design assets, comments, and webhooks within Figma. **Capabilities** - Manage comments, including adding, deleting, and reacting to them. - Create, update, and delete developer resources in bulk across multiple Figma files. - Access and manipulate Figma components, styles, and variables for efficient asset management. - Fetch analytics data and ve +- [Fireflies](https://docs.arcade.dev/en/resources/integrations/productivity/fireflies): Fireflies is an AI meeting-intelligence platform. This toolkit lets Arcade agents record, transcribe, search, and analyze meetings via the Fireflies GraphQL API. ## Capabilities - **Meeting capture & recording** — dispatch the Fireflies notetaker bot into a live meeting or upload an existing audio/video file for async transcription. - **Transcript & notes retrieval** — fetch verbatim, speaker-attributed transcripts with time-windowing, or pull AI-generated summaries, action items, keywords, and +- [Forkable](https://docs.arcade.dev/en/resources/integrations/productivity/forkable): **Forkable** is a workplace meal delivery service; this toolkit lets agents and users browse weekly menus, inspect dietary restrictions, and manage picks (swap or skip) entirely through code. ## Capabilities - **Weekly schedule visibility** — retrieve upcoming delivery days, current pick state (open / locked / delivered), and linked menu IDs in one call. - **Menu browsing** — fetch full menu details (sections, items, prices, modifiers, IDs) for one or more menus at once. - **Meal selection & mod +- [Gmail](https://docs.arcade.dev/en/resources/integrations/productivity/gmail): The Gmail toolkit provides Arcade LLM tools for interacting with Gmail via the Google Gmail API. It enables agents to read, compose, send, organize, and manage email on behalf of authenticated users. ## Capabilities - **Reading & searching mail:** List emails, threads, and drafts with built-in automated-mail filtering (no-reply patterns, non-primary categories); search or query threads; retrieve individual threads by ID; look up emails by header. - **Composing & drafting:** Create new drafts or +- [Google Calendar](https://docs.arcade.dev/en/resources/integrations/productivity/google-calendar): **Google Calendar toolkit** connects Arcade-powered LLMs to Google Calendar, enabling agents to read, create, modify, and delete calendar data on behalf of authenticated users. ## Capabilities - **Calendar discovery & user context** — list all accessible calendars and retrieve the authenticated user's profile, email, permissions, and environment details. - **Event querying** — list events within precise datetime ranges using independent lower/upper bounds on end and start times, supporting compl +- [Google Contacts](https://docs.arcade.dev/en/resources/integrations/productivity/google-contacts): The Google Contacts toolkit provides Arcade tools for managing personal contacts and querying Google Workspace organization directories via the Google People API. ## Capabilities - **Contact creation** — Create new contact records with any combination of name, email, and phone number fields. - **Multi-field contact search** — Look up contacts in the authenticated user's personal Google Contacts by name, email address, or phone number. - **Directory search** — Search the user's Google Workspace o +- [Google Docs](https://docs.arcade.dev/en/resources/integrations/productivity/google-docs): **Google Docs toolkit** connects Arcade to the Google Docs and Drive APIs, enabling LLMs to create, read, edit, search, and annotate Docs documents on behalf of authenticated users. ## Capabilities - **Document creation** — create blank documents or documents pre-populated with plain text or Markdown (headings, bold, italic, lists auto-formatted). - **Document reading** — retrieve full document content in DocMD format (block IDs, character indices, text styles, tab structure) or metadata-only (t +- [Google Drive](https://docs.arcade.dev/en/resources/integrations/productivity/google-drive): The Google Drive toolkit lets agents read, organize, share, and manage files in a user's Google Drive (including Shared Drives) via Arcade. It covers the full file lifecycle — discovery, access control, upload/download, and folder management. ## Capabilities - **File discovery & search** — search across all of Drive (names + content), retrieve folder/file trees, resolve bare IDs or full Google Drive/Workspace URLs, and batch-check accessibility before attempting reads. - **File & folder manageme +- [Google Sheets](https://docs.arcade.dev/en/resources/integrations/productivity/google-sheets): **Google Sheets toolkit** integrates Arcade with Google Sheets and Google Drive, enabling LLM-powered agents to read, write, comment on, audit, and search spreadsheets on behalf of authenticated users. ## Capabilities - **Access pre-flight & file discovery:** Batch-check spreadsheet accessibility before reading, generate Drive picker URLs to grant access, and search spreadsheets by title/content across a user's Drive. - **Read & inspect spreadsheets:** Retrieve workbook structure (tabs, charts, +- [Google Slides](https://docs.arcade.dev/en/resources/integrations/productivity/google-slides): Google Slides toolkit for Arcade provides LLM-callable tools that create, read, edit, and manage Google Slides presentations via the Google Slides and Drive APIs. ## Capabilities - **Presentation creation & editing:** Create new decks from scratch or from branded templates, apply atomic batches of edits (add/delete/restyle slides and elements, insert/replace text, reorder slides, duplicate objects, set speaker notes), and inspect addressable snapshots to discover object IDs and layout inventorie +- [Granola](https://docs.arcade.dev/en/resources/integrations/productivity/granola): Granola is a meeting intelligence platform that captures notes and transcripts from calls. The Arcade Granola toolkit gives agents read access to Granola's public Enterprise API for working with meeting metadata and transcripts. **Capabilities** - List meetings with optional date-range filters and cursor pagination. - Fetch full metadata for a meeting, including attendees and linked calendar event. - Retrieve verbatim transcripts with speaker labels and timestamps, optionally filtered by speaker +- [Jira](https://docs.arcade.dev/en/resources/integrations/productivity/jira): The Jira toolkit integrates Arcade with Atlassian Jira, enabling LLMs to manage issues, sprints, boards, users, attachments, and project metadata across Jira Cloud instances. ## Capabilities - **Issue lifecycle management** — Create, update, transition, search (parameterized or JQL), comment on, label, and attach files to issues; move issues between sprints and backlogs. - **Sprint & board operations** — List boards and their sprints (with date-range filtering), retrieve backlog and sprint issue +- [Linear](https://docs.arcade.dev/en/resources/integrations/productivity/linear): # Linear Toolkit The Linear toolkit lets LLMs interact with Linear's project management platform via Arcade, covering the full lifecycle of issues, projects, initiatives, cycles, and team workflows. ## Capabilities - **Issue management** — create, update, archive, transition workflow states, manage labels, link GitHub PRs/commits/issues, subscribe to notifications, and model relationships between issues (blocks, duplicates, related). - **Projects & milestones** — create, update, and archive proj +- [Luma API](https://docs.arcade.dev/en/resources/integrations/productivity/luma-api): LumaApi provides tools that facilitate LLMs in interacting seamlessly with the Luma API to manage events and user memberships. This toolkit allows developers to efficiently handle event creation, guest management, and membership features. **Capabilities** - Create, update, and manage events and their details. - Add and update guests, hosts, and members for events. - Generate and manage event tickets and coupons. - Import people and apply tags to streamline calendar management. **OAuth** - No OAu +- [Mailchimp API](https://docs.arcade.dev/en/resources/integrations/productivity/mailchimp-marketing-api): The MailchimpMarketingApi toolkit enables seamless integration with the Mailchimp Marketing API, allowing developers to manage marketing efforts effectively. It empowers users to execute various operations related to audience management, email campaigns, and e-commerce functionality. **Capabilities:** - Manage and update audience members, lists, and segments. - Create and distribute email campaigns with tracking capabilities. - Integrate e-commerce functionality including product management and +- [Microsoft Excel](https://docs.arcade.dev/en/resources/integrations/productivity/microsoft-excel): **Microsoft Excel toolkit** connects Arcade to Microsoft Excel via the Microsoft Graph API, enabling agents to read, write, audit, and collaborate on `.xlsx` workbooks stored in OneDrive for Business. ## Capabilities - **Workbook discovery & metadata** — search OneDrive for workbooks by keyword or folder, retrieve full workbook structure (worksheets, named ranges, tables, charts, protection state, used-range extents), and identify the current user's environment. - **Reading & analysis** — read w +- [Microsoft OneDrive](https://docs.arcade.dev/en/resources/integrations/productivity/microsoft-onedrive): Microsoft OneDrive toolkit for Arcade provides LLM-ready tools for managing files, folders, permissions, and sharing in a user's OneDrive via Microsoft Graph. ## Capabilities - **File & folder operations:** Create folders, copy (with async polling to completion), move/rename (single or batch), delete (single or batch), and download files (with byte-offset paging for large files). - **Browse & search:** List folder contents, list files shared with the current user, search the drive index, and ret +- [Microsoft Outlook Calendar](https://docs.arcade.dev/en/resources/integrations/productivity/microsoft-outlook-calendar): ## Microsoft Outlook Calendar Toolkit The Microsoft Outlook Calendar toolkit lets Arcade-powered LLMs interact with a user's Outlook Calendar via the Microsoft Graph API, enabling calendar reads, writes, and queries on behalf of authenticated users. ## Capabilities - **Calendar discovery & context:** List all calendars the user owns, shares, or has delegated access to; retrieve current user identity and calendar environment details. - **Event creation:** Create events in the user's default calen +- [Microsoft Outlook Mail](https://docs.arcade.dev/en/resources/integrations/productivity/microsoft-outlook-mail): The **Microsoft Outlook Mail** toolkit connects Arcade to the Microsoft Graph Mail API, enabling LLMs to read, compose, send, search, and organize emails in both personal and shared/delegated Outlook mailboxes. ## Capabilities - **Compose & send** — Create and immediately send emails, compose drafts (new, reply, or reply-all), update draft recipients/subject/body, and send any existing draft; returns `message_id` and `conversation_id` for immediate chaining. - **Read & retrieve** — Fetch a singl +- [Microsoft PowerPoint](https://docs.arcade.dev/en/resources/integrations/productivity/microsoft-powerpoint): ## Microsoft PowerPoint Toolkit The Microsoft PowerPoint toolkit provides Arcade LLM tools for creating and managing PowerPoint presentations stored in OneDrive via the Microsoft Graph API. ## Capabilities - **Presentation creation**: Create new presentations in OneDrive with a title slide; supports both small and large files (>4 MB via resumable upload sessions). - **Slide authoring**: Append slides with standard or two-column (`TWO_CONTENT`) layouts; titles and body content are optional to sup +- [Microsoft SharePoint](https://docs.arcade.dev/en/resources/integrations/productivity/microsoft-sharepoint): The Microsoft SharePoint toolkit integrates Arcade with Microsoft SharePoint via the Microsoft Graph API, enabling LLMs to read, write, and manage SharePoint content programmatically. ## Capabilities - **Site & drive navigation** — list, search, and retrieve sites, drives/document libraries, lists, list items, folders, and root drive contents; look up the current user's SharePoint environment. - **File & folder management** — create folders, copy, move, rename, and delete files or folders; check +- [Microsoft Word](https://docs.arcade.dev/en/resources/integrations/productivity/microsoft-word): Arcade's Microsoft Word toolkit lets developers create, read, and update Word documents stored in OneDrive through Microsoft Graph. **Capabilities** - Create `.docx` documents with optional initial text, automatic `.docx` extension handling, folder targeting, and configurable filename conflict behavior: fail, rename, or replace. - Retrieve Word document metadata and Markdown content, or request metadata only. - Append text to existing `.docx` documents within the 4 MB upload limit. - Fetch authe +- [Miro API](https://docs.arcade.dev/en/resources/integrations/productivity/miro-api): Arcade Toolkit integrates with the Miro API, allowing developers to enhance collaborative functionalities within Miro boards. It empowers applications to add, update, or delete board items effectively while maintaining user engagement. **Capabilities** - Automated addition and management of various items on Miro boards. - Streamlined updates to existing board elements, such as shapes and text items. - Efficient retrieval of board details and user activities for oversight. - Integration with ente +- [Resend](https://docs.arcade.dev/en/resources/integrations/productivity/resend): The Resend toolkit integrates Resend's transactional email API with Arcade, enabling LLMs to send, schedule, inspect, and manage emails programmatically. ## Capabilities - **Send & schedule email**: Send transactional email immediately or queue it for future delivery by supplying a `scheduled_at` timestamp; returns the Resend-assigned `email_id`. - **Inspect delivery status**: Retrieve a single email by its Resend ID to check current delivery state and metadata. - **Manage scheduled email**: Can +- [SquareUp API](https://docs.arcade.dev/en/resources/integrations/productivity/squareup-api): SquareupApi is a toolkit designed for integrating with the Squareup API, empowering developers to facilitate seamless interactions with various Square services. This toolkit enables various operations, including managing customer data, handling invoices, and managing loyalty points. **Capabilities:** - Access detailed information about customers, orders, and transactions. - Perform CRUD operations on bookings, inventory, and payments. - Manage loyalty programs, including points and rewards. **OA +- [TickTick API](https://docs.arcade.dev/en/resources/integrations/productivity/ticktick-api): TickTick API toolkit enables LLMs to manage TickTick projects and tasks programmatically, performing creation, retrieval, updates, and deletions through the TickTick REST API. **Capabilities** - Full CRUD lifecycle for projects and tasks with support for properties like title, content, dates, reminders, subtasks, color, sort order, view mode, and kind. - Retrieve detailed project and task contexts to drive synchronization, reporting, and contextual recommendations. - Manage task state and schedu +- [Trello API](https://docs.arcade.dev/en/resources/integrations/productivity/trello-api): TrelloApi enables LLMs to interact with the Trello API, facilitating seamless task management and collaboration through automated actions. This toolkit provides a comprehensive set of tools for managing boards, cards, lists, and members within the Trello ecosystem. **Capabilities:** - Create, update, and delete Trello boards, cards, and lists. - Manage member assignments and roles across boards and workspaces. - Handle attachments, comments, and labels efficiently on Trello cards. - Set up webho +- [Xero API](https://docs.arcade.dev/en/resources/integrations/productivity/xero-api): XeroApi is a provider for interacting with the Xero accounting platform. The Arcade toolkit enables LLMs to call Xero endpoints to read and modify accounting records, attachments, reports, and histories. **Capabilities** - Query, create, update, and delete core accounting records (invoices, contacts, payments, items, journals) and manage attachments and change histories. - Generate and fetch financial reports and summaries (Profit & Loss, Balance Sheet, Trial Balance, aged receivables/payables) + +## Integrations - Sales + +- [Apollo](https://docs.arcade.dev/en/resources/integrations/sales/apollo): # Apollo Toolkit The Apollo toolkit lets LLMs interact with [Apollo.io](https://www.apollo.io/) sales intelligence, enabling account research, lead discovery, and contact enrichment workflows via the Apollo API. ## Capabilities - **Company intelligence**: Search Apollo's database by firmographic filters and enrich a company domain into detailed account data (industry, size, revenue, funding, location). - **People discovery & enrichment**: Search for people by role and employer profile, then enri +- [Attio](https://docs.arcade.dev/en/resources/integrations/sales/attio): Attio's Arcade toolkit enables LLMs to interact programmatically with Attio CRM, letting agents create, update, query, and manage records, lists, tasks, meetings, and call transcripts. It's optimized for workflow automation, idempotent upserts, and workspace-aware operations. **Capabilities** - CRUD and idempotent upsert semantics for records and list entries, with schema-aware field handling. - Discover and query object schemas and records with pagination and nested-field filtering. - Manage li +- [HubSpot](https://docs.arcade.dev/en/resources/integrations/sales/hubspot): Arcade Toolkit for HubSpot enables seamless integration and interaction with HubSpot's CRM functionalities, allowing developers to leverage various activities and data management tools for enhanced customer relationship management. **Capabilities** - Create, update, and manage companies, contacts, and deals within HubSpot. - Log and associate various engagement activities such as calls, emails, meetings, and more. - Retrieve detailed information about users, deals, and associated data effectivel +- [HubSpot Automation API](https://docs.arcade.dev/en/resources/integrations/sales/hubspot-automation-api): Arcade's HubSpot Automation API toolkit empowers developers to integrate LLMs with HubSpot's automation capabilities, facilitating seamless interaction with various automation workflows and sequences. **Capabilities** - Enroll contacts in sequences and fetch campaign details via automation tools. - Retrieve sequence statuses and details efficiently using contact IDs. - Manage batch actions and workflow ID mappings to optimize automation processes. - Access user-specific sequences to track indivi +- [HubSpot CMS API](https://docs.arcade.dev/en/resources/integrations/sales/hubspot-cms-api): The HubspotCmsApi toolkit enables developers to integrate and manage content on the HubSpot CMS through a comprehensive set of API tools. It provides powerful functionalities ranging from creating and managing blog posts, pages, and database rows to handling multi-language content effortlessly. **Capabilities**: - Efficiently create, update, and delete blog posts, tags, and pages. - Manage HubDB tables and their drafts with bulk operations. - Support multi-language content management across vari +- [HubSpot Conversations API](https://docs.arcade.dev/en/resources/integrations/sales/hubspot-conversations-api): HubspotConversationsApi enables seamless interactions with HubSpot's Conversations API, allowing for efficient management of conversation data. Developers can leverage this toolkit to execute various functionalities within HubSpot Conversations directly. **Capabilities** - Archive and manage conversation threads for data efficiency. - Create and retrieve details about channel accounts and inboxes. - Publish and manage custom channel messages. - Access detailed message history and conversation pa +- [HubSpot CRM API](https://docs.arcade.dev/en/resources/integrations/sales/hubspot-crm-api): # HubSpot CRM API Toolkit The HubSpot CRM API Toolkit enables seamless interactions with the HubSpot CRM system, providing tools that harness the extensive capabilities of the CRM ecosystem. ## Capabilities - Manage and automate CRM objects such as contacts, companies, deals, and more. - Perform batch operations for creating, updating, and retrieving records efficiently. - Facilitate associations between various CRM objects and manage their relationships. - Access detailed control over property +- [HubSpot Events API](https://docs.arcade.dev/en/resources/integrations/sales/hubspot-events-api): Arcade's HubspotEventsApi toolkit enables LLMs to interact seamlessly with the Hubspot Events API, streamlining event management for developers. It provides the necessary tools for creating, updating, retrieving, and deleting custom event definitions. ### Capabilities - Manage custom event definitions in Hubspot efficiently. - Access and update event properties with ease. - Retrieve information on existing events and their types. - Facilitate the cleanup of unnecessary event definitions. ### OAu +- [HubSpot Marketing API](https://docs.arcade.dev/en/resources/integrations/sales/hubspot-marketing-api): This documentation describes the HubspotMarketingApi toolkit, which allows LLMs to directly interact with the HubSpot Marketing API to manage and analyze marketing campaigns effectively. **Capabilities** - Create, update, and delete marketing campaigns, forms, emails, and events. - Manage budget items associated with campaigns. - Record and analyze event participation and contact interactions. - Retrieve detailed metrics and statistics for marketing activities. **OAuth** - Provider: Unknown - Sc +- [HubSpot Meetings API](https://docs.arcade.dev/en/resources/integrations/sales/hubspot-meetings-api): Arcade Toolkit for HubSpot Meetings API enables seamless interaction with HubSpot's scheduling features, allowing developers to automate meeting management directly through the platform. **Capabilities** - Schedule and manage meetings with calendar integration - Retrieve upcoming availability for booking - Get details for setting up meeting schedulers - List available meeting scheduling pages - Book meetings using HubSpot's APIs **OAuth** - Provider: Unknown - Scopes: Multiple CRM-related appoin +- [HubSpot Users API](https://docs.arcade.dev/en/resources/integrations/sales/hubspot-users-api): Arcade's HubspotUsersApi toolkit allows developers to interact seamlessly with the HubSpot Users API, enabling efficient management of user data and roles within HubSpot accounts. **Capabilities** - Create, retrieve, update, and remove users in HubSpot. - Fetch user roles and teams associated with specific accounts. - Manage user permissions effectively through targeted API calls. **OAuth** - This toolkit utilizes OAuth2 for authentication, requiring the following scopes: crm.objects.users.read, +- [Insightly](https://docs.arcade.dev/en/resources/integrations/sales/insightly): Insightly is a CRM platform; this toolkit gives Arcade agents full read/write access to contacts, leads, organizations, opportunities, projects, tasks, notes, and pipelines inside an Insightly account. ## Capabilities - **Record management** — Create and update core CRM objects (contacts, leads, organizations, opportunities, projects, tasks) with upsert-style tools that create on missing ID and update on presence. - **Lead conversion** — Convert qualified leads into contacts and organizations (w +- [Salesforce](https://docs.arcade.dev/en/resources/integrations/sales/salesforce): Arcade's Salesforce toolkit lets LLMs interact with Salesforce orgs to create, update, search, and convert CRM records, log activities, and fetch enriched relational data. It validates against org-configured picklists and returns contextual warnings and IDs to guide multi-step agent workflows. **Capabilities** - CRUD and lifecycle for leads, contacts, opportunities, and tasks, including the canonical lead-to-deal conversion with Contact/Account/Opportunity creation. - Rich account and opportunit + +## Integrations - Search + +- [Exa API](https://docs.arcade.dev/en/resources/integrations/search/exa-api): ExaApi provides a toolkit that enables LLMs to interact directly with the Exa.ai Search API, facilitating advanced data handling and search operations. **Capabilities** - Create, update, and delete various components such as Websets and enrichments. - Execute and manage search processes with options to cancel ongoing operations. - Set up automatic monitoring and notifications to keep data current. - Retrieve detailed information about websets, enrichments, and research requests. - Perform direct +- [Glean](https://docs.arcade.dev/en/resources/integrations/search/glean): # Glean Toolkit The Glean toolkit connects Arcade to a Glean enterprise deployment, exposing the Glean Client API so authorized users can search their organization's indexed content directly from Arcade workflows. ## Capabilities - **Enterprise search**: Query the user's Glean index and retrieve permission-filtered, ranked results scoped to the authenticated user. - **Paginated results**: Page through results using `offset` and `limit`; `has_next_page` signals additional pages, with offset pagin +- [Google Finance](https://docs.arcade.dev/en/resources/integrations/search/google_finance): GoogleFinance is a toolkit provided by Arcade.dev for accessing financial data through the Google Finance API. It enables developers to retrieve and analyze comprehensive stock information efficiently. **Capabilities** - Fetch historical stock price data over customizable time windows. - Retrieve current stock summaries, including price and recent trading movement. - Utilize API keys for secure access to financial data. **OAuth** - This toolkit uses an API key (SERP_API_KEY) for authentication. +- [Google Flights](https://docs.arcade.dev/en/resources/integrations/search/google_flights): **Google Flights toolkit** integrates Google Flights data into LLM workflows via SerpApi, enabling agents to search flights, resolve booking options, and look up airport codes. ## Capabilities - **Airport lookup** — Resolve city names, country names, or airport names to IATA codes (including metropolitan codes like NYC, LON) for use in flight searches. - **One-way & round-trip search** — Query Google Flights for one-way or round-trip itineraries in a single call; results include direct `google_f +- [Google Hotels](https://docs.arcade.dev/en/resources/integrations/search/google_hotels): Arcade.dev provides the GoogleHotels toolkit, enabling developers to efficiently retrieve hotel information through the Google Hotels API. This toolkit facilitates hotel searches, offering a streamlined method to access comprehensive hotel data. **Capabilities:** - Effortlessly search for hotels based on various parameters. - Retrieve detailed hotel information including availability and pricing. - Integrate smoothly with existing applications for enhanced user experience. **OAuth:** - No OAuth +- [Google Jobs](https://docs.arcade.dev/en/resources/integrations/search/google_jobs): Arcade.dev provides the GoogleJobs toolkit, enabling developers to access job postings directly from Google Jobs through SerpAPI. This toolkit streamlines job searches, making it efficient and effective to find relevant job listings. **Capabilities** - Seamless integration with Google Jobs for job postings retrieval. - Comprehensive search capabilities tailored to various job criteria. - Easy access to job data through a user-friendly API. **OAuth** - This toolkit does not require OAuth authenti +- [Google Maps](https://docs.arcade.dev/en/resources/integrations/search/google_maps): Arcade.dev provides a toolkit for integrating Google Maps functionalities, enabling developers to obtain directions seamlessly. This toolkit simplifies the process of accessing vital navigation data through an easy-to-use API. **Capabilities** - Retrieve directions between addresses or coordinates - Access detailed route information including estimated travel time and distance - Integrate with existing applications to enhance location-based services **OAuth** - This toolkit does not require OAut +- [Google News](https://docs.arcade.dev/en/resources/integrations/search/google_news): The Arcade toolkit for GoogleNews enables developers to retrieve the latest news articles through a seamless integration with Google News. This toolkit provides efficient access to current stories based on queries, ensuring users stay informed. ### Capabilities - Access to real-time news articles from Google News. - Query-based searching for specific topics or events. - Easy integration into applications for timely updates. ### OAuth No OAuth authentication is required, but API key usage is nece +- [Google Search](https://docs.arcade.dev/en/resources/integrations/search/google_search): Arcade.dev provides a toolkit for integrating Google search functionalities using its GoogleSearch tool. This enables developers to seamlessly fetch and utilize organic search results in their applications. **Capabilities** - Perform Google searches and retrieve organic results efficiently. - Integrate easily with existing applications and workflows. - Utilize powerful search algorithms to enhance user experiences. **OAuth** - No OAuth required; however, an API key is needed for access. **Secret +- [Google Shopping](https://docs.arcade.dev/en/resources/integrations/search/google_shopping): Arcade.dev offers a powerful toolkit for shopping via Google Shopping, enabling developers to seamlessly integrate product search functionality into their applications. This toolkit provides essential capabilities to enhance shopping experiences for users. **Capabilities** - Search for a variety of products on Google Shopping. - Seamlessly integrate product search into applications. - Enhance user engagement through relevant product displays. **OAuth** - No OAuth is required for this toolkit, bu +- [Tavily](https://docs.arcade.dev/en/resources/integrations/search/tavily): Documentation page +- [Walmart](https://docs.arcade.dev/en/resources/integrations/search/walmart): Walmart's Arcade toolkit empowers developers to seamlessly integrate product search functionalities and detailed product information retrieval from Walmart. This toolkit streamlines access to Walmart's extensive product catalog, enabling enhanced user experiences and effective e-commerce solutions. **Capabilities** - Retrieve comprehensive product details from Walmart's catalog - Efficiently search for products with relevant filters - Enhance e-commerce applications with real-time data - Facilit +- [Youtube](https://docs.arcade.dev/en/resources/integrations/search/youtube): Arcade.dev provides a toolkit for interacting with YouTube, enabling developers to search for videos and retrieve video details seamlessly. This toolkit simplifies tasks related to enhancing applications with YouTube content. **Capabilities** - Search for videos based on specific queries - Retrieve detailed information about YouTube videos - Supports integration of YouTube functionalities into applications - Allows quick access to video data for enhanced user experiences **OAuth** - No OAuth aut + +## Integrations - Social + +- [Discord Bot](https://docs.arcade.dev/en/resources/integrations/social/discord-bot): # Discord Bot Toolkit The Discord Bot toolkit lets an Arcade-powered agent act as a Discord bot — reading and writing messages, managing threads, handling reactions, and inspecting server structure — all authenticated via a bot token rather than OAuth. ## Capabilities - **Messaging**: Send, edit, delete, reply to, pin, and unpin messages across channels and threads; mention suppression (`@everyone`, `@here`, roles) is enforced on send, edit, and thread seed operations to prevent accidental serve +- [LinkedIn](https://docs.arcade.dev/en/resources/integrations/social/linkedin): Arcade.dev provides a toolkit for integrating with LinkedIn, enabling developers to streamline interactions with the platform's API. This toolkit allows for the creation of content directly on LinkedIn, enhancing user engagement and social sharing capabilities. **Capabilities** - Seamless integration with LinkedIn's API for enhanced social interactions. - Efficiently share content such as text posts to drive engagement. - Simplified authentication process through OAuth2, ensuring secure access t +- [Microsoft Teams](https://docs.arcade.dev/en/resources/integrations/social/microsoft-teams): ## Microsoft Teams Toolkit The Microsoft Teams toolkit provides Arcade LLM tools for interacting with Microsoft Teams via the Microsoft Graph API, enabling agents to read and send messages, manage chats and channels, and look up users and teams. ## Capabilities - **Messaging — chats:** Create chats, retrieve chat metadata and messages, send messages, and reply to messages in one-on-one or group chats; addressable by chat ID or user names/IDs. - **Messaging — channels:** Retrieve channel messages +- [Reddit](https://docs.arcade.dev/en/resources/integrations/social/reddit): Arcade.dev provides a powerful toolkit for integrating with Reddit, enabling developers to interact with Reddit's vast content and community features seamlessly. This toolkit allows for efficient data retrieval and engagement on the platform. **Capabilities** - Access subreddit data, including rules and content. - Retrieve and manipulate posts and comments. - Verify subreddit accessibility for authenticated users. - Simplify fetching multiple posts in one request. **OAuth** - Provider: Reddit - +- [Slack](https://docs.arcade.dev/en/resources/integrations/social/slack): The Slack toolkit integrates Arcade with Slack's API, enabling LLM agents to read, send, and manage Slack conversations, messages, and users on behalf of an authenticated user. ## Capabilities - **Conversation discovery & metadata**: List all conversations the user belongs to (channels, DMs, MPIMs) and retrieve detailed metadata for any conversation by ID, channel name, or participant identifiers. - **Message reading**: Fetch top-level messages from any conversation or drill into a specific thre +- [Slack API](https://docs.arcade.dev/en/resources/integrations/social/slack-api): The Arcade Toolkit for SlackApi provides a comprehensive interface for interacting with Slack's low-level API endpoints. Developers can utilize this toolkit to automate and enhance various administrative and communication tasks within Slack. **Capabilities:** - Create and manage conversations, channels, and user groups. - Handle messaging actions including sending, scheduling, and deleting messages. - Manage user presence and profiles. - Facilitate collaboration through call management and parti +- [Telegram](https://docs.arcade.dev/en/resources/integrations/social/telegram): # Telegram Toolkit The Telegram toolkit lets you build Arcade-powered agents that interact with Telegram bots — sending messages, polling for replies, delivering audio, and inspecting chats — using Telegram's Bot API and OpenAI TTS. ## Capabilities - **Bot identity & chat metadata**: Retrieve the bot's own profile and inspect any chat, group, or channel the bot belongs to (type, title, description, member count). - **Messaging**: Send text messages to any chat, group, or channel the bot has acce +- [X](https://docs.arcade.dev/en/resources/integrations/social/x): The X toolkit provides Arcade tools for interacting with the X (Twitter) platform, enabling LLMs to read and write tweets, manage lists, search content, and inspect user and Space metadata on behalf of an authenticated user. ## Capabilities - **Tweeting & threads:** Post, delete, like, unlike, retweet, undo-retweet, and quote tweets; compose multi-tweet threads with mid-thread resume support; attach polls and control reply permissions. - **Timeline & search:** Fetch the home timeline, @-mentions +- [Zoom](https://docs.arcade.dev/en/resources/integrations/social/zoom): Arcade.dev provides a toolkit for integrating with Zoom, enabling developers to leverage its functionalities in applications seamlessly. This toolkit allows for efficient access to Zoom meetings and invitations. **Capabilities** - Retrieve detailed information about specific Zoom meetings. - List upcoming meetings for a user within the next 24 hours. - Simplify access and interaction with Zoom's meeting management features. **OAuth** - Provider: Zoom - Scopes: meeting:read:invitation, meeting:re + +## Integrations - Tool Feedback + +- [Tool feedback](https://docs.arcade.dev/en/resources/integrations/tool-feedback): Documentation page diff --git a/scripts/generate-llmstxt.ts b/scripts/generate-llmstxt.ts index 2798ae084..a13995611 100644 --- a/scripts/generate-llmstxt.ts +++ b/scripts/generate-llmstxt.ts @@ -4,11 +4,17 @@ import path from "node:path"; import glob from "fast-glob"; import OpenAI from "openai"; import pc from "picocolors"; +import { readToolkitData } from "../app/_lib/toolkit-data"; +import { listToolkitRoutes } from "../app/_lib/toolkit-static-params"; type PageMetadata = { path: string; url: string; content: string; + summary?: { + title: string; + description: string; + }; }; type Section = { @@ -43,10 +49,21 @@ const MAX_CONTENT_LENGTH = 4000; const BATCH_DELAY_MS = 1000; const SHA_SHORT_LENGTH = 7; -// Initialize OpenAI client -const openai = new OpenAI({ - apiKey: process.env.OPENAI_API_KEY, -}); +let openai: OpenAI | null = null; + +const getOpenAIClient = (): OpenAI => { + openai ??= new OpenAI({ apiKey: process.env.OPENAI_API_KEY }); + return openai; +}; + +const stripLlmsMetadata = (content: string): string => + content.replace(METADATA_REGEX, "").trimStart(); + +export const hasLlmsBodyChanged = ( + existingContent: string, + nextContent: string +): boolean => + stripLlmsMetadata(existingContent) !== stripLlmsMetadata(nextContent); /** * Gets the current git SHA @@ -154,9 +171,22 @@ async function extractExistingSummaries(): Promise< /** * Discovers all pages in the documentation */ -async function discoverPages(): Promise { +export async function discoverPages(): Promise { console.log(pc.blue("📄 Discovering pages from raw MDX...")); - return discoverMdxPages(); + const [mdxPages, toolkitPages] = await Promise.all([ + discoverMdxPages(), + discoverToolkitPages(), + ]); + const pagesByUrl = new Map( + [...mdxPages, ...toolkitPages].map((page) => [page.url, page]) + ); + const pages = [...pagesByUrl.values()]; + console.log( + pc.green( + `✓ Found ${mdxPages.length} authored pages and ${toolkitPages.length} generated toolkit pages` + ) + ); + return pages; } /** @@ -171,6 +201,9 @@ async function discoverMdxPages(): Promise { const pages: PageMetadata[] = []; for (const filePath of mdxFiles) { + if (filePath.includes("[")) { + continue; + } const fullPath = path.join(process.cwd(), filePath); const content = await fs.readFile(fullPath, "utf-8"); @@ -189,10 +222,42 @@ async function discoverMdxPages(): Promise { }); } - console.log(pc.green(`✓ Found ${pages.length} pages (raw MDX)`)); return pages; } +async function discoverToolkitPages(): Promise { + const routes = await listToolkitRoutes(); + const pages = await Promise.all( + routes.map(async ({ category, toolkitId }) => { + const data = await readToolkitData(toolkitId); + if (!data) { + return null; + } + + const title = data.label || data.id; + const sourceDescription = + data.summary ?? + data.description ?? + "Generated MCP server documentation."; + const description = sourceDescription + .replace(/\s+/g, " ") + .trim() + .slice(0, 500); + + return { + path: `toolkit-docs-generator/data/toolkits/${data.id.toLowerCase()}.json`, + url: `${BASE_URL}/en/resources/integrations/${category}/${toolkitId}`, + content: `# ${title}\n\n${sourceDescription}`, + summary: { title, description }, + } satisfies PageMetadata; + }) + ); + + return pages.filter( + (page): page is NonNullable<(typeof pages)[number]> => page !== null + ); +} + /** * Summarizes a page using OpenAI */ @@ -218,7 +283,7 @@ async function summarizePage( contentForSummary = contentForSummary.slice(0, MAX_CONTENT_LENGTH); - const response = await openai.chat.completions.create({ + const response = await getOpenAIClient().chat.completions.create({ model: "gpt-4o-mini", messages: [ { @@ -256,7 +321,7 @@ async function summarizePage( /** * Organizes pages into sections based on their path */ -function organizeSections( +export function organizeSections( pages: Array ): Section[] { const sectionMap = new Map(); @@ -276,6 +341,10 @@ function organizeSections( } else { sectionName = "Getting Started"; } + } else if (parts[0] === "resources" && parts[1] === "integrations") { + sectionName = parts[2] + ? `Integrations - ${formatSectionName(parts[2])}` + : "Integrations"; } else if (parts[0] === "mcp-servers") { // Organize MCP servers by category if (parts.length > 1) { @@ -443,6 +512,17 @@ function determinePagesToSummarize( const url = page.url; const existingSummary = existingSummaries.get(url); + if (page.summary) { + pagesToKeep.push({ ...page, ...page.summary }); + if ( + existingSummary?.title !== page.summary.title || + existingSummary.description !== page.summary.description + ) { + hasChanges = true; + } + continue; + } + // Check if this page's file was changed const isChanged = changedFiles.has(page.path); @@ -470,7 +550,13 @@ function determinePagesToSummarize( console.log( pc.yellow("⚠ No previous generation found, summarizing all pages") ); - pagesToSummarize.push(...pages); + for (const page of pages) { + if (page.summary) { + pagesToKeep.push({ ...page, ...page.summary }); + } else { + pagesToSummarize.push(page); + } + } hasChanges = true; // Always regenerate if no previous metadata } @@ -528,12 +614,6 @@ async function summarizePagesInBatches( async function main() { console.log(pc.bold(pc.blue("\n🚀 Generating llms.txt file...\n"))); - // Check for OpenAI API key - if (!process.env.OPENAI_API_KEY) { - console.error(pc.red("✗ OPENAI_API_KEY environment variable is required")); - process.exit(1); - } - try { // Step 0: Get current git SHA and check for previous generation const currentSha = getCurrentGitSha(); @@ -553,10 +633,15 @@ async function main() { const pages = await discoverPages(); // Step 2: Determine which pages need summarization and identify deleted pages - const { pagesToSummarize, pagesToKeep, hasChanges } = + const { pagesToSummarize, pagesToKeep } = determinePagesToSummarize(pages, previousMetadata, existingSummaries); // Step 3: Summarize changed/new pages using OpenAI + if (pagesToSummarize.length > 0 && !process.env.OPENAI_API_KEY) { + throw new Error( + "OPENAI_API_KEY is required when authored pages need new summaries." + ); + } const summarizedPages = await summarizePagesInBatches( pagesToSummarize, pagesToKeep @@ -569,26 +654,29 @@ async function main() { // Step 5: Generate llms.txt content console.log(pc.blue("\n✍️ Generating llms.txt content...")); - // Only update metadata if there are changes, otherwise keep previous metadata - const metadata: LlmsTxtMetadata = hasChanges - ? { - gitSha: currentSha, - generationDate: new Date().toISOString(), - } - : previousMetadata || { - gitSha: currentSha, - generationDate: new Date().toISOString(), - }; - const content = generateLlmsTxt(sections, metadata); + const currentMetadata: LlmsTxtMetadata = { + gitSha: currentSha, + generationDate: new Date().toISOString(), + }; + let content = generateLlmsTxt(sections, currentMetadata); + const existingContent = await fs + .readFile(OUTPUT_PATH, "utf-8") + .catch(() => null); + const bodyChanged = + existingContent === null || hasLlmsBodyChanged(existingContent, content); + if (!(bodyChanged || !previousMetadata)) { + content = generateLlmsTxt(sections, previousMetadata); + } + const outputChanged = existingContent === null || existingContent !== content; // Step 6: Write to file - await fs.writeFile(OUTPUT_PATH, content, "utf-8"); - if (hasChanges) { + if (outputChanged) { + await fs.writeFile(OUTPUT_PATH, content, "utf-8"); console.log(pc.green(`✓ Generated llms.txt at ${OUTPUT_PATH}`)); } else { console.log( pc.gray( - "✓ No changes detected, llms.txt unchanged (SHA and date preserved)" + "✓ No content changes detected; llms.txt metadata remains unchanged" ) ); } diff --git a/tests/llmstxt.test.ts b/tests/llmstxt.test.ts new file mode 100644 index 000000000..0060d5c54 --- /dev/null +++ b/tests/llmstxt.test.ts @@ -0,0 +1,67 @@ +import { readFileSync } from "node:fs"; +import { join } from "node:path"; +import { describe, expect, test } from "vitest"; +import { + discoverPages, + hasLlmsBodyChanged, + organizeSections, +} from "../scripts/generate-llmstxt"; + +describe("llms.txt page discovery", () => { + test("expands generated toolkit routes instead of template URLs", async () => { + const pages = await discoverPages(); + const urls = pages.map(({ url }) => url); + + expect(urls.some((url) => url.includes("[toolkitId]"))).toBe(false); + expect(urls).toContain( + "https://docs.arcade.dev/en/resources/integrations/productivity/gmail" + ); + }); + + test("groups generated toolkit pages by integration category", () => { + const sections = organizeSections([ + { + path: "toolkit-docs-generator/data/toolkits/gmail.json", + url: "https://docs.arcade.dev/en/resources/integrations/productivity/gmail", + content: "# Gmail", + title: "Gmail", + description: "Gmail tools", + }, + ]); + + expect(sections).toEqual([ + { + name: "Integrations - Productivity", + pages: [ + { + title: "Gmail", + url: "https://docs.arcade.dev/en/resources/integrations/productivity/gmail", + description: "Gmail tools", + }, + ], + }, + ]); + }); + + test("ignores metadata-only changes that would cause commit loops", () => { + const first = + "\n\n# Arcade\n"; + const second = + "\n\n# Arcade\n"; + + expect(hasLlmsBodyChanged(first, second)).toBe(false); + expect(hasLlmsBodyChanged(first, `${second}\nNew page`)).toBe(true); + }); + + test("workflow fetches history and skips write-capability checks on forks", () => { + const workflow = readFileSync( + join(process.cwd(), ".github/workflows/llmstxt.yml"), + "utf-8" + ); + + expect(workflow).toContain("fetch-depth: 0"); + expect(workflow).toContain( + "github.event.pull_request.head.repo.full_name == github.repository" + ); + }); +});