diff --git a/app/_components/SubpageList.tsx b/app/_components/SubpageList.tsx new file mode 100644 index 000000000..c40cb57d0 --- /dev/null +++ b/app/_components/SubpageList.tsx @@ -0,0 +1,33 @@ +import Link from "next/link"; + +interface SubpageListProps { + basePath: string; + meta: Record; +} + +export function SubpageList({ basePath, meta }: SubpageListProps) { + const subpages = Object.entries(meta).filter(([key]) => key !== "index"); + + return ( + + ); +} diff --git a/app/en/guides/create-tools/_meta.tsx b/app/en/guides/create-tools/_meta.tsx index 383a2ed08..deec6cc3a 100644 --- a/app/en/guides/create-tools/_meta.tsx +++ b/app/en/guides/create-tools/_meta.tsx @@ -3,9 +3,11 @@ import type { MetaRecord } from "nextra"; export const meta: MetaRecord = { "tool-basics": { title: "Build a tool", + href: "/guides/create-tools/tool-basics", }, "evaluate-tools": { title: "Evaluate tools", + href: "/guides/create-tools/evaluate-tools", }, improve: { title: "Improve an existing toolkit", @@ -15,6 +17,7 @@ export const meta: MetaRecord = { }, "error-handling": { title: "Handle errors", + href: "/guides/create-tools/error-handling", }, "migrate-toolkits": { title: "Migrate from toolkits to MCP servers", diff --git a/app/en/guides/create-tools/error-handling/_meta.tsx b/app/en/guides/create-tools/error-handling/_meta.tsx new file mode 100644 index 000000000..a67ab3a0f --- /dev/null +++ b/app/en/guides/create-tools/error-handling/_meta.tsx @@ -0,0 +1,22 @@ +import type { MetaRecord } from "nextra"; + +const meta: MetaRecord = { + "*": { + theme: { + breadcrumb: true, + toc: true, + copyPage: true, + }, + }, + index: { + title: "Overview", + }, + "retry-tools": { + title: "Retry Tools with Improved Prompt", + }, + "useful-tool-errors": { + title: "Provide Useful Tool Errors", + }, +}; + +export default meta; diff --git a/app/en/guides/create-tools/error-handling/page.mdx b/app/en/guides/create-tools/error-handling/page.mdx new file mode 100644 index 000000000..047ca8598 --- /dev/null +++ b/app/en/guides/create-tools/error-handling/page.mdx @@ -0,0 +1,15 @@ +--- +title: "Handle Errors" +description: "Learn how to implement robust error handling in your tools for better user experience" +--- + +import { SubpageList } from '../../../../_components/SubpageList'; +import meta from './_meta'; + +# Handle Errors + +Learn how to implement robust error handling that improves user experience and enables smart retry behavior. Apply these patterns as you develop tools to make them more resilient and user-friendly in production. + +Robust error handling is crucial for building reliable tools that provide great user experiences. Arcade provides a comprehensive error handling system that helps you manage different types of errors gracefully. + + \ No newline at end of file diff --git a/app/en/guides/create-tools/evaluate-tools/_meta.tsx b/app/en/guides/create-tools/evaluate-tools/_meta.tsx index 2bb89e837..ddcb80e01 100644 --- a/app/en/guides/create-tools/evaluate-tools/_meta.tsx +++ b/app/en/guides/create-tools/evaluate-tools/_meta.tsx @@ -8,6 +8,9 @@ const meta: MetaRecord = { copyPage: true, }, }, + index: { + title: "Overview", + }, "why-evaluate": { title: "Why evaluate tools?", }, diff --git a/app/en/guides/create-tools/evaluate-tools/page.mdx b/app/en/guides/create-tools/evaluate-tools/page.mdx new file mode 100644 index 000000000..571e8c5e8 --- /dev/null +++ b/app/en/guides/create-tools/evaluate-tools/page.mdx @@ -0,0 +1,13 @@ +--- +title: "Evaluate Tools" +description: "Learn how to systematically test and improve your tools with Arcade's evaluation framework" +--- + +import { SubpageList } from '../../../../_components/SubpageList'; +import meta from './_meta'; + +# Evaluate Tools + +Learn how to systematically test and improve your tools to ensure they work reliably in production. Use these techniques after you've built your initial tools to validate their performance and guide iterative improvements. + + diff --git a/app/en/guides/create-tools/tool-basics/_meta.tsx b/app/en/guides/create-tools/tool-basics/_meta.tsx index 315893266..ac820d8ad 100644 --- a/app/en/guides/create-tools/tool-basics/_meta.tsx +++ b/app/en/guides/create-tools/tool-basics/_meta.tsx @@ -1,6 +1,16 @@ import type { MetaRecord } from "nextra"; -export const meta: MetaRecord = { +const meta: MetaRecord = { + "*": { + theme: { + breadcrumb: true, + toc: true, + copyPage: true, + }, + }, + index: { + title: "Overview", + }, "compare-server-types": { title: "Compare MCP server types", }, diff --git a/app/en/guides/create-tools/tool-basics/page.mdx b/app/en/guides/create-tools/tool-basics/page.mdx new file mode 100644 index 000000000..9249fdaad --- /dev/null +++ b/app/en/guides/create-tools/tool-basics/page.mdx @@ -0,0 +1,15 @@ +--- +title: "Build a Tool" +description: "Learn the fundamentals of building tools with Arcade's MCP Server framework" +--- + +import { SubpageList } from '../../../../_components/SubpageList'; +import meta from './_meta'; + +# Build a Tool + +Learn how to create custom tools that extend AI agents with powerful capabilities. Start here when you're ready to build your first tool or need to add new functionality to your existing MCP servers. + +Building tools with Arcade allows you to extend AI agents with custom capabilities. This section covers everything you need to know about creating powerful, reusable tools using the Model Context Protocol (MCP). + + diff --git a/app/en/guides/security/_meta.tsx b/app/en/guides/security/_meta.tsx new file mode 100644 index 000000000..5589db761 --- /dev/null +++ b/app/en/guides/security/_meta.tsx @@ -0,0 +1,25 @@ +import type { MetaRecord } from "nextra"; + +const meta: MetaRecord = { + "*": { + theme: { + breadcrumb: true, + toc: true, + copyPage: true, + }, + }, + index: { + title: "Overview", + }, + "securing-arcade-mcp": { + title: "Securing Arcade MCP", + }, + "secure-your-mcp-server": { + title: "Secure your MCP server", + }, + "security-research-program": { + title: "Security research program", + }, +}; + +export default meta; diff --git a/app/en/guides/security/page.mdx b/app/en/guides/security/page.mdx new file mode 100644 index 000000000..f705cbd37 --- /dev/null +++ b/app/en/guides/security/page.mdx @@ -0,0 +1,15 @@ +--- +title: "Security" +description: "Learn about security best practices for MCP servers and Arcade tools, plus information about our security research program" +--- + +import { SubpageList } from '../../../_components/SubpageList'; +import meta from './_meta'; + +# Security + +Learn about security best practices for building and deploying secure MCP servers and Arcade tools. Use these resources when implementing production-ready tools that handle sensitive data or require robust security measures. + +Security is crucial when building tools that interact with external services, handle user data, or operate in production environments. Arcade provides comprehensive security guidance and actively maintains a security research program. + + \ No newline at end of file diff --git a/app/en/guides/tool-calling/custom-apps/_meta.tsx b/app/en/guides/tool-calling/custom-apps/_meta.tsx index 46d699feb..20b94d9f5 100644 --- a/app/en/guides/tool-calling/custom-apps/_meta.tsx +++ b/app/en/guides/tool-calling/custom-apps/_meta.tsx @@ -1,6 +1,16 @@ import type { MetaRecord } from "nextra"; -export const meta: MetaRecord = { +const meta: MetaRecord = { + "*": { + theme: { + breadcrumb: true, + toc: true, + copyPage: true, + }, + }, + index: { + title: "Overview", + }, "auth-tool-calling": { title: "Authorize tool calling", }, diff --git a/app/en/guides/tool-calling/custom-apps/page.mdx b/app/en/guides/tool-calling/custom-apps/page.mdx new file mode 100644 index 000000000..70301932b --- /dev/null +++ b/app/en/guides/tool-calling/custom-apps/page.mdx @@ -0,0 +1,15 @@ +--- +title: "In Custom Applications" +description: "Learn how to integrate Arcade tools into your custom applications with authentication and tool management" +--- + +import { SubpageList } from '../../../../_components/SubpageList'; +import meta from './_meta'; + +# In Custom Applications + +Learn how to integrate Arcade tools into your custom applications. Use these guides when building your own tool-calling interfaces and need to handle authentication, status checking, and tool definitions programmatically. + +Building custom applications with Arcade tools requires understanding how to manage user authentication, check authorization status, and retrieve properly formatted tool definitions for your specific use case. + + \ No newline at end of file diff --git a/app/en/guides/tool-calling/mcp-clients/MCPClientGrid.tsx b/app/en/guides/tool-calling/mcp-clients/MCPClientGrid.tsx new file mode 100644 index 000000000..a3a2b176e --- /dev/null +++ b/app/en/guides/tool-calling/mcp-clients/MCPClientGrid.tsx @@ -0,0 +1,73 @@ +"use client"; +import Link from "next/link"; +import meta from "./_meta"; + +// MCP Client data with logos and descriptions +const mcpClients = [ + { + key: "cursor", + name: "Cursor", + description: "AI-powered code editor with built-in MCP support", + }, + { + key: "claude-desktop", + name: "Claude Desktop", + description: "Anthropic's desktop app for Claude with MCP integration", + }, + { + key: "visual-studio-code", + name: "Visual Studio Code", + description: "Microsoft's code editor with MCP extensions", + }, +]; + +// Logo mapping +const logoSrc = { + cursor: "/images/icons/cursor.png", + "claude-desktop": "/images/icons/claude.png", + "visual-studio-code": "/images/icons/vscode.svg", +}; + +export function MCPClientGrid() { + const subpages = Object.entries(meta).filter(([key]) => key !== "index"); + + return ( +
+ {mcpClients.map((client) => { + const clientMeta = subpages.find(([key]) => key === client.key); + if (!clientMeta) return null; + + return ( + +
+
+
+
+
+ {`${client.name} +
+
+
+ {client.name} +
+
+ {client.description} +
+
+
+
+
+
+ + ); + })} +
+ ); +} diff --git a/app/en/guides/tool-calling/mcp-clients/_meta.tsx b/app/en/guides/tool-calling/mcp-clients/_meta.tsx index 17570ed1d..cb9deae1a 100644 --- a/app/en/guides/tool-calling/mcp-clients/_meta.tsx +++ b/app/en/guides/tool-calling/mcp-clients/_meta.tsx @@ -1,5 +1,25 @@ -export default { - cursor: "Cursor", - "claude-desktop": "Claude Desktop", - "visual-studio-code": "Visual Studio Code", +import type { MetaRecord } from "nextra"; + +const meta: MetaRecord = { + "*": { + theme: { + breadcrumb: true, + toc: true, + copyPage: true, + }, + }, + index: { + title: "Overview", + }, + cursor: { + title: "Cursor", + }, + "claude-desktop": { + title: "Claude Desktop", + }, + "visual-studio-code": { + title: "Visual Studio Code", + }, }; + +export default meta; diff --git a/app/en/guides/tool-calling/mcp-clients/page.mdx b/app/en/guides/tool-calling/mcp-clients/page.mdx new file mode 100644 index 000000000..0f13fb765 --- /dev/null +++ b/app/en/guides/tool-calling/mcp-clients/page.mdx @@ -0,0 +1,12 @@ +--- +title: "Connect to MCP Clients" +description: "Learn how to connect your MCP servers to various MCP-compatible clients and development environments" +--- + +import { MCPClientGrid } from "./MCPClientGrid"; + +# Connect to MCP Clients + +You can connect [Arcade MCP servers](/resources/integrations) to MCP-compatible clients and development environments to unlock powerful flows for your agents. + + diff --git a/next-env.d.ts b/next-env.d.ts index c4b7818fb..9edff1c7c 100644 --- a/next-env.d.ts +++ b/next-env.d.ts @@ -1,6 +1,6 @@ /// /// -import "./.next/dev/types/routes.d.ts"; +import "./.next/types/routes.d.ts"; // NOTE: This file should not be edited // see https://nextjs.org/docs/app/api-reference/config/typescript for more information. diff --git a/public/images/icons/claude.png b/public/images/icons/claude.png new file mode 100644 index 000000000..763b1649c Binary files /dev/null and b/public/images/icons/claude.png differ diff --git a/public/images/icons/cursor.png b/public/images/icons/cursor.png new file mode 100644 index 000000000..b5ceb7a85 Binary files /dev/null and b/public/images/icons/cursor.png differ diff --git a/public/images/icons/vscode.svg b/public/images/icons/vscode.svg new file mode 100644 index 000000000..0557c2cb3 --- /dev/null +++ b/public/images/icons/vscode.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/llms.txt b/public/llms.txt index dc6998727..cc5933c33 100644 --- a/public/llms.txt +++ b/public/llms.txt @@ -1,4 +1,4 @@ - + # Arcade @@ -81,6 +81,7 @@ Arcade delivers three core capabilities: Deploy agents even your security team w - [Authorized Tool Calling](https://docs.arcade.dev/en/guides/tool-calling/custom-apps/auth-tool-calling.md): The "Authorized Tool Calling" documentation provides a comprehensive guide for developers on how to securely authorize AI agents to access external services using OAuth 2.0, API keys, and user tokens. It outlines the steps for initializing the Arcade client, obtaining user - [BoxApi](https://docs.arcade.dev/en/resources/integrations/productivity/box-api.md): The BoxApi documentation provides users with tools to manage and automate various aspects of Box content, including file management, metadata handling, collaboration, document generation, and enterprise operations. It outlines capabilities for interacting with Box's API, enabling users to build applications or - [Brightdata](https://docs.arcade.dev/en/resources/integrations/development/brightdata.md): The Brightdata documentation page provides users with tools and guidance for scraping, searching, and extracting structured data from various websites at scale without being blocked. It outlines specific functionalities such as scraping web pages in Markdown format, performing advanced searches across major search engines, +- [Build a Tool](https://docs.arcade.dev/en/guides/create-tools/tool-basics.md): This documentation page provides a comprehensive guide on building custom tools using Arcade's MCP Server framework, enabling users to enhance AI agents with new functionalities. It serves as a starting point for those looking to create their first tool or expand existing capabilities. Users will learn - [Build MCP Server QuickStart](https://docs.arcade.dev/en/get-started/quickstarts/mcp-server-quickstart.md): The "Build MCP Server QuickStart" documentation provides a step-by-step guide for users to create and run a custom MCP Server using the Arcade MCP framework. It covers prerequisites, installation instructions, server setup, and how to connect and authorize tools, enabling - [CalendlyApi](https://docs.arcade.dev/en/resources/integrations/productivity/calendly-api.md): The CalendlyApi documentation provides tools and resources for developers to integrate and manage scheduling and event-related tasks within the Calendly platform using OAuth2 authentication. Users can learn how to create, retrieve, and update event types, manage invitees, and handle - [Call a tool in your IDE/MCP Client](https://docs.arcade.dev/en/get-started/quickstarts/call-tool-client.md): This documentation page guides users on how to create and utilize an MCP Gateway in their IDE or MCP Client to streamline the process of calling tools from multiple MCP servers. It covers the steps to set up the gateway, select relevant tools, and connect it to @@ -97,6 +98,7 @@ Arcade delivers three core capabilities: Deploy agents even your security team w - [Comparative evaluations](https://docs.arcade.dev/en/guides/create-tools/evaluate-tools/comparative-evaluations.md): The "Comparative Evaluations" documentation page guides users in testing and comparing the performance of AI models across different tool implementations using isolated tool registries, known as tracks. It outlines how to set up comparative evaluations, register tools, create test cases, - [Compare MCP Server Types](https://docs.arcade.dev/en/guides/create-tools/tool-basics/compare-server-types.md): This documentation page provides a comparative overview of different MCP server types offered by Arcade, detailing their functionalities based on transport method and deployment options. Users can learn about the capabilities of each server type, including the availability of tools with or without authentication and secrets. - [Confluence](https://docs.arcade.dev/en/resources/integrations/productivity/confluence.md): This documentation page provides a comprehensive overview of the Arcade Confluence MCP Server, which enables users to build agents and AI applications that interact with Confluence. It details various tools available for managing pages, spaces, and attachments, as well as searching for content +- [Connect to MCP Clients](https://docs.arcade.dev/en/guides/tool-calling/mcp-clients.md): This documentation page provides guidance on connecting Arcade MCP servers to various MCP-compatible clients and development environments, enabling users to enhance their agent workflows. - [Contact Us](https://docs.arcade.dev/en/resources/contact-us.md): This documentation page provides users with information on how to connect with the Arcade team for support through various channels. It aims to facilitate communication and assistance for users and their agents. - [Create a new Mastra project](https://docs.arcade.dev/en/guides/agent-frameworks/mastra/use-arcade-tools.md): This documentation page provides a step-by-step guide for integrating Arcade tools into a new Mastra project, enabling users to leverage these tools within their Mastra applications. It covers prerequisites, project setup, installation of the Arcade client, API key configuration, and - [Create an evaluation suite](https://docs.arcade.dev/en/guides/create-tools/evaluate-tools/create-evaluation-suite.md): This documentation page provides a comprehensive guide on creating an evaluation suite to test AI models' tool usage through Arcade. Users will learn how to set up prerequisites, define evaluation files and suites, run evaluations, and interpret results, ensuring accurate tool selection and parameter @@ -114,6 +116,7 @@ Arcade delivers three core capabilities: Deploy agents even your security team w - [E2B](https://docs.arcade.dev/en/resources/integrations/development/e2b.md): The E2B documentation page provides users with tools and guidance for running code in a sandboxed environment, specifically designed for building agents and AI applications. It details two main functionalities: executing code safely and generating static matplotlib charts, along with examples and authentication - [Engine Configuration](https://docs.arcade.dev/en/guides/deployment-hosting/configure-engine.md): This documentation page provides advanced configuration options for enterprise customers self-hosting the Arcade Engine, detailing how to set up and customize engine settings using configuration files. Users will learn how to install the engine on various platforms, manage the `engine.yaml` and ` - [Environment Variables](https://docs.arcade.dev/en/resources/integrations/social-communication/slack/environment-variables.md): This documentation page provides guidance on configuring environment variables related to Slack API interactions, specifically `SLACK_MAX_CONCURRENT_REQUESTS`, `MAX_PAGINATION_SIZE_LIMIT`, and `MAX_PAGINATION_TIMEOUT_SECONDS`. Users will learn how to adjust these settings +- [Evaluate Tools](https://docs.arcade.dev/en/guides/create-tools/evaluate-tools.md): The "Evaluate Tools" documentation page provides guidance on systematically testing and enhancing tools using Arcade's evaluation framework. It helps users validate the performance of their tools after initial development and offers techniques for iterative improvements to ensure reliability in production. - [ExaApi](https://docs.arcade.dev/en/resources/integrations/search/exa-api.md): The ExaApi documentation provides users with a comprehensive guide to utilizing the Exa.ai Search API, enabling them to conduct searches, manage websets, and handle research requests effectively. It outlines various tools available within the API, detailing their functionalities such as - [Fetch the "ScrapeUrl" tool from the "Firecrawl" MCP Server](https://docs.arcade.dev/en/guides/agent-frameworks/langchain/use-arcade-tools.md): This documentation page provides a comprehensive guide for integrating Arcade tools into LangGraph applications, detailing prerequisites, environment setup, API key configuration, and tool management. Users will learn how to create and manage AI models, configure agents, and stream responses while utilizing code - [Figma](https://docs.arcade.dev/en/resources/integrations/development/figma.md): This documentation page provides users with a comprehensive guide to the Figma MCP Server, enabling interaction with Figma's design files, components, and collaboration features through the Figma REST API. Users can learn to access file structures, manage components, add comments @@ -145,6 +148,7 @@ Arcade delivers three core capabilities: Deploy agents even your security team w - [GoogleCalendar Reference](https://docs.arcade.dev/en/resources/integrations/productivity/google-calendar/reference.md): The GoogleCalendar Reference documentation provides a concise overview of key enumerations related to event visibility, update options for sending notifications, and managing Google Meet settings within the GoogleCalendar MCP Server. Users can reference these enumerations to effectively configure and manage calendar events and - [GoogleDocs Reference](https://docs.arcade.dev/en/resources/integrations/productivity/google-docs/reference.md): The GoogleDocs Reference documentation provides a comprehensive list of enumerations used in the GoogleDocs MCP Server, specifically focusing on sorting options and document formats. Users can learn about various order criteria, such as creation and modification times, as well as supported document formats - [GoogleSheets Reference](https://docs.arcade.dev/en/resources/integrations/productivity/google-sheets/reference.md): The GoogleSheets Reference documentation provides a comprehensive list of enumerations related to sorting and ordering data within the GoogleSheets MCP Server. Users can learn about various order criteria, such as creation time, modification time, and name, along with their corresponding identifiers for +- [Handle Errors](https://docs.arcade.dev/en/guides/create-tools/error-handling.md): This documentation page teaches users how to implement effective error handling in their tools to enhance user experience and ensure resilience in production environments. It outlines strategies for managing various error types and encourages the adoption of robust patterns for improved reliability. - [Hosting Optoions Overview](https://docs.arcade.dev/en/guides/deployment-hosting.md): This documentation page provides an overview of the various hosting options available for the Arcade platform, including the Arcade Cloud service and on-premise deployments. Users can learn how to quickly set up and manage their applications with zero infrastructure through Arcade Cloud or configure on-prem - [How to contribute a MCP Server](https://docs.arcade.dev/en/resources/integrations/contribute-a-server.md): This documentation page provides a step-by-step guide for developers on how to contribute their MCP Server to the Arcade documentation. It outlines the prerequisites for submission, including building and publishing the MCP Server, and details the process for opening a pull request and ensuring it - [Hubspot](https://docs.arcade.dev/en/resources/integrations/sales/hubspot.md): This documentation page provides users with tools and guidance for integrating and automating interactions with HubSpot CRM through the HubSpot MCP Server. Users can learn how to perform various actions such as creating, updating, and retrieving data related to users, contacts, deals @@ -160,6 +164,7 @@ Arcade delivers three core capabilities: Deploy agents even your security team w - [Imgflip](https://docs.arcade.dev/en/resources/integrations/entertainment/imgflip.md): The Imgflip documentation provides users with tools to create and manage memes using the Imgflip API, enabling the development of agents and AI applications. Users can search for meme templates, retrieve popular memes, and create custom memes by adding text to existing templates. - [Imgflip](https://docs.arcade.dev/en/resources/integrations/entertainment/spotify/imgflip.md): The Imgflip documentation page provides users with tools to create and manage memes using the Imgflip API, allowing them to search for meme templates, retrieve popular templates, and create custom memes. It outlines the available features, including a premium search option and customizable - [Import necessary classes and modules](https://docs.arcade.dev/en/guides/agent-frameworks/langchain/user-auth-interrupts.md): This documentation page guides users in creating a LangGraph workflow that integrates user authorization for specific Arcade tools, ensuring that only authorized tools are accessible to the language model. It provides step-by-step instructions on setting up the necessary environment, installing required packages, and +- [In Custom Applications](https://docs.arcade.dev/en/guides/tool-calling/custom-apps.md): This documentation page provides guidance on integrating Arcade tools into custom applications, focusing on user authentication, authorization status checking, and managing tool definitions. It serves as a resource for developers building tool-calling interfaces to ensure proper implementation and functionality. - [Initialize the Arcade client](https://docs.arcade.dev/en/guides/agent-frameworks/google-adk/use-arcade-tools.md): This documentation page provides a comprehensive guide for integrating Arcade tools into Google ADK applications, outlining the necessary prerequisites, setup procedures, and configuration steps. Users will learn how to manage and authorize Arcade tools, create agents, and run them effectively within their applications - [IntercomApi](https://docs.arcade.dev/en/resources/integrations/customer-support/intercom-api.md): The IntercomApi documentation provides a comprehensive guide to tools that enable users to interact with the Intercom platform using OAuth2 authentication. It details various functionalities, such as managing admin information, creating and updating articles, and handling company data, allowing users to - [Jira](https://docs.arcade.dev/en/resources/integrations/productivity/jira.md): This documentation page provides a comprehensive overview of the Jira MCP Server, which enables users and AI applications to efficiently manage Jira issues and projects. It outlines various functionalities such as creating, updating, and searching for issues, managing labels and attachments, and transitioning issues @@ -208,6 +213,7 @@ Arcade delivers three core capabilities: Deploy agents even your security team w - [Salesforce CRM](https://docs.arcade.dev/en/resources/integrations/sales/salesforce.md): This documentation page provides guidance on using the Arcade Salesforce CRM MCP Server, which enables users to interact with Salesforce accounts, leads, and contacts through a set of pre-built tools. It outlines the steps for creating a custom Salesforce Auth Provider, self-hosting - [Secure and Brand the Auth Flow in Production](https://docs.arcade.dev/en/guides/user-facing-agents/secure-auth-production.md): This documentation page guides users on how to secure and customize their authentication flows using Arcade.dev in production environments. It explains the use of the default Arcade user verifier for development and the implementation of a custom user verifier for production applications, ensuring user verification and enhancing - [Securing Arcade MCP Deployments](https://docs.arcade.dev/en/guides/security/securing-arcade-mcp.md): This documentation page provides guidance on securing Arcade MCP deployments, detailing two primary methods: deploying the MCP server to the Arcade platform for built-in security features and implementing OAuth 2.1 Resource Server authentication for self-hosted environments. Users will learn how to +- [Security](https://docs.arcade.dev/en/guides/security.md): This documentation page provides users with best practices for ensuring the security of MCP servers and Arcade tools, particularly when handling sensitive data or operating in production environments. It also highlights the importance of security in tool development and outlines the resources available for implementing robust security measures - [Security Research Program](https://docs.arcade.dev/en/guides/security/security-research-program.md): 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, - [Server-Level vs Tool-Level Authorization](https://docs.arcade.dev/en/learn/server-level-vs-tool-level-auth.md): This documentation page explains the differences between server-level authorization (Resource Server auth) and tool-level authorization in Arcade MCP servers, highlighting their roles in securing access to the server and third-party APIs. It provides guidance on when to implement each type of authorization, - [Set your API key](https://docs.arcade.dev/en/guides/agent-frameworks/openai-agents/user-auth-interrupts.md): This documentation page provides guidance on managing user authorization for Arcade tools within OpenAI Agents applications. It covers obtaining an API key, configuring the environment, handling authorization errors, and ensuring persistence of user authorization. Users will learn how to effectively implement and manage the