From ca5f0ff64540e73b6e5da38a1e03bcf7dab5de65 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Sat, 8 Aug 2026 04:54:51 +0000 Subject: [PATCH 01/12] Restructure docs for agent developers and platform operators Split the Guides section into Operate (deploy, identity, governance) and Build (call/create tools), add persona entry points on the homepage, and document both audiences in the style guides. --- .cursorrules | 2 +- AUTHORING.md | 2 +- STYLEGUIDE.md | 16 + app/_components/starter-tool-info.tsx | 6 +- app/_components/tool-footer.tsx | 2 +- app/en/_meta.tsx | 10 +- app/en/build/_meta.tsx | 21 + .../arcade-deploy/page.mdx | 10 +- .../{guides => build}/create-tools/_meta.tsx | 6 +- .../create-tools/error-handling/_meta.tsx | 0 .../create-tools/error-handling/page.mdx | 2 +- .../error-handling/retry-tools/page.mdx | 0 .../useful-tool-errors/page.mdx | 4 +- .../create-tools/evaluate-tools/_meta.tsx | 0 .../evaluate-tools/capture-mode/page.mdx | 6 +- .../comparative-evaluations/page.mdx | 8 +- .../create-evaluation-suite/page.mdx | 10 +- .../create-tools/evaluate-tools/page.mdx | 2 +- .../evaluate-tools/run-evaluations/page.mdx | 6 +- .../evaluate-tools/why-evaluate/page.mdx | 14 +- .../improve/types-of-tools/page.mdx | 0 .../create-tools/migrate-toolkits/page.mdx | 6 +- app/en/build/create-tools/page.mdx | 39 ++ .../create-tools/secure-your-server/_meta.tsx | 0 .../create-tools/secure-your-server/page.mdx | 4 +- .../secure-your-mcp-server/page.mdx | 10 +- .../create-tools/tool-basics/_meta.tsx | 0 .../tool-basics/add-tool-metadata/page.mdx | 8 +- .../tool-basics/build-mcp-server/page.mdx | 16 +- .../tool-basics/call-tools-mcp/page.mdx | 4 +- .../tool-basics/compare-server-types/page.mdx | 0 .../tool-basics/create-tool-auth/page.mdx | 6 +- .../tool-basics/create-tool-secrets/page.mdx | 8 +- .../tool-basics/organize-mcp-tools/page.mdx | 2 +- .../create-tools/tool-basics/page.mdx | 2 +- .../tool-basics/runtime-data-access/page.mdx | 4 +- app/en/build/page.mdx | 42 ++ .../{guides => build}/tool-calling/_meta.tsx | 0 .../call-third-party-apis/page.mdx | 0 .../tool-calling/custom-apps/_meta.tsx | 0 .../custom-apps/auth-tool-calling/page.mdx | 2 +- .../custom-apps/check-auth-status/page.mdx | 0 .../custom-apps/get-tool-definitions/page.mdx | 0 .../tool-calling/custom-apps/page.mdx | 2 +- .../tool-calling/error-handling/page.mdx | 2 +- .../{guides => build}/tool-calling/page.mdx | 2 +- app/en/build/user-facing-agents/_meta.tsx | 9 + .../secure-auth-production/page.mdx | 0 app/en/get-started/about-arcade/page.mdx | 7 +- .../agent-frameworks/copilotkit/page.mdx | 2 +- .../google-adk/setup-typescript/page.mdx | 2 +- .../agent-frameworks/mastra/page.mdx | 2 +- .../openai-agents/setup-typescript/page.mdx | 2 +- .../page.mdx | 4 +- .../agent-frameworks/springai/page.mdx | 2 +- .../agent-frameworks/tanstack-ai/page.mdx | 2 +- .../agent-frameworks/vercelai/page.mdx | 2 +- .../mcp-clients/claude-code/page.mdx | 4 +- .../mcp-clients/claude-desktop/page.mdx | 4 +- .../mcp-clients/copilot-studio/page.mdx | 4 +- .../get-started/mcp-clients/cursor/page.mdx | 4 +- .../mcp-clients/github-copilot/page.mdx | 4 +- .../mcp-clients/visual-studio-code/page.mdx | 4 +- .../quickstarts/call-tool-agent/page.mdx | 2 +- .../quickstarts/call-tool-client/page.mdx | 2 +- .../mcp-server-quickstart/page.mdx | 16 +- app/en/get-started/setup/api-keys/page.mdx | 2 +- app/en/guides/deployment-hosting/page.mdx | 53 --- app/en/home/landing-page.tsx | 198 +++++---- .../server-level-vs-tool-level-auth/page.mdx | 10 +- app/en/{guides => operate}/_meta.tsx | 37 +- .../{guides => operate}/audit-logs/page.mdx | 0 .../contextual-access/_meta.tsx | 0 .../contextual-access/build-your-own/page.mdx | 6 +- .../contextual-access/examples/page.mdx | 4 +- .../contextual-access/how-hooks-work/page.mdx | 4 +- .../contextual-access/page.mdx | 6 +- .../deployment}/_meta.tsx | 3 - .../deployment}/arcade-cloud/page.mdx | 4 +- .../deployment}/aws/page.mdx | 6 +- .../deployment}/azure/page.mdx | 6 +- .../deployment}/gcp/page.mdx | 4 +- .../deployment}/helm/page.mdx | 8 +- .../deployment}/on-prem/page.mdx | 8 +- app/en/operate/deployment/page.mdx | 53 +++ .../deployment}/warp-pipes/page.mdx | 16 +- .../mcp-gateways/_meta.tsx | 0 .../mcp-gateways/add-remote-servers/page.mdx | 2 +- .../mcp-gateways/create-via-ai/page.mdx | 0 .../create-via-dashboard/page.mdx | 4 +- .../{guides => operate}/mcp-gateways/page.mdx | 8 +- app/en/operate/page.mdx | 67 +++ app/en/operate/quickstart/page.mdx | 94 ++++ .../user-sources/_meta.tsx | 0 .../user-sources/auth0/page.mdx | 10 +- .../user-sources/clerk/page.mdx | 10 +- .../user-sources/microsoft-entra-id/page.mdx | 10 +- .../user-sources/okta/page.mdx | 10 +- .../{guides => operate}/user-sources/page.mdx | 6 +- .../user-sources/stytch/page.mdx | 10 +- app/en/references/arcade-cli/page.mdx | 2 +- .../auth-providers/airtable/page.mdx | 6 +- .../references/auth-providers/asana/page.mdx | 4 +- .../auth-providers/atlassian/page.mdx | 4 +- .../references/auth-providers/attio/page.mdx | 4 +- .../auth-providers/calendly/page.mdx | 6 +- .../auth-providers/cisco-duo/page.mdx | 8 +- .../auth-providers/clickup/page.mdx | 4 +- .../auth-providers/discord/page.mdx | 4 +- .../auth-providers/dropbox/page.mdx | 4 +- .../references/auth-providers/figma/page.mdx | 6 +- .../references/auth-providers/github/page.mdx | 2 +- .../references/auth-providers/google/page.mdx | 4 +- .../auth-providers/hubspot/page.mdx | 4 +- .../references/auth-providers/linear/page.mdx | 4 +- .../auth-providers/linkedin/page.mdx | 4 +- .../auth-providers/mailchimp/page.mdx | 6 +- .../auth-providers/microsoft-powerbi/page.mdx | 4 +- .../auth-providers/microsoft/page.mdx | 4 +- .../references/auth-providers/miro/page.mdx | 6 +- .../references/auth-providers/notion/page.mdx | 4 +- .../references/auth-providers/oauth2/page.mdx | 12 +- app/en/references/auth-providers/page.mdx | 2 +- .../auth-providers/pagerduty/page.mdx | 6 +- .../references/auth-providers/reddit/page.mdx | 4 +- .../auth-providers/salesforce/page.mdx | 8 +- .../references/auth-providers/slack/page.mdx | 4 +- .../auth-providers/spotify/page.mdx | 4 +- .../references/auth-providers/square/page.mdx | 6 +- .../auth-providers/ticktick/page.mdx | 6 +- .../references/auth-providers/twitch/page.mdx | 4 +- app/en/references/auth-providers/x/page.mdx | 4 +- .../auth-providers/zendesk/page.mdx | 4 +- .../references/auth-providers/zoho/page.mdx | 6 +- .../references/auth-providers/zoom/page.mdx | 4 +- app/en/references/changelog/page.mdx | 20 +- app/en/resources/early-access/_meta.tsx | 2 +- app/en/resources/faq/page.mdx | 2 +- app/en/resources/glossary/page.mdx | 20 +- .../components/toolkits-client.tsx | 2 +- .../integrations/components/type-config.tsx | 4 +- .../integrations/search/nimble/page.mdx | 10 +- .../integrations/search/tavily/page.mdx | 8 +- app/en/resources/tools/page.mdx | 2 +- app/layout.tsx | 2 +- lib/remark-glossary.ts | 4 +- redirects.ts | 403 ++++++++++++++---- 147 files changed, 1109 insertions(+), 561 deletions(-) create mode 100644 app/en/build/_meta.tsx rename app/en/{guides/deployment-hosting => build}/arcade-deploy/page.mdx (94%) rename app/en/{guides => build}/create-tools/_meta.tsx (76%) rename app/en/{guides => build}/create-tools/error-handling/_meta.tsx (100%) rename app/en/{guides => build}/create-tools/error-handling/page.mdx (90%) rename app/en/{guides => build}/create-tools/error-handling/retry-tools/page.mdx (100%) rename app/en/{guides => build}/create-tools/error-handling/useful-tool-errors/page.mdx (98%) rename app/en/{guides => build}/create-tools/evaluate-tools/_meta.tsx (100%) rename app/en/{guides => build}/create-tools/evaluate-tools/capture-mode/page.mdx (96%) rename app/en/{guides => build}/create-tools/evaluate-tools/comparative-evaluations/page.mdx (97%) rename app/en/{guides => build}/create-tools/evaluate-tools/create-evaluation-suite/page.mdx (95%) rename app/en/{guides => build}/create-tools/evaluate-tools/page.mdx (86%) rename app/en/{guides => build}/create-tools/evaluate-tools/run-evaluations/page.mdx (97%) rename app/en/{guides => build}/create-tools/evaluate-tools/why-evaluate/page.mdx (80%) rename app/en/{guides => build}/create-tools/improve/types-of-tools/page.mdx (100%) rename app/en/{guides => build}/create-tools/migrate-toolkits/page.mdx (96%) create mode 100644 app/en/build/create-tools/page.mdx rename app/en/{guides => build}/create-tools/secure-your-server/_meta.tsx (100%) rename app/en/{guides => build}/create-tools/secure-your-server/page.mdx (95%) rename app/en/{guides => build}/create-tools/secure-your-server/secure-your-mcp-server/page.mdx (96%) rename app/en/{guides => build}/create-tools/tool-basics/_meta.tsx (100%) rename app/en/{guides => build}/create-tools/tool-basics/add-tool-metadata/page.mdx (96%) rename app/en/{guides => build}/create-tools/tool-basics/build-mcp-server/page.mdx (95%) rename app/en/{guides => build}/create-tools/tool-basics/call-tools-mcp/page.mdx (98%) rename app/en/{guides => build}/create-tools/tool-basics/compare-server-types/page.mdx (100%) rename app/en/{guides => build}/create-tools/tool-basics/create-tool-auth/page.mdx (97%) rename app/en/{guides => build}/create-tools/tool-basics/create-tool-secrets/page.mdx (96%) rename app/en/{guides => build}/create-tools/tool-basics/organize-mcp-tools/page.mdx (98%) rename app/en/{guides => build}/create-tools/tool-basics/page.mdx (90%) rename app/en/{guides => build}/create-tools/tool-basics/runtime-data-access/page.mdx (98%) create mode 100644 app/en/build/page.mdx rename app/en/{guides => build}/tool-calling/_meta.tsx (100%) rename app/en/{guides => build}/tool-calling/call-third-party-apis/page.mdx (100%) rename app/en/{guides => build}/tool-calling/custom-apps/_meta.tsx (100%) rename app/en/{guides => build}/tool-calling/custom-apps/auth-tool-calling/page.mdx (96%) rename app/en/{guides => build}/tool-calling/custom-apps/check-auth-status/page.mdx (100%) rename app/en/{guides => build}/tool-calling/custom-apps/get-tool-definitions/page.mdx (100%) rename app/en/{guides => build}/tool-calling/custom-apps/page.mdx (91%) rename app/en/{guides => build}/tool-calling/error-handling/page.mdx (99%) rename app/en/{guides => build}/tool-calling/page.mdx (98%) create mode 100644 app/en/build/user-facing-agents/_meta.tsx rename app/en/{guides => build}/user-facing-agents/secure-auth-production/page.mdx (100%) delete mode 100644 app/en/guides/deployment-hosting/page.mdx rename app/en/{guides => operate}/_meta.tsx (55%) rename app/en/{guides => operate}/audit-logs/page.mdx (100%) rename app/en/{guides => operate}/contextual-access/_meta.tsx (100%) rename app/en/{guides => operate}/contextual-access/build-your-own/page.mdx (96%) rename app/en/{guides => operate}/contextual-access/examples/page.mdx (94%) rename app/en/{guides => operate}/contextual-access/how-hooks-work/page.mdx (95%) rename app/en/{guides => operate}/contextual-access/page.mdx (93%) rename app/en/{guides/deployment-hosting => operate/deployment}/_meta.tsx (91%) rename app/en/{guides/deployment-hosting => operate/deployment}/arcade-cloud/page.mdx (95%) rename app/en/{guides/deployment-hosting => operate/deployment}/aws/page.mdx (93%) rename app/en/{guides/deployment-hosting => operate/deployment}/azure/page.mdx (94%) rename app/en/{guides/deployment-hosting => operate/deployment}/gcp/page.mdx (85%) rename app/en/{guides/deployment-hosting => operate/deployment}/helm/page.mdx (86%) rename app/en/{guides/deployment-hosting => operate/deployment}/on-prem/page.mdx (95%) create mode 100644 app/en/operate/deployment/page.mdx rename app/en/{guides/deployment-hosting => operate/deployment}/warp-pipes/page.mdx (94%) rename app/en/{guides => operate}/mcp-gateways/_meta.tsx (100%) rename app/en/{guides => operate}/mcp-gateways/add-remote-servers/page.mdx (98%) rename app/en/{guides => operate}/mcp-gateways/create-via-ai/page.mdx (100%) rename app/en/{guides => operate}/mcp-gateways/create-via-dashboard/page.mdx (92%) rename app/en/{guides => operate}/mcp-gateways/page.mdx (93%) create mode 100644 app/en/operate/page.mdx create mode 100644 app/en/operate/quickstart/page.mdx rename app/en/{guides => operate}/user-sources/_meta.tsx (100%) rename app/en/{guides => operate}/user-sources/auth0/page.mdx (90%) rename app/en/{guides => operate}/user-sources/clerk/page.mdx (90%) rename app/en/{guides => operate}/user-sources/microsoft-entra-id/page.mdx (93%) rename app/en/{guides => operate}/user-sources/okta/page.mdx (91%) rename app/en/{guides => operate}/user-sources/page.mdx (95%) rename app/en/{guides => operate}/user-sources/stytch/page.mdx (91%) diff --git a/.cursorrules b/.cursorrules index 3b2f0e63a..ef1c86a18 100644 --- a/.cursorrules +++ b/.cursorrules @@ -5,7 +5,7 @@ You are writing documentation for Arcade, an AI platform for developers. Follow 3. **Sentence case**: Use sentence case for titles and headings. 4. **Active voice**: Make instructions direct and easy to follow. 5. **Friendly and supportive**: Assume the reader is eager to learn, and maintain a positive, approachable tone. -6. **Developer-focused**: Tailor language to developers. Assume basic Python knowledge but introduce Arcade concepts clearly. +6. **Persona-aware**: Write for agent developers (Get Started, Build) or platform operators (Operate). Name the audience in the page intro. For developers, assume basic Python knowledge; for operators, focus on deploy, identity, and governance. 7. **Encourage exploration**: Use phrases that invite experimentation, like “Let’s try…” or “You can explore…” 8. **Always refer to the product as 'Arcade'**. Do not abbreviate or shorten the product name. 9. **Code first**: Provide clear, copy/paste-ready code snippets, with brief, essential comments. diff --git a/AUTHORING.md b/AUTHORING.md index d4704bab1..c4d96173e 100644 --- a/AUTHORING.md +++ b/AUTHORING.md @@ -12,7 +12,7 @@ These are the guidelines for writing documentation for Arcade, to help keep the - **Active voice**: Write in an active voice to make the instructions direct and easy to follow. Example: “Install Arcade” rather than “Arcade should be installed.” - **Friendly and supportive**: Assume the reader is unfamiliar with Arcade but is eager to learn. Keep the tone positive, friendly, and approachable. -- **Developer-focused**: Tailor your language to a developer audience, using code-centric explanations but ensuring clarity for beginners. Assume the reader knows Python but might be unfamiliar with Arcade’s specifics. +- **Persona-aware**: Arcade docs serve **agent developers** (Get Started, Build) and **platform operators** (Operate). Open each page by naming who it is for. For agent developers, use code-centric explanations and assume basic Python knowledge. For platform operators, emphasize deployment, identity, and governance; link out to Build when code samples belong there. - **Encouraging exploration**: Use phrases that invite readers to try things out and explore the capabilities of Arcade. Example: “Let’s try…” or “You can explore…” ## Examples and code diff --git a/STYLEGUIDE.md b/STYLEGUIDE.md index 1c5c1936a..a8d4a650a 100644 --- a/STYLEGUIDE.md +++ b/STYLEGUIDE.md @@ -15,6 +15,22 @@ Vale handles mechanical style checks (grammar, passive voice, etc.). This guide Assume readers know programming fundamentals. Don't explain what a function is, but do explain Arcade-specific concepts. +### Write for the right persona + +Arcade docs serve two primary personas. State which one a page is for in the opening paragraph. + +| Persona | Who they are | Primary sections | +| --- | --- | --- | +| **Agent developer** | Builds agents, calls tools, or ships custom MCP servers | Get Started, Build | +| **Platform operator** | Deploys, secures, and governs Arcade for an organization | Operate | + +Shared sections (Learn, Resources, References) serve both. When a topic diverges by job, link to the other persona's path instead of mixing both workflows on one page. + +- **Do:** "These docs are for platform operators who deploy Arcade for a company." +- **Don't:** Assume every reader is building an agent, or bury operator setup under developer quickstarts. + +Prefer **Operate** (or "platform operator") over vague labels like "Enterprise" when naming navigation or page audiences. + ### Use "you" for the reader - **Do:** "You can configure the server with environment variables" or "Configure the server with environment variables" diff --git a/app/_components/starter-tool-info.tsx b/app/_components/starter-tool-info.tsx index 64ee14310..0af7d29b4 100644 --- a/app/_components/starter-tool-info.tsx +++ b/app/_components/starter-tool-info.tsx @@ -10,7 +10,7 @@ const StarterToolInfo: React.FC = ({ toolkitName }) => (

{toolkitName} is a{" "} - + Unoptimized MCP Server @@ -21,7 +21,7 @@ const StarterToolInfo: React.FC = ({ toolkitName }) => (

Differently from{" "} - + Optimized MCP Servers @@ -29,7 +29,7 @@ const StarterToolInfo: React.FC = ({ toolkitName }) => ( which is not usually optimized for LLM usage. For this reason, we recommend thoroughly evaluating the tools with your Agents or chatbots before using it in production.{" "} - Read more about + Read more about Optimized vs Unoptimized tools.

diff --git a/app/_components/tool-footer.tsx b/app/_components/tool-footer.tsx index bbac5ae9f..58460aaed 100644 --- a/app/_components/tool-footer.tsx +++ b/app/_components/tool-footer.tsx @@ -24,7 +24,7 @@ const ToolFooter: React.FC = ({ pipPackageName }) => ( description={ "Arcade tools can be self-hosted on your own infrastructure. Learn more about self-hosting." } - href="/guides/deployment-hosting" + href="/operate/deployment" icon={Puzzle} title="Self Host Arcade tools" /> diff --git a/app/en/_meta.tsx b/app/en/_meta.tsx index 5c171efd3..a6e28209f 100644 --- a/app/en/_meta.tsx +++ b/app/en/_meta.tsx @@ -5,6 +5,7 @@ import { Home, Pencil, Ruler, + ServerCog, } from "lucide-react"; import type { MetaRecord } from "nextra"; @@ -41,12 +42,15 @@ export const meta: MetaRecord = { "get-started": { title: Get Started, }, + operate: { + title: Operate, + }, + build: { + title: Build, + }, resources: { title: Resources, }, - guides: { - title: Guides, - }, learn: { title: Learn, }, diff --git a/app/en/build/_meta.tsx b/app/en/build/_meta.tsx new file mode 100644 index 000000000..8ba8ea6a2 --- /dev/null +++ b/app/en/build/_meta.tsx @@ -0,0 +1,21 @@ +import type { MetaRecord } from "nextra"; + +export const meta: MetaRecord = { + index: { + title: "Overview", + }, + "tool-calling": { + title: "Call tools", + }, + "create-tools": { + title: "Create tools", + }, + "user-facing-agents": { + title: "User-facing agents", + }, + "arcade-deploy": { + title: "Arcade Deploy", + }, +}; + +export default meta; diff --git a/app/en/guides/deployment-hosting/arcade-deploy/page.mdx b/app/en/build/arcade-deploy/page.mdx similarity index 94% rename from app/en/guides/deployment-hosting/arcade-deploy/page.mdx rename to app/en/build/arcade-deploy/page.mdx index fc7c2f1ff..1c12039bc 100644 --- a/app/en/guides/deployment-hosting/arcade-deploy/page.mdx +++ b/app/en/build/arcade-deploy/page.mdx @@ -11,7 +11,7 @@ import { SignupLink } from "@/app/_components/analytics"; Running your MCP servers locally is very convenient during development and testing. Once your MCP server is mature, however, you may want to access it from any MCP client, or to facilitate multi-user support. Doing all that from your computer comes with the complexity of running and maintaining a server, handling auth and high availability for all your users and all the integrations you want to support. Arcade Deploy takes care of all that for you. Your MCP server will be registered to Arcade, adding all the tools you created to the larger tool catalog. From there, you can create MCP Gateways to pick and choose which tools you want to use in your MCP clients, which can be from any connected MCP server. -Arcade Deploy hosts *your* MCP server on Arcade Cloud. It's a feature for serving tools — not a way to deploy the Arcade platform. For a full platform deployment, see the [marketplace guides](/guides/deployment-hosting) or [self-host with Helm](/guides/deployment-hosting/helm). +Arcade Deploy hosts *your* MCP server on Arcade Cloud. It's a feature for serving tools — not a way to deploy the Arcade platform. For a full platform deployment, see the [marketplace guides](/operate/deployment) or [self-host with Helm](/operate/deployment/helm). @@ -25,7 +25,7 @@ This guide shows you how to deploy your MCP Server with Arcade Deploy. - - [uv package manager](https://docs.astral.sh/uv/getting-started/installation/) -- [Create an MCP Server](/guides/create-tools/tool-basics/build-mcp-server) +- [Create an MCP Server](/build/create-tools/tool-basics/build-mcp-server) @@ -64,7 +64,7 @@ This guide shows you how to deploy your MCP Server with Arcade Deploy. ## Create an MCP server using Arcade MCP -If you have not created an MCP server yet, then follow the steps outlined in [this guide](/guides/create-tools/tool-basics/build-mcp-server) before deploying. +If you have not created an MCP server yet, then follow the steps outlined in [this guide](/build/create-tools/tool-basics/build-mcp-server) before deploying. ## Deploy your MCP Server @@ -152,11 +152,11 @@ Navigate to the [Servers](https://api.arcade.dev/dashboard/servers) page in your - Test and execute all the tools - Manage users connected to the Auth providers - Manage the secrets for the server -- Create [MCP Gateways](/guides/mcp-gateways) +- Create [MCP Gateways](/operate/mcp-gateways) ## Create an MCP Gateway to call the tools in your MCP Server -Once the MCP server is deployed to Arcade, all the tools in the server will be available in the [tool catalog](https://api.arcade.dev/dashboard/tools) page in your Arcade dashboard. To call the tools from an MCP client, you first need to [create an MCP Gateway](/guides/mcp-gateways) to pick and choose which tools you want to use in your MCP clients. +Once the MCP server is deployed to Arcade, all the tools in the server will be available in the [tool catalog](https://api.arcade.dev/dashboard/tools) page in your Arcade dashboard. To call the tools from an MCP client, you first need to [create an MCP Gateway](/operate/mcp-gateways) to pick and choose which tools you want to use in your MCP clients. When creating an MCP gateway, you can select the tools you want to include in the Gateway from any MCP Servers available to the project, including the one you just deployed. diff --git a/app/en/guides/create-tools/_meta.tsx b/app/en/build/create-tools/_meta.tsx similarity index 76% rename from app/en/guides/create-tools/_meta.tsx rename to app/en/build/create-tools/_meta.tsx index 596e9868d..89d3d35cb 100644 --- a/app/en/guides/create-tools/_meta.tsx +++ b/app/en/build/create-tools/_meta.tsx @@ -3,18 +3,18 @@ import type { MetaRecord } from "nextra"; export const meta: MetaRecord = { "tool-basics": { title: "Build a tool", - href: "/guides/create-tools/tool-basics", + href: "/build/create-tools/tool-basics", }, "evaluate-tools": { title: "Evaluate tools", - href: "/guides/create-tools/evaluate-tools", + href: "/build/create-tools/evaluate-tools", }, improve: { title: "Improve an existing toolkit", }, "error-handling": { title: "Handle errors", - href: "/guides/create-tools/error-handling", + href: "/build/create-tools/error-handling", }, "secure-your-server": { title: "Secure your server", diff --git a/app/en/guides/create-tools/error-handling/_meta.tsx b/app/en/build/create-tools/error-handling/_meta.tsx similarity index 100% rename from app/en/guides/create-tools/error-handling/_meta.tsx rename to app/en/build/create-tools/error-handling/_meta.tsx diff --git a/app/en/guides/create-tools/error-handling/page.mdx b/app/en/build/create-tools/error-handling/page.mdx similarity index 90% rename from app/en/guides/create-tools/error-handling/page.mdx rename to app/en/build/create-tools/error-handling/page.mdx index 810062f4e..542b723e6 100644 --- a/app/en/guides/create-tools/error-handling/page.mdx +++ b/app/en/build/create-tools/error-handling/page.mdx @@ -12,4 +12,4 @@ Learn how to implement robust error handling that improves user experience and e 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 + \ No newline at end of file diff --git a/app/en/guides/create-tools/error-handling/retry-tools/page.mdx b/app/en/build/create-tools/error-handling/retry-tools/page.mdx similarity index 100% rename from app/en/guides/create-tools/error-handling/retry-tools/page.mdx rename to app/en/build/create-tools/error-handling/retry-tools/page.mdx diff --git a/app/en/guides/create-tools/error-handling/useful-tool-errors/page.mdx b/app/en/build/create-tools/error-handling/useful-tool-errors/page.mdx similarity index 98% rename from app/en/guides/create-tools/error-handling/useful-tool-errors/page.mdx rename to app/en/build/create-tools/error-handling/useful-tool-errors/page.mdx index 3f433cbcb..4a27dd2fb 100644 --- a/app/en/guides/create-tools/error-handling/useful-tool-errors/page.mdx +++ b/app/en/build/create-tools/error-handling/useful-tool-errors/page.mdx @@ -102,7 +102,7 @@ def search_posts( # ... rest of implementation ``` -Learn more about [RetryableToolError](/guides/create-tools/error-handling/retry-tools). +Learn more about [RetryableToolError](/build/create-tools/error-handling/retry-tools). ### ContextRequiredToolError @@ -234,4 +234,4 @@ This will raise a `ToolOutputError` because the return type doesn't match the an ## Handling tool errors in agents -To learn more about how to handle tool errors in your Agent, see the [Use Tools](/guides/tool-calling/error-handling) section. +To learn more about how to handle tool errors in your Agent, see the [Use Tools](/build/tool-calling/error-handling) section. diff --git a/app/en/guides/create-tools/evaluate-tools/_meta.tsx b/app/en/build/create-tools/evaluate-tools/_meta.tsx similarity index 100% rename from app/en/guides/create-tools/evaluate-tools/_meta.tsx rename to app/en/build/create-tools/evaluate-tools/_meta.tsx diff --git a/app/en/guides/create-tools/evaluate-tools/capture-mode/page.mdx b/app/en/build/create-tools/evaluate-tools/capture-mode/page.mdx similarity index 96% rename from app/en/guides/create-tools/evaluate-tools/capture-mode/page.mdx rename to app/en/build/create-tools/evaluate-tools/capture-mode/page.mdx index 7f48a4912..d74724e84 100644 --- a/app/en/guides/create-tools/evaluate-tools/capture-mode/page.mdx +++ b/app/en/build/create-tools/evaluate-tools/capture-mode/page.mdx @@ -383,7 +383,7 @@ ExpectedMCPToolCall("GetWeather", {"location": "Tokyo", "units": "celsius"}) ### Step 3: Add critics -Add critics to validate parameters. See [Critics](/guides/create-tools/evaluate-tools/create-evaluation-suite#critics) for options. +Add critics to validate parameters. See [Critics](/build/create-tools/evaluate-tools/create-evaluation-suite#critics) for options. ### Step 4: Run evaluations @@ -441,5 +441,5 @@ suite = EvalSuite( ## Next steps -- Learn about [comparative evaluations](/guides/create-tools/evaluate-tools/comparative-evaluations) to compare tool sources -- [Create evaluation suites](/guides/create-tools/evaluate-tools/create-evaluation-suite) with expectations +- Learn about [comparative evaluations](/build/create-tools/evaluate-tools/comparative-evaluations) to compare tool sources +- [Create evaluation suites](/build/create-tools/evaluate-tools/create-evaluation-suite) with expectations diff --git a/app/en/guides/create-tools/evaluate-tools/comparative-evaluations/page.mdx b/app/en/build/create-tools/evaluate-tools/comparative-evaluations/page.mdx similarity index 97% rename from app/en/guides/create-tools/evaluate-tools/comparative-evaluations/page.mdx rename to app/en/build/create-tools/evaluate-tools/comparative-evaluations/page.mdx index 43df3d504..0575de1ba 100644 --- a/app/en/guides/create-tools/evaluate-tools/comparative-evaluations/page.mdx +++ b/app/en/build/create-tools/evaluate-tools/comparative-evaluations/page.mdx @@ -522,7 +522,7 @@ Combine comparative tracks with multiple models: arcade evals . -p openai:gpt-4o,gpt-4o-mini -p anthropic:claude-sonnet-4-5-20250929 ``` -Multi-run flags (`--num-runs`, `--seed`, `--multi-run-pass-rule`) also work with comparative tracks. See [Run evaluations](/guides/create-tools/evaluate-tools/run-evaluations). +Multi-run flags (`--num-runs`, `--seed`, `--multi-run-pass-rule`) also work with comparative tracks. See [Run evaluations](/build/create-tools/evaluate-tools/run-evaluations). Results show: @@ -752,6 +752,6 @@ suite.add_tool_catalog(catalog_v2, track="Python v2") ## Next steps -- [Create an evaluation suite](/guides/create-tools/evaluate-tools/create-evaluation-suite) with tracks -- Use [capture mode](/guides/create-tools/evaluate-tools/capture-mode) to discover track-specific tool calls -- [Run evaluations](/guides/create-tools/evaluate-tools/run-evaluations) with multiple models and tracks +- [Create an evaluation suite](/build/create-tools/evaluate-tools/create-evaluation-suite) with tracks +- Use [capture mode](/build/create-tools/evaluate-tools/capture-mode) to discover track-specific tool calls +- [Run evaluations](/build/create-tools/evaluate-tools/run-evaluations) with multiple models and tracks diff --git a/app/en/guides/create-tools/evaluate-tools/create-evaluation-suite/page.mdx b/app/en/build/create-tools/evaluate-tools/create-evaluation-suite/page.mdx similarity index 95% rename from app/en/guides/create-tools/evaluate-tools/create-evaluation-suite/page.mdx rename to app/en/build/create-tools/evaluate-tools/create-evaluation-suite/page.mdx index 3a4ab66fd..c92a7a5bb 100644 --- a/app/en/guides/create-tools/evaluate-tools/create-evaluation-suite/page.mdx +++ b/app/en/build/create-tools/evaluate-tools/create-evaluation-suite/page.mdx @@ -13,7 +13,7 @@ import { Steps, Tabs, Callout } from "nextra/components"; ### Prerequisites -- [Create an MCP Server](/guides/create-tools/tool-basics/build-mcp-server) +- [Create an MCP Server](/build/create-tools/tool-basics/build-mcp-server) - Install the evaluation dependencies: @@ -164,7 +164,7 @@ arcade evals . --num-runs 3 --seed random --multi-run-pass-rule majority -See [Run evaluations](/guides/create-tools/evaluate-tools/run-evaluations) for all available options. +See [Run evaluations](/build/create-tools/evaluate-tools/run-evaluations) for all available options. ### Understand the results @@ -380,6 +380,6 @@ If you want stricter suites, increase thresholds (for example `fail_threshold=0. ## Next steps -- Learn how to [run evaluations with different providers](/guides/create-tools/evaluate-tools/run-evaluations) -- Explore [capture mode](/guides/create-tools/evaluate-tools/capture-mode) to record tool calls -- Compare tool sources with [comparative evaluations](/guides/create-tools/evaluate-tools/comparative-evaluations) +- Learn how to [run evaluations with different providers](/build/create-tools/evaluate-tools/run-evaluations) +- Explore [capture mode](/build/create-tools/evaluate-tools/capture-mode) to record tool calls +- Compare tool sources with [comparative evaluations](/build/create-tools/evaluate-tools/comparative-evaluations) diff --git a/app/en/guides/create-tools/evaluate-tools/page.mdx b/app/en/build/create-tools/evaluate-tools/page.mdx similarity index 86% rename from app/en/guides/create-tools/evaluate-tools/page.mdx rename to app/en/build/create-tools/evaluate-tools/page.mdx index 511d949bc..b8cc52576 100644 --- a/app/en/guides/create-tools/evaluate-tools/page.mdx +++ b/app/en/build/create-tools/evaluate-tools/page.mdx @@ -10,4 +10,4 @@ import meta from './_meta'; 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/evaluate-tools/run-evaluations/page.mdx b/app/en/build/create-tools/evaluate-tools/run-evaluations/page.mdx similarity index 97% rename from app/en/guides/create-tools/evaluate-tools/run-evaluations/page.mdx rename to app/en/build/create-tools/evaluate-tools/run-evaluations/page.mdx index 4826c7d27..af3215578 100644 --- a/app/en/guides/create-tools/evaluate-tools/run-evaluations/page.mdx +++ b/app/en/build/create-tools/evaluate-tools/run-evaluations/page.mdx @@ -151,7 +151,7 @@ Capture mode is useful for: - Debugging model behavior - Understanding tool call patterns -See [Capture mode](/guides/create-tools/evaluate-tools/capture-mode) for details. +See [Capture mode](/build/create-tools/evaluate-tools/capture-mode) for details. ## Output formats @@ -497,5 +497,5 @@ Ensure your evaluation files: ## Next steps -- Explore [capture mode](/guides/create-tools/evaluate-tools/capture-mode) for recording tool calls -- Learn about [comparative evaluations](/guides/create-tools/evaluate-tools/comparative-evaluations) for comparing tool sources \ No newline at end of file +- Explore [capture mode](/build/create-tools/evaluate-tools/capture-mode) for recording tool calls +- Learn about [comparative evaluations](/build/create-tools/evaluate-tools/comparative-evaluations) for comparing tool sources \ No newline at end of file diff --git a/app/en/guides/create-tools/evaluate-tools/why-evaluate/page.mdx b/app/en/build/create-tools/evaluate-tools/why-evaluate/page.mdx similarity index 80% rename from app/en/guides/create-tools/evaluate-tools/why-evaluate/page.mdx rename to app/en/build/create-tools/evaluate-tools/why-evaluate/page.mdx index b1a2fc506..f07f96361 100644 --- a/app/en/guides/create-tools/evaluate-tools/why-evaluate/page.mdx +++ b/app/en/build/create-tools/evaluate-tools/why-evaluate/page.mdx @@ -65,10 +65,10 @@ FAILED Wrong tool selected -- Score: 50.00% ## Next steps -- [Create an evaluation suite](/guides/create-tools/evaluate-tools/create-evaluation-suite) to start testing your tools -- [Run evaluations](/guides/create-tools/evaluate-tools/run-evaluations) with multiple providers -- Explore [capture mode](/guides/create-tools/evaluate-tools/capture-mode) to bootstrap test expectations -- Compare tool sources with [comparative evaluations](/guides/create-tools/evaluate-tools/comparative-evaluations) +- [Create an evaluation suite](/build/create-tools/evaluate-tools/create-evaluation-suite) to start testing your tools +- [Run evaluations](/build/create-tools/evaluate-tools/run-evaluations) with multiple providers +- Explore [capture mode](/build/create-tools/evaluate-tools/capture-mode) to bootstrap test expectations +- Compare tool sources with [comparative evaluations](/build/create-tools/evaluate-tools/comparative-evaluations) ## Advanced features @@ -76,12 +76,12 @@ Once you're comfortable with basic evaluations, explore these advanced capabilit ### Capture mode -Record tool calls without scoring to discover what models actually call. Useful for bootstrapping test expectations and debugging. [Learn more →](/guides/create-tools/evaluate-tools/capture-mode) +Record tool calls without scoring to discover what models actually call. Useful for bootstrapping test expectations and debugging. [Learn more →](/build/create-tools/evaluate-tools/capture-mode) ### Comparative evaluations -Test the same cases against different tool sources (tracks) with isolated registries. Compare how models perform with different tool implementations. [Learn more →](/guides/create-tools/evaluate-tools/comparative-evaluations) +Test the same cases against different tool sources (tracks) with isolated registries. Compare how models perform with different tool implementations. [Learn more →](/build/create-tools/evaluate-tools/comparative-evaluations) ### Output formats -Save results in multiple formats (txt, md, html, json) for reporting and analysis. Specify output files with extensions or use no extension for all formats. [Learn more →](/guides/create-tools/evaluate-tools/run-evaluations#output-formats) +Save results in multiple formats (txt, md, html, json) for reporting and analysis. Specify output files with extensions or use no extension for all formats. [Learn more →](/build/create-tools/evaluate-tools/run-evaluations#output-formats) diff --git a/app/en/guides/create-tools/improve/types-of-tools/page.mdx b/app/en/build/create-tools/improve/types-of-tools/page.mdx similarity index 100% rename from app/en/guides/create-tools/improve/types-of-tools/page.mdx rename to app/en/build/create-tools/improve/types-of-tools/page.mdx diff --git a/app/en/guides/create-tools/migrate-toolkits/page.mdx b/app/en/build/create-tools/migrate-toolkits/page.mdx similarity index 96% rename from app/en/guides/create-tools/migrate-toolkits/page.mdx rename to app/en/build/create-tools/migrate-toolkits/page.mdx index e138cc410..9207dc503 100644 --- a/app/en/guides/create-tools/migrate-toolkits/page.mdx +++ b/app/en/build/create-tools/migrate-toolkits/page.mdx @@ -11,12 +11,12 @@ This guide helps you migrate your existing Arcade toolkit to the new MCP Server If you're building a new MCP server from scratch, check out the [Create an MCP - Server](/guides/create-tools/tool-basics/build-mcp-server) guide instead. + Server](/build/create-tools/tool-basics/build-mcp-server) guide instead. If you're migrating an existing toolkit to a new MCP server, it may be useful to read through our quickstart guide to get a sense of the new MCP Server - framework: [Create an MCP Server](/guides/create-tools/tool-basics/build-mcp-server) + framework: [Create an MCP Server](/build/create-tools/tool-basics/build-mcp-server) ## Understanding the changes @@ -298,4 +298,4 @@ After migrating your toolkit to an MCP server: - **Test your server**: Run your server locally and verify all tools work correctly - **Update your CI/CD**: Update any automated workflows to use the new CLI and commands - **Deploy your server**: Use `arcade deploy` to deploy your MCP server -- **Configure MCP clients**: Connect your server to [MCP clients](/guides/create-tools/tool-basics/call-tools-mcp) like Claude Desktop, Cursor, or VS Code +- **Configure MCP clients**: Connect your server to [MCP clients](/build/create-tools/tool-basics/call-tools-mcp) like Claude Desktop, Cursor, or VS Code diff --git a/app/en/build/create-tools/page.mdx b/app/en/build/create-tools/page.mdx new file mode 100644 index 000000000..9a82f2468 --- /dev/null +++ b/app/en/build/create-tools/page.mdx @@ -0,0 +1,39 @@ +--- +title: "Create tools" +description: "Build, evaluate, secure, and improve custom MCP servers and tools with Arcade" +--- + +import { Cards } from "nextra/components"; + +# Create tools + +These guides are for **agent developers** who build custom MCP servers and tools with Arcade. + +## Guides + + + + + + + + + diff --git a/app/en/guides/create-tools/secure-your-server/_meta.tsx b/app/en/build/create-tools/secure-your-server/_meta.tsx similarity index 100% rename from app/en/guides/create-tools/secure-your-server/_meta.tsx rename to app/en/build/create-tools/secure-your-server/_meta.tsx diff --git a/app/en/guides/create-tools/secure-your-server/page.mdx b/app/en/build/create-tools/secure-your-server/page.mdx similarity index 95% rename from app/en/guides/create-tools/secure-your-server/page.mdx rename to app/en/build/create-tools/secure-your-server/page.mdx index ab5362705..14ebed43d 100644 --- a/app/en/guides/create-tools/secure-your-server/page.mdx +++ b/app/en/build/create-tools/secure-your-server/page.mdx @@ -9,7 +9,7 @@ When you `arcade deploy` your MCP server, it will be secured behind the Arcade p Under the hood, we disable the MCP routes provided by `arcade-mcp`, and use the Arcade Engine as a gateway for your MCP server, which has a number of additional features. Arcade will create a randomized secure secret for your MCP server (via the `ARCADE_WORKER_SECRET` environment variable) so that your server is protected from unauthorized access, as well as being isolated from direct access from outside of the Arcade platform. Servers managed by Arcade (servers that are `arcade deploy`ed) serve `/worker` endpoints that are protected by this secret. The worker endpoints are `worker/health`, `/worker/tools`, and `/worker/tools/invoke`. The health endpoint is not protected by this secret, but the listing tools and tool invocations are. You can explore this behavior locally by setting the same environment variable in your local environment. -Learn more about how to deploy your MCP server to Arcade [here](/guides/deployment-hosting/arcade-deploy). +Learn more about how to deploy your MCP server to Arcade [here](/build/arcade-deploy). ## OAuth Resource Server Auth @@ -21,4 +21,4 @@ This approach is ideal when: Resource Server auth works alongside tool-level authorization. Resource Server auth secures access to the MCP server itself, while tool-level auth enables your tools to access third-party APIs on behalf of the authenticated user. -Learn more about adding front-door OAuth to your MCP server [here](/guides/create-tools/secure-your-server/secure-your-mcp-server). +Learn more about adding front-door OAuth to your MCP server [here](/build/create-tools/secure-your-server/secure-your-mcp-server). diff --git a/app/en/guides/create-tools/secure-your-server/secure-your-mcp-server/page.mdx b/app/en/build/create-tools/secure-your-server/secure-your-mcp-server/page.mdx similarity index 96% rename from app/en/guides/create-tools/secure-your-server/secure-your-mcp-server/page.mdx rename to app/en/build/create-tools/secure-your-server/secure-your-mcp-server/page.mdx index 5fbc4a94e..bfadf592f 100644 --- a/app/en/guides/create-tools/secure-your-server/secure-your-mcp-server/page.mdx +++ b/app/en/build/create-tools/secure-your-server/secure-your-mcp-server/page.mdx @@ -10,7 +10,7 @@ import { Steps, Tabs, Callout } from "nextra/components"; You've built an MCP server with tools that require authorization or secrets. Now you want to deploy it over HTTP so others can use it. But how do you secure it so only authorized users can access your tools? -**Want Arcade to handle this for you?** Use [`arcade deploy`](/guides/deployment-hosting/arcade-deploy) to deploy your MCP server to Arcade. We'll secure it automatically with no OAuth configuration on your end required. This guide is for self-hosted deployments where you manage your own authorization server. +**Want Arcade to handle this for you?** Use [`arcade deploy`](/build/arcade-deploy) to deploy your MCP server to Arcade. We'll secure it automatically with no OAuth configuration on your end required. This guide is for self-hosted deployments where you manage your own authorization server. Resource Server auth enables your HTTP MCP server to act as an OAuth 2.1 Protected Resource (compliant with [MCP's specification for Authorization](https://modelcontextprotocol.io/specification/2025-06-18/basic/authorization)), validating Bearer tokens on every request. This unlocks support for tool-level authorization and secrets on HTTP servers, allowing you to host secure MCP servers anywhere (local, on-premise, or third-party hosted). @@ -24,7 +24,7 @@ Add [MCP compliant OAuth 2.1 front-door authentication](https://modelcontextprot -- An existing MCP server created with `arcade new` (see [Create an MCP Server](/guides/create-tools/tool-basics/build-mcp-server)) +- An existing MCP server created with `arcade new` (see [Create an MCP Server](/build/create-tools/tool-basics/build-mcp-server)) - Understanding of [MCP Authorization](https://modelcontextprotocol.io/specification/2025-06-18/basic/authorization) - An OAuth 2.1 compliant authorization server (e.g., WorkOS AuthKit, Auth0, Descope, etc.) - Authorization server's JWKS endpoint URL @@ -480,6 +480,6 @@ AuthorizationServerEntry( ## Next Steps -- **Let Arcade secure your server instead**: [Learn about `arcade deploy`](/guides/deployment-hosting/arcade-deploy) -- **Build tools with authorization**: [Create tools that use OAuth](/guides/create-tools/tool-basics/create-tool-auth) -- **Use secrets securely**: [Create tools with secrets](/guides/create-tools/tool-basics/create-tool-secrets) +- **Let Arcade secure your server instead**: [Learn about `arcade deploy`](/build/arcade-deploy) +- **Build tools with authorization**: [Create tools that use OAuth](/build/create-tools/tool-basics/create-tool-auth) +- **Use secrets securely**: [Create tools with secrets](/build/create-tools/tool-basics/create-tool-secrets) diff --git a/app/en/guides/create-tools/tool-basics/_meta.tsx b/app/en/build/create-tools/tool-basics/_meta.tsx similarity index 100% rename from app/en/guides/create-tools/tool-basics/_meta.tsx rename to app/en/build/create-tools/tool-basics/_meta.tsx diff --git a/app/en/guides/create-tools/tool-basics/add-tool-metadata/page.mdx b/app/en/build/create-tools/tool-basics/add-tool-metadata/page.mdx similarity index 96% rename from app/en/guides/create-tools/tool-basics/add-tool-metadata/page.mdx rename to app/en/build/create-tools/tool-basics/add-tool-metadata/page.mdx index 19725e770..8e72c666d 100644 --- a/app/en/guides/create-tools/tool-basics/add-tool-metadata/page.mdx +++ b/app/en/build/create-tools/tool-basics/add-tool-metadata/page.mdx @@ -16,7 +16,7 @@ Annotate your tools with structured metadata so that MCP clients, policy engines -- [An MCP Server](/guides/create-tools/tool-basics/build-mcp-server) +- [An MCP Server](/build/create-tools/tool-basics/build-mcp-server) @@ -230,6 +230,6 @@ Only set `strict=False` when you understand and accept the apparent contradictio ## Next steps -- [Organize your MCP server and tools](/guides/create-tools/tool-basics/organize-mcp-tools) -- Structure your project as it grows -- [Evaluate your tools](/guides/create-tools/evaluate-tools) -- Test tool reliability and performance -- [Handle errors](/guides/create-tools/error-handling) -- Return useful errors from your tools +- [Organize your MCP server and tools](/build/create-tools/tool-basics/organize-mcp-tools) -- Structure your project as it grows +- [Evaluate your tools](/build/create-tools/evaluate-tools) -- Test tool reliability and performance +- [Handle errors](/build/create-tools/error-handling) -- Return useful errors from your tools diff --git a/app/en/guides/create-tools/tool-basics/build-mcp-server/page.mdx b/app/en/build/create-tools/tool-basics/build-mcp-server/page.mdx similarity index 95% rename from app/en/guides/create-tools/tool-basics/build-mcp-server/page.mdx rename to app/en/build/create-tools/tool-basics/build-mcp-server/page.mdx index 3d31e63a3..a49efc26c 100644 --- a/app/en/guides/create-tools/tool-basics/build-mcp-server/page.mdx +++ b/app/en/build/create-tools/tool-basics/build-mcp-server/page.mdx @@ -248,7 +248,7 @@ uv run server.py stdio a subprocess. Because of this, the server may run in a different environment and not have access to secrets defined in your local `.env` file. Please refer to the [create a tool with - secrets](/guides/create-tools/tool-basics/create-tool-secrets) guide for more + secrets](/build/create-tools/tool-basics/create-tool-secrets) guide for more information. @@ -268,8 +268,8 @@ For HTTP transport, view your server's API docs at [http://127.0.0.1:8000/docs]( API key and secrets in your MCP connection settings. Otherwise, if you intend to expose your HTTP MCP server to the public internet with tool-level authorization and secrets, please follow the [deploying to the cloud with - Arcade Deploy](/guides/deployment-hosting/arcade-deploy) guide or the [on-prem MCP - server](/guides/deployment-hosting/on-prem) guide for secure remote deployment. + Arcade Deploy](/build/arcade-deploy) guide or the [on-prem MCP + server](/operate/deployment/on-prem) guide for secure remote deployment. @@ -342,8 +342,8 @@ That's it! Your MCP server is running and connected to your AI assistant. ### Next steps -- **Create custom tools that use auth**: [Learn how to create tools with authorization](/guides/create-tools/tool-basics/create-tool-auth) -- **Create custom tools that use secrets**: [Learn how to create tools with secrets](/guides/create-tools/tool-basics/create-tool-secrets) -- **Learn the capabilities of the `Context` object**: [Understanding the Context object](/guides/create-tools/tool-basics/runtime-data-access) -- **Evaluate your tools**: [Explore how to evaluate tool performance](/guides/create-tools/evaluate-tools/why-evaluate) -- **Deploy your MCP server**: [Learn how to deploy your MCP server](/guides/deployment-hosting/arcade-deploy) +- **Create custom tools that use auth**: [Learn how to create tools with authorization](/build/create-tools/tool-basics/create-tool-auth) +- **Create custom tools that use secrets**: [Learn how to create tools with secrets](/build/create-tools/tool-basics/create-tool-secrets) +- **Learn the capabilities of the `Context` object**: [Understanding the Context object](/build/create-tools/tool-basics/runtime-data-access) +- **Evaluate your tools**: [Explore how to evaluate tool performance](/build/create-tools/evaluate-tools/why-evaluate) +- **Deploy your MCP server**: [Learn how to deploy your MCP server](/build/arcade-deploy) diff --git a/app/en/guides/create-tools/tool-basics/call-tools-mcp/page.mdx b/app/en/build/create-tools/tool-basics/call-tools-mcp/page.mdx similarity index 98% rename from app/en/guides/create-tools/tool-basics/call-tools-mcp/page.mdx rename to app/en/build/create-tools/tool-basics/call-tools-mcp/page.mdx index dc0fdbe09..bc1be3709 100644 --- a/app/en/guides/create-tools/tool-basics/call-tools-mcp/page.mdx +++ b/app/en/build/create-tools/tool-basics/call-tools-mcp/page.mdx @@ -18,7 +18,7 @@ Configure your MCP clients to call tools from your MCP server. - - [Arcade CLI](/references/arcade-cli) -- [An MCP Server](/guides/create-tools/tool-basics/build-mcp-server) +- [An MCP Server](/build/create-tools/tool-basics/build-mcp-server) - [uv package manager](https://docs.astral.sh/uv/getting-started/installation/) @@ -329,7 +329,7 @@ Then, your MCP client's configuration file should look like this: should use the stdio transport and configure the Arcade API key and secrets in your MCP connection settings. If you intend to expose your HTTP MCP server to the public internet, please follow the [on-prem MCP - server](/guides/deployment-hosting/on-prem) guide for secure remote deployment. + server](/operate/deployment/on-prem) guide for secure remote deployment. diff --git a/app/en/guides/create-tools/tool-basics/compare-server-types/page.mdx b/app/en/build/create-tools/tool-basics/compare-server-types/page.mdx similarity index 100% rename from app/en/guides/create-tools/tool-basics/compare-server-types/page.mdx rename to app/en/build/create-tools/tool-basics/compare-server-types/page.mdx diff --git a/app/en/guides/create-tools/tool-basics/create-tool-auth/page.mdx b/app/en/build/create-tools/tool-basics/create-tool-auth/page.mdx similarity index 97% rename from app/en/guides/create-tools/tool-basics/create-tool-auth/page.mdx rename to app/en/build/create-tools/tool-basics/create-tool-auth/page.mdx index 995919d2d..a3ffbb1d4 100644 --- a/app/en/guides/create-tools/tool-basics/create-tool-auth/page.mdx +++ b/app/en/build/create-tools/tool-basics/create-tool-auth/page.mdx @@ -18,7 +18,7 @@ Create and use an MCP tool that requires OAuth to access Reddit, prompting users - - [uv package manager](https://docs.astral.sh/uv/getting-started/installation/) -- [Create an MCP Server](/guides/create-tools/tool-basics/build-mcp-server) +- [Create an MCP Server](/build/create-tools/tool-basics/build-mcp-server) @@ -42,7 +42,7 @@ When you create a tool with `requires_auth`, you specify which provider to use. 2. If the tool's requirements are not met, Arcade initiates the provider-specific OAuth flow for the requested scopes. > 2a). The user is presented with a URL to complete the OAuth challenge. The user will need to visit this URL and log in and explicitly grant consent for the action to be performed on their behalf. This is the "OAuth challenge". - > 2b). The provider issues the token, and Arcade will securely inject it into the tool's [`Context`](/guides/create-tools/tool-basics/runtime-data-access) on its next invocation. The client and the LLM will never see the token. + > 2b). The provider issues the token, and Arcade will securely inject it into the tool's [`Context`](/build/create-tools/tool-basics/runtime-data-access) on its next invocation. The client and the LLM will never see the token. > 2c). The tool needs to be re-invoked - this time its requirements will be met. 3. The tool is executed, and uses the token injected into its `Context` to call the provider's API (e.g., `https://oauth.reddit.com`), without the LLM or client ever seeing the token. @@ -274,7 +274,7 @@ async with httpx.AsyncClient() as client: - Try adding more authorized tools - Explore how to handle different authorization providers and scopes -- Learn how to [build a tool with secrets](/guides/create-tools/tool-basics/create-tool-secrets) +- Learn how to [build a tool with secrets](/build/create-tools/tool-basics/create-tool-secrets) ## Example Code diff --git a/app/en/guides/create-tools/tool-basics/create-tool-secrets/page.mdx b/app/en/build/create-tools/tool-basics/create-tool-secrets/page.mdx similarity index 96% rename from app/en/guides/create-tools/tool-basics/create-tool-secrets/page.mdx rename to app/en/build/create-tools/tool-basics/create-tool-secrets/page.mdx index 337ff0a2b..40dfa9bd5 100644 --- a/app/en/guides/create-tools/tool-basics/create-tool-secrets/page.mdx +++ b/app/en/build/create-tools/tool-basics/create-tool-secrets/page.mdx @@ -18,7 +18,7 @@ Build an MCP tool that can read a secret from Context and return a masked confir - - [Arcade CLI](/get-started/quickstarts/call-tool-agent) -- [An MCP Server](/guides/create-tools/tool-basics/build-mcp-server) +- [An MCP Server](/build/create-tools/tool-basics/build-mcp-server) - [uv package manager](https://docs.astral.sh/uv/getting-started/installation/) @@ -195,7 +195,7 @@ Note that the specific key name may vary depending on the MCP client you are usi credentials, etc, and not to simply print a confirmation string. -In your [MCP Server](/guides/create-tools/tool-basics/build-mcp-server), create a new tool that uses the secret: +In your [MCP Server](/build/create-tools/tool-basics/build-mcp-server), create a new tool that uses the secret: - Use the `requires_secrets` parameter to declare which secrets your tool needs (`"SECRET_KEY"` in this example). - The tool's Context object has a `get_secret` method that you can use to access the secret value. @@ -312,8 +312,8 @@ For HTTP transport, view your server's API docs at [http://127.0.0.1:8000/docs]( authorization and secrets. If you need to use tool-level authorization or secrets locally, you should use the stdio transport and configure the Arcade API key and secrets in your MCP connection settings. Otherwise, if you intend to expose your HTTP MCP server to - the public internet with tool-level authorization and secrets, please follow the [deploying to the cloud with Arcade Deploy](/guides/deployment-hosting/arcade-deploy) guide or the [on-prem MCP - server](/guides/deployment-hosting/on-prem) guide for secure remote deployment. + the public internet with tool-level authorization and secrets, please follow the [deploying to the cloud with Arcade Deploy](/build/arcade-deploy) guide or the [on-prem MCP + server](/operate/deployment/on-prem) guide for secure remote deployment. diff --git a/app/en/guides/create-tools/tool-basics/organize-mcp-tools/page.mdx b/app/en/build/create-tools/tool-basics/organize-mcp-tools/page.mdx similarity index 98% rename from app/en/guides/create-tools/tool-basics/organize-mcp-tools/page.mdx rename to app/en/build/create-tools/tool-basics/organize-mcp-tools/page.mdx index 8eef9d1a8..6f853bcc3 100644 --- a/app/en/guides/create-tools/tool-basics/organize-mcp-tools/page.mdx +++ b/app/en/build/create-tools/tool-basics/organize-mcp-tools/page.mdx @@ -17,7 +17,7 @@ Learn best practices for organizing your MCP server and tools, how to import too - -- [An MCP Server](/guides/create-tools/tool-basics/build-mcp-server) +- [An MCP Server](/build/create-tools/tool-basics/build-mcp-server) - [uv package manager](https://docs.astral.sh/uv/getting-started/installation/) diff --git a/app/en/guides/create-tools/tool-basics/page.mdx b/app/en/build/create-tools/tool-basics/page.mdx similarity index 90% rename from app/en/guides/create-tools/tool-basics/page.mdx rename to app/en/build/create-tools/tool-basics/page.mdx index a9364a8c3..50e5153ae 100644 --- a/app/en/guides/create-tools/tool-basics/page.mdx +++ b/app/en/build/create-tools/tool-basics/page.mdx @@ -12,4 +12,4 @@ Learn how to create custom tools that extend AI agents with powerful capabilitie 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/create-tools/tool-basics/runtime-data-access/page.mdx b/app/en/build/create-tools/tool-basics/runtime-data-access/page.mdx similarity index 98% rename from app/en/guides/create-tools/tool-basics/runtime-data-access/page.mdx rename to app/en/build/create-tools/tool-basics/runtime-data-access/page.mdx index 61d1e01f8..575daf674 100644 --- a/app/en/guides/create-tools/tool-basics/runtime-data-access/page.mdx +++ b/app/en/build/create-tools/tool-basics/runtime-data-access/page.mdx @@ -292,5 +292,5 @@ For HTTP transport, view your server's API docs at [http://127.0.0.1:8000/docs]( ### Next Steps -- [Build a custom tool that requires user authorization](/guides/create-tools/tool-basics/create-tool-auth) -- [Build a custom tool with secrets](/guides/create-tools/tool-basics/create-tool-secrets) +- [Build a custom tool that requires user authorization](/build/create-tools/tool-basics/create-tool-auth) +- [Build a custom tool with secrets](/build/create-tools/tool-basics/create-tool-secrets) diff --git a/app/en/build/page.mdx b/app/en/build/page.mdx new file mode 100644 index 000000000..c230cd50b --- /dev/null +++ b/app/en/build/page.mdx @@ -0,0 +1,42 @@ +--- +title: "Build with Arcade" +description: "Guides for agent developers: call tools, create MCP servers, and ship user-facing agents" +--- + +import { Cards } from "nextra/components"; + +# Build with Arcade + +These guides are for **agent developers**: people who call Arcade tools from agents, build custom MCP servers, or ship user-facing agents. + +If you deploy and govern Arcade for a company, go to [Operate](/operate). + +## Start here + + + + + + + + +## Ship to production + + + + + + +Arcade Deploy hosts *your* MCP server on Arcade Cloud. To deploy the Arcade platform itself, see [Operate → Deployment](/operate/deployment). diff --git a/app/en/guides/tool-calling/_meta.tsx b/app/en/build/tool-calling/_meta.tsx similarity index 100% rename from app/en/guides/tool-calling/_meta.tsx rename to app/en/build/tool-calling/_meta.tsx diff --git a/app/en/guides/tool-calling/call-third-party-apis/page.mdx b/app/en/build/tool-calling/call-third-party-apis/page.mdx similarity index 100% rename from app/en/guides/tool-calling/call-third-party-apis/page.mdx rename to app/en/build/tool-calling/call-third-party-apis/page.mdx diff --git a/app/en/guides/tool-calling/custom-apps/_meta.tsx b/app/en/build/tool-calling/custom-apps/_meta.tsx similarity index 100% rename from app/en/guides/tool-calling/custom-apps/_meta.tsx rename to app/en/build/tool-calling/custom-apps/_meta.tsx diff --git a/app/en/guides/tool-calling/custom-apps/auth-tool-calling/page.mdx b/app/en/build/tool-calling/custom-apps/auth-tool-calling/page.mdx similarity index 96% rename from app/en/guides/tool-calling/custom-apps/auth-tool-calling/page.mdx rename to app/en/build/tool-calling/custom-apps/auth-tool-calling/page.mdx index feb6dfb7c..a86d91827 100644 --- a/app/en/guides/tool-calling/custom-apps/auth-tool-calling/page.mdx +++ b/app/en/build/tool-calling/custom-apps/auth-tool-calling/page.mdx @@ -158,6 +158,6 @@ These APIs give you programmatic control over tool calling. ### Next steps -Arcade also allows you to [build your own tools](/guides/create-tools/tool-basics/build-mcp-server) to integrate any custom functionality or API to your Agent or AI workflows. +Arcade also allows you to [build your own tools](/build/create-tools/tool-basics/build-mcp-server) to integrate any custom functionality or API to your Agent or AI workflows. Your tools can use the [service providers supported by Arcade](/references/auth-providers) or you can integrate with any [OAuth2-compatible service](/references/auth-providers/oauth2). diff --git a/app/en/guides/tool-calling/custom-apps/check-auth-status/page.mdx b/app/en/build/tool-calling/custom-apps/check-auth-status/page.mdx similarity index 100% rename from app/en/guides/tool-calling/custom-apps/check-auth-status/page.mdx rename to app/en/build/tool-calling/custom-apps/check-auth-status/page.mdx diff --git a/app/en/guides/tool-calling/custom-apps/get-tool-definitions/page.mdx b/app/en/build/tool-calling/custom-apps/get-tool-definitions/page.mdx similarity index 100% rename from app/en/guides/tool-calling/custom-apps/get-tool-definitions/page.mdx rename to app/en/build/tool-calling/custom-apps/get-tool-definitions/page.mdx diff --git a/app/en/guides/tool-calling/custom-apps/page.mdx b/app/en/build/tool-calling/custom-apps/page.mdx similarity index 91% rename from app/en/guides/tool-calling/custom-apps/page.mdx rename to app/en/build/tool-calling/custom-apps/page.mdx index e7d00daac..9af1e72c1 100644 --- a/app/en/guides/tool-calling/custom-apps/page.mdx +++ b/app/en/build/tool-calling/custom-apps/page.mdx @@ -12,4 +12,4 @@ Learn how to integrate Arcade tools into your custom applications. Use these gui 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 + \ No newline at end of file diff --git a/app/en/guides/tool-calling/error-handling/page.mdx b/app/en/build/tool-calling/error-handling/page.mdx similarity index 99% rename from app/en/guides/tool-calling/error-handling/page.mdx rename to app/en/build/tool-calling/error-handling/page.mdx index 2faf975c2..0b0a7dfd3 100644 --- a/app/en/guides/tool-calling/error-handling/page.mdx +++ b/app/en/build/tool-calling/error-handling/page.mdx @@ -279,4 +279,4 @@ As of now, MCP Clients do not return structured error information, only an error ## Building tools with error handling -To learn more about how to build tools with error handling, see the [Build Tools](/guides/create-tools/error-handling/useful-tool-errors) section. +To learn more about how to build tools with error handling, see the [Build Tools](/build/create-tools/error-handling/useful-tool-errors) section. diff --git a/app/en/guides/tool-calling/page.mdx b/app/en/build/tool-calling/page.mdx similarity index 98% rename from app/en/guides/tool-calling/page.mdx rename to app/en/build/tool-calling/page.mdx index 9e349fb11..76c0631c5 100644 --- a/app/en/guides/tool-calling/page.mdx +++ b/app/en/build/tool-calling/page.mdx @@ -94,4 +94,4 @@ This process shows the general outline of the Tool Augmented Generation (TAG) pr ### Next steps - Explore the [MCP Servers](/resources/integrations) available on Arcade -- Build your own [custom MCP Server](/guides/create-tools/tool-basics/build-mcp-server) +- Build your own [custom MCP Server](/build/create-tools/tool-basics/build-mcp-server) diff --git a/app/en/build/user-facing-agents/_meta.tsx b/app/en/build/user-facing-agents/_meta.tsx new file mode 100644 index 000000000..1aba99b82 --- /dev/null +++ b/app/en/build/user-facing-agents/_meta.tsx @@ -0,0 +1,9 @@ +import type { MetaRecord } from "nextra"; + +export const meta: MetaRecord = { + "secure-auth-production": { + title: "Secure auth in production", + }, +}; + +export default meta; diff --git a/app/en/guides/user-facing-agents/secure-auth-production/page.mdx b/app/en/build/user-facing-agents/secure-auth-production/page.mdx similarity index 100% rename from app/en/guides/user-facing-agents/secure-auth-production/page.mdx rename to app/en/build/user-facing-agents/secure-auth-production/page.mdx diff --git a/app/en/get-started/about-arcade/page.mdx b/app/en/get-started/about-arcade/page.mdx index 633bd4fe0..f7764011a 100644 --- a/app/en/get-started/about-arcade/page.mdx +++ b/app/en/get-started/about-arcade/page.mdx @@ -16,6 +16,11 @@ Arcade is the enterprise-ready actions runtime for AI agents. An agent isn't an Configure once and use any model, framework, and client. Deploy the first agent the same way you deploy the hundredth. +## Who these docs are for + +- **Agent developers**: call tools from agents, connect MCP clients, or build custom MCP servers. Continue with [Get Started](/get-started/quickstarts/call-tool-agent) and [Build](/build). +- **Platform operators**: deploy Arcade, connect identity providers, and govern tool access for an organization. Start with [Operate](/operate). + The rest of this page focuses on the first pillar — **agent authorization** — which is where most agentic applications hit their first wall. ## Why agent authorization matters @@ -63,7 +68,7 @@ When an agent calls a tool, if the user has not granted the required permissions ## How to implement OAuth 2.0-authorized tool calling -To learn how Arcade authorizes actions (tools) through OAuth 2.0 and how to implement auth flow, check out [Authorized Tool Calling](/guides/tool-calling/custom-apps/auth-tool-calling). +To learn how Arcade authorizes actions (tools) through OAuth 2.0 and how to implement auth flow, check out [Authorized Tool Calling](/build/tool-calling/custom-apps/auth-tool-calling). ## Tools that don't require authorization diff --git a/app/en/get-started/agent-frameworks/copilotkit/page.mdx b/app/en/get-started/agent-frameworks/copilotkit/page.mdx index 89cc36cf9..4158c7039 100644 --- a/app/en/get-started/agent-frameworks/copilotkit/page.mdx +++ b/app/en/get-started/agent-frameworks/copilotkit/page.mdx @@ -493,7 +493,7 @@ Find the latest news on open-source AI agents and email me a 3-bullet summary. - **Scale from three tools to thousands**: Instead of hand-writing a `defineTool` per tool, pull formatted tool definitions from Arcade and generate the wrappers. - **Building a multi-user app?** This guide uses a single `ARCADE_USER_ID` for local testing. For production apps where each user needs their own OAuth tokens, see [Secure auth for production](/guides/user-facing-agents/secure-auth-production) to learn how to resolve the Arcade `user_id` per request from a server-verified session and authenticate the runtime. + **Building a multi-user app?** This guide uses a single `ARCADE_USER_ID` for local testing. For production apps where each user needs their own OAuth tokens, see [Secure auth for production](/build/user-facing-agents/secure-auth-production) to learn how to resolve the Arcade `user_id` per request from a server-verified session and authenticate the runtime. ## Complete code diff --git a/app/en/get-started/agent-frameworks/google-adk/setup-typescript/page.mdx b/app/en/get-started/agent-frameworks/google-adk/setup-typescript/page.mdx index a1cd9e664..8cc1b03e0 100644 --- a/app/en/get-started/agent-frameworks/google-adk/setup-typescript/page.mdx +++ b/app/en/get-started/agent-frameworks/google-adk/setup-typescript/page.mdx @@ -494,4 +494,4 @@ main().catch(console.error); - Add more tools by modifying `MCP_SERVERS` and `INDIVIDUAL_TOOLS` - Build multi-agent systems with different Arcade tools -- Explore [creating custom tools](/guides/create-tools/tool-basics/build-mcp-server) with the Arcade Tool SDK +- Explore [creating custom tools](/build/create-tools/tool-basics/build-mcp-server) with the Arcade Tool SDK diff --git a/app/en/get-started/agent-frameworks/mastra/page.mdx b/app/en/get-started/agent-frameworks/mastra/page.mdx index f094e32d0..f3d2fbe34 100644 --- a/app/en/get-started/agent-frameworks/mastra/page.mdx +++ b/app/en/get-started/agent-frameworks/mastra/page.mdx @@ -630,7 +630,7 @@ export const mastra = new Mastra({ - **Deploy to production**: Follow Mastra's [deployment guides](https://mastra.ai/docs/deployment/overview) to deploy your agent and workflows. - **Building a multi-user app?** This tutorial uses a single `ARCADE_USER_ID` for simplicity. For production apps where each user needs their own OAuth tokens, see [Secure auth for production](/guides/user-facing-agents/secure-auth-production) to learn how to dynamically pass user IDs and handle per-user authorization. + **Building a multi-user app?** This tutorial uses a single `ARCADE_USER_ID` for simplicity. For production apps where each user needs their own OAuth tokens, see [Secure auth for production](/build/user-facing-agents/secure-auth-production) to learn how to dynamically pass user IDs and handle per-user authorization. ## Complete code diff --git a/app/en/get-started/agent-frameworks/openai-agents/setup-typescript/page.mdx b/app/en/get-started/agent-frameworks/openai-agents/setup-typescript/page.mdx index 03e4d2978..e4bffad50 100644 --- a/app/en/get-started/agent-frameworks/openai-agents/setup-typescript/page.mdx +++ b/app/en/get-started/agent-frameworks/openai-agents/setup-typescript/page.mdx @@ -396,4 +396,4 @@ main().catch(console.error); - Add more tools by modifying `MCP_SERVERS` and `INDIVIDUAL_TOOLS` - Build a web interface using frameworks like Next.js or Express - See the [Vercel AI SDK tutorial](/get-started/agent-frameworks/vercelai) or [TanStack AI tutorial](/get-started/agent-frameworks/tanstack-ai) for complete web chatbot examples -- Explore [creating custom tools](/guides/create-tools/tool-basics/build-mcp-server) with the Arcade Tool SDK +- Explore [creating custom tools](/build/create-tools/tool-basics/build-mcp-server) with the Arcade Tool SDK diff --git a/app/en/get-started/agent-frameworks/setup-arcade-with-your-llm-python/page.mdx b/app/en/get-started/agent-frameworks/setup-arcade-with-your-llm-python/page.mdx index 6365c3c38..48638e64d 100644 --- a/app/en/get-started/agent-frameworks/setup-arcade-with-your-llm-python/page.mdx +++ b/app/en/get-started/agent-frameworks/setup-arcade-with-your-llm-python/page.mdx @@ -106,7 +106,7 @@ OPENROUTER_MODEL=YOUR_OPENROUTER_MODEL The `ARCADE_USER_ID` is the email address you used to sign up for Arcade. When your app is ready for production, you can set this dynamically based on your app's auth system. Learn more about how to achieve secure auth in production - [here](/guides/user-facing-agents/secure-auth-production). + [here](/build/user-facing-agents/secure-auth-production). @@ -330,7 +330,7 @@ With the selection of tools above, you should be able to get the agent to effect ## Next Steps - Learn more about using Arcade with a [framework](/get-started/agent-frameworks) or [MCP client](/get-started/mcp-clients). -- Learn more about how to [build your own MCP Servers](/guides/create-tools/tool-basics/build-mcp-server). +- Learn more about how to [build your own MCP Servers](/build/create-tools/tool-basics/build-mcp-server). ## Example code diff --git a/app/en/get-started/agent-frameworks/springai/page.mdx b/app/en/get-started/agent-frameworks/springai/page.mdx index bd8c95731..54e279f0c 100644 --- a/app/en/get-started/agent-frameworks/springai/page.mdx +++ b/app/en/get-started/agent-frameworks/springai/page.mdx @@ -443,7 +443,7 @@ curl -X POST http://localhost:8080/api/chat \ ## Next steps 1. **Add more tools**: Browse the [MCP server catalog](/resources/integrations) and add `@Tool` methods for GitHub, Google Docs, Notion, and more. -2. **Add user authentication**: In production, resolve `userId` from your authentication system instead of a static configuration property. See [Secure auth in production](/guides/user-facing-agents/secure-auth-production) for best practices. +2. **Add user authentication**: In production, resolve `userId` from your authentication system instead of a static configuration property. See [Secure auth in production](/build/user-facing-agents/secure-auth-production) for best practices. 3. **Stream responses**: Replace `.call()` with `.stream()` on the `ChatClient` to stream responses using [Server-Sent Events](https://docs.spring.io/spring-ai/reference/api/chatclient.html#_streaming_responses). ## Complete code diff --git a/app/en/get-started/agent-frameworks/tanstack-ai/page.mdx b/app/en/get-started/agent-frameworks/tanstack-ai/page.mdx index 21eac6386..6c321733f 100644 --- a/app/en/get-started/agent-frameworks/tanstack-ai/page.mdx +++ b/app/en/get-started/agent-frameworks/tanstack-ai/page.mdx @@ -697,7 +697,7 @@ On first use, you'll see an authorization button. Click it to connect your Gmail 1. **Add more tools**: Browse the [MCP server catalog](/resources/integrations) and add tools for GitHub, Notion, Linear, and more. 2. **Try different providers**: Swap `@tanstack/ai-openai` for `@tanstack/ai-anthropic` or `@tanstack/ai-gemini` to use different AI models. -3. **Add user authentication**: In production, get `userId` from your auth system instead of environment variables. See [Secure your server](/guides/create-tools/secure-your-server) for best practices. +3. **Add user authentication**: In production, get `userId` from your auth system instead of environment variables. See [Secure your server](/build/create-tools/secure-your-server) for best practices. 4. **Deploy your chatbot**: TanStack Start supports deployment to Vercel, Netlify, Cloudflare, and Node.js servers. ## Complete code diff --git a/app/en/get-started/agent-frameworks/vercelai/page.mdx b/app/en/get-started/agent-frameworks/vercelai/page.mdx index 8cf3e8a77..1008a51ad 100644 --- a/app/en/get-started/agent-frameworks/vercelai/page.mdx +++ b/app/en/get-started/agent-frameworks/vercelai/page.mdx @@ -597,7 +597,7 @@ On first use, you'll see an authorization button. Click it to connect your Gmail ## Next steps 1. **Add more tools**: Browse the [MCP server catalog](/resources/integrations) and add tools for GitHub, Notion, Linear, and more. -2. **Add user authentication**: In production, get `userId` from your auth system instead of environment variables. See [Secure your server](/guides/create-tools/secure-your-server) for best practices. +2. **Add user authentication**: In production, get `userId` from your auth system instead of environment variables. See [Secure your server](/build/create-tools/secure-your-server) for best practices. 3. **Deploy to Vercel**: Push your chatbot to GitHub and [deploy to Vercel](https://vercel.com/docs/deployments/overview) with one click. Add your environment variables in the Vercel dashboard. ## Complete code diff --git a/app/en/get-started/mcp-clients/claude-code/page.mdx b/app/en/get-started/mcp-clients/claude-code/page.mdx index b468f150f..db75e5dcc 100644 --- a/app/en/get-started/mcp-clients/claude-code/page.mdx +++ b/app/en/get-started/mcp-clients/claude-code/page.mdx @@ -13,13 +13,13 @@ Connect Claude Code to an Arcade MCP Gateway. 1. Create an Arcade account -2. Create an [Arcade MCP Gateway](/guides/mcp-gateways) and select the tools you want to use +2. Create an [Arcade MCP Gateway](/operate/mcp-gateways) and select the tools you want to use - **Production end users with their own identities?** If your end users already sign in to Entra ID, Okta, Auth0, Clerk, or another OIDC provider, configure a [User Source](/guides/user-sources) on your gateway. Arcade redirects each end user to your identity provider on sign-in and identifies them by an OIDC subject claim. + **Production end users with their own identities?** If your end users already sign in to Entra ID, Okta, Auth0, Clerk, or another OIDC provider, configure a [User Source](/operate/user-sources) on your gateway. Arcade redirects each end user to your identity provider on sign-in and identifies them by an OIDC subject claim. diff --git a/app/en/get-started/mcp-clients/claude-desktop/page.mdx b/app/en/get-started/mcp-clients/claude-desktop/page.mdx index 1772d4a22..5ceb88924 100644 --- a/app/en/get-started/mcp-clients/claude-desktop/page.mdx +++ b/app/en/get-started/mcp-clients/claude-desktop/page.mdx @@ -45,7 +45,7 @@ Connect Claude Desktop to an Arcade MCP Gateway. 1. Create an Arcade account 2. Get an [Arcade API key](/get-started/setup/api-keys) -3. Create an [Arcade MCP Gateway](/guides/mcp-gateways) and select the tools you want to use +3. Create an [Arcade MCP Gateway](/operate/mcp-gateways) and select the tools you want to use @@ -58,7 +58,7 @@ Connect Claude Desktop to an Arcade MCP Gateway. - **Production end users with their own identities?** If your end users already sign in to Entra ID, Okta, Auth0, Clerk, or another OIDC provider, configure a [User Source](/guides/user-sources) on your gateway. Arcade redirects each end user to your identity provider on sign-in and identifies them by an OIDC subject claim. + **Production end users with their own identities?** If your end users already sign in to Entra ID, Okta, Auth0, Clerk, or another OIDC provider, configure a [User Source](/operate/user-sources) on your gateway. Arcade redirects each end user to your identity provider on sign-in and identifies them by an OIDC subject claim. diff --git a/app/en/get-started/mcp-clients/copilot-studio/page.mdx b/app/en/get-started/mcp-clients/copilot-studio/page.mdx index 9cb49386e..cbc571fe4 100644 --- a/app/en/get-started/mcp-clients/copilot-studio/page.mdx +++ b/app/en/get-started/mcp-clients/copilot-studio/page.mdx @@ -26,14 +26,14 @@ Connect Microsoft Copilot Studio to an Arcade MCP Gateway. 1. A Microsoft 365 subscription with access to Copilot Studio 2. Create an Arcade account 3. Get an [Arcade API key](/get-started/setup/api-keys) -4. Create an [Arcade MCP Gateway](/guides/mcp-gateways) and select the tools you want to use +4. Create an [Arcade MCP Gateway](/operate/mcp-gateways) and select the tools you want to use - **Production end users with their own identities?** If your end users already sign in to Entra ID, Okta, Auth0, Clerk, or another OIDC provider, configure a [User Source](/guides/user-sources) on your gateway. Arcade redirects each end user to your identity provider on sign-in and identifies them by an OIDC subject claim. + **Production end users with their own identities?** If your end users already sign in to Entra ID, Okta, Auth0, Clerk, or another OIDC provider, configure a [User Source](/operate/user-sources) on your gateway. Arcade redirects each end user to your identity provider on sign-in and identifies them by an OIDC subject claim. diff --git a/app/en/get-started/mcp-clients/cursor/page.mdx b/app/en/get-started/mcp-clients/cursor/page.mdx index 3669b58fe..1d170b727 100644 --- a/app/en/get-started/mcp-clients/cursor/page.mdx +++ b/app/en/get-started/mcp-clients/cursor/page.mdx @@ -14,7 +14,7 @@ Connect Cursor to an Arcade MCP Gateway. 1. Create an Arcade account 2. Get an [Arcade API key](/get-started/setup/api-keys) -3. Create an [Arcade MCP Gateway](/guides/mcp-gateways) and select the tools you want to use +3. Create an [Arcade MCP Gateway](/operate/mcp-gateways) and select the tools you want to use @@ -27,7 +27,7 @@ Connect Cursor to an Arcade MCP Gateway. - **Production end users with their own identities?** If your end users already sign in to Entra ID, Okta, Auth0, Clerk, or another OIDC provider, configure a [User Source](/guides/user-sources) on your gateway. Arcade redirects each end user to your identity provider on sign-in and identifies them by an OIDC subject claim. + **Production end users with their own identities?** If your end users already sign in to Entra ID, Okta, Auth0, Clerk, or another OIDC provider, configure a [User Source](/operate/user-sources) on your gateway. Arcade redirects each end user to your identity provider on sign-in and identifies them by an OIDC subject claim. ### Set up Cursor diff --git a/app/en/get-started/mcp-clients/github-copilot/page.mdx b/app/en/get-started/mcp-clients/github-copilot/page.mdx index bc1b7a47d..cd70cb56c 100644 --- a/app/en/get-started/mcp-clients/github-copilot/page.mdx +++ b/app/en/get-started/mcp-clients/github-copilot/page.mdx @@ -31,14 +31,14 @@ Connect GitHub Copilot to an Arcade MCP Gateway. 1. Create an Arcade account 2. Get an [Arcade API key](/get-started/setup/api-keys) -3. Create an [Arcade MCP Gateway](/guides/mcp-gateways) and select the tools you want to use +3. Create an [Arcade MCP Gateway](/operate/mcp-gateways) and select the tools you want to use - **Production end users with their own identities?** If your end users already sign in to Entra ID, Okta, Auth0, Clerk, or another OIDC provider, configure a [User Source](/guides/user-sources) on your gateway. Arcade redirects each end user to your identity provider on sign-in and identifies them by an OIDC subject claim. + **Production end users with their own identities?** If your end users already sign in to Entra ID, Okta, Auth0, Clerk, or another OIDC provider, configure a [User Source](/operate/user-sources) on your gateway. Arcade redirects each end user to your identity provider on sign-in and identifies them by an OIDC subject claim. ### Set up GitHub Copilot diff --git a/app/en/get-started/mcp-clients/visual-studio-code/page.mdx b/app/en/get-started/mcp-clients/visual-studio-code/page.mdx index 8ceac60f0..d1116db31 100644 --- a/app/en/get-started/mcp-clients/visual-studio-code/page.mdx +++ b/app/en/get-started/mcp-clients/visual-studio-code/page.mdx @@ -6,7 +6,7 @@ import { SignupLink } from "@/app/_components/analytics"; In this guide, you'll learn how to connect Visual Studio Code to an Arcade MCP Gateway. - **Production end users with their own identities?** If your end users already sign in to Entra ID, Okta, Auth0, Clerk, or another OIDC provider, configure a [User Source](/guides/user-sources) on your gateway. Arcade redirects each end user to your identity provider on sign-in and identifies them by an OIDC subject claim. + **Production end users with their own identities?** If your end users already sign in to Entra ID, Okta, Auth0, Clerk, or another OIDC provider, configure a [User Source](/operate/user-sources) on your gateway. Arcade redirects each end user to your identity provider on sign-in and identifies them by an OIDC subject claim. @@ -14,7 +14,7 @@ In this guide, you'll learn how to connect Visual Studio Code to an Arcade MCP G ### Prerequisites 1. Create an Arcade account -2. Create an [Arcade MCP Gateway](/guides/mcp-gateways) and select the tools you want to use +2. Create an [Arcade MCP Gateway](/operate/mcp-gateways) and select the tools you want to use ### Set up Visual Studio Code diff --git a/app/en/get-started/quickstarts/call-tool-agent/page.mdx b/app/en/get-started/quickstarts/call-tool-agent/page.mdx index 119b6cd21..dbcab0061 100644 --- a/app/en/get-started/quickstarts/call-tool-agent/page.mdx +++ b/app/en/get-started/quickstarts/call-tool-agent/page.mdx @@ -539,7 +539,7 @@ logger.info( ## Next Steps -In this example, we call the tool methods directly. In your real applications and agents, you'll likely be letting the LLM decide which tools to call. Learn more about using Arcade with Frameworks in the [Frameworks](/get-started/agent-frameworks) section, or [how to build your own tools](/guides/create-tools/tool-basics/build-mcp-server). +In this example, we call the tool methods directly. In your real applications and agents, you'll likely be letting the LLM decide which tools to call. Learn more about using Arcade with Frameworks in the [Frameworks](/get-started/agent-frameworks) section, or [how to build your own tools](/build/create-tools/tool-basics/build-mcp-server). diff --git a/app/en/get-started/quickstarts/call-tool-client/page.mdx b/app/en/get-started/quickstarts/call-tool-client/page.mdx index c4e01616f..017b25305 100644 --- a/app/en/get-started/quickstarts/call-tool-client/page.mdx +++ b/app/en/get-started/quickstarts/call-tool-client/page.mdx @@ -147,7 +147,7 @@ As you interact with the agent, it will call the tools from the MCP Gateway. You ## Next Steps -- Learn more about [MCP Gateways](/guides/mcp-gateways). +- Learn more about [MCP Gateways](/operate/mcp-gateways). - Learn how to use MCP Gateways with: - [Cursor](/get-started/mcp-clients/cursor) - [Visual Studio Code](/get-started/mcp-clients/visual-studio-code) diff --git a/app/en/get-started/quickstarts/mcp-server-quickstart/page.mdx b/app/en/get-started/quickstarts/mcp-server-quickstart/page.mdx index d05971aab..93ca6ad45 100644 --- a/app/en/get-started/quickstarts/mcp-server-quickstart/page.mdx +++ b/app/en/get-started/quickstarts/mcp-server-quickstart/page.mdx @@ -186,7 +186,7 @@ uv run server.py stdio a subprocess. Because of this, the server may run in a different environment and not have access to secrets defined in your local `.env` file. Please refer to the [create a tool with - secrets](/guides/create-tools/tool-basics/create-tool-secrets) guide for more + secrets](/build/create-tools/tool-basics/create-tool-secrets) guide for more information. @@ -206,8 +206,8 @@ For HTTP transport, view your server's API docs at [http://127.0.0.1:8000/docs]( API key and secrets in your MCP connection settings. Otherwise, if you intend to expose your HTTP MCP server to the public internet with tool-level authorization and secrets, please follow the [deploying to the cloud with - Arcade Deploy](/guides/deployment-hosting/arcade-deploy) guide or the [on-prem - MCP server](/guides/deployment-hosting/on-prem) guide for secure remote + Arcade Deploy](/build/arcade-deploy) guide or the [on-prem + MCP server](/operate/deployment/on-prem) guide for secure remote deployment. @@ -294,8 +294,8 @@ Ensure you have set the environment variable in your terminal or `.env` file, an ## Next Steps -- **Learn how to write a tool with auth**: [Create a tool with auth](/guides/create-tools/tool-basics/create-tool-auth) -- **Learn how to write a tool with secrets**: [Create a tool with secrets](/guides/create-tools/tool-basics/create-tool-secrets) -- **Learn more about the Context object**: [Tools and Context](/guides/create-tools/tool-basics/runtime-data-access) -- **Learn how to write tool evaluations**: [Create an evaluation suite](/guides/create-tools/evaluate-tools/create-evaluation-suite) to optimize them for LLM usage -- **Learn how to deploy your MCP server**: [Deploy your MCP server](/guides/deployment-hosting/arcade-deploy) +- **Learn how to write a tool with auth**: [Create a tool with auth](/build/create-tools/tool-basics/create-tool-auth) +- **Learn how to write a tool with secrets**: [Create a tool with secrets](/build/create-tools/tool-basics/create-tool-secrets) +- **Learn more about the Context object**: [Tools and Context](/build/create-tools/tool-basics/runtime-data-access) +- **Learn how to write tool evaluations**: [Create an evaluation suite](/build/create-tools/evaluate-tools/create-evaluation-suite) to optimize them for LLM usage +- **Learn how to deploy your MCP server**: [Deploy your MCP server](/build/arcade-deploy) diff --git a/app/en/get-started/setup/api-keys/page.mdx b/app/en/get-started/setup/api-keys/page.mdx index c995e9dd6..88132cea6 100644 --- a/app/en/get-started/setup/api-keys/page.mdx +++ b/app/en/get-started/setup/api-keys/page.mdx @@ -107,4 +107,4 @@ The CLI will automatically: Once you have your API key, you can: - [Start using tools](/get-started/quickstarts/call-tool-agent) -- [Create custom tools](/guides/create-tools/tool-basics/build-mcp-server) +- [Create custom tools](/build/create-tools/tool-basics/build-mcp-server) diff --git a/app/en/guides/deployment-hosting/page.mdx b/app/en/guides/deployment-hosting/page.mdx deleted file mode 100644 index 7d40a5e54..000000000 --- a/app/en/guides/deployment-hosting/page.mdx +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: "Overview" -description: "Learn about the different ways to host and deploy Arcade" ---- - -import { Callout } from "nextra/components"; - -# Hosting options overview - -There are two ways to run Arcade: use **Arcade Cloud**, our fully-managed service, or **run Arcade in your own infrastructure**. This page helps you choose and points you to the right guide. - -## Arcade Cloud - -[Arcade Cloud](https://api.arcade.dev) is the easiest way to start — sign up and build immediately, with no infrastructure to manage: - -- **Zero infrastructure**: no servers or databases to run -- **Automatic updates**: always on the latest tools and features -- **Built-in scaling**: handles traffic spikes for you -- **Free tier**: start building without a credit card - -See [Arcade Cloud infrastructure](/guides/deployment-hosting/arcade-cloud) for data residency, storage, and security details. - -## Run Arcade in your own infrastructure - -Deploy the full Arcade platform into your own cloud account or cluster when you need data residency, network isolation, or to meet compliance requirements. There are two paths. - -### Cloud marketplaces (recommended) - -Deploy a turnkey, Arcade-operated platform into your own cloud account: - -- [**Azure Marketplace**](/guides/deployment-hosting/azure) — available now as a managed application -- [**AWS**](/guides/deployment-hosting/aws) — available through a private offer -- [**GCP**](/guides/deployment-hosting/gcp) — coming soon - -### Self-host with Helm - -Prefer to run it yourself? [Deploy the platform with Helm](/guides/deployment-hosting/helm) on your own Kubernetes cluster and manage it end to end. - - -The marketplace and Helm options are **full platform deployments**. The features below run *on top of* Arcade — they aren't ways to stand up the platform. - - -## Related features - -These connect your tools and clients to Arcade. They are not platform deployments: - -- [**Arcade Deploy**](/guides/deployment-hosting/arcade-deploy) — host *your* MCP server on Arcade Cloud with the `arcade deploy` command. -- [**Hybrid MCP servers**](/guides/deployment-hosting/on-prem) — run MCP servers in your own environment and connect them to Arcade Cloud, so tools reach private resources. -- [**Warp Pipes**](/guides/deployment-hosting/warp-pipes) — connect external AI clients to a self-hosted Arcade runtime without opening inbound ports. - -## Customizing auth - -You don't have to self-host to customize your auth experience. Arcade Cloud supports many [auth providers](/references/auth-providers) out of the box, and you can supply your own OAuth app credentials to brand the end-user experience. We recommend this for all production use cases. diff --git a/app/en/home/landing-page.tsx b/app/en/home/landing-page.tsx index f3310f473..5fd472c6b 100644 --- a/app/en/home/landing-page.tsx +++ b/app/en/home/landing-page.tsx @@ -8,9 +8,9 @@ import { Cog, FileText, HelpCircle, - Monitor, Puzzle, Rocket, + ServerCog, Shield, ToolCase, Wrench, @@ -145,7 +145,7 @@ const FRAMEWORKS = [ }, { name: "LangChain", - href: "/guides/agent-frameworks/langchain/use-arcade-tools", + href: "/get-started/agent-frameworks/langchain/use-arcade-tools", icon: "/images/icons/langchain.svg", invertInDark: true, }, @@ -156,23 +156,23 @@ const FRAMEWORKS = [ }, { name: "CrewAI", - href: "/guides/agent-frameworks/crewai/use-arcade-tools", + href: "/get-started/agent-frameworks/crewai/use-arcade-tools", icon: "https://avatars.githubusercontent.com/u/170677839?s=200&v=4", }, { name: "Vercel AI", - href: "/guides/agent-frameworks/vercelai", + href: "/get-started/agent-frameworks/vercelai", icon: "/images/icons/vercel.svg", invertInDark: true, }, { name: "Google ADK", - href: "/guides/agent-frameworks/google-adk/use-arcade-tools", + href: "/get-started/agent-frameworks/google-adk/overview", icon: "/images/icons/google.png", }, { name: "Mastra", - href: "/guides/agent-frameworks/mastra/use-arcade-tools", + href: "/get-started/agent-frameworks/mastra/use-arcade-tools", icon: "/images/icons/mastra.svg", invertInDark: true, }, @@ -309,71 +309,43 @@ export function LandingPage() { - {/* Choose Your Path Section */} + {/* Choose Your Path Section — agent developers vs platform operators */}
-
- {/* Get Tools header — desktop: col 1 row 1; mobile: flows before its cards */} -

- Get Tools +
+

+ Choose your path

- {/* Pre-built Integrations — desktop: col 1 row 2 */} +

+ Docs for the two jobs Arcade supports: building agents and tools, + and operating Arcade for your organization. +

+
+
+

+ Build agents & tools +

- {/* Build Custom Tools — desktop: col 1 row 3 */}
- {/* Use Arcade header — desktop: col 2 row 1; mobile: flows before its cards */} -

- Use Arcade -

- {/* Connect to Your IDE — desktop: col 2 row 2 */} -
+
-
- {/* Power Your Agent — desktop: col 2 row 3 */} -
-
+

+ Deploy & operate Arcade +

+
+ +
+
+ +
+
+ +
+
+
+

@@ -581,7 +577,7 @@ export function LandingPage() {
@@ -593,7 +589,7 @@ export function LandingPage() { /> diff --git a/app/en/learn/server-level-vs-tool-level-auth/page.mdx b/app/en/learn/server-level-vs-tool-level-auth/page.mdx index ebbbff919..730b6c7e7 100644 --- a/app/en/learn/server-level-vs-tool-level-auth/page.mdx +++ b/app/en/learn/server-level-vs-tool-level-auth/page.mdx @@ -11,13 +11,13 @@ Arcade MCP servers support two distinct layers of authorization that work togeth **Using `arcade deploy`?** If you deploy your MCP server with [`arcade - deploy`](/guides/deployment-hosting/arcade-deploy), Arcade handles + deploy`](/build/arcade-deploy), Arcade handles server-level security for you automatically. ## Quick Comparison -| Aspect | [Resource Server Auth (Front-Door)](/guides/create-tools/secure-your-server/secure-your-mcp-server) | [Tool-Level Authorization](/guides/create-tools/tool-basics/create-tool-auth) | +| Aspect | [Resource Server Auth (Front-Door)](/build/create-tools/secure-your-server/secure-your-mcp-server) | [Tool-Level Authorization](/build/create-tools/tool-basics/create-tool-auth) | | --------------------- | ---------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | | **What it secures** | Access to your MCP server | Access to third-party APIs | | **Who authenticates** | The user calling your server | The user's access to external services | @@ -36,7 +36,7 @@ Resource Server auth ensures every request identifies the caller. It blocks unau ✅ **You need Resource Server auth if:** -- You've determined that [arcade deploy](/guides/deployment-hosting/arcade-deploy) is not a good fit for your use case +- You've determined that [arcade deploy](/build/arcade-deploy) is not a good fit for your use case - You're running an HTTP MCP server in production - Your server has tools that require authorization or secrets - You need to identify which user is calling your server @@ -44,7 +44,7 @@ Resource Server auth ensures every request identifies the caller. It blocks unau ❌ **You don't need it if:** -- You're using [arcade deploy](/guides/deployment-hosting/arcade-deploy) to secure your server +- You're using [arcade deploy](/build/arcade-deploy) to secure your server - You're using stdio transport - Your server only has public tools (no auth/secrets required) - You're doing local development only @@ -208,7 +208,7 @@ if __name__ == "__main__": ### Q: Can I use tool-level auth without Resource Server auth? -**A:** Yes, but only for stdio transport or when using [arcade deploy](/guides/deployment-hosting/arcade-deploy) (Arcade will protect your MCP server for you). +**A:** Yes, but only for stdio transport or when using [arcade deploy](/build/arcade-deploy) (Arcade will protect your MCP server for you). ### Q: Do I need Resource Server auth for local development? diff --git a/app/en/guides/_meta.tsx b/app/en/operate/_meta.tsx similarity index 55% rename from app/en/guides/_meta.tsx rename to app/en/operate/_meta.tsx index f8c63bb8c..5b62c1998 100644 --- a/app/en/guides/_meta.tsx +++ b/app/en/operate/_meta.tsx @@ -1,29 +1,38 @@ import type { MetaRecord } from "nextra"; export const meta: MetaRecord = { - "audit-logs": { - title: "Audit Logs", + index: { + title: "Overview", }, - "contextual-access": { - title: "Contextual Access", + quickstart: { + title: "Quickstart", }, - "mcp-gateways": { - title: "MCP Gateways", + "-- Deploy": { + type: "separator", + title: "Deploy", + }, + deployment: { + title: "Deployment & hosting", + }, + "-- Identity": { + type: "separator", + title: "Identity", }, "user-sources": { title: "User Sources", }, - "tool-calling": { - title: "Call tools", + "-- Governance": { + type: "separator", + title: "Governance", }, - "create-tools": { - title: "Create tools", + "mcp-gateways": { + title: "MCP Gateways", }, - "user-facing-agents": { - title: "User-facing agents", + "contextual-access": { + title: "Contextual Access", }, - "deployment-hosting": { - title: "Deployment & hosting", + "audit-logs": { + title: "Audit Logs", }, }; diff --git a/app/en/guides/audit-logs/page.mdx b/app/en/operate/audit-logs/page.mdx similarity index 100% rename from app/en/guides/audit-logs/page.mdx rename to app/en/operate/audit-logs/page.mdx diff --git a/app/en/guides/contextual-access/_meta.tsx b/app/en/operate/contextual-access/_meta.tsx similarity index 100% rename from app/en/guides/contextual-access/_meta.tsx rename to app/en/operate/contextual-access/_meta.tsx diff --git a/app/en/guides/contextual-access/build-your-own/page.mdx b/app/en/operate/contextual-access/build-your-own/page.mdx similarity index 96% rename from app/en/guides/contextual-access/build-your-own/page.mdx rename to app/en/operate/contextual-access/build-your-own/page.mdx index 8c4cb21e6..64e8d4531 100644 --- a/app/en/guides/contextual-access/build-your-own/page.mdx +++ b/app/en/operate/contextual-access/build-your-own/page.mdx @@ -120,7 +120,7 @@ Tools can include an optional `metadata` field with classification, behavioral, All metadata fields are optional and omitted from the JSON when empty, so existing webhook servers continue to work without changes. -For the full list of valid `service_domains` and `operations` values, see [Add Tool Metadata](/guides/create-tools/tool-basics/add-tool-metadata). +For the full list of valid `service_domains` and `operations` values, see [Add Tool Metadata](/build/create-tools/tool-basics/add-tool-metadata). ### Structure @@ -233,5 +233,5 @@ Configure the auth method when creating your extension in the Dashboard. ## Next steps - [API Reference](/references/contextual-access-webhook-api) — Interactive Swagger documentation for the full schema -- [Run an extension](/guides/contextual-access/examples) — Try the open-source example servers as reference -- [How Hooks Work](/guides/contextual-access/how-hooks-work) — Understand execution order, phases, and failure modes +- [Run an extension](/operate/contextual-access/examples) — Try the open-source example servers as reference +- [How Hooks Work](/operate/contextual-access/how-hooks-work) — Understand execution order, phases, and failure modes diff --git a/app/en/guides/contextual-access/examples/page.mdx b/app/en/operate/contextual-access/examples/page.mdx similarity index 94% rename from app/en/guides/contextual-access/examples/page.mdx rename to app/en/operate/contextual-access/examples/page.mdx index 19de86853..986522ee5 100644 --- a/app/en/guides/contextual-access/examples/page.mdx +++ b/app/en/operate/contextual-access/examples/page.mdx @@ -75,9 +75,9 @@ Once your server is running: 2. Click **Create Extension** and enter your server's base URL and endpoint paths 3. Create **hook configurations** to attach the extension to the hook points you want -See [How Hooks Work](/guides/contextual-access/how-hooks-work) for details on configuring extensions and hook points. +See [How Hooks Work](/operate/contextual-access/how-hooks-work) for details on configuring extensions and hook points. ## Next steps -- [Build your own](/guides/contextual-access/build-your-own) — Implement the webhook contract in any language +- [Build your own](/operate/contextual-access/build-your-own) — Implement the webhook contract in any language - [API Reference](/references/contextual-access-webhook-api) — Interactive schema documentation for the webhook contract diff --git a/app/en/guides/contextual-access/how-hooks-work/page.mdx b/app/en/operate/contextual-access/how-hooks-work/page.mdx similarity index 95% rename from app/en/guides/contextual-access/how-hooks-work/page.mdx rename to app/en/operate/contextual-access/how-hooks-work/page.mdx index 414217f43..8623ccccf 100644 --- a/app/en/guides/contextual-access/how-hooks-work/page.mdx +++ b/app/en/operate/contextual-access/how-hooks-work/page.mdx @@ -87,6 +87,6 @@ You configure extensions and hook points from the **Arcade Dashboard**: ## Next steps -- [Run an extension](/guides/contextual-access/examples) — Try the open-source example servers -- [Build your own](/guides/contextual-access/build-your-own) — Implement the webhook contract from the OpenAPI spec +- [Run an extension](/operate/contextual-access/examples) — Try the open-source example servers +- [Build your own](/operate/contextual-access/build-your-own) — Implement the webhook contract from the OpenAPI spec - [API Reference](/references/contextual-access-webhook-api) — Interactive schema documentation for the webhook contract diff --git a/app/en/guides/contextual-access/page.mdx b/app/en/operate/contextual-access/page.mdx similarity index 93% rename from app/en/guides/contextual-access/page.mdx rename to app/en/operate/contextual-access/page.mdx index 229542906..c53cc8d79 100644 --- a/app/en/guides/contextual-access/page.mdx +++ b/app/en/operate/contextual-access/page.mdx @@ -37,15 +37,15 @@ You only implement the hooks you need. Configure everything through the Dashboar -This page applies to **Arcade Cloud** only. If you self-host Arcade, you control your own infrastructure and data residency. See [on-premises deployment](/guides/deployment-hosting/helm) for details. +This page applies to **Arcade Cloud** only. If you self-host Arcade, you control your own infrastructure and data residency. See [on-premises deployment](/operate/deployment/helm) for details. ## Sovereignty @@ -122,7 +122,7 @@ Training data is retained for up to 5 years, which is sufficient for model devel ### Regulated Customers -If your organization has strict data residency requirements—for example, in financial services, healthcare, or government—or you operate within a legal regime that requires data storage in a specific country, you can deploy Arcade on-premises or in your preferred cloud region using a [self-hosted deployment](/guides/deployment-hosting/helm). This keeps all sensitive data within your own infrastructure. +If your organization has strict data residency requirements—for example, in financial services, healthcare, or government—or you operate within a legal regime that requires data storage in a specific country, you can deploy Arcade on-premises or in your preferred cloud region using a [self-hosted deployment](/operate/deployment/helm). This keeps all sensitive data within your own infrastructure. ## Questions diff --git a/app/en/guides/deployment-hosting/aws/page.mdx b/app/en/operate/deployment/aws/page.mdx similarity index 93% rename from app/en/guides/deployment-hosting/aws/page.mdx rename to app/en/operate/deployment/aws/page.mdx index 6b129e343..22c9d46eb 100644 --- a/app/en/guides/deployment-hosting/aws/page.mdx +++ b/app/en/operate/deployment/aws/page.mdx @@ -10,7 +10,7 @@ import { Callout, Steps } from "nextra/components"; Arcade runs on AWS as a full platform deployment into **your own AWS account**. The AWS offering is currently available through a **private offer** rather than a public self-serve listing. -AWS is available through a private offer. View the [Arcade listing on AWS Marketplace](https://aws.amazon.com/marketplace/seller-profile?id=seller-qbstsdnxkltx6) and [contact us](https://www.arcade.dev/contact) to receive a private offer for your account. If you'd rather manage the platform yourself, see [Self-host with Helm](/guides/deployment-hosting/helm). +AWS is available through a private offer. View the [Arcade listing on AWS Marketplace](https://aws.amazon.com/marketplace/seller-profile?id=seller-qbstsdnxkltx6) and [contact us](https://www.arcade.dev/contact) to receive a private offer for your account. If you'd rather manage the platform yourself, see [Self-host with Helm](/operate/deployment/helm). ## What gets deployed @@ -64,6 +64,6 @@ Open the dashboard URL from the deployment output and sign in with your identity ## Next steps -- [Create an MCP Gateway](/guides/mcp-gateways) to scope tools and auth for each client +- [Create an MCP Gateway](/operate/mcp-gateways) to scope tools and auth for each client - [Connect an MCP client](/get-started/mcp-clients) to a gateway URL -- [Set up a User Source](/guides/user-sources) to authenticate end users with your own identity provider +- [Set up a User Source](/operate/user-sources) to authenticate end users with your own identity provider diff --git a/app/en/guides/deployment-hosting/azure/page.mdx b/app/en/operate/deployment/azure/page.mdx similarity index 94% rename from app/en/guides/deployment-hosting/azure/page.mdx rename to app/en/operate/deployment/azure/page.mdx index 6224fe6b9..bc2d70d60 100644 --- a/app/en/guides/deployment-hosting/azure/page.mdx +++ b/app/en/operate/deployment/azure/page.mdx @@ -10,7 +10,7 @@ import { Callout, Steps } from "nextra/components"; Arcade is available on the Azure Marketplace as a managed application. You deploy it into **your own Azure subscription**, where it's managed by Arcade: your data and the services that run Arcade stay in your subscription, while Arcade handles upgrades and day-to-day operations. -The Azure Marketplace deployment is a **full platform deployment** — it stands up the complete Arcade platform in your cloud. If you'd rather manage the platform yourself on an existing Kubernetes cluster, see [Self-host with Helm](/guides/deployment-hosting/helm). +The Azure Marketplace deployment is a **full platform deployment** — it stands up the complete Arcade platform in your cloud. If you'd rather manage the platform yourself on an existing Kubernetes cluster, see [Self-host with Helm](/operate/deployment/helm). @@ -99,6 +99,6 @@ Open the dashboard URL from the deployment output and sign in with your identity ## Next steps -- [Create an MCP Gateway](/guides/mcp-gateways) to scope tools and auth for each client +- [Create an MCP Gateway](/operate/mcp-gateways) to scope tools and auth for each client - [Connect an MCP client](/get-started/mcp-clients) to a gateway URL -- [Set up a User Source](/guides/user-sources) to authenticate end users with your own identity provider +- [Set up a User Source](/operate/user-sources) to authenticate end users with your own identity provider diff --git a/app/en/guides/deployment-hosting/gcp/page.mdx b/app/en/operate/deployment/gcp/page.mdx similarity index 85% rename from app/en/guides/deployment-hosting/gcp/page.mdx rename to app/en/operate/deployment/gcp/page.mdx index 3e5b31209..4b1a1c2b0 100644 --- a/app/en/guides/deployment-hosting/gcp/page.mdx +++ b/app/en/operate/deployment/gcp/page.mdx @@ -27,9 +27,9 @@ Arcade on GCP will deploy the full platform — Engine, Coordinator, Worker, Das ## Deploy on GCP today -You don't have to wait to run Arcade on Google Cloud. You can [self-host with Helm](/guides/deployment-hosting/helm) on an existing GKE cluster, bringing your own Cloud SQL and Memorystore instances. +You don't have to wait to run Arcade on Google Cloud. You can [self-host with Helm](/operate/deployment/helm) on an existing GKE cluster, bringing your own Cloud SQL and Memorystore instances. ## Next steps -- [Self-host with Helm](/guides/deployment-hosting/helm) on GKE +- [Self-host with Helm](/operate/deployment/helm) on GKE - [Request early access](https://www.arcade.dev/contact) to the GCP deployment diff --git a/app/en/guides/deployment-hosting/helm/page.mdx b/app/en/operate/deployment/helm/page.mdx similarity index 86% rename from app/en/guides/deployment-hosting/helm/page.mdx rename to app/en/operate/deployment/helm/page.mdx index 500c18bc1..44ebc245b 100644 --- a/app/en/guides/deployment-hosting/helm/page.mdx +++ b/app/en/operate/deployment/helm/page.mdx @@ -10,7 +10,7 @@ import { Callout, Steps } from "nextra/components"; The Arcade Helm chart deploys the full Arcade platform onto a Kubernetes cluster you manage. It's the bring-your-own-Kubernetes alternative to the cloud marketplaces: you control the cluster, the data, and the upgrade cadence. -If you'd rather not manage Kubernetes yourself, the [Azure](/guides/deployment-hosting/azure) and [AWS](/guides/deployment-hosting/aws) marketplace deployments run the same platform as turnkey, Arcade-operated deployments in your own cloud account. +If you'd rather not manage Kubernetes yourself, the [Azure](/operate/deployment/azure) and [AWS](/operate/deployment/aws) marketplace deployments run the same platform as turnkey, Arcade-operated deployments in your own cloud account. ## What it deploys @@ -76,6 +76,6 @@ Upgrade to a new chart version with `helm upgrade`, and roll back with `helm rol ## Next steps -- [Create an MCP Gateway](/guides/mcp-gateways) to scope tools and auth for each client -- [Connect external clients with Warp Pipes](/guides/deployment-hosting/warp-pipes) -- [Set up a User Source](/guides/user-sources) to authenticate end users with your own identity provider +- [Create an MCP Gateway](/operate/mcp-gateways) to scope tools and auth for each client +- [Connect external clients with Warp Pipes](/operate/deployment/warp-pipes) +- [Set up a User Source](/operate/user-sources) to authenticate end users with your own identity provider diff --git a/app/en/guides/deployment-hosting/on-prem/page.mdx b/app/en/operate/deployment/on-prem/page.mdx similarity index 95% rename from app/en/guides/deployment-hosting/on-prem/page.mdx rename to app/en/operate/deployment/on-prem/page.mdx index ffa857348..f79745380 100644 --- a/app/en/guides/deployment-hosting/on-prem/page.mdx +++ b/app/en/operate/deployment/on-prem/page.mdx @@ -56,7 +56,7 @@ The on-premises MCP server model uses a bidirectional connection between your lo ### Setup your MCP Servers -Follow the [Creating a MCP Server](/guides/create-tools/tool-basics/build-mcp-server) guide to create your MCP Server. +Follow the [Creating a MCP Server](/build/create-tools/tool-basics/build-mcp-server) guide to create your MCP Server. ### Start your local MCP Server @@ -335,6 +335,6 @@ You can now test your MCP Server by making requests using the Playground, or an ## Next steps -- [Create custom tools](/guides/create-tools/tool-basics/build-mcp-server) for your MCP Server -- [Set up authentication](/guides/create-tools/tool-basics/create-tool-auth) for secure access to resources -- [Configure secrets](/guides/create-tools/tool-basics/create-tool-secrets) for your MCP Server +- [Create custom tools](/build/create-tools/tool-basics/build-mcp-server) for your MCP Server +- [Set up authentication](/build/create-tools/tool-basics/create-tool-auth) for secure access to resources +- [Configure secrets](/build/create-tools/tool-basics/create-tool-secrets) for your MCP Server diff --git a/app/en/operate/deployment/page.mdx b/app/en/operate/deployment/page.mdx new file mode 100644 index 000000000..109409e37 --- /dev/null +++ b/app/en/operate/deployment/page.mdx @@ -0,0 +1,53 @@ +--- +title: "Overview" +description: "Learn about the different ways to host and deploy Arcade" +--- + +import { Callout } from "nextra/components"; + +# Hosting options overview + +This page is for **platform operators** choosing how to run Arcade for their organization. You can use **Arcade Cloud**, a fully managed service, or **run Arcade in your own infrastructure**. Pick an option below, then continue with the [operator quickstart](/operate/quickstart). + +## Arcade Cloud + +[Arcade Cloud](https://api.arcade.dev) is the easiest way to start: sign up and build immediately, with no infrastructure to manage: + +- **Zero infrastructure**: no servers or databases to run +- **Automatic updates**: always on current tools and features +- **Built-in scaling**: handles traffic spikes for you +- **Free tier**: start building without a credit card + +See [Arcade Cloud infrastructure](/operate/deployment/arcade-cloud) for data residency, storage, and security details. + +## Run Arcade in your own infrastructure + +Deploy the full Arcade platform into your own cloud account or cluster when you need data residency, network isolation, or to meet compliance requirements. Two paths are available. + +### Cloud marketplaces (recommended) + +Deploy a turnkey, Arcade-operated platform into your own cloud account: + +- [**Azure Marketplace**](/operate/deployment/azure): available now as a managed app +- [**AWS**](/operate/deployment/aws): available through a private offer +- [**GCP**](/operate/deployment/gcp): marketplace listing in progress + +### Self-host with Helm + +Prefer to run it yourself? [Deploy the platform with Helm](/operate/deployment/helm) on your own Kubernetes cluster and manage it end to end. + + +The marketplace and Helm options are **full platform deployments**. The features below run *on top of* Arcade. They aren't ways to stand up the platform. + + +## Related features + +These connect your tools and clients to Arcade. They are not platform deployments: + +- [**Arcade Deploy**](/build/arcade-deploy): host *your* MCP server on Arcade Cloud with the `arcade deploy` command. +- [**Hybrid MCP servers**](/operate/deployment/on-prem): run MCP servers in your own environment and connect them to Arcade Cloud, so tools reach private resources. +- [**Warp Pipes**](/operate/deployment/warp-pipes): connect external AI clients to a self-hosted Arcade runtime without opening inbound ports. + +## Customizing auth + +You don't have to self-host to customize your auth experience. Arcade Cloud supports many [auth providers](/references/auth-providers) out of the box, and you can supply your own OAuth app credentials to brand the end-user experience. Arcade recommends this for all production use cases. diff --git a/app/en/guides/deployment-hosting/warp-pipes/page.mdx b/app/en/operate/deployment/warp-pipes/page.mdx similarity index 94% rename from app/en/guides/deployment-hosting/warp-pipes/page.mdx rename to app/en/operate/deployment/warp-pipes/page.mdx index be5598174..02a54896d 100644 --- a/app/en/guides/deployment-hosting/warp-pipes/page.mdx +++ b/app/en/operate/deployment/warp-pipes/page.mdx @@ -25,8 +25,8 @@ Connect external AI clients to private MCP servers through a self-hosted Arcade -- A [self-hosted Arcade runtime](/guides/deployment-hosting/helm) -- Access to your [Arcade configuration](/guides/deployment-hosting/helm#configuration) (Helm values) +- A [self-hosted Arcade runtime](/operate/deployment/helm) +- Access to your [Arcade configuration](/operate/deployment/helm#configuration) (Helm values) - The private hostnames or IP ranges of your internal MCP servers @@ -66,7 +66,7 @@ Everything behind the connector is the runtime you already have. Warp Pipes does Two concepts shape every deployment, with or without Warp Pipes: -- **Gateways** are named paths on the runtime (`/mcp/{slug}`). Each gateway has its own auth mode, tool allow-list, and access rules, so an AI client connecting to `/mcp/finance` sees only finance tools. You create gateways in the [Arcade dashboard](/guides/mcp-gateways), not in `engine.yaml`. +- **Gateways** are named paths on the runtime (`/mcp/{slug}`). Each gateway has its own auth mode, tool allow-list, and access rules, so an AI client connecting to `/mcp/finance` sees only finance tools. You create gateways in the [Arcade dashboard](/operate/mcp-gateways), not in `engine.yaml`. - **Identity and access** — users, organizations, API keys, RBAC, and OAuth — is managed in Arcade. The runtime makes outbound-only calls to it; it never dials the runtime. Multiple runtimes can share one Arcade account. ## Gateway auth modes @@ -79,7 +79,7 @@ Each gateway uses one of three auth modes. The mode determines what the AI clien | User Source | `user_source` | Bearer JWT from your identity provider | Yes | | Arcade Headers | `arcade_header` | Bearer token plus an `Arcade-User-ID` header | No. The Anthropic connector can't send custom headers | -For Claude, through the Messages API or managed agents, use **Arcade Auth** or **User Source**. See [MCP Gateways](/guides/mcp-gateways) for how to choose a mode and [User Sources](/guides/user-sources) for connecting your own identity provider. +For Claude, through the Messages API or managed agents, use **Arcade Auth** or **User Source**. See [MCP Gateways](/operate/mcp-gateways) for how to choose a mode and [User Sources](/operate/user-sources) for connecting your own identity provider. ## Connect to internal MCP servers @@ -105,7 +105,7 @@ engine: - "10.10.0.0/16" # IP range ``` -Then register each internal MCP server as a worker so the runtime can route tool calls to it. For the full set of worker and allowlist values, see the [values reference](https://artifacthub.io/packages/helm/arcade/arcade) and [Self-host with Helm](/guides/deployment-hosting/helm#configuration). +Then register each internal MCP server as a worker so the runtime can route tool calls to it. For the full set of worker and allowlist values, see the [values reference](https://artifacthub.io/packages/helm/arcade/arcade) and [Self-host with Helm](/operate/deployment/helm#configuration). ### Allowlist entry types @@ -285,7 +285,7 @@ The path `/mcp/{slug}` must also pass through intact. The runtime routes by gate ## Next steps -- [Self-host with Helm](/guides/deployment-hosting/helm) for the full configuration reference -- [Create an MCP Gateway](/guides/mcp-gateways) to scope tools and auth for each client -- [Set up a User Source](/guides/user-sources) to authenticate end users with your own identity provider +- [Self-host with Helm](/operate/deployment/helm) for the full configuration reference +- [Create an MCP Gateway](/operate/mcp-gateways) to scope tools and auth for each client +- [Set up a User Source](/operate/user-sources) to authenticate end users with your own identity provider - [Connect your MCP client](/get-started/mcp-clients) to a gateway URL diff --git a/app/en/guides/mcp-gateways/_meta.tsx b/app/en/operate/mcp-gateways/_meta.tsx similarity index 100% rename from app/en/guides/mcp-gateways/_meta.tsx rename to app/en/operate/mcp-gateways/_meta.tsx diff --git a/app/en/guides/mcp-gateways/add-remote-servers/page.mdx b/app/en/operate/mcp-gateways/add-remote-servers/page.mdx similarity index 98% rename from app/en/guides/mcp-gateways/add-remote-servers/page.mdx rename to app/en/operate/mcp-gateways/add-remote-servers/page.mdx index 12e28b8a6..ad4963637 100644 --- a/app/en/guides/mcp-gateways/add-remote-servers/page.mdx +++ b/app/en/operate/mcp-gateways/add-remote-servers/page.mdx @@ -152,5 +152,5 @@ console.log(result); ## Next steps -- [Create an MCP Gateway](/guides/mcp-gateways/create-via-dashboard) +- [Create an MCP Gateway](/operate/mcp-gateways/create-via-dashboard) - [Connect to MCP clients](/get-started/mcp-clients) diff --git a/app/en/guides/mcp-gateways/create-via-ai/page.mdx b/app/en/operate/mcp-gateways/create-via-ai/page.mdx similarity index 100% rename from app/en/guides/mcp-gateways/create-via-ai/page.mdx rename to app/en/operate/mcp-gateways/create-via-ai/page.mdx diff --git a/app/en/guides/mcp-gateways/create-via-dashboard/page.mdx b/app/en/operate/mcp-gateways/create-via-dashboard/page.mdx similarity index 92% rename from app/en/guides/mcp-gateways/create-via-dashboard/page.mdx rename to app/en/operate/mcp-gateways/create-via-dashboard/page.mdx index d0704fb3b..eff6068ad 100644 --- a/app/en/guides/mcp-gateways/create-via-dashboard/page.mdx +++ b/app/en/operate/mcp-gateways/create-via-dashboard/page.mdx @@ -61,11 +61,11 @@ The options available when configuring an MCP Gateway are: - **Authentication**: How end users authenticate to the gateway. Users will still need to authenticate to the tools within the MCP Gateway as normal. The form asks "Who are the users of this Gateway?" with two top-level choices: - **Members of this Project (Arcade Auth)**: End users sign in with Arcade as members of this project. Recommended for development, testing, and internal use when every end user is already a member. - **Non-Arcade Users**: End users come from outside Arcade. Pick one of: - - **User Source** (recommended): Arcade redirects end users to your OIDC identity provider to sign in. Pick this for production agents whose end users have identities in your own OIDC identity system. See [User Sources](/guides/user-sources) for how to set one up. + - **User Source** (recommended): Arcade redirects end users to your OIDC identity provider to sign in. Pick this for production agents whose end users have identities in your own OIDC identity system. See [User Sources](/operate/user-sources) for how to set one up. - **Arcade Headers** (fallback): The client passes an Arcade API key in the `Authorization` header and the end user's ID in the `Arcade-User-ID` header. Pick this for MCP clients that can't run a browser-based OAuth flow. - **Allowed Tools**: A selection of tools in the Arcade Tool Catalog that will be available to the MCP Gateway. -See [Skip consent for trusted MCP clients](/guides/mcp-gateways#skip-consent-for-trusted-mcp-clients) for the **Skip consent for trusted clients (optional)** field on this same form. +See [Skip consent for trusted MCP clients](/operate/mcp-gateways#skip-consent-for-trusted-mcp-clients) for the **Skip consent for trusted clients (optional)** field on this same form. ## After Creating a Gateway diff --git a/app/en/guides/mcp-gateways/page.mdx b/app/en/operate/mcp-gateways/page.mdx similarity index 93% rename from app/en/guides/mcp-gateways/page.mdx rename to app/en/operate/mcp-gateways/page.mdx index b14f50f26..8c3269d34 100644 --- a/app/en/guides/mcp-gateways/page.mdx +++ b/app/en/operate/mcp-gateways/page.mdx @@ -25,11 +25,11 @@ You can create an MCP Gateway in two ways: @@ -45,7 +45,7 @@ Use remote MCP servers when your tools live outside Arcade. Register the server @@ -69,7 +69,7 @@ When you create a gateway, you choose who its end users are. Arcade groups the o | **User Source** (recommended for production) | Production agents whose end users have identities in your OIDC identity provider | Arcade redirects end users to your identity provider, then identifies them by a configured subject claim | | **Arcade Headers** (fallback) | MCP clients that can't run a browser-based OAuth flow | The client passes `Authorization: Bearer {your_api_key}` and `Arcade-User-ID: {end_user_id}` on every request | -See [User Sources](/guides/user-sources) for how to set up an OIDC identity provider and attach it to a gateway. See [Create via Dashboard](/guides/mcp-gateways/create-via-dashboard) for the rest of the gateway configuration. +See [User Sources](/operate/user-sources) for how to set up an OIDC identity provider and attach it to a gateway. See [Create via Dashboard](/operate/mcp-gateways/create-via-dashboard) for the rest of the gateway configuration. ## Skip consent for trusted MCP clients diff --git a/app/en/operate/page.mdx b/app/en/operate/page.mdx new file mode 100644 index 000000000..e3dee6e1a --- /dev/null +++ b/app/en/operate/page.mdx @@ -0,0 +1,67 @@ +--- +title: "Operate Arcade" +description: "Deploy, secure, and govern Arcade for your organization. Written for platform operators." +--- + +import { Cards } from "nextra/components"; + +# Operate Arcade + +These docs are for **platform operators**: the people who deploy Arcade, connect identity providers, and govern how agents use tools across a company. + +If you build agents or custom MCP servers, start with [Get Started](/get-started/about-arcade) and [Build](/build). + +## Choose your path + + + + + + +## What operators configure + +### Deploy + +Run Arcade Cloud, deploy through a cloud marketplace, or self-host with Helm. + + + + + + + + +### Identity + +Connect your end-user identity provider and configure how gateways authenticate users. + + + + + + + +### Governance + +Federate tools, enforce access policies, and audit administrative actions. + + + + + + + +## Related references + +- [Glossary](/resources/glossary): Account, Tenant, Project, User, and User Source +- [API reference](/references/api): Administrator and runtime APIs +- [FAQ](/resources/faq): common operator and developer questions diff --git a/app/en/operate/quickstart/page.mdx b/app/en/operate/quickstart/page.mdx new file mode 100644 index 000000000..6e2f0dda5 --- /dev/null +++ b/app/en/operate/quickstart/page.mdx @@ -0,0 +1,94 @@ +--- +title: "Stand up Arcade for your org" +description: "Platform operator quickstart: deploy Arcade, connect identity, create a gateway, and turn on governance" +--- + +import { Steps, Callout, Cards } from "nextra/components"; +import { SignupLink } from "@/app/_components/analytics"; + +# Stand up Arcade for your org + +This quickstart is for **platform operators** who set up Arcade for a team or company. You will pick a hosting model, connect identity, create an MCP Gateway, and enable governance. + +Agent developers who want to call tools should use the [agent quickstart](/get-started/quickstarts/call-tool-agent) instead. + + + + +A running Arcade deployment with end-user identity, a gateway for agents and MCP clients, and audit logging available by default. + + + + + +- Permission to create projects in Arcade (or to deploy infrastructure for self-hosting) +- An OIDC identity provider for end users (optional for first experiments; required for production User Sources) +- Familiarity with your org's networking and compliance requirements + + + + + +- Choose Arcade Cloud, a marketplace deploy, or self-host with Helm +- Create administrator credentials and a project +- Connect a User Source for production identity +- Create an MCP Gateway and point clients at it +- Use Contextual Access and Audit Logs for governance + + + + + + +### Choose how to run Arcade + +Pick the hosting model that matches your compliance and ops model: + +| Option | When to use | Guide | +| --- | --- | --- | +| **Arcade Cloud** | Quickest path; Arcade manages the platform | [Arcade Cloud](/operate/deployment/arcade-cloud) | +| **Cloud marketplace** | Arcade-operated platform in your cloud account | [Azure](/operate/deployment/azure), [AWS](/operate/deployment/aws), [GCP](/operate/deployment/gcp) | +| **Self-host with Helm** | Full control on your Kubernetes cluster | [Helm](/operate/deployment/helm) | + +See the [hosting options overview](/operate/deployment) for a fuller comparison. + + +Hosting *your* MCP server with [`arcade deploy`](/build/arcade-deploy) is a developer workflow. It does not deploy the Arcade platform. + + +### Create administrator access + +1. Sign up for Arcade (Cloud) or finish your marketplace/Helm install. +2. Create a [project API key](/get-started/setup/api-keys) for administrative use. +3. Confirm you can open the Dashboard for your environment. + +### Connect end-user identity + +For production gateways, connect your OIDC provider as a [User Source](/operate/user-sources) (Okta, Entra ID, Auth0, Clerk, Stytch, or similar). + +Arcade Auth is fine for internal testing. Use a User Source when end users already live in your identity system. + +### Create an MCP Gateway + +Create a gateway that federates the tools your agents and MCP clients should see: + +- [Create via Dashboard](/operate/mcp-gateways/create-via-dashboard) +- [Create via AI Assistant](/operate/mcp-gateways/create-via-ai) + +Attach your User Source when you configure authentication for production. + +### Turn on governance + +- **Contextual Access**: control tool visibility and behavior with hooks. Start with [Contextual Access](/operate/contextual-access). +- **Audit Logs**: Arcade captures administrative actions by default. See [Audit Logs](/operate/audit-logs) for the dashboard and SIEM API. + + + +## Next steps + + + + + + + diff --git a/app/en/guides/user-sources/_meta.tsx b/app/en/operate/user-sources/_meta.tsx similarity index 100% rename from app/en/guides/user-sources/_meta.tsx rename to app/en/operate/user-sources/_meta.tsx diff --git a/app/en/guides/user-sources/auth0/page.mdx b/app/en/operate/user-sources/auth0/page.mdx similarity index 90% rename from app/en/guides/user-sources/auth0/page.mdx rename to app/en/operate/user-sources/auth0/page.mdx index d6c605b6f..9267b23ed 100644 --- a/app/en/guides/user-sources/auth0/page.mdx +++ b/app/en/operate/user-sources/auth0/page.mdx @@ -12,7 +12,7 @@ export const AUTH0_SCREENSHOT_HEIGHT = 1099 / IMAGE_SCALE_FACTOR; # Auth0 -Use Auth0 as a User Source so the people who already sign in through your Auth0 tenant can sign in to your MCP Gateways. This guide walks you through what to do in the Auth0 dashboard. Once you have the values it tells you to copy, [create the User Source in Arcade](/guides/user-sources#create-a-user-source). +Use Auth0 as a User Source so the people who already sign in through your Auth0 tenant can sign in to your MCP Gateways. This guide walks you through what to do in the Auth0 dashboard. Once you have the values it tells you to copy, [create the User Source in Arcade](/operate/user-sources#create-a-user-source). ## Before you start @@ -83,14 +83,14 @@ Copy these values into Arcade's User Source form: ## Create the User Source in Arcade -Open the Arcade Dashboard, select your project, navigate to **User Sources**, and click **Create User Source**. Paste the values from the table above. For a walkthrough of the form, see [Create a User Source](/guides/user-sources#create-a-user-source) in the User Sources overview. +Open the Arcade Dashboard, select your project, navigate to **User Sources**, and click **Create User Source**. Paste the values from the table above. For a walkthrough of the form, see [Create a User Source](/operate/user-sources#create-a-user-source) in the User Sources overview. -Once the User Source is active, attach it to an MCP Gateway by following [Create via Dashboard](/guides/mcp-gateways/create-via-dashboard) and picking **User Source** under "Non-Arcade Users" in the gateway form. +Once the User Source is active, attach it to an MCP Gateway by following [Create via Dashboard](/operate/mcp-gateways/create-via-dashboard) and picking **User Source** under "Non-Arcade Users" in the gateway form. ## Notes - **Tenant domains and regions**: Newer Auth0 tenants use region-prefixed domains such as `.us.auth0.com` or `.eu.auth0.com`. Older tenants use `.auth0.com`. Either form works; copy exactly what the **Domain** field on the application's Settings tab displays. See Auth0's [tenant region documentation](https://auth0.com/docs/get-started/auth0-overview/create-tenants) for more on which region your tenant is in. - **Custom domains**: If you use Auth0's [custom domain feature](https://auth0.com/docs/customize/custom-domains) (for example, `auth.yourcompany.com`), use the custom domain as the **Issuer URL** hostname. End users see your branded domain on the sign-in page. - **Connections**: Auth0 lets you wire up database, social, and enterprise connections behind a single tenant. Arcade doesn't care which connections you've enabled, only that the end users who try to sign in have access to this application. Configure connections under **Authentication** → **Database / Social / Enterprise** in the Auth0 dashboard. -- **Client secret rotation**: Auth0 lets you rotate the client secret from the **Settings** tab's **Basic Information** section. See [Rotate the client secret](/guides/user-sources#rotate-the-client-secret) in the User Sources guide for the Arcade side. -- **Custom subject claims**: Arcade's default Subject Claim, `sub`, is Auth0's connection-prefixed user identifier (for example, `auth0|abc123` for a database user or `google-oauth2|abc123` for a Google-linked user). It's stable per user across the tenant. If you need Arcade to identify users by a different value, add a [custom claim](https://auth0.com/docs/secure/tokens/json-web-tokens/create-custom-claims) to the ID token via an Auth0 Action and set the User Source's **Subject Claim** to its name. Arcade only reads ID tokens, so the claim must be on the ID token (not the access token). See [Advanced: scopes and subject claim](/guides/user-sources#advanced-scopes-and-subject-claim) in the overview for what makes a good claim. +- **Client secret rotation**: Auth0 lets you rotate the client secret from the **Settings** tab's **Basic Information** section. See [Rotate the client secret](/operate/user-sources#rotate-the-client-secret) in the User Sources guide for the Arcade side. +- **Custom subject claims**: Arcade's default Subject Claim, `sub`, is Auth0's connection-prefixed user identifier (for example, `auth0|abc123` for a database user or `google-oauth2|abc123` for a Google-linked user). It's stable per user across the tenant. If you need Arcade to identify users by a different value, add a [custom claim](https://auth0.com/docs/secure/tokens/json-web-tokens/create-custom-claims) to the ID token via an Auth0 Action and set the User Source's **Subject Claim** to its name. Arcade only reads ID tokens, so the claim must be on the ID token (not the access token). See [Advanced: scopes and subject claim](/operate/user-sources#advanced-scopes-and-subject-claim) in the overview for what makes a good claim. diff --git a/app/en/guides/user-sources/clerk/page.mdx b/app/en/operate/user-sources/clerk/page.mdx similarity index 90% rename from app/en/guides/user-sources/clerk/page.mdx rename to app/en/operate/user-sources/clerk/page.mdx index b89467861..291e5fc36 100644 --- a/app/en/guides/user-sources/clerk/page.mdx +++ b/app/en/operate/user-sources/clerk/page.mdx @@ -12,7 +12,7 @@ export const CLERK_SCREENSHOT_HEIGHT = 949 / IMAGE_SCALE_FACTOR; # Clerk -Use Clerk as a User Source so the people who already sign in through your Clerk instance can sign in to your MCP Gateways. Clerk's [OAuth applications](https://clerk.com/docs/advanced-usage/clerk-idp) feature turns your Clerk instance into an OIDC identity provider that Arcade can connect to. Once you have the values it tells you to copy, [create the User Source in Arcade](/guides/user-sources#create-a-user-source). +Use Clerk as a User Source so the people who already sign in through your Clerk instance can sign in to your MCP Gateways. Clerk's [OAuth applications](https://clerk.com/docs/advanced-usage/clerk-idp) feature turns your Clerk instance into an OIDC identity provider that Arcade can connect to. Once you have the values it tells you to copy, [create the User Source in Arcade](/operate/user-sources#create-a-user-source). ## Before you start @@ -81,12 +81,12 @@ Copy these values into Arcade's User Source form: ## Create the User Source in Arcade -Open the Arcade Dashboard, select your project, navigate to **User Sources**, and click **Create User Source**. Paste the values from the table above. For a walkthrough of the form, see [Create a User Source](/guides/user-sources#create-a-user-source) in the User Sources overview. +Open the Arcade Dashboard, select your project, navigate to **User Sources**, and click **Create User Source**. Paste the values from the table above. For a walkthrough of the form, see [Create a User Source](/operate/user-sources#create-a-user-source) in the User Sources overview. -Once the User Source is active, attach it to an MCP Gateway by following [Create via Dashboard](/guides/mcp-gateways/create-via-dashboard) and picking **User Source** under "Non-Arcade Users" in the gateway form. +Once the User Source is active, attach it to an MCP Gateway by following [Create via Dashboard](/operate/mcp-gateways/create-via-dashboard) and picking **User Source** under "Non-Arcade Users" in the gateway form. ## Notes - **Development vs production instances**: Clerk's development and production instances have different Frontend API URLs and different OAuth applications. When you're ready to move from a development setup to production, register a new OAuth application in the production instance and create a separate Arcade User Source for it. -- **Client secret rotation**: Clerk supports regenerating the Client Secret from the OAuth application's **Application credentials** section. See [Rotate the client secret](/guides/user-sources#rotate-the-client-secret) in the User Sources guide for the Arcade-side procedure. -- **Subject Claim**: Arcade's default Subject Claim, `sub`, is the Clerk user ID and is the recommended value. Clerk's OAuth applications also expose `public_metadata` and `private_metadata` scopes that surface the corresponding [user metadata](https://clerk.com/docs/users/metadata) on the ID token, which lets you add organization, role, or other custom data to claims. See [Advanced: scopes and subject claim](/guides/user-sources#advanced-scopes-and-subject-claim) in the overview for what makes a good claim. +- **Client secret rotation**: Clerk supports regenerating the Client Secret from the OAuth application's **Application credentials** section. See [Rotate the client secret](/operate/user-sources#rotate-the-client-secret) in the User Sources guide for the Arcade-side procedure. +- **Subject Claim**: Arcade's default Subject Claim, `sub`, is the Clerk user ID and is the recommended value. Clerk's OAuth applications also expose `public_metadata` and `private_metadata` scopes that surface the corresponding [user metadata](https://clerk.com/docs/users/metadata) on the ID token, which lets you add organization, role, or other custom data to claims. See [Advanced: scopes and subject claim](/operate/user-sources#advanced-scopes-and-subject-claim) in the overview for what makes a good claim. diff --git a/app/en/guides/user-sources/microsoft-entra-id/page.mdx b/app/en/operate/user-sources/microsoft-entra-id/page.mdx similarity index 93% rename from app/en/guides/user-sources/microsoft-entra-id/page.mdx rename to app/en/operate/user-sources/microsoft-entra-id/page.mdx index 0a65bd8e9..7eb7c0283 100644 --- a/app/en/guides/user-sources/microsoft-entra-id/page.mdx +++ b/app/en/operate/user-sources/microsoft-entra-id/page.mdx @@ -12,7 +12,7 @@ export const ENTRA_SCREENSHOT_HEIGHT = 849 / IMAGE_SCALE_FACTOR; # Microsoft Entra ID -Use Microsoft Entra ID as a User Source so the people who already sign in with their Microsoft work or school account can sign in to your MCP Gateways. This guide walks you through what to do in the Microsoft Entra admin center. Once you have the values it tells you to copy, [create the User Source in Arcade](/guides/user-sources#create-a-user-source). +Use Microsoft Entra ID as a User Source so the people who already sign in with their Microsoft work or school account can sign in to your MCP Gateways. This guide walks you through what to do in the Microsoft Entra admin center. Once you have the values it tells you to copy, [create the User Source in Arcade](/operate/user-sources#create-a-user-source). ## Before you start @@ -111,9 +111,9 @@ Leave Arcade's other defaults alone for a standard Entra setup. See [Optional: u ## Create the User Source in Arcade -Open the Arcade Dashboard, select your project, navigate to **User Sources**, and click **Create User Source**. Paste the values from the table above. For a walkthrough of the form, see [Create a User Source](/guides/user-sources#create-a-user-source) in the User Sources overview. +Open the Arcade Dashboard, select your project, navigate to **User Sources**, and click **Create User Source**. Paste the values from the table above. For a walkthrough of the form, see [Create a User Source](/operate/user-sources#create-a-user-source) in the User Sources overview. -Once the User Source is active, attach it to an MCP Gateway by following [Create via Dashboard](/guides/mcp-gateways/create-via-dashboard) and picking **User Source** under "Non-Arcade Users" in the gateway form. +Once the User Source is active, attach it to an MCP Gateway by following [Create via Dashboard](/operate/mcp-gateways/create-via-dashboard) and picking **User Source** under "Non-Arcade Users" in the gateway form. ## Optional: use `oid` as the subject claim @@ -127,5 +127,5 @@ Entra only emits `oid` when `profile` is in the requested scopes. You granted th - **Multi-tenant and personal-account options aren't supported today**: Arcade matches the OIDC `iss` claim on every ID token byte-for-byte against the issuer URL you save on the User Source. The **Multiple Entra ID tenants**, **Any Entra ID Tenant + Personal Microsoft accounts**, and **Personal accounts only** options all rely on Entra issuing tokens whose `iss` reflects the signing-in user's home tenant, so there's no single issuer URL that will validate for users from more than one tenant. If you need to onboard users from multiple Entra tenants today, create a separate Arcade User Source per tenant. - **PKCE**: Arcade always uses PKCE when authenticating end users. Entra ID accepts PKCE automatically on the **Web** platform, so you don't need to change any Entra setting. -- **Client secret rotation**: Entra client secrets expire. Rotate yours before the expiration date. See [Rotate the client secret](/guides/user-sources#rotate-the-client-secret) in the User Sources guide for how. -- **Custom subject claims**: If neither `sub` nor `oid` fits, you can configure a different value as an [optional claim](https://learn.microsoft.com/en-us/entra/identity-platform/optional-claims#configure-optional-claims-in-your-application) on Entra's ID token, then set the User Source's **Subject Claim** to its name. Arcade only reads ID tokens, so the claim must be on the ID token specifically (not the access token). See [Advanced: scopes and subject claim](/guides/user-sources#advanced-scopes-and-subject-claim) in the overview for what makes a good claim. +- **Client secret rotation**: Entra client secrets expire. Rotate yours before the expiration date. See [Rotate the client secret](/operate/user-sources#rotate-the-client-secret) in the User Sources guide for how. +- **Custom subject claims**: If neither `sub` nor `oid` fits, you can configure a different value as an [optional claim](https://learn.microsoft.com/en-us/entra/identity-platform/optional-claims#configure-optional-claims-in-your-application) on Entra's ID token, then set the User Source's **Subject Claim** to its name. Arcade only reads ID tokens, so the claim must be on the ID token specifically (not the access token). See [Advanced: scopes and subject claim](/operate/user-sources#advanced-scopes-and-subject-claim) in the overview for what makes a good claim. diff --git a/app/en/guides/user-sources/okta/page.mdx b/app/en/operate/user-sources/okta/page.mdx similarity index 91% rename from app/en/guides/user-sources/okta/page.mdx rename to app/en/operate/user-sources/okta/page.mdx index 1fc6259a5..72e642a5c 100644 --- a/app/en/guides/user-sources/okta/page.mdx +++ b/app/en/operate/user-sources/okta/page.mdx @@ -12,7 +12,7 @@ export const OKTA_SCREENSHOT_HEIGHT = 1099 / IMAGE_SCALE_FACTOR; # Okta -Use Okta as a User Source so the people who already sign in with their Okta account can sign in to your MCP Gateways. This guide walks you through what to do in the Okta admin console. Once you have the values it tells you to copy, [create the User Source in Arcade](/guides/user-sources#create-a-user-source). +Use Okta as a User Source so the people who already sign in with their Okta account can sign in to your MCP Gateways. This guide walks you through what to do in the Okta admin console. Once you have the values it tells you to copy, [create the User Source in Arcade](/operate/user-sources#create-a-user-source). ## Before you start @@ -96,13 +96,13 @@ Copy these values into Arcade's User Source form: ## Create the User Source in Arcade -Open the Arcade Dashboard, select your project, navigate to **User Sources**, and click **Create User Source**. Paste the values from the table above. For a walkthrough of the form, see [Create a User Source](/guides/user-sources#create-a-user-source) in the User Sources overview. +Open the Arcade Dashboard, select your project, navigate to **User Sources**, and click **Create User Source**. Paste the values from the table above. For a walkthrough of the form, see [Create a User Source](/operate/user-sources#create-a-user-source) in the User Sources overview. -Once the User Source is active, attach it to an MCP Gateway by following [Create via Dashboard](/guides/mcp-gateways/create-via-dashboard) and picking **User Source** under "Non-Arcade Users" in the gateway form. +Once the User Source is active, attach it to an MCP Gateway by following [Create via Dashboard](/operate/mcp-gateways/create-via-dashboard) and picking **User Source** under "Non-Arcade Users" in the gateway form. ## Notes - **Custom Okta domains**: If your org uses an Okta-hosted custom domain (for example, `auth.yourcompany.com`), use that hostname in the **Issuer URL** instead of `.okta.com`. Your end users will see the custom domain in the sign-in URL. - **Custom Authorization Servers**: This guide uses Okta's built-in **Org Authorization Server**, whose issuer is your Okta org URL. If your team uses a Custom Authorization Server for this app (for example, the default `oauth2/default` server, or one you've configured under **Security** → **API** → **Authorization Servers**), use that server's **Issuer URI** instead. Custom Authorization Servers are useful when you need to customize scopes, claims, or access policies. -- **Client secret rotation**: Okta lets you generate a new client secret on the same Client Credentials panel and keep the old one active until you're ready to switch. See [Rotate the client secret](/guides/user-sources#rotate-the-client-secret) in the User Sources guide for the Arcade side. -- **Custom subject claims**: Arcade's default Subject Claim, `sub`, is the user's Okta user ID. If you need Arcade to identify users by a different value, configure a custom claim on a [Custom Authorization Server](https://developer.okta.com/docs/guides/customize-tokens-returned-from-okta/main/) and set the User Source's **Subject Claim** to its name. Arcade only reads ID tokens, so the claim must be on the ID token (not the access token). See [Advanced: scopes and subject claim](/guides/user-sources#advanced-scopes-and-subject-claim) in the overview for what makes a good claim. +- **Client secret rotation**: Okta lets you generate a new client secret on the same Client Credentials panel and keep the old one active until you're ready to switch. See [Rotate the client secret](/operate/user-sources#rotate-the-client-secret) in the User Sources guide for the Arcade side. +- **Custom subject claims**: Arcade's default Subject Claim, `sub`, is the user's Okta user ID. If you need Arcade to identify users by a different value, configure a custom claim on a [Custom Authorization Server](https://developer.okta.com/docs/guides/customize-tokens-returned-from-okta/main/) and set the User Source's **Subject Claim** to its name. Arcade only reads ID tokens, so the claim must be on the ID token (not the access token). See [Advanced: scopes and subject claim](/operate/user-sources#advanced-scopes-and-subject-claim) in the overview for what makes a good claim. diff --git a/app/en/guides/user-sources/page.mdx b/app/en/operate/user-sources/page.mdx similarity index 95% rename from app/en/guides/user-sources/page.mdx rename to app/en/operate/user-sources/page.mdx index ce81d66f2..daee12462 100644 --- a/app/en/guides/user-sources/page.mdx +++ b/app/en/operate/user-sources/page.mdx @@ -27,7 +27,7 @@ Arcade MCP Gateways support three ways to authenticate end users: | **User Source** (recommended for production) | Production agents whose end users have identities in your OIDC identity provider | | **Arcade Headers** (fallback) | MCP clients that can't run a browser-based OAuth flow | -See [MCP Gateway authentication](/guides/mcp-gateways) for the full comparison and for how to pick an authentication mode when creating a gateway. +See [MCP Gateway authentication](/operate/mcp-gateways) for the full comparison and for how to pick an authentication mode when creating a gateway. ## Register an OAuth client at your identity provider @@ -96,7 +96,7 @@ The **Subject Claim** is the JWT claim Arcade uses to identify each of your end You attach a User Source to an MCP Gateway when you create or edit the gateway. One User Source can back multiple gateways in the same project, so you can reuse the same end-user identity system across every gateway you build for those users. -See [Create via Dashboard](/guides/mcp-gateways/create-via-dashboard) for how to pick a User Source when configuring a gateway's authentication. +See [Create via Dashboard](/operate/mcp-gateways/create-via-dashboard) for how to pick a User Source when configuring a gateway's authentication. ## Manage User Sources @@ -130,5 +130,5 @@ Deleting a User Source is permanent. As with deactivation, you can only delete a ## Next steps -- [MCP Gateway authentication](/guides/mcp-gateways) for a comparison of Arcade Auth, User Sources, and Arcade Headers +- [MCP Gateway authentication](/operate/mcp-gateways) for a comparison of Arcade Auth, User Sources, and Arcade Headers - [Connect to MCP clients](/get-started/mcp-clients) to point your client at a gateway that uses a User Source diff --git a/app/en/guides/user-sources/stytch/page.mdx b/app/en/operate/user-sources/stytch/page.mdx similarity index 91% rename from app/en/guides/user-sources/stytch/page.mdx rename to app/en/operate/user-sources/stytch/page.mdx index b42bc46fc..b9db681f8 100644 --- a/app/en/guides/user-sources/stytch/page.mdx +++ b/app/en/operate/user-sources/stytch/page.mdx @@ -12,7 +12,7 @@ export const STYTCH_SCREENSHOT_HEIGHT = 1099 / IMAGE_SCALE_FACTOR; # Stytch -Use Stytch as a User Source so the people who already sign in through your Stytch project can sign in to your MCP Gateways. Stytch's [Connected Apps](https://stytch.com/docs/connected-apps/build-login-flow/login-flow) feature turns your Stytch project into an OIDC identity provider that Arcade can connect to. This guide applies to both Stytch Consumer and B2B projects, where the Connected Apps feature behaves identically. Once you have the values it tells you to copy, [create the User Source in Arcade](/guides/user-sources#create-a-user-source). +Use Stytch as a User Source so the people who already sign in through your Stytch project can sign in to your MCP Gateways. Stytch's [Connected Apps](https://stytch.com/docs/connected-apps/build-login-flow/login-flow) feature turns your Stytch project into an OIDC identity provider that Arcade can connect to. This guide applies to both Stytch Consumer and B2B projects, where the Connected Apps feature behaves identically. Once you have the values it tells you to copy, [create the User Source in Arcade](/operate/user-sources#create-a-user-source). ## Before you start @@ -105,13 +105,13 @@ Copy these values into Arcade's User Source form: ## Create the User Source in Arcade -Open the Arcade Dashboard, select your project, navigate to **User Sources**, and click **Create User Source**. Paste the values from the table above. For a walkthrough of the form, see [Create a User Source](/guides/user-sources#create-a-user-source) in the User Sources overview. +Open the Arcade Dashboard, select your project, navigate to **User Sources**, and click **Create User Source**. Paste the values from the table above. For a walkthrough of the form, see [Create a User Source](/operate/user-sources#create-a-user-source) in the User Sources overview. -Once the User Source is active, attach it to an MCP Gateway by following [Create via Dashboard](/guides/mcp-gateways/create-via-dashboard) and picking **User Source** under "Non-Arcade Users" in the gateway form. +Once the User Source is active, attach it to an MCP Gateway by following [Create via Dashboard](/operate/mcp-gateways/create-via-dashboard) and picking **User Source** under "Non-Arcade Users" in the gateway form. ## Notes - **Test vs production**: New Connected Apps default to test mode and issue test-environment credentials. Enable the **Enable for production** toggle on the app's **Details** page when you're ready to issue live tokens, then update the User Source in Arcade with the production Client ID and Client Secret. - **Custom Stytch domains**: If you've configured a [custom domain](https://stytch.com/docs/connected-apps/resources/custom-domains) on the Stytch project, use that hostname as the **Issuer URL** instead of the `.customers.stytch.dev` value. End users see the custom domain on the authorization page. -- **Client secret rotation**: Stytch supports [rotating the client secret](https://stytch.com/docs/api-reference/consumer/api/connected-apps/rotate-secret/start-secret-rotation) for a Connected App from the Dashboard or via the API. The rotation flow keeps the previous secret active while you swap the new one into Arcade. See [Rotate the client secret](/guides/user-sources#rotate-the-client-secret) in the User Sources guide for the Arcade-side procedure. -- **Subject Claim**: Arcade's default Subject Claim, `sub`, is the Stytch user's stable identifier and is the recommended value. Stytch's Connected Apps issues a [fixed set of standard OIDC claims](https://stytch.com/docs/api-reference/consumer/api/connected-apps/tokens/connected-app-id-token-object) on the ID token. Stytch does not currently support a custom-claim template for the ID token, so the standard claim set is what Arcade has available. See [Advanced: scopes and subject claim](/guides/user-sources#advanced-scopes-and-subject-claim) in the overview for what makes a good claim. +- **Client secret rotation**: Stytch supports [rotating the client secret](https://stytch.com/docs/api-reference/consumer/api/connected-apps/rotate-secret/start-secret-rotation) for a Connected App from the Dashboard or via the API. The rotation flow keeps the previous secret active while you swap the new one into Arcade. See [Rotate the client secret](/operate/user-sources#rotate-the-client-secret) in the User Sources guide for the Arcade-side procedure. +- **Subject Claim**: Arcade's default Subject Claim, `sub`, is the Stytch user's stable identifier and is the recommended value. Stytch's Connected Apps issues a [fixed set of standard OIDC claims](https://stytch.com/docs/api-reference/consumer/api/connected-apps/tokens/connected-app-id-token-object) on the ID token. Stytch does not currently support a custom-claim template for the ID token, so the standard claim set is what Arcade has available. See [Advanced: scopes and subject claim](/operate/user-sources#advanced-scopes-and-subject-claim) in the overview for what makes a good claim. diff --git a/app/en/references/arcade-cli/page.mdx b/app/en/references/arcade-cli/page.mdx index 7e848ff4b..a29c46faa 100644 --- a/app/en/references/arcade-cli/page.mdx +++ b/app/en/references/arcade-cli/page.mdx @@ -68,7 +68,7 @@ arcade --version ``` -If you previously had the `arcade-ai` package installed, you should uninstall it first. The old `arcade-ai` CLI has been replaced by `arcade-mcp`. See the [migration guide](/guides/create-tools/migrate-toolkits) for details on migrating from legacy toolkits. +If you previously had the `arcade-ai` package installed, you should uninstall it first. The old `arcade-ai` CLI has been replaced by `arcade-mcp`. See the [migration guide](/build/create-tools/migrate-toolkits) for details on migrating from legacy toolkits. ### Re-authenticate after upgrading diff --git a/app/en/references/auth-providers/airtable/page.mdx b/app/en/references/auth-providers/airtable/page.mdx index 230606abd..0d137a85f 100644 --- a/app/en/references/auth-providers/airtable/page.mdx +++ b/app/en/references/auth-providers/airtable/page.mdx @@ -25,7 +25,7 @@ This auth provider is used by: When using your own app credentials, make sure you configure your project to use a [custom user - verifier](/guides/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). + verifier](/build/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). Without this, your end-users will not be able to use your app or agent in production. @@ -115,7 +115,7 @@ Hit the **Create** button and the provider will be ready to be used. This method is only available when you are [self-hosting the - engine](/guides/deployment-hosting/helm) + engine](/operate/deployment/helm) @@ -250,7 +250,7 @@ const token = authResponse.context.token; You can use the pre-built [Arcade Airtable MCP Server](/resources/integrations/productivity/airtableapi) to quickly build agents and AI apps that interact with Airtable. -If the pre-built tools in the Airtable MCP Server don't meet your needs, you can author your own [custom tools](/guides/create-tools/tool-basics/build-mcp-server) that interact with the Airtable API. +If the pre-built tools in the Airtable MCP Server don't meet your needs, you can author your own [custom tools](/build/create-tools/tool-basics/build-mcp-server) that interact with the Airtable API. Use the `OAuth2()` auth class to specify that a tool requires authorization with Airtable. The `context.authorization.token` field will be automatically populated with the user's Airtable token: diff --git a/app/en/references/auth-providers/asana/page.mdx b/app/en/references/auth-providers/asana/page.mdx index 80754dc88..e1a5de384 100644 --- a/app/en/references/auth-providers/asana/page.mdx +++ b/app/en/references/auth-providers/asana/page.mdx @@ -31,7 +31,7 @@ If you choose to use Arcade's Asana auth, you don't need to configure anything. When using your own app credentials, make sure you configure your project to use a [custom user - verifier](/guides/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). + verifier](/build/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). Without this, your end-users will not be able to use your app or agent in production. @@ -189,7 +189,7 @@ You can use the auth token to call the [Get multiple tasks endpoint](https://dev You can use the pre-built [Arcade Asana MCP Server](/resources/integrations/productivity/asana) to quickly build agents and AI apps that interact with Asana. -If the pre-built tools in the Asana MCP Server don't meet your needs, you can author your own [custom tools](/guides/create-tools/tool-basics/build-mcp-server) that interact with Asana API. +If the pre-built tools in the Asana MCP Server don't meet your needs, you can author your own [custom tools](/build/create-tools/tool-basics/build-mcp-server) that interact with Asana API. Use the `Asana()` auth class to specify that a tool requires authorization with Asana. The authentication token needed to call the Asana API is available in the tool context through the `context.get_auth_token_or_empty()` method. diff --git a/app/en/references/auth-providers/atlassian/page.mdx b/app/en/references/auth-providers/atlassian/page.mdx index 8114dbeab..02bef35ae 100644 --- a/app/en/references/auth-providers/atlassian/page.mdx +++ b/app/en/references/auth-providers/atlassian/page.mdx @@ -24,7 +24,7 @@ This auth provider is used by: When using your own app credentials, make sure you configure your project to use a [custom user - verifier](/guides/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). + verifier](/build/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). Without this, your end-users will not be able to use your app or agent in production. @@ -146,7 +146,7 @@ const token = authResponse.context.token; ## Using Atlassian auth in custom tools -You can author your own [custom tools](/guides/create-tools/tool-basics/build-mcp-server) that interact with the Atlassian API. +You can author your own [custom tools](/build/create-tools/tool-basics/build-mcp-server) that interact with the Atlassian API. Use the `Atlassian()` auth class to specify that a tool requires authorization with Atlassian. The `context.authorization.token` field will be automatically populated with the user's Atlassian token: diff --git a/app/en/references/auth-providers/attio/page.mdx b/app/en/references/auth-providers/attio/page.mdx index 1bf9078d9..84ae92863 100644 --- a/app/en/references/auth-providers/attio/page.mdx +++ b/app/en/references/auth-providers/attio/page.mdx @@ -31,7 +31,7 @@ If you choose to use Arcade's Attio auth, you don't need to configure anything. When using your own app credentials, make sure you configure your project to use a [custom user - verifier](/guides/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). + verifier](/build/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). Without this, your end-users will not be able to use your app or agent in production. @@ -184,7 +184,7 @@ const token = authResponse.context.token; ## Using Attio auth in custom tools -You can author your own [custom tools](/guides/create-tools/tool-basics/build-mcp-server) that interact with the Attio API. +You can author your own [custom tools](/build/create-tools/tool-basics/build-mcp-server) that interact with the Attio API. Use the `Attio()` auth class to specify that a tool requires authorization with Attio. The authentication token needed to call the Attio API is available in the tool context through the `context.get_auth_token_or_empty()` method. diff --git a/app/en/references/auth-providers/calendly/page.mdx b/app/en/references/auth-providers/calendly/page.mdx index c2f14ba4e..32b8bf08d 100644 --- a/app/en/references/auth-providers/calendly/page.mdx +++ b/app/en/references/auth-providers/calendly/page.mdx @@ -25,7 +25,7 @@ This auth provider is used by: When using your own app credentials, make sure you configure your project to use a [custom user - verifier](/guides/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). + verifier](/build/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). Without this, your end-users will not be able to use your app or agent in production. @@ -111,7 +111,7 @@ Hit the **Create** button and the provider will be ready to be used. This method is only available when you are [self-hosting the - engine](/guides/deployment-hosting/helm) + engine](/operate/deployment/helm) @@ -237,7 +237,7 @@ const token = authResponse.context.token; You can use the pre-built [Arcade Calendly MCP Server](/resources/integrations/productivity/calendlyapi) to quickly build agents and AI apps that interact with Calendly. -If the pre-built tools in the Calendly MCP Server don't meet your needs, you can author your own [custom tools](/guides/create-tools/tool-basics/build-mcp-server) that interact with the Calendly API. +If the pre-built tools in the Calendly MCP Server don't meet your needs, you can author your own [custom tools](/build/create-tools/tool-basics/build-mcp-server) that interact with the Calendly API. Use the `OAuth2()` auth class to specify that a tool requires authorization with Calendly. The `context.authorization.token` field will be automatically populated with the user's Calendly token: diff --git a/app/en/references/auth-providers/cisco-duo/page.mdx b/app/en/references/auth-providers/cisco-duo/page.mdx index 7d8d01f76..dfa70b06f 100644 --- a/app/en/references/auth-providers/cisco-duo/page.mdx +++ b/app/en/references/auth-providers/cisco-duo/page.mdx @@ -39,7 +39,7 @@ This page describes how to configure Cisco Duo auth with Arcade, and use it from When using your own app credentials, make sure you configure your project to use a [custom user - verifier](/guides/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). + verifier](/build/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). Without this, your end-users will not be able to use your app or agent in production. @@ -144,7 +144,7 @@ The most common way to use Cisco Duo with Arcade is to put a Duo-protected syste Build an MCP server whose tools require Cisco Duo auth (see [Create your own Duo-authorized tools](#create-your-own-duo-authorized-tools)), then make it available in Arcade by either: -- Deploying a [custom MCP server](/guides/create-tools/tool-basics/build-mcp-server) to Arcade with [`arcade deploy`](/guides/deployment-hosting/arcade-deploy), or +- Deploying a [custom MCP server](/build/create-tools/tool-basics/build-mcp-server) to Arcade with [`arcade deploy`](/build/arcade-deploy), or - Adding an existing remote MCP server to your Arcade project. Once deployed, your server and its tools appear in the Arcade Dashboard under **Servers**. Each tool shows the Cisco Duo provider it requires: @@ -153,7 +153,7 @@ Once deployed, your server and its tools appear in the Arcade Dashboard under ** ### Connect your agentic client to an MCP gateway -Create an [MCP gateway](/guides/mcp-gateways) that exposes your server's tools, then connect your client to the gateway URL (`https://api.arcade.dev/mcp/`). +Create an [MCP gateway](/operate/mcp-gateways) that exposes your server's tools, then connect your client to the gateway URL (`https://api.arcade.dev/mcp/`). ### Call a tool @@ -165,7 +165,7 @@ Ask the agent to do something that uses one of your tools. The first time, Arcad ## Create your own Duo-authorized tools -Tools that call the APIs, databases, and enterprise systems protected by Cisco Duo are built like any other Arcade tool, so follow the [Add user authorization to your tools](/guides/create-tools/tool-basics/create-tool-auth) and [Build an MCP server](/guides/create-tools/tool-basics/build-mcp-server) guides. +Tools that call the APIs, databases, and enterprise systems protected by Cisco Duo are built like any other Arcade tool, so follow the [Add user authorization to your tools](/build/create-tools/tool-basics/create-tool-auth) and [Build an MCP server](/build/create-tools/tool-basics/build-mcp-server) guides. The only Duo-specific part is the auth requirement on each tool: use the `OAuth2` class with the provider ID you configured and the scopes the tool needs. diff --git a/app/en/references/auth-providers/clickup/page.mdx b/app/en/references/auth-providers/clickup/page.mdx index 8b76159a4..4e54d4f11 100644 --- a/app/en/references/auth-providers/clickup/page.mdx +++ b/app/en/references/auth-providers/clickup/page.mdx @@ -18,7 +18,7 @@ This auth provider is used by: When using your own app credentials, make sure you configure your project to use a [custom user - verifier](/guides/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). + verifier](/build/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). Without this, your end-users will not be able to use your app or agent in production. @@ -132,7 +132,7 @@ const { token } = auth.context; ## Using ClickUp auth in custom tools -You can author your own [custom tools](/guides/create-tools/tool-basics/build-mcp-server) that interact with the ClickUp API. +You can author your own [custom tools](/build/create-tools/tool-basics/build-mcp-server) that interact with the ClickUp API. Use the `ClickUp()` auth class to specify that a tool requires authorization with ClickUp. The `context.authorization.token` field will be automatically populated with the user's ClickUp token: diff --git a/app/en/references/auth-providers/discord/page.mdx b/app/en/references/auth-providers/discord/page.mdx index 74d2bebf1..cd61556c2 100644 --- a/app/en/references/auth-providers/discord/page.mdx +++ b/app/en/references/auth-providers/discord/page.mdx @@ -24,7 +24,7 @@ This auth provider is used by: When using your own app credentials, make sure you configure your project to use a [custom user - verifier](/guides/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). + verifier](/build/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). Without this, your end-users will not be able to use your app or agent in production. @@ -147,7 +147,7 @@ const token = authResponse.context.token; ## Using Discord auth in custom tools -You can author your own [custom tools](/guides/create-tools/tool-basics/build-mcp-server) that interact with the Discord API. +You can author your own [custom tools](/build/create-tools/tool-basics/build-mcp-server) that interact with the Discord API. Use the `Discord()` auth class to specify that a tool requires authorization with Discord. The `context.authorization.token` field will be automatically populated with the user's Discord token: diff --git a/app/en/references/auth-providers/dropbox/page.mdx b/app/en/references/auth-providers/dropbox/page.mdx index 7d0821e43..796f29500 100644 --- a/app/en/references/auth-providers/dropbox/page.mdx +++ b/app/en/references/auth-providers/dropbox/page.mdx @@ -24,7 +24,7 @@ This auth provider is used by: When using your own app credentials, make sure you configure your project to use a [custom user - verifier](/guides/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). + verifier](/build/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). Without this, your end-users will not be able to use your app or agent in production. @@ -149,7 +149,7 @@ const token = authResponse.context.token; ## Using Dropbox auth in custom tools -You can author your own [custom tools](/guides/create-tools/tool-basics/build-mcp-server) that interact with the Dropbox API. +You can author your own [custom tools](/build/create-tools/tool-basics/build-mcp-server) that interact with the Dropbox API. Use the `Dropbox()` auth class to specify that a tool requires authorization with Dropbox. The `context.authorization.token` field will be automatically populated with the user's Dropbox token: diff --git a/app/en/references/auth-providers/figma/page.mdx b/app/en/references/auth-providers/figma/page.mdx index 720e85aa6..94006cb30 100644 --- a/app/en/references/auth-providers/figma/page.mdx +++ b/app/en/references/auth-providers/figma/page.mdx @@ -45,7 +45,7 @@ For detailed descriptions of all available Figma OAuth scopes, refer to the [Fig When using your own app credentials, make sure you configure your project to use a [custom user - verifier](/guides/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). + verifier](/build/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). Without this, your end-users will not be able to use your app or agent in production. @@ -140,7 +140,7 @@ Hit the **Create** button and the provider will be ready to be used. This method is only available when you are [self-hosting the - engine](/guides/deployment-hosting/helm + engine](/operate/deployment/helm @@ -290,7 +290,7 @@ const token = authResponse.context.token; You can use the pre-built [Arcade Figma MCP Server](/resources/integrations/development/figma) to quickly build agents and AI apps that interact with Figma. -If the pre-built tools in the Figma MCP Server don't meet your needs, you can author your own [custom tools](/guides/create-tools/tool-basics/build-mcp-server) that interact with the Figma API. +If the pre-built tools in the Figma MCP Server don't meet your needs, you can author your own [custom tools](/build/create-tools/tool-basics/build-mcp-server) that interact with the Figma API. Use the `Figma()` auth class to specify that a tool requires authorization with Figma. The `context.authorization.token` field will be automatically populated with the user's Figma token: diff --git a/app/en/references/auth-providers/github/page.mdx b/app/en/references/auth-providers/github/page.mdx index 80bd00740..0fa38de7c 100644 --- a/app/en/references/auth-providers/github/page.mdx +++ b/app/en/references/auth-providers/github/page.mdx @@ -436,7 +436,7 @@ When an admin uninstalls an app: When using your own app credentials, make sure you configure your project to use a [custom user - verifier](/guides/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). + verifier](/build/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). Without this, your end-users will not be able to use your app or agent in production. diff --git a/app/en/references/auth-providers/google/page.mdx b/app/en/references/auth-providers/google/page.mdx index d0be7584a..f5a74fb23 100644 --- a/app/en/references/auth-providers/google/page.mdx +++ b/app/en/references/auth-providers/google/page.mdx @@ -76,7 +76,7 @@ The default provider has some limitations: When using your own app credentials, make sure you configure your project to use a [custom user - verifier](/guides/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). + verifier](/build/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). Without this, your end-users will not be able to use your app or agent in production. @@ -268,7 +268,7 @@ console.log(emailMessages); You can use the pre-built Arcade Google MCP Servers, like [Arcade Gmail MCP Server](/resources/integrations/productivity/gmail), to quickly build agents and AI apps that interact with Google services like Gmail, Calendar, Drive, and more. -If the pre-built tools in the Google MCP Servers don't meet your needs, you can author your own [custom tools](/guides/create-tools/tool-basics/build-mcp-server) that interact with Google APIs. +If the pre-built tools in the Google MCP Servers don't meet your needs, you can author your own [custom tools](/build/create-tools/tool-basics/build-mcp-server) that interact with Google APIs. Use the `Google()` auth class to specify that a tool requires authorization with Google. The `context.authorization.token` field will be automatically populated with the user's Google token: diff --git a/app/en/references/auth-providers/hubspot/page.mdx b/app/en/references/auth-providers/hubspot/page.mdx index 980a71e6a..9b2400b4c 100644 --- a/app/en/references/auth-providers/hubspot/page.mdx +++ b/app/en/references/auth-providers/hubspot/page.mdx @@ -31,7 +31,7 @@ If you choose to use Arcade's Hubspot auth, you don't need to configure anything When using your own app credentials, make sure you configure your project to use a [custom user - verifier](/guides/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). + verifier](/build/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). Without this, your end-users will not be able to use your app or agent in production. @@ -194,7 +194,7 @@ The scopes supported by the Arcade Hubspot auth provider are the ones [listed ab ## Using Hubspot auth in custom tools -You can author your own [custom tools](/guides/create-tools/tool-basics/build-mcp-server) that interact with the Hubspot API. +You can author your own [custom tools](/build/create-tools/tool-basics/build-mcp-server) that interact with the Hubspot API. Use the `Hubspot()` auth class to specify that a tool requires authorization with Hubspot. The authentication token needed to call the Hubspot API is available in the tool context through the `context.get_auth_token_or_empty()` method. diff --git a/app/en/references/auth-providers/linear/page.mdx b/app/en/references/auth-providers/linear/page.mdx index c7c1ef926..64c687339 100644 --- a/app/en/references/auth-providers/linear/page.mdx +++ b/app/en/references/auth-providers/linear/page.mdx @@ -24,7 +24,7 @@ This auth provider is used by: When using your own app credentials, make sure you configure your project to use a [custom user - verifier](/guides/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). + verifier](/build/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). Without this, your end-users will not be able to use your app or agent in production. @@ -240,7 +240,7 @@ console.log(teams); You can use the pre-built [Arcade Linear MCP Server](/resources/integrations/productivity/linear) to quickly build agents and AI apps that interact with Linear. -If the pre-built tools in the Linear MCP Server don't meet your needs, you can author your own [custom tools](/guides/create-tools/tool-basics/build-mcp-server) that interact with the Linear API. +If the pre-built tools in the Linear MCP Server don't meet your needs, you can author your own [custom tools](/build/create-tools/tool-basics/build-mcp-server) that interact with the Linear API. Use the `Linear()` auth class to specify that a tool requires authorization with Linear. The `context.authorization.token` field will be automatically populated with the user's Linear token: diff --git a/app/en/references/auth-providers/linkedin/page.mdx b/app/en/references/auth-providers/linkedin/page.mdx index 969f398d6..c8bf8599d 100644 --- a/app/en/references/auth-providers/linkedin/page.mdx +++ b/app/en/references/auth-providers/linkedin/page.mdx @@ -18,7 +18,7 @@ This auth provider is used by: When using your own app credentials, make sure you configure your project to use a [custom user - verifier](/guides/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). + verifier](/build/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). Without this, your end-users will not be able to use your app or agent in production. @@ -211,7 +211,7 @@ console.log(data); ## Using LinkedIn auth in custom tools -You can author your own [custom tools](/guides/create-tools/tool-basics/build-mcp-server) that interact with LinkedIn APIs. +You can author your own [custom tools](/build/create-tools/tool-basics/build-mcp-server) that interact with LinkedIn APIs. Use the `LinkedIn()` auth class to specify that a tool requires authorization with LinkedIn. The `context.authorization.token` field will be automatically populated with the user's LinkedIn token: diff --git a/app/en/references/auth-providers/mailchimp/page.mdx b/app/en/references/auth-providers/mailchimp/page.mdx index cc04ece81..62115b452 100644 --- a/app/en/references/auth-providers/mailchimp/page.mdx +++ b/app/en/references/auth-providers/mailchimp/page.mdx @@ -25,7 +25,7 @@ This auth provider is used by: When using your own app credentials, make sure you configure your project to use a [custom user - verifier](/guides/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). + verifier](/build/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). Without this, your end-users will not be able to use your app or agent in production. @@ -113,7 +113,7 @@ Hit the **Create** button and the provider will be ready to be used. This method is only available when you are [self-hosting the - engine](/guides/deployment-hosting/helm + engine](/operate/deployment/helm @@ -285,7 +285,7 @@ const apiEndpoint = metadata.api_endpoint; You can use the pre-built [Arcade Mailchimp Marketing MCP Server](/resources/integrations/productivity/mailchimp-marketing-api) to quickly build agents and AI apps that interact with Mailchimp. -If the pre-built tools in the Mailchimp MCP Server don't meet your needs, you can author your own [custom tools](/guides/create-tools/tool-basics/build-mcp-server) that interact with the Mailchimp API. +If the pre-built tools in the Mailchimp MCP Server don't meet your needs, you can author your own [custom tools](/build/create-tools/tool-basics/build-mcp-server) that interact with the Mailchimp API. Use the `OAuth2()` auth class to specify that a tool requires authorization with Mailchimp. The `context.authorization.token` field will be automatically populated with the user's Mailchimp token: diff --git a/app/en/references/auth-providers/microsoft-powerbi/page.mdx b/app/en/references/auth-providers/microsoft-powerbi/page.mdx index e32972243..fdd6c0cf3 100644 --- a/app/en/references/auth-providers/microsoft-powerbi/page.mdx +++ b/app/en/references/auth-providers/microsoft-powerbi/page.mdx @@ -33,7 +33,7 @@ This auth provider is used by: When using your own app credentials, make sure you configure your project to use a [custom user - verifier](/guides/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). + verifier](/build/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). Without this, your end-users will not be able to use your app or agent in production. @@ -187,7 +187,7 @@ const token = authResponse.context.token; ## Using Microsoft Power BI auth in custom tools -You can author your own [custom tools](/guides/create-tools/tool-basics/build-mcp-server) that interact with the Power BI REST API. +You can author your own [custom tools](/build/create-tools/tool-basics/build-mcp-server) that interact with the Power BI REST API. Power BI is a Microsoft provider with its own `provider_id`, so mark a tool as requiring it by subclassing the `Microsoft` auth class and overriding `provider_id` to `microsoft-powerbi`. The `context.authorization.token` field will be automatically populated with the user's Power BI token: diff --git a/app/en/references/auth-providers/microsoft/page.mdx b/app/en/references/auth-providers/microsoft/page.mdx index 0ab0557f7..381f0ffe4 100644 --- a/app/en/references/auth-providers/microsoft/page.mdx +++ b/app/en/references/auth-providers/microsoft/page.mdx @@ -24,7 +24,7 @@ This auth provider is used by: When using your own app credentials, make sure you configure your project to use a [custom user - verifier](/guides/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). + verifier](/build/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). Without this, your end-users will not be able to use your app or agent in production. @@ -175,7 +175,7 @@ const token = authResponse.context.token; ## Using Microsoft auth in custom tools -You can author your own [custom tools](/guides/create-tools/tool-basics/build-mcp-server) that interact with Microsoft Graph APIs. +You can author your own [custom tools](/build/create-tools/tool-basics/build-mcp-server) that interact with Microsoft Graph APIs. Use the `Microsoft()` auth class to specify that a tool requires authorization with Microsoft. The `context.authorization.token` field will be automatically populated with the user's Microsoft token: diff --git a/app/en/references/auth-providers/miro/page.mdx b/app/en/references/auth-providers/miro/page.mdx index 9bd724c89..e04d7b3fe 100644 --- a/app/en/references/auth-providers/miro/page.mdx +++ b/app/en/references/auth-providers/miro/page.mdx @@ -25,7 +25,7 @@ This auth provider is used by: When using your own app credentials, make sure you configure your project to use a [custom user - verifier](/guides/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). + verifier](/build/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). Without this, your end-users will not be able to use your app or agent in production. @@ -115,7 +115,7 @@ Hit the **Create** button and the provider will be ready to be used. This method is only available when you are [self-hosting the - engine](/guides/deployment-hosting/helm + engine](/operate/deployment/helm @@ -247,7 +247,7 @@ const token = authResponse.context.token; You can use the pre-built [Arcade Miro MCP Server](/resources/integrations/productivity/miroapi) to quickly build agents and AI apps that interact with Miro. -If the pre-built tools in the Miro MCP Server don't meet your needs, you can author your own [custom tools](/guides/create-tools/tool-basics/build-mcp-server) that interact with the Miro API. +If the pre-built tools in the Miro MCP Server don't meet your needs, you can author your own [custom tools](/build/create-tools/tool-basics/build-mcp-server) that interact with the Miro API. Use the `OAuth2()` auth class to specify that a tool requires authorization with Miro. The `context.authorization.token` field will be automatically populated with the user's Miro token: diff --git a/app/en/references/auth-providers/notion/page.mdx b/app/en/references/auth-providers/notion/page.mdx index 755169461..a990f99e3 100644 --- a/app/en/references/auth-providers/notion/page.mdx +++ b/app/en/references/auth-providers/notion/page.mdx @@ -18,7 +18,7 @@ This auth provider is used by: When using your own app credentials, make sure you configure your project to use a [custom user - verifier](/guides/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). + verifier](/build/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). Without this, your end-users will not be able to use your app or agent in production. @@ -140,7 +140,7 @@ const token = authResponse.context.token; You can use the pre-built [Arcade Notion MCP Server](/resources/integrations/productivity/notiontoolkit) to quickly build agents and AI apps that interact with Notion. -If the pre-built tools in the Notion MCP Server don't meet your needs, you can author your own [custom tools](/guides/create-tools/tool-basics/build-mcp-server) that interact with the Notion API. +If the pre-built tools in the Notion MCP Server don't meet your needs, you can author your own [custom tools](/build/create-tools/tool-basics/build-mcp-server) that interact with the Notion API. Use the `Notion()` auth class to specify that a tool requires authorization with Notion. The `context.authorization.token` field will be automatically populated with the user's Notion token: diff --git a/app/en/references/auth-providers/oauth2/page.mdx b/app/en/references/auth-providers/oauth2/page.mdx index c7daeb6fe..54b2cea76 100644 --- a/app/en/references/auth-providers/oauth2/page.mdx +++ b/app/en/references/auth-providers/oauth2/page.mdx @@ -30,7 +30,7 @@ The only supported OAuth 2.0 flow is the authorization code grant flow (with or ## Configuring OAuth 2.0 -How you configure the OAuth 2.0 provider depends on whether you use the Arcade Cloud Engine or a [self-hosted Engine](/guides/deployment-hosting/helm). If you use the Cloud Engine, you must configure your provider in the Dashboard. +How you configure the OAuth 2.0 provider depends on whether you use the Arcade Cloud Engine or a [self-hosted Engine](/operate/deployment/helm). If you use the Cloud Engine, you must configure your provider in the Dashboard. When configuring your app in the OAuth 2.0 enabled service, you must use the @@ -43,7 +43,7 @@ How you configure the OAuth 2.0 provider depends on whether you use the Arcade C When using the Arcade Cloud Platform, the Dashboard is available at [`https://api.arcade.dev/dashboard`](https://api.arcade.dev/dashboard). If you - are [self-hosting Arcade](/guides/deployment-hosting/helm), by default + are [self-hosting Arcade](/operate/deployment/helm), by default the Dashboard is available at [`http://localhost:9099/dashboard`](http://localhost:9099/dashboard). Adjust the host and port, if necessary, to match your environment. @@ -62,7 +62,7 @@ When you use tools that require OAuth 2.0 authorization using your Arcade accoun This method is only available when you are [self-hosting the - engine](/guides/deployment-hosting/helm + engine](/operate/deployment/helm @@ -84,7 +84,7 @@ HOOLI_CLIENT_SECRET="" ``` - See [configuration](/guides/deployment-hosting/helm#configuration) for more + See [configuration](/operate/deployment/helm#configuration) for more information on how to set environment variables and configure the Arcade Engine. @@ -94,7 +94,7 @@ HOOLI_CLIENT_SECRET="" To locate the `engine.yaml` file in your OS after installing the Arcade Engine, check the [Engine configuration - file](/guides/deployment-hosting/helm#configuration) + file](/operate/deployment/helm#configuration) documentation. @@ -589,7 +589,7 @@ const token = authResponse.context.token; ## Using OAuth 2.0 in custom tools -You can author your own [custom tools](/guides/create-tools/tool-basics/build-mcp-server) that interact with any OAuth 2.0-compatible APIs. +You can author your own [custom tools](/build/create-tools/tool-basics/build-mcp-server) that interact with any OAuth 2.0-compatible APIs. Use the `OAuth2()` auth class to specify that a tool requires OAuth 2.0 authorization. In your tool function, `context.authorization` will be automatically populated with the following properties: diff --git a/app/en/references/auth-providers/page.mdx b/app/en/references/auth-providers/page.mdx index 907eb9ece..c34c31746 100644 --- a/app/en/references/auth-providers/page.mdx +++ b/app/en/references/auth-providers/page.mdx @@ -187,4 +187,4 @@ async def list_emails( This is similar to the pattern used in the generic OAuth2 provider, but instead of using the `OAuth2` class, you use the `Google` class and specify the `id` of the auth provider you want to use. -See the docs about [Authoring Tools](/guides/create-tools/tool-basics/build-mcp-server) for more information on how to create and serve a MCP Server. +See the docs about [Authoring Tools](/build/create-tools/tool-basics/build-mcp-server) for more information on how to create and serve a MCP Server. diff --git a/app/en/references/auth-providers/pagerduty/page.mdx b/app/en/references/auth-providers/pagerduty/page.mdx index afb56542c..d311222ef 100644 --- a/app/en/references/auth-providers/pagerduty/page.mdx +++ b/app/en/references/auth-providers/pagerduty/page.mdx @@ -32,7 +32,7 @@ This auth provider is used by: When using your own app credentials, make sure you configure your project to use a [custom user - verifier](/guides/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). + verifier](/build/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). Without this, your end-users will not be able to use your app or agent in production. @@ -122,7 +122,7 @@ Hit the **Create** button and the provider will be ready to be used. This method is only available when you are [self-hosting the - engine](/guides/deployment-hosting/helm + engine](/operate/deployment/helm @@ -251,7 +251,7 @@ const token = authResponse.context.token; You can use the pre-built [Arcade PagerDuty MCP Server](/resources/integrations/development/pagerdutyapi) to quickly build agents and AI apps that interact with PagerDuty. -If the pre-built tools in the PagerDuty MCP Server don't meet your needs, you can author your own [custom tools](/guides/create-tools/tool-basics/build-mcp-server) that interact with the PagerDuty API. +If the pre-built tools in the PagerDuty MCP Server don't meet your needs, you can author your own [custom tools](/build/create-tools/tool-basics/build-mcp-server) that interact with the PagerDuty API. Use the `PagerDuty()` auth class to specify that a tool requires authorization with PagerDuty. The `context.authorization.token` field will be automatically populated with the user's PagerDuty token: diff --git a/app/en/references/auth-providers/reddit/page.mdx b/app/en/references/auth-providers/reddit/page.mdx index 556d5b2bb..bc479962a 100644 --- a/app/en/references/auth-providers/reddit/page.mdx +++ b/app/en/references/auth-providers/reddit/page.mdx @@ -24,7 +24,7 @@ This auth provider is used by: When using your own app credentials, make sure you configure your project to use a [custom user - verifier](/guides/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). + verifier](/build/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). Without this, your end-users will not be able to use your app or agent in production. @@ -149,7 +149,7 @@ const token = authResponse.context.token; ## Using Reddit auth in custom tools -You can author your own [custom tools](/guides/create-tools/tool-basics/build-mcp-server) that interact with the Reddit API. +You can author your own [custom tools](/build/create-tools/tool-basics/build-mcp-server) that interact with the Reddit API. Use the `Reddit()` auth class to specify that a tool requires authorization with Reddit. The `context.authorization.token` field will be automatically populated with the user's Reddit token: diff --git a/app/en/references/auth-providers/salesforce/page.mdx b/app/en/references/auth-providers/salesforce/page.mdx index 62cc5f125..bcee88c99 100644 --- a/app/en/references/auth-providers/salesforce/page.mdx +++ b/app/en/references/auth-providers/salesforce/page.mdx @@ -21,7 +21,7 @@ This auth provider is used by: When using your own app credentials, make sure you configure your project to use a [custom user - verifier](/guides/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). + verifier](/build/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). Without this, your end-users will not be able to use your app or agent in production. @@ -99,7 +99,7 @@ The custom scopes required by the [Arcade Salesforce MCP Server](/resources/inte The custom scopes listed below are only required if you are using the [Arcade Salesforce MCP Server](/resources/integrations/sales/salesforce). -If you're creating your own [custom Salesforce tools](/guides/create-tools/tool-basics/build-mcp-server) or using Arcade to authorize users and call Salesforce APIs directly, you are free to define custom scope(s) that fit best your application use cases. Observe that you must have at least one custom scope assigned to your Salesforce app in order to use the Salesforce API. +If you're creating your own [custom Salesforce tools](/build/create-tools/tool-basics/build-mcp-server) or using Arcade to authorize users and call Salesforce APIs directly, you are free to define custom scope(s) that fit best your application use cases. Observe that you must have at least one custom scope assigned to your Salesforce app in order to use the Salesforce API. @@ -197,7 +197,7 @@ Refer to the [MCP Server documentation and examples](/resources/integrations/sal Check our introductory documentation to understand what are tools and how - [tool calling works](/guides/tool-calling). + [tool calling works](/build/tool-calling). ## Calling Salesforce APIs directly @@ -569,7 +569,7 @@ console.log(await response.json()); ## Create your own Salesforce Tools -If the pre-built tools in the [Arcade Salesforce MCP Server](/resources/integrations/sales/salesforce) don't meet your needs, you can create your own [custom tools](/guides/create-tools/tool-basics/build-mcp-server) that interact with the Salesforce APIs. +If the pre-built tools in the [Arcade Salesforce MCP Server](/resources/integrations/sales/salesforce) don't meet your needs, you can create your own [custom tools](/build/create-tools/tool-basics/build-mcp-server) that interact with the Salesforce APIs. The code implemented in the Arcade Salesforce tools is the best guide for you to understand how to implement your own. ``` diff --git a/app/en/references/auth-providers/slack/page.mdx b/app/en/references/auth-providers/slack/page.mdx index febe16fc7..07b492133 100644 --- a/app/en/references/auth-providers/slack/page.mdx +++ b/app/en/references/auth-providers/slack/page.mdx @@ -25,7 +25,7 @@ This auth provider is used by: When using your own app credentials, make sure you configure your project to use a [custom user - verifier](/guides/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). + verifier](/build/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). Without this, your end-users will not be able to use your app or agent in production. @@ -179,7 +179,7 @@ const token = authResponse.context.token; You can use the pre-built [Arcade Slack MCP Server](/resources/integrations/social/slack) to quickly build agents and AI apps that interact with Slack. -If the pre-built tools in the Slack MCP Server don't meet your needs, you can author your own [custom tools](/guides/create-tools/tool-basics/build-mcp-server) that interact with the Slack API. +If the pre-built tools in the Slack MCP Server don't meet your needs, you can author your own [custom tools](/build/create-tools/tool-basics/build-mcp-server) that interact with the Slack API. Use the `Slack()` auth class to specify that a tool requires authorization with Slack. The `context.authorization.token` field will be automatically populated with the user's Slack token: diff --git a/app/en/references/auth-providers/spotify/page.mdx b/app/en/references/auth-providers/spotify/page.mdx index 28c7c4509..f80ba0977 100644 --- a/app/en/references/auth-providers/spotify/page.mdx +++ b/app/en/references/auth-providers/spotify/page.mdx @@ -24,7 +24,7 @@ This auth provider is used by: When using your own app credentials, make sure you configure your project to use a [custom user - verifier](/guides/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). + verifier](/build/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). Without this, your end-users will not be able to use your app or agent in production. @@ -150,7 +150,7 @@ const token = authResponse.context.token; ## Using Spotify auth in custom tools -You can author your own [custom tools](/guides/create-tools/tool-basics/build-mcp-server) that interact with the Spotify API. +You can author your own [custom tools](/build/create-tools/tool-basics/build-mcp-server) that interact with the Spotify API. Use the `Spotify()` auth class to specify that a tool requires authorization with Spotify. The `context.authorization.token` field will be automatically populated with the user's Spotify token: diff --git a/app/en/references/auth-providers/square/page.mdx b/app/en/references/auth-providers/square/page.mdx index 8906d6d8f..b97f9ea11 100644 --- a/app/en/references/auth-providers/square/page.mdx +++ b/app/en/references/auth-providers/square/page.mdx @@ -25,7 +25,7 @@ This auth provider is used by: When using your own app credentials, make sure you configure your project to use a [custom user - verifier](/guides/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). + verifier](/build/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). Without this, your end-users will not be able to use your app or agent in production. @@ -117,7 +117,7 @@ Hit the **Create** button and the provider will be ready to be used. This method is only available when you are [self-hosting the - engine](/guides/deployment-hosting/helm + engine](/operate/deployment/helm @@ -249,7 +249,7 @@ const token = authResponse.context.token; You can use the pre-built [Arcade Square MCP Server](/resources/integrations/productivity/squareup-api) to quickly build agents and AI apps that interact with Square. -If the pre-built tools in the Square MCP Server don't meet your needs, you can author your own [custom tools](/guides/create-tools/tool-basics/build-mcp-server) that interact with the Square API. +If the pre-built tools in the Square MCP Server don't meet your needs, you can author your own [custom tools](/build/create-tools/tool-basics/build-mcp-server) that interact with the Square API. Use the `OAuth2()` auth class to specify that a tool requires authorization with Square. The `context.authorization.token` field will be automatically populated with the user's Square token: diff --git a/app/en/references/auth-providers/ticktick/page.mdx b/app/en/references/auth-providers/ticktick/page.mdx index 95a320b6a..8c2c28d84 100644 --- a/app/en/references/auth-providers/ticktick/page.mdx +++ b/app/en/references/auth-providers/ticktick/page.mdx @@ -25,7 +25,7 @@ This auth provider is used by: When using your own app credentials, make sure you configure your project to use a [custom user - verifier](/guides/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). + verifier](/build/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). Without this, your end-users will not be able to use your app or agent in production. @@ -110,7 +110,7 @@ Hit the **Create** button and the provider will be ready to be used. This method is only available when you are [self-hosting the - engine](/guides/deployment-hosting/helm + engine](/operate/deployment/helm @@ -253,7 +253,7 @@ const token = authResponse.context.token; You can use the pre-built [Arcade TickTick API MCP Server](/resources/integrations/productivity/ticktickapi) to quickly build agents and AI apps that interact with TickTick. -If the pre-built tools in the TickTick MCP Server don't meet your needs, you can author your own [custom tools](/guides/create-tools/tool-basics/build-mcp-server) that interact with the TickTick API. +If the pre-built tools in the TickTick MCP Server don't meet your needs, you can author your own [custom tools](/build/create-tools/tool-basics/build-mcp-server) that interact with the TickTick API. Use the `OAuth2()` auth class to specify that a tool requires authorization with TickTick. The `context.authorization.token` field will be automatically populated with the user's TickTick token: diff --git a/app/en/references/auth-providers/twitch/page.mdx b/app/en/references/auth-providers/twitch/page.mdx index ead1080c1..742f336a8 100644 --- a/app/en/references/auth-providers/twitch/page.mdx +++ b/app/en/references/auth-providers/twitch/page.mdx @@ -24,7 +24,7 @@ This auth provider is used by: When using your own app credentials, make sure you configure your project to use a [custom user - verifier](/guides/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). + verifier](/build/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). Without this, your end-users will not be able to use your app or agent in production. @@ -153,7 +153,7 @@ const token = authResponse.context.token; ## Using Twitch auth in custom tools -You can author your own [custom tools](/guides/create-tools/tool-basics/build-mcp-server) that interact with the Twitch API. +You can author your own [custom tools](/build/create-tools/tool-basics/build-mcp-server) that interact with the Twitch API. Use the `Twitch()` auth class to specify that a tool requires authorization with Twitch. The `context.authorization.token` field will be automatically populated with the user's Twitch token: diff --git a/app/en/references/auth-providers/x/page.mdx b/app/en/references/auth-providers/x/page.mdx index 473f1bfca..3608d8b8e 100644 --- a/app/en/references/auth-providers/x/page.mdx +++ b/app/en/references/auth-providers/x/page.mdx @@ -25,7 +25,7 @@ This auth provider is used by: When using your own app credentials, make sure you configure your project to use a [custom user - verifier](/guides/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). + verifier](/build/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). Without this, your end-users will not be able to use your app or agent in production. @@ -156,7 +156,7 @@ const token = authResponse.context.token; You can use the pre-built [Arcade X MCP Server](/resources/integrations/social/x) to quickly build agents and AI apps that interact with X. -If the pre-built tools in the X MCP Server don't meet your needs, you can author your own [custom tools](/guides/create-tools/tool-basics/build-mcp-server) that interact with the X API. +If the pre-built tools in the X MCP Server don't meet your needs, you can author your own [custom tools](/build/create-tools/tool-basics/build-mcp-server) that interact with the X API. Use the `X()` auth class to specify that a tool requires authorization with X. The `context.authorization.token` field will be automatically populated with the user's X token: diff --git a/app/en/references/auth-providers/zendesk/page.mdx b/app/en/references/auth-providers/zendesk/page.mdx index 70c7db8b3..480073e05 100644 --- a/app/en/references/auth-providers/zendesk/page.mdx +++ b/app/en/references/auth-providers/zendesk/page.mdx @@ -26,7 +26,7 @@ This auth provider is used by: When using your own app credentials, make sure you configure your project to use a [custom user - verifier](/guides/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). + verifier](/build/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). Without this, your end-users will not be able to use your app or agent in production. @@ -184,7 +184,7 @@ const token = authResponse.context.token; ## Using Zendesk auth in custom tools -If the [Arcade Zendesk MCP Server](/resources/integrations/customer-support/zendesk) does not meet your needs, you can author your own [custom tools](/guides/create-tools/tool-basics/build-mcp-server) that interact with Zendesk APIs. +If the [Arcade Zendesk MCP Server](/resources/integrations/customer-support/zendesk) does not meet your needs, you can author your own [custom tools](/build/create-tools/tool-basics/build-mcp-server) that interact with Zendesk APIs. Use the `OAuth2()` auth class to specify that a tool requires authorization with Zendesk. The `context.authorization.token` field will be automatically populated with the user's Zendesk token: diff --git a/app/en/references/auth-providers/zoho/page.mdx b/app/en/references/auth-providers/zoho/page.mdx index f77956167..dcc697475 100644 --- a/app/en/references/auth-providers/zoho/page.mdx +++ b/app/en/references/auth-providers/zoho/page.mdx @@ -27,7 +27,7 @@ This auth provider is used by: When using your own app credentials, make sure you configure your project to use a [custom user - verifier](/guides/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). + verifier](/build/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). Without this, your end-users will not be able to use your app or agent in production. @@ -126,7 +126,7 @@ Hit the **Create** button and the provider will be ready to be used. This method is only available when you are [self-hosting the - engine](/guides/deployment-hosting/helm + engine](/operate/deployment/helm @@ -277,7 +277,7 @@ const token = authResponse.context.token; You can use the pre-built Arcade Zoho MCP Servers ([Zoho Books](/resources/integrations/payments/zoho-books-api), Zoho Creator (coming soon)) to quickly build agents and AI apps that interact with Zoho. -If the pre-built tools don't meet your needs, you can author your own [custom tools](/guides/create-tools/tool-basics/build-mcp-server) that interact with Zoho APIs. +If the pre-built tools don't meet your needs, you can author your own [custom tools](/build/create-tools/tool-basics/build-mcp-server) that interact with Zoho APIs. Use the `OAuth2()` auth class to specify that a tool requires authorization with Zoho. The `context.authorization.token` field will be automatically populated with the user's Zoho token: diff --git a/app/en/references/auth-providers/zoom/page.mdx b/app/en/references/auth-providers/zoom/page.mdx index da29ae659..559632002 100644 --- a/app/en/references/auth-providers/zoom/page.mdx +++ b/app/en/references/auth-providers/zoom/page.mdx @@ -24,7 +24,7 @@ This auth provider is used by: When using your own app credentials, make sure you configure your project to use a [custom user - verifier](/guides/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). + verifier](/build/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). Without this, your end-users will not be able to use your app or agent in production. @@ -151,7 +151,7 @@ const token = authResponse.context.token; ## Using Zoom auth in custom tools -You can author your own [custom tools](/guides/create-tools/tool-basics/build-mcp-server) that interact with the Zoom API. +You can author your own [custom tools](/build/create-tools/tool-basics/build-mcp-server) that interact with the Zoom API. Use the `Zoom()` auth class to specify that a tool requires authorization with Zoom. The `context.authorization.token` field will be automatically populated with the user's Zoom token: diff --git a/app/en/references/changelog/page.mdx b/app/en/references/changelog/page.mdx index ac219ae7c..acd8aefbb 100644 --- a/app/en/references/changelog/page.mdx +++ b/app/en/references/changelog/page.mdx @@ -517,7 +517,7 @@ _Here's what's new at Arcade.dev!_ Contextual Access for Tool Executions is Live! Learn more - [here](/guides/contextual-access) + [here](/operate/contextual-access) **Arcade MCP Servers** @@ -564,7 +564,7 @@ _Here's what's new at Arcade.dev!_ **Arcade MCP Servers** -- `[feature - 🚀]` Launched `https://ctl.arcade.dev/mcp` - Arcade's Gateway Assistant. Connect your LLM to help build MCP Gateways and MCP Servers for any agent use case. Learn more about it [here](/guides/mcp-gateways/create-via-ai)! +- `[feature - 🚀]` Launched `https://ctl.arcade.dev/mcp` - Arcade's Gateway Assistant. Connect your LLM to help build MCP Gateways and MCP Servers for any agent use case. Learn more about it [here](/operate/mcp-gateways/create-via-ai)! **Platform and Engine** @@ -601,7 +601,7 @@ _Here's what's new at Arcade.dev!_ MCP Gateways now support OAuth! Learn more about it - [here](/guides/mcp-gateways)! + [here](/operate/mcp-gateways)! **Arcade MCP Servers** @@ -629,7 +629,7 @@ _Here's what's new at Arcade.dev!_ **Arcade MCP Servers** -- `[feature - 🚀]` OAuth authentication for `arcade-mcp` servers. Learn more about it [here](/guides/create-tools/secure-your-server/secure-your-mcp-server) +- `[feature - 🚀]` OAuth authentication for `arcade-mcp` servers. Learn more about it [here](/build/create-tools/secure-your-server/secure-your-mcp-server) - `[maintenance - 🔧]` Ability to run multiple uvicorn workers - `[maintenance - 🔧]` Include type annotations for `arcade_mcp_server` @@ -795,7 +795,7 @@ _Here's what's new at Arcade.dev!_ This week MCP Gateways are now generally available! MCP Gateways allow you to federate the tools from multiple MCP Servers into a single collection for easier management, control, and access. Learn more about them - [here](/guides/create-tools/mcp-gateways! + [here](/operate/mcp-gateways)! @@ -819,7 +819,7 @@ _Here's what's new at Arcade.dev!_ **Platform and Engine** - `[feature - 🚀]` Dashboard: Allow OAuth on MCP Servers -- `[feature - 🚀]` MCP Gateways are now generally available! Learn more about them [here](/guides/create-tools/mcp-gateways! +- `[feature - 🚀]` MCP Gateways are now generally available! Learn more about them [here](/operate/mcp-gateways)! - `[feature - 🚀]` Projects are now generally available. - `[maintenance - 🔧]` Support remote MCP servers which require DCR (dynamic client registration). @@ -864,9 +864,9 @@ _Here's what's new at Arcade.dev!_ **Toolkits** -- `[feature - 🚀]` Introduce [Unoptimized tools](/guides/create-tools/improve/types-of-tools), a new type of tool that mirrors the original HTTP API design of the upstream service. +- `[feature - 🚀]` Introduce [Unoptimized tools](/build/create-tools/improve/types-of-tools), a new type of tool that mirrors the original HTTP API design of the upstream service. - `[feature - 🚀]` Release Slack started MCP Server which contains support for most of the Slack API. -- `[feature - 🚀]` Include advanced error handling in the following MCP Servers: Google, Microsoft, Slack, and Asana. Learn more about handling tool errors [here](/guides/create-tools/error-handling/useful-tool-errors). +- `[feature - 🚀]` Include advanced error handling in the following MCP Servers: Google, Microsoft, Slack, and Asana. Learn more about handling tool errors [here](/build/create-tools/error-handling/useful-tool-errors). - `[bugfix - 🐛]` [MCP Servers/MS Teams] Fix get_chat_metadata by chat's users - `[feature - 🚀]` [MCP Servers/confluence] Adding WhoAmI tools for Confluence @@ -1073,7 +1073,7 @@ _Here's what's new at Arcade.dev!_ ## 2025-07-18 - Version 2.0.0 of the Arcade Engine was released this week. Upgrading to version 2.0.0 is recommended for all self-hosted developers, and includes an important security fix for [secure OAuth flows](/guides/user-facing-agents/secure-auth-production). After upgrading, all projects will default to using the Arcade user verifier. If desired, you can then implement a custom user verifier in your application/agent and make the switch via the Arcade Dashboard. + Version 2.0.0 of the Arcade Engine was released this week. Upgrading to version 2.0.0 is recommended for all self-hosted developers, and includes an important security fix for [secure OAuth flows](/build/user-facing-agents/secure-auth-production). After upgrading, all projects will default to using the Arcade user verifier. If desired, you can then implement a custom user verifier in your application/agent and make the switch via the Arcade Dashboard. Self-hosed Arcade developers cannot be grandfathered into the old (insecure) behavior of skipping user verification once the Engine is upgraded to version 2.0.0 or higher. @@ -1175,7 +1175,7 @@ Self-hosed Arcade developers cannot be grandfathered into the old (insecure) beh - `[feature - 🚀]` Admin APIs released for managing users, secrets, and tools ([API References](https://reference.arcade.dev/api-reference#tag/admin)) - `[bugfix - 🐛]` Unauthenticated MCP servers can be called anonymously -- `[feature - 🚀]` End-user credentials and auth status can be fetched in batches ([docs](/guides/tool-calling/custom-apps/check-auth-status)) +- `[feature - 🚀]` End-user credentials and auth status can be fetched in batches ([docs](/build/tool-calling/custom-apps/check-auth-status)) **Misc** diff --git a/app/en/resources/early-access/_meta.tsx b/app/en/resources/early-access/_meta.tsx index 910620b82..9f9f88a19 100644 --- a/app/en/resources/early-access/_meta.tsx +++ b/app/en/resources/early-access/_meta.tsx @@ -3,7 +3,7 @@ import type { MetaRecord } from "nextra"; const meta: MetaRecord = { "warp-pipes": { title: "Warp Pipes", - href: "/en/guides/deployment-hosting/warp-pipes", + href: "/en/operate/deployment/warp-pipes", }, registry: { title: "Arcade Registry", diff --git a/app/en/resources/faq/page.mdx b/app/en/resources/faq/page.mdx index b968fc88a..95cb8970a 100644 --- a/app/en/resources/faq/page.mdx +++ b/app/en/resources/faq/page.mdx @@ -13,7 +13,7 @@ import { ContactEmail } from "@/app/_components/contact-email"; ## What if I need a Tool that Arcade doesn't have? -Arcade makes it easy to build your own tools! You can fork our existing tools, or build your own from scratch. Learn more about [building your own MCP Server](/guides/create-tools/tool-basics/build-mcp-server). +Arcade makes it easy to build your own tools! You can fork our existing tools, or build your own from scratch. Learn more about [building your own MCP Server](/build/create-tools/tool-basics/build-mcp-server). ## How do I contribute back a Tool to the Registry? diff --git a/app/en/resources/glossary/page.mdx b/app/en/resources/glossary/page.mdx index 0c1cdd2c4..678a44021 100644 --- a/app/en/resources/glossary/page.mdx +++ b/app/en/resources/glossary/page.mdx @@ -29,7 +29,7 @@ This (Reason + Act) is the most common agentic pattern, where an LLM runs in a l A 'Context' is an object that is passed to a tool as a parameter when the tool is executed. It contains information about the tool call, the user for which the tool is being called, and any secrets the tool requires to run. -_Learn more about [context](/guides/create-tools/tool-basics/runtime-data-access)._ +_Learn more about [context](/build/create-tools/tool-basics/runtime-data-access)._ ### Entrypoint File @@ -69,23 +69,23 @@ A 'tool' is a function that can be called by an agent which performs some action Tools are commonly referred to by a qualified name that includes their MCP Server. For example, [Gmail.SendEmail](/resources/integrations/productivity/gmail#gmailsendemail) -_Learn more about [tools](/guides/create-tools/tool-basics/build-mcp-server)._ +_Learn more about [tools](/build/create-tools/tool-basics/build-mcp-server)._ #### Optimized tools -[Optimized tools](/guides/create-tools/improve/types-of-tools#optimized-tools) are designed from scratch to provide the best performance for LLMs in terms of speed, reliability, accuracy, and cost-effectiveness. +[Optimized tools](/build/create-tools/improve/types-of-tools#optimized-tools) are designed from scratch to provide the best performance for LLMs in terms of speed, reliability, accuracy, and cost-effectiveness. #### Unoptimized tools -[Unoptimized tools](/guides/create-tools/improve/types-of-tools#unoptimized-tools) are designed to mirror the original HTTP API design of the upstream service. They are not optimized for LLM usage and are not subject to evaluation suites. We recommend thoroughly evaluating each Unoptimized tool with your Agents or chatbots before using it in production. +[Unoptimized tools](/build/create-tools/improve/types-of-tools#unoptimized-tools) are designed to mirror the original HTTP API design of the upstream service. They are not optimized for LLM usage and are not subject to evaluation suites. We recommend thoroughly evaluating each Unoptimized tool with your Agents or chatbots before using it in production. -Understand why [LLMs perform poorly when](/guides/create-tools/improve/types-of-tools#why-llms-perform-poorly when-calling-http-apis) calling HTTP APIs. +Understand why [LLMs perform poorly when](/build/create-tools/improve/types-of-tools#why-llms-perform-poorly when-calling-http-apis) calling HTTP APIs. ### Tool Context 'Tool context' is an object that is passed to a tool as a parameter when the tool is executed. It contains information about the tool call, the user for which the tool is being called, and any secrets the tool requires to run. -_Learn more about [tool context](/guides/create-tools/tool-basics/runtime-data-access)._ +_Learn more about [tool context](/build/create-tools/tool-basics/runtime-data-access)._ ### Transport Modes @@ -166,19 +166,19 @@ _Learn more about [auth providers](/references/auth-providers)._ A 'User Source' is an OIDC identity provider connection that authenticates the end users of an MCP Gateway. A project can have multiple User Sources, and one User Source can back many gateways. User Sources are intentionally separate from any identity provider used for Arcade Account sign-in, so administrators and end users can be governed independently. -_Learn more about [User Sources](/guides/user-sources)._ +_Learn more about [User Sources](/operate/user-sources)._ ### Authorization Scope An 'authorization scope' is a permission that a user can grant to an agent. This is used to control what the agent can do with the user's data. Available authorization scopes are defined by the authentication provider, and each tool defines the scopes it requires. -Learn more about [authorized tool calling](/guides/tool-calling/custom-apps/auth-tool-calling). +Learn more about [authorized tool calling](/build/tool-calling/custom-apps/auth-tool-calling). ### Tool Executions A 'tool execution' is a single call to a tool to interact with a remote system or service. The tool execution itself may fail (e.g. the user does not have permission to call the tool), but as long as the execution was able to be routed to a worker, it will be counted. -_Learn more about [tool executions](/guides/tool-calling)._ +_Learn more about [tool executions](/build/tool-calling)._ ### Standard and Pro Tool Executions @@ -236,4 +236,4 @@ Arcade MCP is the secure framework for building MCP servers. It is responsible f Evaluations are a way to test the LLMs' ability to select and call your tools. Arcade's eval suite can and should be run as part of the development process to ensure your tools are working as expected. -_Learn more about evaluations [here](/guides/create-tools/evaluate-tools/why-evaluate)._ +_Learn more about evaluations [here](/build/create-tools/evaluate-tools/why-evaluate)._ diff --git a/app/en/resources/integrations/components/toolkits-client.tsx b/app/en/resources/integrations/components/toolkits-client.tsx index 5f5b8e756..f13883618 100644 --- a/app/en/resources/integrations/components/toolkits-client.tsx +++ b/app/en/resources/integrations/components/toolkits-client.tsx @@ -109,7 +109,7 @@ export default function ToolkitsClient({ toolkits }: ToolkitsClientProps) {
-
- -
From b191b2589faa4923b277d03c7f5245a2d2e0a7a2 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Sat, 8 Aug 2026 06:11:02 +0000 Subject: [PATCH 05/12] Revert "Move integrations into the Build agents homepage path" This reverts commit 0039b83d5a4a521fd995a436915ccdc91a4b265b. --- app/en/home/landing-page.tsx | 82 ++++++++++++++++++------------------ 1 file changed, 41 insertions(+), 41 deletions(-) diff --git a/app/en/home/landing-page.tsx b/app/en/home/landing-page.tsx index 7a8f6e769..5fd472c6b 100644 --- a/app/en/home/landing-page.tsx +++ b/app/en/home/landing-page.tsx @@ -327,39 +327,10 @@ export function LandingPage() {
@@ -371,14 +342,6 @@ export function LandingPage() { />
- -
-
+
+ +
From fbf8c4ef6acf292afd4381041c486143d0c65471 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Sat, 8 Aug 2026 06:11:25 +0000 Subject: [PATCH 06/12] Reapply "Move integrations into the Build agents homepage path" This reverts commit b191b2589faa4923b277d03c7f5245a2d2e0a7a2. --- app/en/home/landing-page.tsx | 82 ++++++++++++++++++------------------ 1 file changed, 41 insertions(+), 41 deletions(-) diff --git a/app/en/home/landing-page.tsx b/app/en/home/landing-page.tsx index 5fd472c6b..7a8f6e769 100644 --- a/app/en/home/landing-page.tsx +++ b/app/en/home/landing-page.tsx @@ -327,10 +327,39 @@ export function LandingPage() {
@@ -342,6 +371,14 @@ export function LandingPage() { />
+ +
+
-
- -
From 9b82c78bdf37e2f30109dafc293443c26c2e86bb Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Sat, 8 Aug 2026 06:22:10 +0000 Subject: [PATCH 07/12] Move Build above Operate in the docs nav Keep the agent-developer Build section ahead of Operate in the top-level sidebar. Made-with: Cursor --- app/en/_meta.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/en/_meta.tsx b/app/en/_meta.tsx index 914dc4e62..b52981610 100644 --- a/app/en/_meta.tsx +++ b/app/en/_meta.tsx @@ -45,12 +45,12 @@ export const meta: MetaRecord = { resources: { title: Resources, }, - operate: { - title: Operate, - }, build: { title: Build, }, + operate: { + title: Operate, + }, learn: { title: Learn, }, From 532a0f2fdeef26b8689307dc52445a3b0b3ed10d Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Sat, 8 Aug 2026 06:26:52 +0000 Subject: [PATCH 08/12] Set docs nav to Get Started, Build, Operate, Resources Put Build and Operate ahead of Resources in the top-level sidebar. Made-with: Cursor --- app/en/_meta.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/en/_meta.tsx b/app/en/_meta.tsx index b52981610..d12fbd051 100644 --- a/app/en/_meta.tsx +++ b/app/en/_meta.tsx @@ -42,15 +42,15 @@ export const meta: MetaRecord = { "get-started": { title: Get Started, }, - resources: { - title: Resources, - }, build: { title: Build, }, operate: { title: Operate, }, + resources: { + title: Resources, + }, learn: { title: Learn, }, From 3da2da2c9081a05fb970e3a3709ae3028abbe72f Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Sat, 8 Aug 2026 06:28:42 +0000 Subject: [PATCH 09/12] Restore full-width integrations card under persona paths Keep each persona as a 3-card stack and place Pre-built integrations full width beneath both columns. Made-with: Cursor --- app/en/home/landing-page.tsx | 82 ++++++++++++++++++------------------ 1 file changed, 41 insertions(+), 41 deletions(-) diff --git a/app/en/home/landing-page.tsx b/app/en/home/landing-page.tsx index 7a8f6e769..462e7ab91 100644 --- a/app/en/home/landing-page.tsx +++ b/app/en/home/landing-page.tsx @@ -327,39 +327,10 @@ export function LandingPage() {
@@ -371,14 +342,6 @@ export function LandingPage() { />
- -
-
+
+ +
From f53b2946406785081f2585791715f85569b2f7ef Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Sat, 8 Aug 2026 06:30:15 +0000 Subject: [PATCH 10/12] Remove Operate sidebar separators that added empty space Section labels under Operate left large gaps between short page groups; list the pages without separator headings. Made-with: Cursor --- app/en/operate/_meta.tsx | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/app/en/operate/_meta.tsx b/app/en/operate/_meta.tsx index 5b62c1998..2ad88a088 100644 --- a/app/en/operate/_meta.tsx +++ b/app/en/operate/_meta.tsx @@ -7,24 +7,12 @@ export const meta: MetaRecord = { quickstart: { title: "Quickstart", }, - "-- Deploy": { - type: "separator", - title: "Deploy", - }, deployment: { title: "Deployment & hosting", }, - "-- Identity": { - type: "separator", - title: "Identity", - }, "user-sources": { title: "User Sources", }, - "-- Governance": { - type: "separator", - title: "Governance", - }, "mcp-gateways": { title: "MCP Gateways", }, From 9a49586b9485d5dac68e321c0708b977db29ff7d Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Sat, 8 Aug 2026 06:54:39 +0000 Subject: [PATCH 11/12] Nest Operate docs under Deploy, Identity, and Governance Group platform-operator guides into collapsible folders so the sidebar has clear structure without separator spacing. Made-with: Cursor --- app/_components/tool-footer.tsx | 2 +- app/en/build/arcade-deploy/page.mdx | 6 +- .../tool-basics/build-mcp-server/page.mdx | 2 +- .../tool-basics/call-tools-mcp/page.mdx | 2 +- .../tool-basics/create-tool-secrets/page.mdx | 2 +- app/en/build/page.mdx | 2 +- .../mcp-clients/claude-code/page.mdx | 4 +- .../mcp-clients/claude-desktop/page.mdx | 4 +- .../mcp-clients/copilot-studio/page.mdx | 4 +- .../get-started/mcp-clients/cursor/page.mdx | 4 +- .../mcp-clients/github-copilot/page.mdx | 4 +- .../mcp-clients/visual-studio-code/page.mdx | 4 +- .../quickstarts/call-tool-client/page.mdx | 2 +- .../mcp-server-quickstart/page.mdx | 2 +- app/en/home/landing-page.tsx | 2 +- app/en/operate/_meta.tsx | 18 +- .../operate/{deployment => deploy}/_meta.tsx | 7 - .../arcade-cloud/page.mdx | 4 +- .../{deployment => deploy}/aws/page.mdx | 6 +- .../{deployment => deploy}/azure/page.mdx | 6 +- .../{deployment => deploy}/gcp/page.mdx | 4 +- .../{deployment => deploy}/helm/page.mdx | 8 +- .../{deployment => deploy}/on-prem/page.mdx | 0 .../operate/{deployment => deploy}/page.mdx | 14 +- .../warp-pipes/page.mdx | 16 +- app/en/operate/governance/_meta.tsx | 18 ++ .../{ => governance}/audit-logs/page.mdx | 0 .../contextual-access/_meta.tsx | 0 .../contextual-access/build-your-own/page.mdx | 4 +- .../contextual-access/examples/page.mdx | 4 +- .../contextual-access/how-hooks-work/page.mdx | 4 +- .../contextual-access/page.mdx | 6 +- .../{ => governance}/mcp-gateways/_meta.tsx | 0 .../mcp-gateways/add-remote-servers/page.mdx | 2 +- .../mcp-gateways/create-via-ai/page.mdx | 0 .../create-via-dashboard/page.mdx | 4 +- .../{ => governance}/mcp-gateways/page.mdx | 8 +- app/en/operate/governance/page.mdx | 19 ++ app/en/operate/identity/_meta.tsx | 12 ++ app/en/operate/identity/page.mdx | 19 ++ .../{ => identity}/user-sources/_meta.tsx | 0 .../user-sources/auth0/page.mdx | 10 +- .../user-sources/clerk/page.mdx | 10 +- .../user-sources/microsoft-entra-id/page.mdx | 10 +- .../{ => identity}/user-sources/okta/page.mdx | 10 +- .../{ => identity}/user-sources/page.mdx | 6 +- .../user-sources/stytch/page.mdx | 10 +- app/en/operate/page.mdx | 18 +- app/en/operate/quickstart/page.mdx | 24 +-- .../auth-providers/airtable/page.mdx | 2 +- .../auth-providers/calendly/page.mdx | 2 +- .../auth-providers/cisco-duo/page.mdx | 2 +- .../references/auth-providers/figma/page.mdx | 2 +- .../auth-providers/mailchimp/page.mdx | 2 +- .../references/auth-providers/miro/page.mdx | 2 +- .../references/auth-providers/oauth2/page.mdx | 10 +- .../auth-providers/pagerduty/page.mdx | 2 +- .../references/auth-providers/square/page.mdx | 2 +- .../auth-providers/ticktick/page.mdx | 2 +- .../references/auth-providers/zoho/page.mdx | 2 +- app/en/references/changelog/page.mdx | 10 +- app/en/resources/early-access/_meta.tsx | 2 +- app/en/resources/glossary/page.mdx | 2 +- .../integrations/search/nimble/page.mdx | 10 +- .../integrations/search/tavily/page.mdx | 8 +- lib/remark-glossary.ts | 4 +- redirects.ts | 187 ++++++++++++++---- 67 files changed, 376 insertions(+), 204 deletions(-) rename app/en/operate/{deployment => deploy}/_meta.tsx (83%) rename app/en/operate/{deployment => deploy}/arcade-cloud/page.mdx (97%) rename app/en/operate/{deployment => deploy}/aws/page.mdx (92%) rename app/en/operate/{deployment => deploy}/azure/page.mdx (94%) rename app/en/operate/{deployment => deploy}/gcp/page.mdx (86%) rename app/en/operate/{deployment => deploy}/helm/page.mdx (88%) rename app/en/operate/{deployment => deploy}/on-prem/page.mdx (100%) rename app/en/operate/{deployment => deploy}/page.mdx (73%) rename app/en/operate/{deployment => deploy}/warp-pipes/page.mdx (95%) create mode 100644 app/en/operate/governance/_meta.tsx rename app/en/operate/{ => governance}/audit-logs/page.mdx (100%) rename app/en/operate/{ => governance}/contextual-access/_meta.tsx (100%) rename app/en/operate/{ => governance}/contextual-access/build-your-own/page.mdx (97%) rename app/en/operate/{ => governance}/contextual-access/examples/page.mdx (93%) rename app/en/operate/{ => governance}/contextual-access/how-hooks-work/page.mdx (95%) rename app/en/operate/{ => governance}/contextual-access/page.mdx (92%) rename app/en/operate/{ => governance}/mcp-gateways/_meta.tsx (100%) rename app/en/operate/{ => governance}/mcp-gateways/add-remote-servers/page.mdx (98%) rename app/en/operate/{ => governance}/mcp-gateways/create-via-ai/page.mdx (100%) rename app/en/operate/{ => governance}/mcp-gateways/create-via-dashboard/page.mdx (92%) rename app/en/operate/{ => governance}/mcp-gateways/page.mdx (92%) create mode 100644 app/en/operate/governance/page.mdx create mode 100644 app/en/operate/identity/_meta.tsx create mode 100644 app/en/operate/identity/page.mdx rename app/en/operate/{ => identity}/user-sources/_meta.tsx (100%) rename app/en/operate/{ => identity}/user-sources/auth0/page.mdx (90%) rename app/en/operate/{ => identity}/user-sources/clerk/page.mdx (90%) rename app/en/operate/{ => identity}/user-sources/microsoft-entra-id/page.mdx (93%) rename app/en/operate/{ => identity}/user-sources/okta/page.mdx (90%) rename app/en/operate/{ => identity}/user-sources/page.mdx (94%) rename app/en/operate/{ => identity}/user-sources/stytch/page.mdx (92%) diff --git a/app/_components/tool-footer.tsx b/app/_components/tool-footer.tsx index 58460aaed..0e4c45aa6 100644 --- a/app/_components/tool-footer.tsx +++ b/app/_components/tool-footer.tsx @@ -24,7 +24,7 @@ const ToolFooter: React.FC = ({ pipPackageName }) => ( description={ "Arcade tools can be self-hosted on your own infrastructure. Learn more about self-hosting." } - href="/operate/deployment" + href="/operate/deploy" icon={Puzzle} title="Self Host Arcade tools" /> diff --git a/app/en/build/arcade-deploy/page.mdx b/app/en/build/arcade-deploy/page.mdx index 1c12039bc..f413f91f7 100644 --- a/app/en/build/arcade-deploy/page.mdx +++ b/app/en/build/arcade-deploy/page.mdx @@ -11,7 +11,7 @@ import { SignupLink } from "@/app/_components/analytics"; Running your MCP servers locally is very convenient during development and testing. Once your MCP server is mature, however, you may want to access it from any MCP client, or to facilitate multi-user support. Doing all that from your computer comes with the complexity of running and maintaining a server, handling auth and high availability for all your users and all the integrations you want to support. Arcade Deploy takes care of all that for you. Your MCP server will be registered to Arcade, adding all the tools you created to the larger tool catalog. From there, you can create MCP Gateways to pick and choose which tools you want to use in your MCP clients, which can be from any connected MCP server. -Arcade Deploy hosts *your* MCP server on Arcade Cloud. It's a feature for serving tools — not a way to deploy the Arcade platform. For a full platform deployment, see the [marketplace guides](/operate/deployment) or [self-host with Helm](/operate/deployment/helm). +Arcade Deploy hosts *your* MCP server on Arcade Cloud. It's a feature for serving tools — not a way to deploy the Arcade platform. For a full platform deployment, see the [marketplace guides](/operate/deploy) or [self-host with Helm](/operate/deploy/helm). @@ -152,11 +152,11 @@ Navigate to the [Servers](https://api.arcade.dev/dashboard/servers) page in your - Test and execute all the tools - Manage users connected to the Auth providers - Manage the secrets for the server -- Create [MCP Gateways](/operate/mcp-gateways) +- Create [MCP Gateways](/operate/governance/mcp-gateways) ## Create an MCP Gateway to call the tools in your MCP Server -Once the MCP server is deployed to Arcade, all the tools in the server will be available in the [tool catalog](https://api.arcade.dev/dashboard/tools) page in your Arcade dashboard. To call the tools from an MCP client, you first need to [create an MCP Gateway](/operate/mcp-gateways) to pick and choose which tools you want to use in your MCP clients. +Once the MCP server is deployed to Arcade, all the tools in the server will be available in the [tool catalog](https://api.arcade.dev/dashboard/tools) page in your Arcade dashboard. To call the tools from an MCP client, you first need to [create an MCP Gateway](/operate/governance/mcp-gateways) to pick and choose which tools you want to use in your MCP clients. When creating an MCP gateway, you can select the tools you want to include in the Gateway from any MCP Servers available to the project, including the one you just deployed. diff --git a/app/en/build/create-tools/tool-basics/build-mcp-server/page.mdx b/app/en/build/create-tools/tool-basics/build-mcp-server/page.mdx index a49efc26c..21675c891 100644 --- a/app/en/build/create-tools/tool-basics/build-mcp-server/page.mdx +++ b/app/en/build/create-tools/tool-basics/build-mcp-server/page.mdx @@ -269,7 +269,7 @@ For HTTP transport, view your server's API docs at [http://127.0.0.1:8000/docs]( to expose your HTTP MCP server to the public internet with tool-level authorization and secrets, please follow the [deploying to the cloud with Arcade Deploy](/build/arcade-deploy) guide or the [on-prem MCP - server](/operate/deployment/on-prem) guide for secure remote deployment. + server](/operate/deploy/on-prem) guide for secure remote deployment. diff --git a/app/en/build/create-tools/tool-basics/call-tools-mcp/page.mdx b/app/en/build/create-tools/tool-basics/call-tools-mcp/page.mdx index bc1be3709..2895aba58 100644 --- a/app/en/build/create-tools/tool-basics/call-tools-mcp/page.mdx +++ b/app/en/build/create-tools/tool-basics/call-tools-mcp/page.mdx @@ -329,7 +329,7 @@ Then, your MCP client's configuration file should look like this: should use the stdio transport and configure the Arcade API key and secrets in your MCP connection settings. If you intend to expose your HTTP MCP server to the public internet, please follow the [on-prem MCP - server](/operate/deployment/on-prem) guide for secure remote deployment. + server](/operate/deploy/on-prem) guide for secure remote deployment. diff --git a/app/en/build/create-tools/tool-basics/create-tool-secrets/page.mdx b/app/en/build/create-tools/tool-basics/create-tool-secrets/page.mdx index 40dfa9bd5..e44d22988 100644 --- a/app/en/build/create-tools/tool-basics/create-tool-secrets/page.mdx +++ b/app/en/build/create-tools/tool-basics/create-tool-secrets/page.mdx @@ -313,7 +313,7 @@ For HTTP transport, view your server's API docs at [http://127.0.0.1:8000/docs]( should use the stdio transport and configure the Arcade API key and secrets in your MCP connection settings. Otherwise, if you intend to expose your HTTP MCP server to the public internet with tool-level authorization and secrets, please follow the [deploying to the cloud with Arcade Deploy](/build/arcade-deploy) guide or the [on-prem MCP - server](/operate/deployment/on-prem) guide for secure remote deployment. + server](/operate/deploy/on-prem) guide for secure remote deployment. diff --git a/app/en/build/page.mdx b/app/en/build/page.mdx index c230cd50b..b1172b1c6 100644 --- a/app/en/build/page.mdx +++ b/app/en/build/page.mdx @@ -39,4 +39,4 @@ If you deploy and govern Arcade for a company, go to [Operate](/operate). /> -Arcade Deploy hosts *your* MCP server on Arcade Cloud. To deploy the Arcade platform itself, see [Operate → Deployment](/operate/deployment). +Arcade Deploy hosts *your* MCP server on Arcade Cloud. To deploy the Arcade platform itself, see [Operate → Deployment](/operate/deploy). diff --git a/app/en/get-started/mcp-clients/claude-code/page.mdx b/app/en/get-started/mcp-clients/claude-code/page.mdx index db75e5dcc..fcfe7080b 100644 --- a/app/en/get-started/mcp-clients/claude-code/page.mdx +++ b/app/en/get-started/mcp-clients/claude-code/page.mdx @@ -13,13 +13,13 @@ Connect Claude Code to an Arcade MCP Gateway. 1. Create an Arcade account -2. Create an [Arcade MCP Gateway](/operate/mcp-gateways) and select the tools you want to use +2. Create an [Arcade MCP Gateway](/operate/governance/mcp-gateways) and select the tools you want to use - **Production end users with their own identities?** If your end users already sign in to Entra ID, Okta, Auth0, Clerk, or another OIDC provider, configure a [User Source](/operate/user-sources) on your gateway. Arcade redirects each end user to your identity provider on sign-in and identifies them by an OIDC subject claim. + **Production end users with their own identities?** If your end users already sign in to Entra ID, Okta, Auth0, Clerk, or another OIDC provider, configure a [User Source](/operate/identity/user-sources) on your gateway. Arcade redirects each end user to your identity provider on sign-in and identifies them by an OIDC subject claim. diff --git a/app/en/get-started/mcp-clients/claude-desktop/page.mdx b/app/en/get-started/mcp-clients/claude-desktop/page.mdx index 5ceb88924..827c84356 100644 --- a/app/en/get-started/mcp-clients/claude-desktop/page.mdx +++ b/app/en/get-started/mcp-clients/claude-desktop/page.mdx @@ -45,7 +45,7 @@ Connect Claude Desktop to an Arcade MCP Gateway. 1. Create an Arcade account 2. Get an [Arcade API key](/get-started/setup/api-keys) -3. Create an [Arcade MCP Gateway](/operate/mcp-gateways) and select the tools you want to use +3. Create an [Arcade MCP Gateway](/operate/governance/mcp-gateways) and select the tools you want to use @@ -58,7 +58,7 @@ Connect Claude Desktop to an Arcade MCP Gateway. - **Production end users with their own identities?** If your end users already sign in to Entra ID, Okta, Auth0, Clerk, or another OIDC provider, configure a [User Source](/operate/user-sources) on your gateway. Arcade redirects each end user to your identity provider on sign-in and identifies them by an OIDC subject claim. + **Production end users with their own identities?** If your end users already sign in to Entra ID, Okta, Auth0, Clerk, or another OIDC provider, configure a [User Source](/operate/identity/user-sources) on your gateway. Arcade redirects each end user to your identity provider on sign-in and identifies them by an OIDC subject claim. diff --git a/app/en/get-started/mcp-clients/copilot-studio/page.mdx b/app/en/get-started/mcp-clients/copilot-studio/page.mdx index cbc571fe4..b227fc468 100644 --- a/app/en/get-started/mcp-clients/copilot-studio/page.mdx +++ b/app/en/get-started/mcp-clients/copilot-studio/page.mdx @@ -26,14 +26,14 @@ Connect Microsoft Copilot Studio to an Arcade MCP Gateway. 1. A Microsoft 365 subscription with access to Copilot Studio 2. Create an Arcade account 3. Get an [Arcade API key](/get-started/setup/api-keys) -4. Create an [Arcade MCP Gateway](/operate/mcp-gateways) and select the tools you want to use +4. Create an [Arcade MCP Gateway](/operate/governance/mcp-gateways) and select the tools you want to use - **Production end users with their own identities?** If your end users already sign in to Entra ID, Okta, Auth0, Clerk, or another OIDC provider, configure a [User Source](/operate/user-sources) on your gateway. Arcade redirects each end user to your identity provider on sign-in and identifies them by an OIDC subject claim. + **Production end users with their own identities?** If your end users already sign in to Entra ID, Okta, Auth0, Clerk, or another OIDC provider, configure a [User Source](/operate/identity/user-sources) on your gateway. Arcade redirects each end user to your identity provider on sign-in and identifies them by an OIDC subject claim. diff --git a/app/en/get-started/mcp-clients/cursor/page.mdx b/app/en/get-started/mcp-clients/cursor/page.mdx index 1d170b727..b71c7f589 100644 --- a/app/en/get-started/mcp-clients/cursor/page.mdx +++ b/app/en/get-started/mcp-clients/cursor/page.mdx @@ -14,7 +14,7 @@ Connect Cursor to an Arcade MCP Gateway. 1. Create an Arcade account 2. Get an [Arcade API key](/get-started/setup/api-keys) -3. Create an [Arcade MCP Gateway](/operate/mcp-gateways) and select the tools you want to use +3. Create an [Arcade MCP Gateway](/operate/governance/mcp-gateways) and select the tools you want to use @@ -27,7 +27,7 @@ Connect Cursor to an Arcade MCP Gateway. - **Production end users with their own identities?** If your end users already sign in to Entra ID, Okta, Auth0, Clerk, or another OIDC provider, configure a [User Source](/operate/user-sources) on your gateway. Arcade redirects each end user to your identity provider on sign-in and identifies them by an OIDC subject claim. + **Production end users with their own identities?** If your end users already sign in to Entra ID, Okta, Auth0, Clerk, or another OIDC provider, configure a [User Source](/operate/identity/user-sources) on your gateway. Arcade redirects each end user to your identity provider on sign-in and identifies them by an OIDC subject claim. ### Set up Cursor diff --git a/app/en/get-started/mcp-clients/github-copilot/page.mdx b/app/en/get-started/mcp-clients/github-copilot/page.mdx index cd70cb56c..7d73779ee 100644 --- a/app/en/get-started/mcp-clients/github-copilot/page.mdx +++ b/app/en/get-started/mcp-clients/github-copilot/page.mdx @@ -31,14 +31,14 @@ Connect GitHub Copilot to an Arcade MCP Gateway. 1. Create an Arcade account 2. Get an [Arcade API key](/get-started/setup/api-keys) -3. Create an [Arcade MCP Gateway](/operate/mcp-gateways) and select the tools you want to use +3. Create an [Arcade MCP Gateway](/operate/governance/mcp-gateways) and select the tools you want to use - **Production end users with their own identities?** If your end users already sign in to Entra ID, Okta, Auth0, Clerk, or another OIDC provider, configure a [User Source](/operate/user-sources) on your gateway. Arcade redirects each end user to your identity provider on sign-in and identifies them by an OIDC subject claim. + **Production end users with their own identities?** If your end users already sign in to Entra ID, Okta, Auth0, Clerk, or another OIDC provider, configure a [User Source](/operate/identity/user-sources) on your gateway. Arcade redirects each end user to your identity provider on sign-in and identifies them by an OIDC subject claim. ### Set up GitHub Copilot diff --git a/app/en/get-started/mcp-clients/visual-studio-code/page.mdx b/app/en/get-started/mcp-clients/visual-studio-code/page.mdx index d1116db31..1957a3d50 100644 --- a/app/en/get-started/mcp-clients/visual-studio-code/page.mdx +++ b/app/en/get-started/mcp-clients/visual-studio-code/page.mdx @@ -6,7 +6,7 @@ import { SignupLink } from "@/app/_components/analytics"; In this guide, you'll learn how to connect Visual Studio Code to an Arcade MCP Gateway. - **Production end users with their own identities?** If your end users already sign in to Entra ID, Okta, Auth0, Clerk, or another OIDC provider, configure a [User Source](/operate/user-sources) on your gateway. Arcade redirects each end user to your identity provider on sign-in and identifies them by an OIDC subject claim. + **Production end users with their own identities?** If your end users already sign in to Entra ID, Okta, Auth0, Clerk, or another OIDC provider, configure a [User Source](/operate/identity/user-sources) on your gateway. Arcade redirects each end user to your identity provider on sign-in and identifies them by an OIDC subject claim. @@ -14,7 +14,7 @@ In this guide, you'll learn how to connect Visual Studio Code to an Arcade MCP G ### Prerequisites 1. Create an Arcade account -2. Create an [Arcade MCP Gateway](/operate/mcp-gateways) and select the tools you want to use +2. Create an [Arcade MCP Gateway](/operate/governance/mcp-gateways) and select the tools you want to use ### Set up Visual Studio Code diff --git a/app/en/get-started/quickstarts/call-tool-client/page.mdx b/app/en/get-started/quickstarts/call-tool-client/page.mdx index 017b25305..0856529de 100644 --- a/app/en/get-started/quickstarts/call-tool-client/page.mdx +++ b/app/en/get-started/quickstarts/call-tool-client/page.mdx @@ -147,7 +147,7 @@ As you interact with the agent, it will call the tools from the MCP Gateway. You ## Next Steps -- Learn more about [MCP Gateways](/operate/mcp-gateways). +- Learn more about [MCP Gateways](/operate/governance/mcp-gateways). - Learn how to use MCP Gateways with: - [Cursor](/get-started/mcp-clients/cursor) - [Visual Studio Code](/get-started/mcp-clients/visual-studio-code) diff --git a/app/en/get-started/quickstarts/mcp-server-quickstart/page.mdx b/app/en/get-started/quickstarts/mcp-server-quickstart/page.mdx index 93ca6ad45..4e04d7c56 100644 --- a/app/en/get-started/quickstarts/mcp-server-quickstart/page.mdx +++ b/app/en/get-started/quickstarts/mcp-server-quickstart/page.mdx @@ -207,7 +207,7 @@ For HTTP transport, view your server's API docs at [http://127.0.0.1:8000/docs]( to expose your HTTP MCP server to the public internet with tool-level authorization and secrets, please follow the [deploying to the cloud with Arcade Deploy](/build/arcade-deploy) guide or the [on-prem - MCP server](/operate/deployment/on-prem) guide for secure remote + MCP server](/operate/deploy/on-prem) guide for secure remote deployment. diff --git a/app/en/home/landing-page.tsx b/app/en/home/landing-page.tsx index 462e7ab91..5075b6a21 100644 --- a/app/en/home/landing-page.tsx +++ b/app/en/home/landing-page.tsx @@ -377,7 +377,7 @@ export function LandingPage() {
diff --git a/app/en/operate/_meta.tsx b/app/en/operate/_meta.tsx index 2ad88a088..e9922035b 100644 --- a/app/en/operate/_meta.tsx +++ b/app/en/operate/_meta.tsx @@ -7,20 +7,14 @@ export const meta: MetaRecord = { quickstart: { title: "Quickstart", }, - deployment: { - title: "Deployment & hosting", + deploy: { + title: "Deploy", }, - "user-sources": { - title: "User Sources", + identity: { + title: "Identity", }, - "mcp-gateways": { - title: "MCP Gateways", - }, - "contextual-access": { - title: "Contextual Access", - }, - "audit-logs": { - title: "Audit Logs", + governance: { + title: "Governance", }, }; diff --git a/app/en/operate/deployment/_meta.tsx b/app/en/operate/deploy/_meta.tsx similarity index 83% rename from app/en/operate/deployment/_meta.tsx rename to app/en/operate/deploy/_meta.tsx index 4446c0ccf..5570ae306 100644 --- a/app/en/operate/deployment/_meta.tsx +++ b/app/en/operate/deploy/_meta.tsx @@ -1,13 +1,6 @@ import type { MetaRecord } from "nextra"; const meta: MetaRecord = { - "*": { - theme: { - breadcrumb: true, - toc: true, - copyPage: true, - }, - }, index: { title: "Overview", }, diff --git a/app/en/operate/deployment/arcade-cloud/page.mdx b/app/en/operate/deploy/arcade-cloud/page.mdx similarity index 97% rename from app/en/operate/deployment/arcade-cloud/page.mdx rename to app/en/operate/deploy/arcade-cloud/page.mdx index de1769ed2..c2481f55a 100644 --- a/app/en/operate/deployment/arcade-cloud/page.mdx +++ b/app/en/operate/deploy/arcade-cloud/page.mdx @@ -10,7 +10,7 @@ import { Callout } from "nextra/components"; Arcade Cloud is Arcade's fully-managed SaaS platform: Arcade handles hosting, scaling, and operations so you can focus on building. This page covers the infrastructure behind Arcade Cloud, including networking, data storage, data protection, and sovereignty options. -This page applies to **Arcade Cloud** only. If you self-host Arcade, you control your own infrastructure and data residency. See [on-premises deployment](/operate/deployment/helm) for details. +This page applies to **Arcade Cloud** only. If you self-host Arcade, you control your own infrastructure and data residency. See [on-premises deployment](/operate/deploy/helm) for details. ## Sovereignty @@ -122,7 +122,7 @@ Training data is retained for up to 5 years, which is sufficient for model devel ### Regulated Customers -If your organization has strict data residency requirements—for example, in financial services, healthcare, or government—or you operate within a legal regime that requires data storage in a specific country, you can deploy Arcade on-premises or in your preferred cloud region using a [self-hosted deployment](/operate/deployment/helm). This keeps all sensitive data within your own infrastructure. +If your organization has strict data residency requirements—for example, in financial services, healthcare, or government—or you operate within a legal regime that requires data storage in a specific country, you can deploy Arcade on-premises or in your preferred cloud region using a [self-hosted deployment](/operate/deploy/helm). This keeps all sensitive data within your own infrastructure. ## Questions diff --git a/app/en/operate/deployment/aws/page.mdx b/app/en/operate/deploy/aws/page.mdx similarity index 92% rename from app/en/operate/deployment/aws/page.mdx rename to app/en/operate/deploy/aws/page.mdx index 22c9d46eb..ade8da0b1 100644 --- a/app/en/operate/deployment/aws/page.mdx +++ b/app/en/operate/deploy/aws/page.mdx @@ -10,7 +10,7 @@ import { Callout, Steps } from "nextra/components"; Arcade runs on AWS as a full platform deployment into **your own AWS account**. The AWS offering is currently available through a **private offer** rather than a public self-serve listing. -AWS is available through a private offer. View the [Arcade listing on AWS Marketplace](https://aws.amazon.com/marketplace/seller-profile?id=seller-qbstsdnxkltx6) and [contact us](https://www.arcade.dev/contact) to receive a private offer for your account. If you'd rather manage the platform yourself, see [Self-host with Helm](/operate/deployment/helm). +AWS is available through a private offer. View the [Arcade listing on AWS Marketplace](https://aws.amazon.com/marketplace/seller-profile?id=seller-qbstsdnxkltx6) and [contact us](https://www.arcade.dev/contact) to receive a private offer for your account. If you'd rather manage the platform yourself, see [Self-host with Helm](/operate/deploy/helm). ## What gets deployed @@ -64,6 +64,6 @@ Open the dashboard URL from the deployment output and sign in with your identity ## Next steps -- [Create an MCP Gateway](/operate/mcp-gateways) to scope tools and auth for each client +- [Create an MCP Gateway](/operate/governance/mcp-gateways) to scope tools and auth for each client - [Connect an MCP client](/get-started/mcp-clients) to a gateway URL -- [Set up a User Source](/operate/user-sources) to authenticate end users with your own identity provider +- [Set up a User Source](/operate/identity/user-sources) to authenticate end users with your own identity provider diff --git a/app/en/operate/deployment/azure/page.mdx b/app/en/operate/deploy/azure/page.mdx similarity index 94% rename from app/en/operate/deployment/azure/page.mdx rename to app/en/operate/deploy/azure/page.mdx index bc2d70d60..1634e72da 100644 --- a/app/en/operate/deployment/azure/page.mdx +++ b/app/en/operate/deploy/azure/page.mdx @@ -10,7 +10,7 @@ import { Callout, Steps } from "nextra/components"; Arcade is available on the Azure Marketplace as a managed application. You deploy it into **your own Azure subscription**, where it's managed by Arcade: your data and the services that run Arcade stay in your subscription, while Arcade handles upgrades and day-to-day operations. -The Azure Marketplace deployment is a **full platform deployment** — it stands up the complete Arcade platform in your cloud. If you'd rather manage the platform yourself on an existing Kubernetes cluster, see [Self-host with Helm](/operate/deployment/helm). +The Azure Marketplace deployment is a **full platform deployment** — it stands up the complete Arcade platform in your cloud. If you'd rather manage the platform yourself on an existing Kubernetes cluster, see [Self-host with Helm](/operate/deploy/helm). @@ -99,6 +99,6 @@ Open the dashboard URL from the deployment output and sign in with your identity ## Next steps -- [Create an MCP Gateway](/operate/mcp-gateways) to scope tools and auth for each client +- [Create an MCP Gateway](/operate/governance/mcp-gateways) to scope tools and auth for each client - [Connect an MCP client](/get-started/mcp-clients) to a gateway URL -- [Set up a User Source](/operate/user-sources) to authenticate end users with your own identity provider +- [Set up a User Source](/operate/identity/user-sources) to authenticate end users with your own identity provider diff --git a/app/en/operate/deployment/gcp/page.mdx b/app/en/operate/deploy/gcp/page.mdx similarity index 86% rename from app/en/operate/deployment/gcp/page.mdx rename to app/en/operate/deploy/gcp/page.mdx index 4b1a1c2b0..fe0a86a75 100644 --- a/app/en/operate/deployment/gcp/page.mdx +++ b/app/en/operate/deploy/gcp/page.mdx @@ -27,9 +27,9 @@ Arcade on GCP will deploy the full platform — Engine, Coordinator, Worker, Das ## Deploy on GCP today -You don't have to wait to run Arcade on Google Cloud. You can [self-host with Helm](/operate/deployment/helm) on an existing GKE cluster, bringing your own Cloud SQL and Memorystore instances. +You don't have to wait to run Arcade on Google Cloud. You can [self-host with Helm](/operate/deploy/helm) on an existing GKE cluster, bringing your own Cloud SQL and Memorystore instances. ## Next steps -- [Self-host with Helm](/operate/deployment/helm) on GKE +- [Self-host with Helm](/operate/deploy/helm) on GKE - [Request early access](https://www.arcade.dev/contact) to the GCP deployment diff --git a/app/en/operate/deployment/helm/page.mdx b/app/en/operate/deploy/helm/page.mdx similarity index 88% rename from app/en/operate/deployment/helm/page.mdx rename to app/en/operate/deploy/helm/page.mdx index 44ebc245b..035de8979 100644 --- a/app/en/operate/deployment/helm/page.mdx +++ b/app/en/operate/deploy/helm/page.mdx @@ -10,7 +10,7 @@ import { Callout, Steps } from "nextra/components"; The Arcade Helm chart deploys the full Arcade platform onto a Kubernetes cluster you manage. It's the bring-your-own-Kubernetes alternative to the cloud marketplaces: you control the cluster, the data, and the upgrade cadence. -If you'd rather not manage Kubernetes yourself, the [Azure](/operate/deployment/azure) and [AWS](/operate/deployment/aws) marketplace deployments run the same platform as turnkey, Arcade-operated deployments in your own cloud account. +If you'd rather not manage Kubernetes yourself, the [Azure](/operate/deploy/azure) and [AWS](/operate/deploy/aws) marketplace deployments run the same platform as turnkey, Arcade-operated deployments in your own cloud account. ## What it deploys @@ -76,6 +76,6 @@ Upgrade to a new chart version with `helm upgrade`, and roll back with `helm rol ## Next steps -- [Create an MCP Gateway](/operate/mcp-gateways) to scope tools and auth for each client -- [Connect external clients with Warp Pipes](/operate/deployment/warp-pipes) -- [Set up a User Source](/operate/user-sources) to authenticate end users with your own identity provider +- [Create an MCP Gateway](/operate/governance/mcp-gateways) to scope tools and auth for each client +- [Connect external clients with Warp Pipes](/operate/deploy/warp-pipes) +- [Set up a User Source](/operate/identity/user-sources) to authenticate end users with your own identity provider diff --git a/app/en/operate/deployment/on-prem/page.mdx b/app/en/operate/deploy/on-prem/page.mdx similarity index 100% rename from app/en/operate/deployment/on-prem/page.mdx rename to app/en/operate/deploy/on-prem/page.mdx diff --git a/app/en/operate/deployment/page.mdx b/app/en/operate/deploy/page.mdx similarity index 73% rename from app/en/operate/deployment/page.mdx rename to app/en/operate/deploy/page.mdx index 109409e37..de5f7b985 100644 --- a/app/en/operate/deployment/page.mdx +++ b/app/en/operate/deploy/page.mdx @@ -18,7 +18,7 @@ This page is for **platform operators** choosing how to run Arcade for their org - **Built-in scaling**: handles traffic spikes for you - **Free tier**: start building without a credit card -See [Arcade Cloud infrastructure](/operate/deployment/arcade-cloud) for data residency, storage, and security details. +See [Arcade Cloud infrastructure](/operate/deploy/arcade-cloud) for data residency, storage, and security details. ## Run Arcade in your own infrastructure @@ -28,13 +28,13 @@ Deploy the full Arcade platform into your own cloud account or cluster when you Deploy a turnkey, Arcade-operated platform into your own cloud account: -- [**Azure Marketplace**](/operate/deployment/azure): available now as a managed app -- [**AWS**](/operate/deployment/aws): available through a private offer -- [**GCP**](/operate/deployment/gcp): marketplace listing in progress +- [**Azure Marketplace**](/operate/deploy/azure): available now as a managed app +- [**AWS**](/operate/deploy/aws): available through a private offer +- [**GCP**](/operate/deploy/gcp): marketplace listing in progress ### Self-host with Helm -Prefer to run it yourself? [Deploy the platform with Helm](/operate/deployment/helm) on your own Kubernetes cluster and manage it end to end. +Prefer to run it yourself? [Deploy the platform with Helm](/operate/deploy/helm) on your own Kubernetes cluster and manage it end to end. The marketplace and Helm options are **full platform deployments**. The features below run *on top of* Arcade. They aren't ways to stand up the platform. @@ -45,8 +45,8 @@ The marketplace and Helm options are **full platform deployments**. The features These connect your tools and clients to Arcade. They are not platform deployments: - [**Arcade Deploy**](/build/arcade-deploy): host *your* MCP server on Arcade Cloud with the `arcade deploy` command. -- [**Hybrid MCP servers**](/operate/deployment/on-prem): run MCP servers in your own environment and connect them to Arcade Cloud, so tools reach private resources. -- [**Warp Pipes**](/operate/deployment/warp-pipes): connect external AI clients to a self-hosted Arcade runtime without opening inbound ports. +- [**Hybrid MCP servers**](/operate/deploy/on-prem): run MCP servers in your own environment and connect them to Arcade Cloud, so tools reach private resources. +- [**Warp Pipes**](/operate/deploy/warp-pipes): connect external AI clients to a self-hosted Arcade runtime without opening inbound ports. ## Customizing auth diff --git a/app/en/operate/deployment/warp-pipes/page.mdx b/app/en/operate/deploy/warp-pipes/page.mdx similarity index 95% rename from app/en/operate/deployment/warp-pipes/page.mdx rename to app/en/operate/deploy/warp-pipes/page.mdx index 02a54896d..2925bcf58 100644 --- a/app/en/operate/deployment/warp-pipes/page.mdx +++ b/app/en/operate/deploy/warp-pipes/page.mdx @@ -25,8 +25,8 @@ Connect external AI clients to private MCP servers through a self-hosted Arcade -- A [self-hosted Arcade runtime](/operate/deployment/helm) -- Access to your [Arcade configuration](/operate/deployment/helm#configuration) (Helm values) +- A [self-hosted Arcade runtime](/operate/deploy/helm) +- Access to your [Arcade configuration](/operate/deploy/helm#configuration) (Helm values) - The private hostnames or IP ranges of your internal MCP servers @@ -66,7 +66,7 @@ Everything behind the connector is the runtime you already have. Warp Pipes does Two concepts shape every deployment, with or without Warp Pipes: -- **Gateways** are named paths on the runtime (`/mcp/{slug}`). Each gateway has its own auth mode, tool allow-list, and access rules, so an AI client connecting to `/mcp/finance` sees only finance tools. You create gateways in the [Arcade dashboard](/operate/mcp-gateways), not in `engine.yaml`. +- **Gateways** are named paths on the runtime (`/mcp/{slug}`). Each gateway has its own auth mode, tool allow-list, and access rules, so an AI client connecting to `/mcp/finance` sees only finance tools. You create gateways in the [Arcade dashboard](/operate/governance/mcp-gateways), not in `engine.yaml`. - **Identity and access** — users, organizations, API keys, RBAC, and OAuth — is managed in Arcade. The runtime makes outbound-only calls to it; it never dials the runtime. Multiple runtimes can share one Arcade account. ## Gateway auth modes @@ -79,7 +79,7 @@ Each gateway uses one of three auth modes. The mode determines what the AI clien | User Source | `user_source` | Bearer JWT from your identity provider | Yes | | Arcade Headers | `arcade_header` | Bearer token plus an `Arcade-User-ID` header | No. The Anthropic connector can't send custom headers | -For Claude, through the Messages API or managed agents, use **Arcade Auth** or **User Source**. See [MCP Gateways](/operate/mcp-gateways) for how to choose a mode and [User Sources](/operate/user-sources) for connecting your own identity provider. +For Claude, through the Messages API or managed agents, use **Arcade Auth** or **User Source**. See [MCP Gateways](/operate/governance/mcp-gateways) for how to choose a mode and [User Sources](/operate/identity/user-sources) for connecting your own identity provider. ## Connect to internal MCP servers @@ -105,7 +105,7 @@ engine: - "10.10.0.0/16" # IP range ``` -Then register each internal MCP server as a worker so the runtime can route tool calls to it. For the full set of worker and allowlist values, see the [values reference](https://artifacthub.io/packages/helm/arcade/arcade) and [Self-host with Helm](/operate/deployment/helm#configuration). +Then register each internal MCP server as a worker so the runtime can route tool calls to it. For the full set of worker and allowlist values, see the [values reference](https://artifacthub.io/packages/helm/arcade/arcade) and [Self-host with Helm](/operate/deploy/helm#configuration). ### Allowlist entry types @@ -285,7 +285,7 @@ The path `/mcp/{slug}` must also pass through intact. The runtime routes by gate ## Next steps -- [Self-host with Helm](/operate/deployment/helm) for the full configuration reference -- [Create an MCP Gateway](/operate/mcp-gateways) to scope tools and auth for each client -- [Set up a User Source](/operate/user-sources) to authenticate end users with your own identity provider +- [Self-host with Helm](/operate/deploy/helm) for the full configuration reference +- [Create an MCP Gateway](/operate/governance/mcp-gateways) to scope tools and auth for each client +- [Set up a User Source](/operate/identity/user-sources) to authenticate end users with your own identity provider - [Connect your MCP client](/get-started/mcp-clients) to a gateway URL diff --git a/app/en/operate/governance/_meta.tsx b/app/en/operate/governance/_meta.tsx new file mode 100644 index 000000000..39237a99b --- /dev/null +++ b/app/en/operate/governance/_meta.tsx @@ -0,0 +1,18 @@ +import type { MetaRecord } from "nextra"; + +export const meta: MetaRecord = { + index: { + title: "Overview", + }, + "mcp-gateways": { + title: "MCP Gateways", + }, + "contextual-access": { + title: "Contextual Access", + }, + "audit-logs": { + title: "Audit Logs", + }, +}; + +export default meta; diff --git a/app/en/operate/audit-logs/page.mdx b/app/en/operate/governance/audit-logs/page.mdx similarity index 100% rename from app/en/operate/audit-logs/page.mdx rename to app/en/operate/governance/audit-logs/page.mdx diff --git a/app/en/operate/contextual-access/_meta.tsx b/app/en/operate/governance/contextual-access/_meta.tsx similarity index 100% rename from app/en/operate/contextual-access/_meta.tsx rename to app/en/operate/governance/contextual-access/_meta.tsx diff --git a/app/en/operate/contextual-access/build-your-own/page.mdx b/app/en/operate/governance/contextual-access/build-your-own/page.mdx similarity index 97% rename from app/en/operate/contextual-access/build-your-own/page.mdx rename to app/en/operate/governance/contextual-access/build-your-own/page.mdx index 64e8d4531..8dc5abaa1 100644 --- a/app/en/operate/contextual-access/build-your-own/page.mdx +++ b/app/en/operate/governance/contextual-access/build-your-own/page.mdx @@ -233,5 +233,5 @@ Configure the auth method when creating your extension in the Dashboard. ## Next steps - [API Reference](/references/contextual-access-webhook-api) — Interactive Swagger documentation for the full schema -- [Run an extension](/operate/contextual-access/examples) — Try the open-source example servers as reference -- [How Hooks Work](/operate/contextual-access/how-hooks-work) — Understand execution order, phases, and failure modes +- [Run an extension](/operate/governance/contextual-access/examples) — Try the open-source example servers as reference +- [How Hooks Work](/operate/governance/contextual-access/how-hooks-work) — Understand execution order, phases, and failure modes diff --git a/app/en/operate/contextual-access/examples/page.mdx b/app/en/operate/governance/contextual-access/examples/page.mdx similarity index 93% rename from app/en/operate/contextual-access/examples/page.mdx rename to app/en/operate/governance/contextual-access/examples/page.mdx index 986522ee5..692200220 100644 --- a/app/en/operate/contextual-access/examples/page.mdx +++ b/app/en/operate/governance/contextual-access/examples/page.mdx @@ -75,9 +75,9 @@ Once your server is running: 2. Click **Create Extension** and enter your server's base URL and endpoint paths 3. Create **hook configurations** to attach the extension to the hook points you want -See [How Hooks Work](/operate/contextual-access/how-hooks-work) for details on configuring extensions and hook points. +See [How Hooks Work](/operate/governance/contextual-access/how-hooks-work) for details on configuring extensions and hook points. ## Next steps -- [Build your own](/operate/contextual-access/build-your-own) — Implement the webhook contract in any language +- [Build your own](/operate/governance/contextual-access/build-your-own) — Implement the webhook contract in any language - [API Reference](/references/contextual-access-webhook-api) — Interactive schema documentation for the webhook contract diff --git a/app/en/operate/contextual-access/how-hooks-work/page.mdx b/app/en/operate/governance/contextual-access/how-hooks-work/page.mdx similarity index 95% rename from app/en/operate/contextual-access/how-hooks-work/page.mdx rename to app/en/operate/governance/contextual-access/how-hooks-work/page.mdx index 8623ccccf..756dbfd6a 100644 --- a/app/en/operate/contextual-access/how-hooks-work/page.mdx +++ b/app/en/operate/governance/contextual-access/how-hooks-work/page.mdx @@ -87,6 +87,6 @@ You configure extensions and hook points from the **Arcade Dashboard**: ## Next steps -- [Run an extension](/operate/contextual-access/examples) — Try the open-source example servers -- [Build your own](/operate/contextual-access/build-your-own) — Implement the webhook contract from the OpenAPI spec +- [Run an extension](/operate/governance/contextual-access/examples) — Try the open-source example servers +- [Build your own](/operate/governance/contextual-access/build-your-own) — Implement the webhook contract from the OpenAPI spec - [API Reference](/references/contextual-access-webhook-api) — Interactive schema documentation for the webhook contract diff --git a/app/en/operate/contextual-access/page.mdx b/app/en/operate/governance/contextual-access/page.mdx similarity index 92% rename from app/en/operate/contextual-access/page.mdx rename to app/en/operate/governance/contextual-access/page.mdx index c53cc8d79..71beecfbd 100644 --- a/app/en/operate/contextual-access/page.mdx +++ b/app/en/operate/governance/contextual-access/page.mdx @@ -37,15 +37,15 @@ You only implement the hooks you need. Configure everything through the Dashboar @@ -45,7 +45,7 @@ Use remote MCP servers when your tools live outside Arcade. Register the server @@ -69,7 +69,7 @@ When you create a gateway, you choose who its end users are. Arcade groups the o | **User Source** (recommended for production) | Production agents whose end users have identities in your OIDC identity provider | Arcade redirects end users to your identity provider, then identifies them by a configured subject claim | | **Arcade Headers** (fallback) | MCP clients that can't run a browser-based OAuth flow | The client passes `Authorization: Bearer {your_api_key}` and `Arcade-User-ID: {end_user_id}` on every request | -See [User Sources](/operate/user-sources) for how to set up an OIDC identity provider and attach it to a gateway. See [Create via Dashboard](/operate/mcp-gateways/create-via-dashboard) for the rest of the gateway configuration. +See [User Sources](/operate/identity/user-sources) for how to set up an OIDC identity provider and attach it to a gateway. See [Create via Dashboard](/operate/governance/mcp-gateways/create-via-dashboard) for the rest of the gateway configuration. ## Skip consent for trusted MCP clients diff --git a/app/en/operate/governance/page.mdx b/app/en/operate/governance/page.mdx new file mode 100644 index 000000000..73a0180bb --- /dev/null +++ b/app/en/operate/governance/page.mdx @@ -0,0 +1,19 @@ +--- +title: "Governance" +description: "Federate tools, enforce access policies, and audit administrative actions" +--- + +import { Cards } from "nextra/components"; + +# Governance + +Control which tools agents can use, enforce policies at runtime, and review administrative actions. + + + + + + diff --git a/app/en/operate/identity/_meta.tsx b/app/en/operate/identity/_meta.tsx new file mode 100644 index 000000000..d4d39d93d --- /dev/null +++ b/app/en/operate/identity/_meta.tsx @@ -0,0 +1,12 @@ +import type { MetaRecord } from "nextra"; + +export const meta: MetaRecord = { + index: { + title: "Overview", + }, + "user-sources": { + title: "User Sources", + }, +}; + +export default meta; diff --git a/app/en/operate/identity/page.mdx b/app/en/operate/identity/page.mdx new file mode 100644 index 000000000..e1080cd65 --- /dev/null +++ b/app/en/operate/identity/page.mdx @@ -0,0 +1,19 @@ +--- +title: "Identity" +description: "Connect end-user identity providers and configure how gateways authenticate users" +--- + +import { Cards } from "nextra/components"; + +# Identity + +Configure how end users authenticate to Arcade gateways and how your organization manages auth providers. + + + + + + diff --git a/app/en/operate/user-sources/_meta.tsx b/app/en/operate/identity/user-sources/_meta.tsx similarity index 100% rename from app/en/operate/user-sources/_meta.tsx rename to app/en/operate/identity/user-sources/_meta.tsx diff --git a/app/en/operate/user-sources/auth0/page.mdx b/app/en/operate/identity/user-sources/auth0/page.mdx similarity index 90% rename from app/en/operate/user-sources/auth0/page.mdx rename to app/en/operate/identity/user-sources/auth0/page.mdx index 9267b23ed..23ec1e475 100644 --- a/app/en/operate/user-sources/auth0/page.mdx +++ b/app/en/operate/identity/user-sources/auth0/page.mdx @@ -12,7 +12,7 @@ export const AUTH0_SCREENSHOT_HEIGHT = 1099 / IMAGE_SCALE_FACTOR; # Auth0 -Use Auth0 as a User Source so the people who already sign in through your Auth0 tenant can sign in to your MCP Gateways. This guide walks you through what to do in the Auth0 dashboard. Once you have the values it tells you to copy, [create the User Source in Arcade](/operate/user-sources#create-a-user-source). +Use Auth0 as a User Source so the people who already sign in through your Auth0 tenant can sign in to your MCP Gateways. This guide walks you through what to do in the Auth0 dashboard. Once you have the values it tells you to copy, [create the User Source in Arcade](/operate/identity/user-sources#create-a-user-source). ## Before you start @@ -83,14 +83,14 @@ Copy these values into Arcade's User Source form: ## Create the User Source in Arcade -Open the Arcade Dashboard, select your project, navigate to **User Sources**, and click **Create User Source**. Paste the values from the table above. For a walkthrough of the form, see [Create a User Source](/operate/user-sources#create-a-user-source) in the User Sources overview. +Open the Arcade Dashboard, select your project, navigate to **User Sources**, and click **Create User Source**. Paste the values from the table above. For a walkthrough of the form, see [Create a User Source](/operate/identity/user-sources#create-a-user-source) in the User Sources overview. -Once the User Source is active, attach it to an MCP Gateway by following [Create via Dashboard](/operate/mcp-gateways/create-via-dashboard) and picking **User Source** under "Non-Arcade Users" in the gateway form. +Once the User Source is active, attach it to an MCP Gateway by following [Create via Dashboard](/operate/governance/mcp-gateways/create-via-dashboard) and picking **User Source** under "Non-Arcade Users" in the gateway form. ## Notes - **Tenant domains and regions**: Newer Auth0 tenants use region-prefixed domains such as `.us.auth0.com` or `.eu.auth0.com`. Older tenants use `.auth0.com`. Either form works; copy exactly what the **Domain** field on the application's Settings tab displays. See Auth0's [tenant region documentation](https://auth0.com/docs/get-started/auth0-overview/create-tenants) for more on which region your tenant is in. - **Custom domains**: If you use Auth0's [custom domain feature](https://auth0.com/docs/customize/custom-domains) (for example, `auth.yourcompany.com`), use the custom domain as the **Issuer URL** hostname. End users see your branded domain on the sign-in page. - **Connections**: Auth0 lets you wire up database, social, and enterprise connections behind a single tenant. Arcade doesn't care which connections you've enabled, only that the end users who try to sign in have access to this application. Configure connections under **Authentication** → **Database / Social / Enterprise** in the Auth0 dashboard. -- **Client secret rotation**: Auth0 lets you rotate the client secret from the **Settings** tab's **Basic Information** section. See [Rotate the client secret](/operate/user-sources#rotate-the-client-secret) in the User Sources guide for the Arcade side. -- **Custom subject claims**: Arcade's default Subject Claim, `sub`, is Auth0's connection-prefixed user identifier (for example, `auth0|abc123` for a database user or `google-oauth2|abc123` for a Google-linked user). It's stable per user across the tenant. If you need Arcade to identify users by a different value, add a [custom claim](https://auth0.com/docs/secure/tokens/json-web-tokens/create-custom-claims) to the ID token via an Auth0 Action and set the User Source's **Subject Claim** to its name. Arcade only reads ID tokens, so the claim must be on the ID token (not the access token). See [Advanced: scopes and subject claim](/operate/user-sources#advanced-scopes-and-subject-claim) in the overview for what makes a good claim. +- **Client secret rotation**: Auth0 lets you rotate the client secret from the **Settings** tab's **Basic Information** section. See [Rotate the client secret](/operate/identity/user-sources#rotate-the-client-secret) in the User Sources guide for the Arcade side. +- **Custom subject claims**: Arcade's default Subject Claim, `sub`, is Auth0's connection-prefixed user identifier (for example, `auth0|abc123` for a database user or `google-oauth2|abc123` for a Google-linked user). It's stable per user across the tenant. If you need Arcade to identify users by a different value, add a [custom claim](https://auth0.com/docs/secure/tokens/json-web-tokens/create-custom-claims) to the ID token via an Auth0 Action and set the User Source's **Subject Claim** to its name. Arcade only reads ID tokens, so the claim must be on the ID token (not the access token). See [Advanced: scopes and subject claim](/operate/identity/user-sources#advanced-scopes-and-subject-claim) in the overview for what makes a good claim. diff --git a/app/en/operate/user-sources/clerk/page.mdx b/app/en/operate/identity/user-sources/clerk/page.mdx similarity index 90% rename from app/en/operate/user-sources/clerk/page.mdx rename to app/en/operate/identity/user-sources/clerk/page.mdx index 291e5fc36..f40fe869d 100644 --- a/app/en/operate/user-sources/clerk/page.mdx +++ b/app/en/operate/identity/user-sources/clerk/page.mdx @@ -12,7 +12,7 @@ export const CLERK_SCREENSHOT_HEIGHT = 949 / IMAGE_SCALE_FACTOR; # Clerk -Use Clerk as a User Source so the people who already sign in through your Clerk instance can sign in to your MCP Gateways. Clerk's [OAuth applications](https://clerk.com/docs/advanced-usage/clerk-idp) feature turns your Clerk instance into an OIDC identity provider that Arcade can connect to. Once you have the values it tells you to copy, [create the User Source in Arcade](/operate/user-sources#create-a-user-source). +Use Clerk as a User Source so the people who already sign in through your Clerk instance can sign in to your MCP Gateways. Clerk's [OAuth applications](https://clerk.com/docs/advanced-usage/clerk-idp) feature turns your Clerk instance into an OIDC identity provider that Arcade can connect to. Once you have the values it tells you to copy, [create the User Source in Arcade](/operate/identity/user-sources#create-a-user-source). ## Before you start @@ -81,12 +81,12 @@ Copy these values into Arcade's User Source form: ## Create the User Source in Arcade -Open the Arcade Dashboard, select your project, navigate to **User Sources**, and click **Create User Source**. Paste the values from the table above. For a walkthrough of the form, see [Create a User Source](/operate/user-sources#create-a-user-source) in the User Sources overview. +Open the Arcade Dashboard, select your project, navigate to **User Sources**, and click **Create User Source**. Paste the values from the table above. For a walkthrough of the form, see [Create a User Source](/operate/identity/user-sources#create-a-user-source) in the User Sources overview. -Once the User Source is active, attach it to an MCP Gateway by following [Create via Dashboard](/operate/mcp-gateways/create-via-dashboard) and picking **User Source** under "Non-Arcade Users" in the gateway form. +Once the User Source is active, attach it to an MCP Gateway by following [Create via Dashboard](/operate/governance/mcp-gateways/create-via-dashboard) and picking **User Source** under "Non-Arcade Users" in the gateway form. ## Notes - **Development vs production instances**: Clerk's development and production instances have different Frontend API URLs and different OAuth applications. When you're ready to move from a development setup to production, register a new OAuth application in the production instance and create a separate Arcade User Source for it. -- **Client secret rotation**: Clerk supports regenerating the Client Secret from the OAuth application's **Application credentials** section. See [Rotate the client secret](/operate/user-sources#rotate-the-client-secret) in the User Sources guide for the Arcade-side procedure. -- **Subject Claim**: Arcade's default Subject Claim, `sub`, is the Clerk user ID and is the recommended value. Clerk's OAuth applications also expose `public_metadata` and `private_metadata` scopes that surface the corresponding [user metadata](https://clerk.com/docs/users/metadata) on the ID token, which lets you add organization, role, or other custom data to claims. See [Advanced: scopes and subject claim](/operate/user-sources#advanced-scopes-and-subject-claim) in the overview for what makes a good claim. +- **Client secret rotation**: Clerk supports regenerating the Client Secret from the OAuth application's **Application credentials** section. See [Rotate the client secret](/operate/identity/user-sources#rotate-the-client-secret) in the User Sources guide for the Arcade-side procedure. +- **Subject Claim**: Arcade's default Subject Claim, `sub`, is the Clerk user ID and is the recommended value. Clerk's OAuth applications also expose `public_metadata` and `private_metadata` scopes that surface the corresponding [user metadata](https://clerk.com/docs/users/metadata) on the ID token, which lets you add organization, role, or other custom data to claims. See [Advanced: scopes and subject claim](/operate/identity/user-sources#advanced-scopes-and-subject-claim) in the overview for what makes a good claim. diff --git a/app/en/operate/user-sources/microsoft-entra-id/page.mdx b/app/en/operate/identity/user-sources/microsoft-entra-id/page.mdx similarity index 93% rename from app/en/operate/user-sources/microsoft-entra-id/page.mdx rename to app/en/operate/identity/user-sources/microsoft-entra-id/page.mdx index 7eb7c0283..d2bb9dff0 100644 --- a/app/en/operate/user-sources/microsoft-entra-id/page.mdx +++ b/app/en/operate/identity/user-sources/microsoft-entra-id/page.mdx @@ -12,7 +12,7 @@ export const ENTRA_SCREENSHOT_HEIGHT = 849 / IMAGE_SCALE_FACTOR; # Microsoft Entra ID -Use Microsoft Entra ID as a User Source so the people who already sign in with their Microsoft work or school account can sign in to your MCP Gateways. This guide walks you through what to do in the Microsoft Entra admin center. Once you have the values it tells you to copy, [create the User Source in Arcade](/operate/user-sources#create-a-user-source). +Use Microsoft Entra ID as a User Source so the people who already sign in with their Microsoft work or school account can sign in to your MCP Gateways. This guide walks you through what to do in the Microsoft Entra admin center. Once you have the values it tells you to copy, [create the User Source in Arcade](/operate/identity/user-sources#create-a-user-source). ## Before you start @@ -111,9 +111,9 @@ Leave Arcade's other defaults alone for a standard Entra setup. See [Optional: u ## Create the User Source in Arcade -Open the Arcade Dashboard, select your project, navigate to **User Sources**, and click **Create User Source**. Paste the values from the table above. For a walkthrough of the form, see [Create a User Source](/operate/user-sources#create-a-user-source) in the User Sources overview. +Open the Arcade Dashboard, select your project, navigate to **User Sources**, and click **Create User Source**. Paste the values from the table above. For a walkthrough of the form, see [Create a User Source](/operate/identity/user-sources#create-a-user-source) in the User Sources overview. -Once the User Source is active, attach it to an MCP Gateway by following [Create via Dashboard](/operate/mcp-gateways/create-via-dashboard) and picking **User Source** under "Non-Arcade Users" in the gateway form. +Once the User Source is active, attach it to an MCP Gateway by following [Create via Dashboard](/operate/governance/mcp-gateways/create-via-dashboard) and picking **User Source** under "Non-Arcade Users" in the gateway form. ## Optional: use `oid` as the subject claim @@ -127,5 +127,5 @@ Entra only emits `oid` when `profile` is in the requested scopes. You granted th - **Multi-tenant and personal-account options aren't supported today**: Arcade matches the OIDC `iss` claim on every ID token byte-for-byte against the issuer URL you save on the User Source. The **Multiple Entra ID tenants**, **Any Entra ID Tenant + Personal Microsoft accounts**, and **Personal accounts only** options all rely on Entra issuing tokens whose `iss` reflects the signing-in user's home tenant, so there's no single issuer URL that will validate for users from more than one tenant. If you need to onboard users from multiple Entra tenants today, create a separate Arcade User Source per tenant. - **PKCE**: Arcade always uses PKCE when authenticating end users. Entra ID accepts PKCE automatically on the **Web** platform, so you don't need to change any Entra setting. -- **Client secret rotation**: Entra client secrets expire. Rotate yours before the expiration date. See [Rotate the client secret](/operate/user-sources#rotate-the-client-secret) in the User Sources guide for how. -- **Custom subject claims**: If neither `sub` nor `oid` fits, you can configure a different value as an [optional claim](https://learn.microsoft.com/en-us/entra/identity-platform/optional-claims#configure-optional-claims-in-your-application) on Entra's ID token, then set the User Source's **Subject Claim** to its name. Arcade only reads ID tokens, so the claim must be on the ID token specifically (not the access token). See [Advanced: scopes and subject claim](/operate/user-sources#advanced-scopes-and-subject-claim) in the overview for what makes a good claim. +- **Client secret rotation**: Entra client secrets expire. Rotate yours before the expiration date. See [Rotate the client secret](/operate/identity/user-sources#rotate-the-client-secret) in the User Sources guide for how. +- **Custom subject claims**: If neither `sub` nor `oid` fits, you can configure a different value as an [optional claim](https://learn.microsoft.com/en-us/entra/identity-platform/optional-claims#configure-optional-claims-in-your-application) on Entra's ID token, then set the User Source's **Subject Claim** to its name. Arcade only reads ID tokens, so the claim must be on the ID token specifically (not the access token). See [Advanced: scopes and subject claim](/operate/identity/user-sources#advanced-scopes-and-subject-claim) in the overview for what makes a good claim. diff --git a/app/en/operate/user-sources/okta/page.mdx b/app/en/operate/identity/user-sources/okta/page.mdx similarity index 90% rename from app/en/operate/user-sources/okta/page.mdx rename to app/en/operate/identity/user-sources/okta/page.mdx index 72e642a5c..3e76f281f 100644 --- a/app/en/operate/user-sources/okta/page.mdx +++ b/app/en/operate/identity/user-sources/okta/page.mdx @@ -12,7 +12,7 @@ export const OKTA_SCREENSHOT_HEIGHT = 1099 / IMAGE_SCALE_FACTOR; # Okta -Use Okta as a User Source so the people who already sign in with their Okta account can sign in to your MCP Gateways. This guide walks you through what to do in the Okta admin console. Once you have the values it tells you to copy, [create the User Source in Arcade](/operate/user-sources#create-a-user-source). +Use Okta as a User Source so the people who already sign in with their Okta account can sign in to your MCP Gateways. This guide walks you through what to do in the Okta admin console. Once you have the values it tells you to copy, [create the User Source in Arcade](/operate/identity/user-sources#create-a-user-source). ## Before you start @@ -96,13 +96,13 @@ Copy these values into Arcade's User Source form: ## Create the User Source in Arcade -Open the Arcade Dashboard, select your project, navigate to **User Sources**, and click **Create User Source**. Paste the values from the table above. For a walkthrough of the form, see [Create a User Source](/operate/user-sources#create-a-user-source) in the User Sources overview. +Open the Arcade Dashboard, select your project, navigate to **User Sources**, and click **Create User Source**. Paste the values from the table above. For a walkthrough of the form, see [Create a User Source](/operate/identity/user-sources#create-a-user-source) in the User Sources overview. -Once the User Source is active, attach it to an MCP Gateway by following [Create via Dashboard](/operate/mcp-gateways/create-via-dashboard) and picking **User Source** under "Non-Arcade Users" in the gateway form. +Once the User Source is active, attach it to an MCP Gateway by following [Create via Dashboard](/operate/governance/mcp-gateways/create-via-dashboard) and picking **User Source** under "Non-Arcade Users" in the gateway form. ## Notes - **Custom Okta domains**: If your org uses an Okta-hosted custom domain (for example, `auth.yourcompany.com`), use that hostname in the **Issuer URL** instead of `.okta.com`. Your end users will see the custom domain in the sign-in URL. - **Custom Authorization Servers**: This guide uses Okta's built-in **Org Authorization Server**, whose issuer is your Okta org URL. If your team uses a Custom Authorization Server for this app (for example, the default `oauth2/default` server, or one you've configured under **Security** → **API** → **Authorization Servers**), use that server's **Issuer URI** instead. Custom Authorization Servers are useful when you need to customize scopes, claims, or access policies. -- **Client secret rotation**: Okta lets you generate a new client secret on the same Client Credentials panel and keep the old one active until you're ready to switch. See [Rotate the client secret](/operate/user-sources#rotate-the-client-secret) in the User Sources guide for the Arcade side. -- **Custom subject claims**: Arcade's default Subject Claim, `sub`, is the user's Okta user ID. If you need Arcade to identify users by a different value, configure a custom claim on a [Custom Authorization Server](https://developer.okta.com/docs/guides/customize-tokens-returned-from-okta/main/) and set the User Source's **Subject Claim** to its name. Arcade only reads ID tokens, so the claim must be on the ID token (not the access token). See [Advanced: scopes and subject claim](/operate/user-sources#advanced-scopes-and-subject-claim) in the overview for what makes a good claim. +- **Client secret rotation**: Okta lets you generate a new client secret on the same Client Credentials panel and keep the old one active until you're ready to switch. See [Rotate the client secret](/operate/identity/user-sources#rotate-the-client-secret) in the User Sources guide for the Arcade side. +- **Custom subject claims**: Arcade's default Subject Claim, `sub`, is the user's Okta user ID. If you need Arcade to identify users by a different value, configure a custom claim on a [Custom Authorization Server](https://developer.okta.com/docs/guides/customize-tokens-returned-from-okta/main/) and set the User Source's **Subject Claim** to its name. Arcade only reads ID tokens, so the claim must be on the ID token (not the access token). See [Advanced: scopes and subject claim](/operate/identity/user-sources#advanced-scopes-and-subject-claim) in the overview for what makes a good claim. diff --git a/app/en/operate/user-sources/page.mdx b/app/en/operate/identity/user-sources/page.mdx similarity index 94% rename from app/en/operate/user-sources/page.mdx rename to app/en/operate/identity/user-sources/page.mdx index daee12462..2e05479e7 100644 --- a/app/en/operate/user-sources/page.mdx +++ b/app/en/operate/identity/user-sources/page.mdx @@ -27,7 +27,7 @@ Arcade MCP Gateways support three ways to authenticate end users: | **User Source** (recommended for production) | Production agents whose end users have identities in your OIDC identity provider | | **Arcade Headers** (fallback) | MCP clients that can't run a browser-based OAuth flow | -See [MCP Gateway authentication](/operate/mcp-gateways) for the full comparison and for how to pick an authentication mode when creating a gateway. +See [MCP Gateway authentication](/operate/governance/mcp-gateways) for the full comparison and for how to pick an authentication mode when creating a gateway. ## Register an OAuth client at your identity provider @@ -96,7 +96,7 @@ The **Subject Claim** is the JWT claim Arcade uses to identify each of your end You attach a User Source to an MCP Gateway when you create or edit the gateway. One User Source can back multiple gateways in the same project, so you can reuse the same end-user identity system across every gateway you build for those users. -See [Create via Dashboard](/operate/mcp-gateways/create-via-dashboard) for how to pick a User Source when configuring a gateway's authentication. +See [Create via Dashboard](/operate/governance/mcp-gateways/create-via-dashboard) for how to pick a User Source when configuring a gateway's authentication. ## Manage User Sources @@ -130,5 +130,5 @@ Deleting a User Source is permanent. As with deactivation, you can only delete a ## Next steps -- [MCP Gateway authentication](/operate/mcp-gateways) for a comparison of Arcade Auth, User Sources, and Arcade Headers +- [MCP Gateway authentication](/operate/governance/mcp-gateways) for a comparison of Arcade Auth, User Sources, and Arcade Headers - [Connect to MCP clients](/get-started/mcp-clients) to point your client at a gateway that uses a User Source diff --git a/app/en/operate/user-sources/stytch/page.mdx b/app/en/operate/identity/user-sources/stytch/page.mdx similarity index 92% rename from app/en/operate/user-sources/stytch/page.mdx rename to app/en/operate/identity/user-sources/stytch/page.mdx index b9db681f8..281ee9be4 100644 --- a/app/en/operate/user-sources/stytch/page.mdx +++ b/app/en/operate/identity/user-sources/stytch/page.mdx @@ -12,7 +12,7 @@ export const STYTCH_SCREENSHOT_HEIGHT = 1099 / IMAGE_SCALE_FACTOR; # Stytch -Use Stytch as a User Source so the people who already sign in through your Stytch project can sign in to your MCP Gateways. Stytch's [Connected Apps](https://stytch.com/docs/connected-apps/build-login-flow/login-flow) feature turns your Stytch project into an OIDC identity provider that Arcade can connect to. This guide applies to both Stytch Consumer and B2B projects, where the Connected Apps feature behaves identically. Once you have the values it tells you to copy, [create the User Source in Arcade](/operate/user-sources#create-a-user-source). +Use Stytch as a User Source so the people who already sign in through your Stytch project can sign in to your MCP Gateways. Stytch's [Connected Apps](https://stytch.com/docs/connected-apps/build-login-flow/login-flow) feature turns your Stytch project into an OIDC identity provider that Arcade can connect to. This guide applies to both Stytch Consumer and B2B projects, where the Connected Apps feature behaves identically. Once you have the values it tells you to copy, [create the User Source in Arcade](/operate/identity/user-sources#create-a-user-source). ## Before you start @@ -105,13 +105,13 @@ Copy these values into Arcade's User Source form: ## Create the User Source in Arcade -Open the Arcade Dashboard, select your project, navigate to **User Sources**, and click **Create User Source**. Paste the values from the table above. For a walkthrough of the form, see [Create a User Source](/operate/user-sources#create-a-user-source) in the User Sources overview. +Open the Arcade Dashboard, select your project, navigate to **User Sources**, and click **Create User Source**. Paste the values from the table above. For a walkthrough of the form, see [Create a User Source](/operate/identity/user-sources#create-a-user-source) in the User Sources overview. -Once the User Source is active, attach it to an MCP Gateway by following [Create via Dashboard](/operate/mcp-gateways/create-via-dashboard) and picking **User Source** under "Non-Arcade Users" in the gateway form. +Once the User Source is active, attach it to an MCP Gateway by following [Create via Dashboard](/operate/governance/mcp-gateways/create-via-dashboard) and picking **User Source** under "Non-Arcade Users" in the gateway form. ## Notes - **Test vs production**: New Connected Apps default to test mode and issue test-environment credentials. Enable the **Enable for production** toggle on the app's **Details** page when you're ready to issue live tokens, then update the User Source in Arcade with the production Client ID and Client Secret. - **Custom Stytch domains**: If you've configured a [custom domain](https://stytch.com/docs/connected-apps/resources/custom-domains) on the Stytch project, use that hostname as the **Issuer URL** instead of the `.customers.stytch.dev` value. End users see the custom domain on the authorization page. -- **Client secret rotation**: Stytch supports [rotating the client secret](https://stytch.com/docs/api-reference/consumer/api/connected-apps/rotate-secret/start-secret-rotation) for a Connected App from the Dashboard or via the API. The rotation flow keeps the previous secret active while you swap the new one into Arcade. See [Rotate the client secret](/operate/user-sources#rotate-the-client-secret) in the User Sources guide for the Arcade-side procedure. -- **Subject Claim**: Arcade's default Subject Claim, `sub`, is the Stytch user's stable identifier and is the recommended value. Stytch's Connected Apps issues a [fixed set of standard OIDC claims](https://stytch.com/docs/api-reference/consumer/api/connected-apps/tokens/connected-app-id-token-object) on the ID token. Stytch does not currently support a custom-claim template for the ID token, so the standard claim set is what Arcade has available. See [Advanced: scopes and subject claim](/operate/user-sources#advanced-scopes-and-subject-claim) in the overview for what makes a good claim. +- **Client secret rotation**: Stytch supports [rotating the client secret](https://stytch.com/docs/api-reference/consumer/api/connected-apps/rotate-secret/start-secret-rotation) for a Connected App from the Dashboard or via the API. The rotation flow keeps the previous secret active while you swap the new one into Arcade. See [Rotate the client secret](/operate/identity/user-sources#rotate-the-client-secret) in the User Sources guide for the Arcade-side procedure. +- **Subject Claim**: Arcade's default Subject Claim, `sub`, is the Stytch user's stable identifier and is the recommended value. Stytch's Connected Apps issues a [fixed set of standard OIDC claims](https://stytch.com/docs/api-reference/consumer/api/connected-apps/tokens/connected-app-id-token-object) on the ID token. Stytch does not currently support a custom-claim template for the ID token, so the standard claim set is what Arcade has available. See [Advanced: scopes and subject claim](/operate/identity/user-sources#advanced-scopes-and-subject-claim) in the overview for what makes a good claim. diff --git a/app/en/operate/page.mdx b/app/en/operate/page.mdx index e3dee6e1a..dce3ab2d8 100644 --- a/app/en/operate/page.mdx +++ b/app/en/operate/page.mdx @@ -20,7 +20,7 @@ If you build agents or custom MCP servers, start with [Get Started](/get-started /> @@ -31,10 +31,10 @@ If you build agents or custom MCP servers, start with [Get Started](/get-started Run Arcade Cloud, deploy through a cloud marketplace, or self-host with Helm. - - - - + + + + ### Identity @@ -42,7 +42,7 @@ Run Arcade Cloud, deploy through a cloud marketplace, or self-host with Helm. Connect your end-user identity provider and configure how gateways authenticate users. - + - - - + + + ## Related references diff --git a/app/en/operate/quickstart/page.mdx b/app/en/operate/quickstart/page.mdx index 6e2f0dda5..135f541db 100644 --- a/app/en/operate/quickstart/page.mdx +++ b/app/en/operate/quickstart/page.mdx @@ -46,11 +46,11 @@ Pick the hosting model that matches your compliance and ops model: | Option | When to use | Guide | | --- | --- | --- | -| **Arcade Cloud** | Quickest path; Arcade manages the platform | [Arcade Cloud](/operate/deployment/arcade-cloud) | -| **Cloud marketplace** | Arcade-operated platform in your cloud account | [Azure](/operate/deployment/azure), [AWS](/operate/deployment/aws), [GCP](/operate/deployment/gcp) | -| **Self-host with Helm** | Full control on your Kubernetes cluster | [Helm](/operate/deployment/helm) | +| **Arcade Cloud** | Quickest path; Arcade manages the platform | [Arcade Cloud](/operate/deploy/arcade-cloud) | +| **Cloud marketplace** | Arcade-operated platform in your cloud account | [Azure](/operate/deploy/azure), [AWS](/operate/deploy/aws), [GCP](/operate/deploy/gcp) | +| **Self-host with Helm** | Full control on your Kubernetes cluster | [Helm](/operate/deploy/helm) | -See the [hosting options overview](/operate/deployment) for a fuller comparison. +See the [hosting options overview](/operate/deploy) for a fuller comparison. Hosting *your* MCP server with [`arcade deploy`](/build/arcade-deploy) is a developer workflow. It does not deploy the Arcade platform. @@ -64,7 +64,7 @@ Hosting *your* MCP server with [`arcade deploy`](/build/arcade-deploy) is a deve ### Connect end-user identity -For production gateways, connect your OIDC provider as a [User Source](/operate/user-sources) (Okta, Entra ID, Auth0, Clerk, Stytch, or similar). +For production gateways, connect your OIDC provider as a [User Source](/operate/identity/user-sources) (Okta, Entra ID, Auth0, Clerk, Stytch, or similar). Arcade Auth is fine for internal testing. Use a User Source when end users already live in your identity system. @@ -72,15 +72,15 @@ Arcade Auth is fine for internal testing. Use a User Source when end users alrea Create a gateway that federates the tools your agents and MCP clients should see: -- [Create via Dashboard](/operate/mcp-gateways/create-via-dashboard) -- [Create via AI Assistant](/operate/mcp-gateways/create-via-ai) +- [Create via Dashboard](/operate/governance/mcp-gateways/create-via-dashboard) +- [Create via AI Assistant](/operate/governance/mcp-gateways/create-via-ai) Attach your User Source when you configure authentication for production. ### Turn on governance -- **Contextual Access**: control tool visibility and behavior with hooks. Start with [Contextual Access](/operate/contextual-access). -- **Audit Logs**: Arcade captures administrative actions by default. See [Audit Logs](/operate/audit-logs) for the dashboard and SIEM API. +- **Contextual Access**: control tool visibility and behavior with hooks. Start with [Contextual Access](/operate/governance/contextual-access). +- **Audit Logs**: Arcade captures administrative actions by default. See [Audit Logs](/operate/governance/audit-logs) for the dashboard and SIEM API. @@ -88,7 +88,7 @@ Attach your User Source when you configure authentication for production. - - - + + + diff --git a/app/en/references/auth-providers/airtable/page.mdx b/app/en/references/auth-providers/airtable/page.mdx index 0d137a85f..e2f261c6b 100644 --- a/app/en/references/auth-providers/airtable/page.mdx +++ b/app/en/references/auth-providers/airtable/page.mdx @@ -115,7 +115,7 @@ Hit the **Create** button and the provider will be ready to be used. This method is only available when you are [self-hosting the - engine](/operate/deployment/helm) + engine](/operate/deploy/helm) diff --git a/app/en/references/auth-providers/calendly/page.mdx b/app/en/references/auth-providers/calendly/page.mdx index 32b8bf08d..c89cd7f85 100644 --- a/app/en/references/auth-providers/calendly/page.mdx +++ b/app/en/references/auth-providers/calendly/page.mdx @@ -111,7 +111,7 @@ Hit the **Create** button and the provider will be ready to be used. This method is only available when you are [self-hosting the - engine](/operate/deployment/helm) + engine](/operate/deploy/helm) diff --git a/app/en/references/auth-providers/cisco-duo/page.mdx b/app/en/references/auth-providers/cisco-duo/page.mdx index dfa70b06f..8fa5dbc4e 100644 --- a/app/en/references/auth-providers/cisco-duo/page.mdx +++ b/app/en/references/auth-providers/cisco-duo/page.mdx @@ -153,7 +153,7 @@ Once deployed, your server and its tools appear in the Arcade Dashboard under ** ### Connect your agentic client to an MCP gateway -Create an [MCP gateway](/operate/mcp-gateways) that exposes your server's tools, then connect your client to the gateway URL (`https://api.arcade.dev/mcp/`). +Create an [MCP gateway](/operate/governance/mcp-gateways) that exposes your server's tools, then connect your client to the gateway URL (`https://api.arcade.dev/mcp/`). ### Call a tool diff --git a/app/en/references/auth-providers/figma/page.mdx b/app/en/references/auth-providers/figma/page.mdx index 94006cb30..f02e456ca 100644 --- a/app/en/references/auth-providers/figma/page.mdx +++ b/app/en/references/auth-providers/figma/page.mdx @@ -140,7 +140,7 @@ Hit the **Create** button and the provider will be ready to be used. This method is only available when you are [self-hosting the - engine](/operate/deployment/helm + engine](/operate/deploy/helm diff --git a/app/en/references/auth-providers/mailchimp/page.mdx b/app/en/references/auth-providers/mailchimp/page.mdx index 62115b452..3060090f6 100644 --- a/app/en/references/auth-providers/mailchimp/page.mdx +++ b/app/en/references/auth-providers/mailchimp/page.mdx @@ -113,7 +113,7 @@ Hit the **Create** button and the provider will be ready to be used. This method is only available when you are [self-hosting the - engine](/operate/deployment/helm + engine](/operate/deploy/helm diff --git a/app/en/references/auth-providers/miro/page.mdx b/app/en/references/auth-providers/miro/page.mdx index e04d7b3fe..c7bf0f582 100644 --- a/app/en/references/auth-providers/miro/page.mdx +++ b/app/en/references/auth-providers/miro/page.mdx @@ -115,7 +115,7 @@ Hit the **Create** button and the provider will be ready to be used. This method is only available when you are [self-hosting the - engine](/operate/deployment/helm + engine](/operate/deploy/helm diff --git a/app/en/references/auth-providers/oauth2/page.mdx b/app/en/references/auth-providers/oauth2/page.mdx index 54b2cea76..9809c8c71 100644 --- a/app/en/references/auth-providers/oauth2/page.mdx +++ b/app/en/references/auth-providers/oauth2/page.mdx @@ -30,7 +30,7 @@ The only supported OAuth 2.0 flow is the authorization code grant flow (with or ## Configuring OAuth 2.0 -How you configure the OAuth 2.0 provider depends on whether you use the Arcade Cloud Engine or a [self-hosted Engine](/operate/deployment/helm). If you use the Cloud Engine, you must configure your provider in the Dashboard. +How you configure the OAuth 2.0 provider depends on whether you use the Arcade Cloud Engine or a [self-hosted Engine](/operate/deploy/helm). If you use the Cloud Engine, you must configure your provider in the Dashboard. When configuring your app in the OAuth 2.0 enabled service, you must use the @@ -43,7 +43,7 @@ How you configure the OAuth 2.0 provider depends on whether you use the Arcade C When using the Arcade Cloud Platform, the Dashboard is available at [`https://api.arcade.dev/dashboard`](https://api.arcade.dev/dashboard). If you - are [self-hosting Arcade](/operate/deployment/helm), by default + are [self-hosting Arcade](/operate/deploy/helm), by default the Dashboard is available at [`http://localhost:9099/dashboard`](http://localhost:9099/dashboard). Adjust the host and port, if necessary, to match your environment. @@ -62,7 +62,7 @@ When you use tools that require OAuth 2.0 authorization using your Arcade accoun This method is only available when you are [self-hosting the - engine](/operate/deployment/helm + engine](/operate/deploy/helm @@ -84,7 +84,7 @@ HOOLI_CLIENT_SECRET="" ``` - See [configuration](/operate/deployment/helm#configuration) for more + See [configuration](/operate/deploy/helm#configuration) for more information on how to set environment variables and configure the Arcade Engine. @@ -94,7 +94,7 @@ HOOLI_CLIENT_SECRET="" To locate the `engine.yaml` file in your OS after installing the Arcade Engine, check the [Engine configuration - file](/operate/deployment/helm#configuration) + file](/operate/deploy/helm#configuration) documentation. diff --git a/app/en/references/auth-providers/pagerduty/page.mdx b/app/en/references/auth-providers/pagerduty/page.mdx index d311222ef..487e7c1b6 100644 --- a/app/en/references/auth-providers/pagerduty/page.mdx +++ b/app/en/references/auth-providers/pagerduty/page.mdx @@ -122,7 +122,7 @@ Hit the **Create** button and the provider will be ready to be used. This method is only available when you are [self-hosting the - engine](/operate/deployment/helm + engine](/operate/deploy/helm diff --git a/app/en/references/auth-providers/square/page.mdx b/app/en/references/auth-providers/square/page.mdx index b97f9ea11..38c9c27c3 100644 --- a/app/en/references/auth-providers/square/page.mdx +++ b/app/en/references/auth-providers/square/page.mdx @@ -117,7 +117,7 @@ Hit the **Create** button and the provider will be ready to be used. This method is only available when you are [self-hosting the - engine](/operate/deployment/helm + engine](/operate/deploy/helm diff --git a/app/en/references/auth-providers/ticktick/page.mdx b/app/en/references/auth-providers/ticktick/page.mdx index 8c2c28d84..07aebb6df 100644 --- a/app/en/references/auth-providers/ticktick/page.mdx +++ b/app/en/references/auth-providers/ticktick/page.mdx @@ -110,7 +110,7 @@ Hit the **Create** button and the provider will be ready to be used. This method is only available when you are [self-hosting the - engine](/operate/deployment/helm + engine](/operate/deploy/helm diff --git a/app/en/references/auth-providers/zoho/page.mdx b/app/en/references/auth-providers/zoho/page.mdx index dcc697475..b7231fc59 100644 --- a/app/en/references/auth-providers/zoho/page.mdx +++ b/app/en/references/auth-providers/zoho/page.mdx @@ -126,7 +126,7 @@ Hit the **Create** button and the provider will be ready to be used. This method is only available when you are [self-hosting the - engine](/operate/deployment/helm + engine](/operate/deploy/helm diff --git a/app/en/references/changelog/page.mdx b/app/en/references/changelog/page.mdx index acd8aefbb..2d6386ec9 100644 --- a/app/en/references/changelog/page.mdx +++ b/app/en/references/changelog/page.mdx @@ -517,7 +517,7 @@ _Here's what's new at Arcade.dev!_ Contextual Access for Tool Executions is Live! Learn more - [here](/operate/contextual-access) + [here](/operate/governance/contextual-access) **Arcade MCP Servers** @@ -564,7 +564,7 @@ _Here's what's new at Arcade.dev!_ **Arcade MCP Servers** -- `[feature - 🚀]` Launched `https://ctl.arcade.dev/mcp` - Arcade's Gateway Assistant. Connect your LLM to help build MCP Gateways and MCP Servers for any agent use case. Learn more about it [here](/operate/mcp-gateways/create-via-ai)! +- `[feature - 🚀]` Launched `https://ctl.arcade.dev/mcp` - Arcade's Gateway Assistant. Connect your LLM to help build MCP Gateways and MCP Servers for any agent use case. Learn more about it [here](/operate/governance/mcp-gateways/create-via-ai)! **Platform and Engine** @@ -601,7 +601,7 @@ _Here's what's new at Arcade.dev!_ MCP Gateways now support OAuth! Learn more about it - [here](/operate/mcp-gateways)! + [here](/operate/governance/mcp-gateways)! **Arcade MCP Servers** @@ -795,7 +795,7 @@ _Here's what's new at Arcade.dev!_ This week MCP Gateways are now generally available! MCP Gateways allow you to federate the tools from multiple MCP Servers into a single collection for easier management, control, and access. Learn more about them - [here](/operate/mcp-gateways)! + [here](/operate/governance/mcp-gateways)! @@ -819,7 +819,7 @@ _Here's what's new at Arcade.dev!_ **Platform and Engine** - `[feature - 🚀]` Dashboard: Allow OAuth on MCP Servers -- `[feature - 🚀]` MCP Gateways are now generally available! Learn more about them [here](/operate/mcp-gateways)! +- `[feature - 🚀]` MCP Gateways are now generally available! Learn more about them [here](/operate/governance/mcp-gateways)! - `[feature - 🚀]` Projects are now generally available. - `[maintenance - 🔧]` Support remote MCP servers which require DCR (dynamic client registration). diff --git a/app/en/resources/early-access/_meta.tsx b/app/en/resources/early-access/_meta.tsx index 9f9f88a19..c9d16c046 100644 --- a/app/en/resources/early-access/_meta.tsx +++ b/app/en/resources/early-access/_meta.tsx @@ -3,7 +3,7 @@ import type { MetaRecord } from "nextra"; const meta: MetaRecord = { "warp-pipes": { title: "Warp Pipes", - href: "/en/operate/deployment/warp-pipes", + href: "/en/operate/deploy/warp-pipes", }, registry: { title: "Arcade Registry", diff --git a/app/en/resources/glossary/page.mdx b/app/en/resources/glossary/page.mdx index 678a44021..b9f06a434 100644 --- a/app/en/resources/glossary/page.mdx +++ b/app/en/resources/glossary/page.mdx @@ -166,7 +166,7 @@ _Learn more about [auth providers](/references/auth-providers)._ A 'User Source' is an OIDC identity provider connection that authenticates the end users of an MCP Gateway. A project can have multiple User Sources, and one User Source can back many gateways. User Sources are intentionally separate from any identity provider used for Arcade Account sign-in, so administrators and end users can be governed independently. -_Learn more about [User Sources](/operate/user-sources)._ +_Learn more about [User Sources](/operate/identity/user-sources)._ ### Authorization Scope diff --git a/app/en/resources/integrations/search/nimble/page.mdx b/app/en/resources/integrations/search/nimble/page.mdx index d9c417225..d718599ff 100644 --- a/app/en/resources/integrations/search/nimble/page.mdx +++ b/app/en/resources/integrations/search/nimble/page.mdx @@ -7,7 +7,7 @@ import { Callout, Steps } from "nextra/components"; # Nimble -This integration is a remote MCP server offered by [Nimble](https://www.nimbleway.com), an Arcade Partner. It exposes Nimble's web data platform so agents can search, extract, crawl, and map the public web. Add it to an [MCP Gateway](/operate/mcp-gateways/add-remote-servers) for central governance, authorization, and access control alongside Arcade's native servers. +This integration is a remote MCP server offered by [Nimble](https://www.nimbleway.com), an Arcade Partner. It exposes Nimble's web data platform so agents can search, extract, crawl, and map the public web. Add it to an [MCP Gateway](/operate/governance/mcp-gateways/add-remote-servers) for central governance, authorization, and access control alongside Arcade's native servers. ## MCP server URL @@ -28,7 +28,7 @@ Nimble expects a bearer token in the `Authorization` header on every request. In | Secret name | `NIMBLE_API_KEY` | | Secret value | Your Nimble API key | -Set these under **Advanced settings → Custom headers** when you add the server. See [Add remote MCP servers](/operate/mcp-gateways/add-remote-servers#configure-advanced-settings) for the full reference. +Set these under **Advanced settings → Custom headers** when you add the server. See [Add remote MCP servers](/operate/governance/mcp-gateways/add-remote-servers#configure-advanced-settings) for the full reference. ## What you can do @@ -68,7 +68,7 @@ Open the [Arcade Dashboard](https://api.arcade.dev/dashboard/servers) → **Add Under **Advanced settings → Custom headers**, add the `Authorization` header and store your key as described in [Authentication](#authentication), then save. - See the full walkthrough in [Add remote MCP servers](/operate/mcp-gateways/add-remote-servers) for advanced settings like connection retries, header secrets, and custom headers. + See the full walkthrough in [Add remote MCP servers](/operate/governance/mcp-gateways/add-remote-servers) for advanced settings like connection retries, header secrets, and custom headers. ### Verify Nimble tools @@ -95,6 +95,6 @@ Arcade handles authorization, credential handling, and audit logging at runtime. - [Nimble MCP server documentation](https://docs.nimbleway.com/integrations/mcp-server/mcp-server) - [Nimble documentation](https://docs.nimbleway.com) -- [Add remote MCP servers to Arcade](/operate/mcp-gateways/add-remote-servers) -- [Create an MCP Gateway](/operate/mcp-gateways/create-via-dashboard) +- [Add remote MCP servers to Arcade](/operate/governance/mcp-gateways/add-remote-servers) +- [Create an MCP Gateway](/operate/governance/mcp-gateways/create-via-dashboard) - [Connect to MCP clients](/get-started/mcp-clients) diff --git a/app/en/resources/integrations/search/tavily/page.mdx b/app/en/resources/integrations/search/tavily/page.mdx index eccef421a..f919ca70b 100644 --- a/app/en/resources/integrations/search/tavily/page.mdx +++ b/app/en/resources/integrations/search/tavily/page.mdx @@ -7,7 +7,7 @@ import { Callout, Steps } from "nextra/components"; # Tavily -This integration is a remote MCP Server offered by [Tavily](https://tavily.com), an Arcade Partner. Add it to an [MCP Gateway](/operate/mcp-gateways/add-remote-servers) for central governance, authorization, and access control alongside Arcade's native servers. +This integration is a remote MCP Server offered by [Tavily](https://tavily.com), an Arcade Partner. Add it to an [MCP Gateway](/operate/governance/mcp-gateways/add-remote-servers) for central governance, authorization, and access control alongside Arcade's native servers. ## MCP Server URL @@ -45,7 +45,7 @@ Go to [tavily.com](https://tavily.com) → **Overview** → **Generate MCP Link* Open the [Arcade Dashboard](https://api.arcade.dev/dashboard) → **Servers** → **Add Server** → **Remote MCP**. Paste the URL from the [MCP Server URL](#mcp-server-url) section above (with your API key in place of `YOUR_API_KEY`) and save. - See the full walkthrough in Add remote MCP servers for advanced settings like connection retries, OAuth, and custom headers. + See the full walkthrough in Add remote MCP servers for advanced settings like connection retries, OAuth, and custom headers. ### Verify Tavily tools @@ -75,6 +75,6 @@ See the open-source [Financial Intelligence Agent](https://github.com/arcadeai-l ## Resources - [Tavily documentation](https://docs.tavily.com) -- [Add remote MCP servers to Arcade](/operate/mcp-gateways/add-remote-servers) -- [Create an MCP Gateway](/operate/mcp-gateways/create-via-dashboard) +- [Add remote MCP servers to Arcade](/operate/governance/mcp-gateways/add-remote-servers) +- [Create an MCP Gateway](/operate/governance/mcp-gateways/create-via-dashboard) - [Connect to MCP clients](/get-started/mcp-clients) diff --git a/lib/remark-glossary.ts b/lib/remark-glossary.ts index 90d67cd89..2f92573aa 100644 --- a/lib/remark-glossary.ts +++ b/lib/remark-glossary.ts @@ -40,8 +40,8 @@ export function remarkGlossary(options: RemarkGlossaryOptions) { // readers. The User Sources overview itself stays opted-in. const filePath = file.history?.[0]; if ( - filePath?.includes("/operate/user-sources/") && - !filePath.endsWith("/operate/user-sources/page.mdx") + filePath?.includes("/operate/identity/user-sources/") && + !filePath.endsWith("/operate/identity/user-sources/page.mdx") ) { return; } diff --git a/redirects.ts b/redirects.ts index 67b2f242b..a54da9059 100644 --- a/redirects.ts +++ b/redirects.ts @@ -80,22 +80,22 @@ export const redirects: Redirect[] = [ }, { source: "/:locale/guides/logic-extensions", - destination: "/:locale/operate/contextual-access", + destination: "/:locale/operate/governance/contextual-access", permanent: true, }, { source: "/:locale/guides/logic-extensions/build-your-own", - destination: "/:locale/operate/contextual-access/build-your-own", + destination: "/:locale/operate/governance/contextual-access/build-your-own", permanent: true, }, { source: "/:locale/guides/logic-extensions/examples", - destination: "/:locale/operate/contextual-access/examples", + destination: "/:locale/operate/governance/contextual-access/examples", permanent: true, }, { source: "/:locale/guides/logic-extensions/how-hooks-work", - destination: "/:locale/operate/contextual-access/how-hooks-work", + destination: "/:locale/operate/governance/contextual-access/how-hooks-work", permanent: true, }, { @@ -273,7 +273,7 @@ export const redirects: Redirect[] = [ }, { source: "/:locale/guides/create-tools/mcp-gateways", - destination: "/:locale/operate/mcp-gateways", + destination: "/:locale/operate/governance/mcp-gateways", permanent: true, }, { @@ -521,12 +521,12 @@ export const redirects: Redirect[] = [ }, { source: "/:locale/home/deployment/arcade-cloud-infra", - destination: "/:locale/operate/deployment/arcade-cloud", + destination: "/:locale/operate/deploy/arcade-cloud", permanent: true, }, { source: "/:locale/home/deployment/engine-configuration", - destination: "/:locale/operate/deployment/helm", + destination: "/:locale/operate/deploy/helm", permanent: true, }, { @@ -568,7 +568,7 @@ export const redirects: Redirect[] = [ }, { source: "/:locale/home/hosting-overview", - destination: "/:locale/operate/deployment", + destination: "/:locale/operate/deploy", permanent: true, }, { @@ -609,7 +609,7 @@ export const redirects: Redirect[] = [ }, { source: "/:locale/home/mcp-gateways", - destination: "/:locale/operate/mcp-gateways", + destination: "/:locale/operate/governance/mcp-gateways", permanent: true, }, { @@ -634,7 +634,7 @@ export const redirects: Redirect[] = [ }, { source: "/:locale/home/serve-tools/hybrid-worker", - destination: "/:locale/operate/deployment/on-prem", + destination: "/:locale/operate/deploy/on-prem", permanent: true, }, { @@ -729,12 +729,12 @@ export const redirects: Redirect[] = [ }, { source: "/:locale/guides/deployment-hosting/engine-configuration", - destination: "/:locale/operate/deployment/helm", + destination: "/:locale/operate/deploy/helm", permanent: true, }, { source: "/:locale/guides/deployment-hosting/configure-engine", - destination: "/:locale/operate/deployment/helm", + destination: "/:locale/operate/deploy/helm", permanent: true, }, { @@ -1003,117 +1003,118 @@ export const redirects: Redirect[] = [ }, { source: "/:locale/guides/audit-logs", - destination: "/:locale/operate/audit-logs", + destination: "/:locale/operate/governance/audit-logs", permanent: true, }, { source: "/:locale/guides/contextual-access/build-your-own", - destination: "/:locale/operate/contextual-access/build-your-own", + destination: "/:locale/operate/governance/contextual-access/build-your-own", permanent: true, }, { source: "/:locale/guides/contextual-access/examples", - destination: "/:locale/operate/contextual-access/examples", + destination: "/:locale/operate/governance/contextual-access/examples", permanent: true, }, { source: "/:locale/guides/contextual-access/how-hooks-work", - destination: "/:locale/operate/contextual-access/how-hooks-work", + destination: "/:locale/operate/governance/contextual-access/how-hooks-work", permanent: true, }, { source: "/:locale/guides/contextual-access", - destination: "/:locale/operate/contextual-access", + destination: "/:locale/operate/governance/contextual-access", permanent: true, }, { source: "/:locale/guides/deployment-hosting/arcade-cloud", - destination: "/:locale/operate/deployment/arcade-cloud", + destination: "/:locale/operate/deploy/arcade-cloud", permanent: true, }, { source: "/:locale/guides/deployment-hosting/aws", - destination: "/:locale/operate/deployment/aws", + destination: "/:locale/operate/deploy/aws", permanent: true, }, { source: "/:locale/guides/deployment-hosting/azure", - destination: "/:locale/operate/deployment/azure", + destination: "/:locale/operate/deploy/azure", permanent: true, }, { source: "/:locale/guides/deployment-hosting/gcp", - destination: "/:locale/operate/deployment/gcp", + destination: "/:locale/operate/deploy/gcp", permanent: true, }, { source: "/:locale/guides/deployment-hosting/helm", - destination: "/:locale/operate/deployment/helm", + destination: "/:locale/operate/deploy/helm", permanent: true, }, { source: "/:locale/guides/deployment-hosting/on-prem", - destination: "/:locale/operate/deployment/on-prem", + destination: "/:locale/operate/deploy/on-prem", permanent: true, }, { source: "/:locale/guides/deployment-hosting", - destination: "/:locale/operate/deployment", + destination: "/:locale/operate/deploy", permanent: true, }, { source: "/:locale/guides/deployment-hosting/warp-pipes", - destination: "/:locale/operate/deployment/warp-pipes", + destination: "/:locale/operate/deploy/warp-pipes", permanent: true, }, { source: "/:locale/guides/mcp-gateways/add-remote-servers", - destination: "/:locale/operate/mcp-gateways/add-remote-servers", + destination: "/:locale/operate/governance/mcp-gateways/add-remote-servers", permanent: true, }, { source: "/:locale/guides/mcp-gateways/create-via-ai", - destination: "/:locale/operate/mcp-gateways/create-via-ai", + destination: "/:locale/operate/governance/mcp-gateways/create-via-ai", permanent: true, }, { source: "/:locale/guides/mcp-gateways/create-via-dashboard", - destination: "/:locale/operate/mcp-gateways/create-via-dashboard", + destination: + "/:locale/operate/governance/mcp-gateways/create-via-dashboard", permanent: true, }, { source: "/:locale/guides/mcp-gateways", - destination: "/:locale/operate/mcp-gateways", + destination: "/:locale/operate/governance/mcp-gateways", permanent: true, }, { source: "/:locale/guides/user-sources/auth0", - destination: "/:locale/operate/user-sources/auth0", + destination: "/:locale/operate/identity/user-sources/auth0", permanent: true, }, { source: "/:locale/guides/user-sources/clerk", - destination: "/:locale/operate/user-sources/clerk", + destination: "/:locale/operate/identity/user-sources/clerk", permanent: true, }, { source: "/:locale/guides/user-sources/microsoft-entra-id", - destination: "/:locale/operate/user-sources/microsoft-entra-id", + destination: "/:locale/operate/identity/user-sources/microsoft-entra-id", permanent: true, }, { source: "/:locale/guides/user-sources/okta", - destination: "/:locale/operate/user-sources/okta", + destination: "/:locale/operate/identity/user-sources/okta", permanent: true, }, { source: "/:locale/guides/user-sources", - destination: "/:locale/operate/user-sources", + destination: "/:locale/operate/identity/user-sources", permanent: true, }, { source: "/:locale/guides/user-sources/stytch", - destination: "/:locale/operate/user-sources/stytch", + destination: "/:locale/operate/identity/user-sources/stytch", permanent: true, }, { @@ -1121,4 +1122,120 @@ export const redirects: Redirect[] = [ destination: "/:locale/build", permanent: true, }, + { + source: "/:locale/operate/deployment", + destination: "/:locale/operate/deploy", + permanent: true, + }, + { + source: "/:locale/operate/deployment/arcade-cloud", + destination: "/:locale/operate/deploy/arcade-cloud", + permanent: true, + }, + { + source: "/:locale/operate/deployment/aws", + destination: "/:locale/operate/deploy/aws", + permanent: true, + }, + { + source: "/:locale/operate/deployment/azure", + destination: "/:locale/operate/deploy/azure", + permanent: true, + }, + { + source: "/:locale/operate/deployment/gcp", + destination: "/:locale/operate/deploy/gcp", + permanent: true, + }, + { + source: "/:locale/operate/deployment/helm", + destination: "/:locale/operate/deploy/helm", + permanent: true, + }, + { + source: "/:locale/operate/deployment/on-prem", + destination: "/:locale/operate/deploy/on-prem", + permanent: true, + }, + { + source: "/:locale/operate/deployment/warp-pipes", + destination: "/:locale/operate/deploy/warp-pipes", + permanent: true, + }, + { + source: "/:locale/operate/user-sources", + destination: "/:locale/operate/identity/user-sources", + permanent: true, + }, + { + source: "/:locale/operate/user-sources/auth0", + destination: "/:locale/operate/identity/user-sources/auth0", + permanent: true, + }, + { + source: "/:locale/operate/user-sources/clerk", + destination: "/:locale/operate/identity/user-sources/clerk", + permanent: true, + }, + { + source: "/:locale/operate/user-sources/microsoft-entra-id", + destination: "/:locale/operate/identity/user-sources/microsoft-entra-id", + permanent: true, + }, + { + source: "/:locale/operate/user-sources/okta", + destination: "/:locale/operate/identity/user-sources/okta", + permanent: true, + }, + { + source: "/:locale/operate/user-sources/stytch", + destination: "/:locale/operate/identity/user-sources/stytch", + permanent: true, + }, + { + source: "/:locale/operate/mcp-gateways", + destination: "/:locale/operate/governance/mcp-gateways", + permanent: true, + }, + { + source: "/:locale/operate/mcp-gateways/add-remote-servers", + destination: "/:locale/operate/governance/mcp-gateways/add-remote-servers", + permanent: true, + }, + { + source: "/:locale/operate/mcp-gateways/create-via-ai", + destination: "/:locale/operate/governance/mcp-gateways/create-via-ai", + permanent: true, + }, + { + source: "/:locale/operate/mcp-gateways/create-via-dashboard", + destination: + "/:locale/operate/governance/mcp-gateways/create-via-dashboard", + permanent: true, + }, + { + source: "/:locale/operate/contextual-access", + destination: "/:locale/operate/governance/contextual-access", + permanent: true, + }, + { + source: "/:locale/operate/contextual-access/build-your-own", + destination: "/:locale/operate/governance/contextual-access/build-your-own", + permanent: true, + }, + { + source: "/:locale/operate/contextual-access/examples", + destination: "/:locale/operate/governance/contextual-access/examples", + permanent: true, + }, + { + source: "/:locale/operate/contextual-access/how-hooks-work", + destination: "/:locale/operate/governance/contextual-access/how-hooks-work", + permanent: true, + }, + { + source: "/:locale/operate/audit-logs", + destination: "/:locale/operate/governance/audit-logs", + permanent: true, + }, ]; From 8ee90eeeaa78604c78343a62cc3adf521d25520e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 8 Aug 2026 06:58:03 +0000 Subject: [PATCH 12/12] =?UTF-8?q?=F0=9F=A4=96=20Regenerate=20LLMs.txt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/llms.txt | 50 +++++++++++++++++++++++++------------------------ 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/public/llms.txt b/public/llms.txt index 436791857..a03381985 100644 --- a/public/llms.txt +++ b/public/llms.txt @@ -1,4 +1,4 @@ - + # Arcade @@ -67,20 +67,20 @@ Arcade delivers three capabilities. Enforce (Agent Authorization): deploy agents - [About Arcade](https://docs.arcade.dev/en/get-started/about-arcade): This documentation page explains how Arcade facilitates agent authorization for AI applications, enabling them to securely access and act on user-specific data from external services like Gmail and Google Calendar. It details the OAuth 2.0 authorization process, including permissions and scopes required for - [Add metadata to your tools](https://docs.arcade.dev/en/build/create-tools/tool-basics/add-tool-metadata): Documentation page -- [Add remote MCP servers](https://docs.arcade.dev/en/operate/mcp-gateways/add-remote-servers): Documentation page +- [Add remote MCP servers](https://docs.arcade.dev/en/operate/governance/mcp-gateways/add-remote-servers): Documentation page - [Add user authorization to your MCP tools](https://docs.arcade.dev/en/build/create-tools/tool-basics/create-tool-auth): Documentation page - [Adding Resource Server Auth to Your MCP Server](https://docs.arcade.dev/en/build/create-tools/secure-your-server/secure-your-mcp-server): Documentation page - [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 -- [Arcade Cloud infrastructure](https://docs.arcade.dev/en/operate/deployment/arcade-cloud): Documentation page -- [Arcade Gateway Assistant](https://docs.arcade.dev/en/operate/mcp-gateways/create-via-ai): Documentation page +- [Arcade Cloud infrastructure](https://docs.arcade.dev/en/operate/deploy/arcade-cloud): Documentation page +- [Arcade Gateway Assistant](https://docs.arcade.dev/en/operate/governance/mcp-gateways/create-via-ai): Documentation page - [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 - [Arcade with Agent Frameworks and MCP Clients](https://docs.arcade.dev/en/get-started/agent-frameworks): This documentation page provides developers with guidance on integrating Arcade with agent frameworks and MCP clients to enhance AI applications with tool-calling capabilities. It offers detailed instructions on authentication, tool loading, and execution, along with code examples and configuration steps for popular frameworks and - [Arcade with Google ADK](https://docs.arcade.dev/en/get-started/agent-frameworks/google-adk/overview): The "Arcade with Google ADK" documentation page provides guidance on integrating Arcade tools with the Google ADK framework, enabling users to build AI agents that can interact with various services like Gmail, Slack, and GitHub. It offers setup instructions for - [Arcade with LangChain](https://docs.arcade.dev/en/get-started/agent-frameworks/langchain/overview): This documentation page provides guidance on integrating Arcade tools with LangChain agents, enabling users to build AI agents that can interact with various services like Gmail, GitHub, and Slack. It offers setup instructions for both Python and TypeScript, along with examples of - [Arcade with OpenAI Agents](https://docs.arcade.dev/en/get-started/agent-frameworks/openai-agents/overview): This documentation page guides users on how to integrate Arcade tools with the OpenAI Agents SDK, enabling the creation of AI agents that can interact with various services like Gmail, GitHub, and Slack. It provides setup instructions for both Python and TypeScript, -- [Audit Logs for AI Agent Platforms](https://docs.arcade.dev/en/operate/audit-logs): Documentation page +- [Audit Logs for AI Agent Platforms](https://docs.arcade.dev/en/operate/governance/audit-logs): Documentation page - [Auth Langchain Tools](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 -- [Auth0](https://docs.arcade.dev/en/operate/user-sources/auth0): Documentation page +- [Auth0](https://docs.arcade.dev/en/operate/identity/user-sources/auth0): Documentation page - [Authorized Tool Calling](https://docs.arcade.dev/en/build/tool-calling/custom-apps/auth-tool-calling): Documentation page - [Build a Tool](https://docs.arcade.dev/en/build/create-tools/tool-basics): Documentation page - [Build an AI agent with Arcade and CopilotKit](https://docs.arcade.dev/en/get-started/agent-frameworks/copilotkit): Documentation page @@ -89,27 +89,27 @@ Arcade delivers three capabilities. Enforce (Agent Authorization): deploy agents - [Build an AI Chatbot with Arcade and Vercel AI SDK](https://docs.arcade.dev/en/get-started/agent-frameworks/vercelai): This documentation page guides users through the process of building a browser-based AI chatbot using the Vercel AI SDK and Arcade tools for Gmail and Slack integration. Users will learn how to set up a Next.js project, manage chat state, and implement authorization - [Build MCP Server QuickStart](https://docs.arcade.dev/en/get-started/quickstarts/mcp-server-quickstart): 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 of necessary tools, server setup, and how to implement and call various - [Build with Arcade](https://docs.arcade.dev/en/build): Documentation page -- [Build Your Own Contextual Access Server](https://docs.arcade.dev/en/operate/contextual-access/build-your-own): Documentation page +- [Build Your Own Contextual Access Server](https://docs.arcade.dev/en/operate/governance/contextual-access/build-your-own): Documentation page - [Call a tool in your IDE/MCP Client](https://docs.arcade.dev/en/get-started/quickstarts/call-tool-client): This documentation page guides users on how to create and utilize an MCP Gateway within their IDE or MCP Client, enabling them to efficiently call tools from multiple MCP servers for specific workflows. Users will learn to set up the gateway, select relevant tools, and connect - [Call tools from MCP clients](https://docs.arcade.dev/en/build/create-tools/tool-basics/call-tools-mcp): Documentation page - [Calling tools in your agent with Arcade](https://docs.arcade.dev/en/get-started/quickstarts/call-tool-agent): This documentation page provides a comprehensive guide on how to utilize Arcade to enable AI agents to call various hosted tools, such as sending emails or creating documents. Users will learn how to install the Arcade client, set up their environment, and implement workflows that leverage - [Capture mode](https://docs.arcade.dev/en/build/create-tools/evaluate-tools/capture-mode): Documentation page - [Checking Tool Authorization Status](https://docs.arcade.dev/en/build/tool-calling/custom-apps/check-auth-status): Documentation page -- [Clerk](https://docs.arcade.dev/en/operate/user-sources/clerk): Documentation page +- [Clerk](https://docs.arcade.dev/en/operate/identity/user-sources/clerk): Documentation page - [Comparative evaluations](https://docs.arcade.dev/en/build/create-tools/evaluate-tools/comparative-evaluations): Documentation page - [Compare MCP Server Types](https://docs.arcade.dev/en/build/create-tools/tool-basics/compare-server-types): Documentation page - [Connect Arcade to your LLM](https://docs.arcade.dev/en/get-started/agent-frameworks/setup-arcade-with-your-llm-python): This documentation page guides users on how to connect Arcade to a Large Language Model (LLM) using Python by creating a "harness" that facilitates interaction between the user, the model, and various tools. Users will learn to set up an agent - [Connect to MCP Clients](https://docs.arcade.dev/en/get-started/mcp-clients): 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): 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. -- [Contextual Access](https://docs.arcade.dev/en/operate/contextual-access): Documentation page +- [Contextual Access](https://docs.arcade.dev/en/operate/governance/contextual-access): Documentation page - [Create an evaluation suite](https://docs.arcade.dev/en/build/create-tools/evaluate-tools/create-evaluation-suite): Documentation page - [Create an MCP tool with secrets](https://docs.arcade.dev/en/build/create-tools/tool-basics/create-tool-secrets): Documentation page - [Create tools](https://docs.arcade.dev/en/build/create-tools): Documentation page -- [Create via Dashboard](https://docs.arcade.dev/en/operate/mcp-gateways/create-via-dashboard): Documentation page +- [Create via Dashboard](https://docs.arcade.dev/en/operate/governance/mcp-gateways/create-via-dashboard): Documentation page - [Creating an MCP Server with Arcade](https://docs.arcade.dev/en/build/create-tools/tool-basics/build-mcp-server): Documentation page -- [Deploy Arcade on AWS](https://docs.arcade.dev/en/operate/deployment/aws): Documentation page -- [Deploy Arcade on Azure](https://docs.arcade.dev/en/operate/deployment/azure): Documentation page -- [Deploy Arcade on GCP](https://docs.arcade.dev/en/operate/deployment/gcp): Documentation page +- [Deploy Arcade on AWS](https://docs.arcade.dev/en/operate/deploy/aws): Documentation page +- [Deploy Arcade on Azure](https://docs.arcade.dev/en/operate/deploy/azure): Documentation page +- [Deploy Arcade on GCP](https://docs.arcade.dev/en/operate/deploy/gcp): Documentation page - [Deploying to the cloud with Arcade Deploy](https://docs.arcade.dev/en/build/arcade-deploy): Documentation page - [Directly call third-party APIs](https://docs.arcade.dev/en/build/tool-calling/call-third-party-apis): Documentation page - [Evaluate Tools](https://docs.arcade.dev/en/build/create-tools/evaluate-tools): Documentation page @@ -117,26 +117,28 @@ Arcade delivers three capabilities. Enforce (Agent Authorization): deploy agents - [Frequently Asked Questions](https://docs.arcade.dev/en/resources/faq): This documentation page provides answers to common questions about the Arcade platform, including how to create and contribute tools, the differences between various API keys, and authentication methods. Users can learn how to build custom tools, manage API keys for team collaboration, and understand - [Get Formatted Tool Definitions](https://docs.arcade.dev/en/build/tool-calling/custom-apps/get-tool-definitions): Documentation page - [Getting Your API Key](https://docs.arcade.dev/en/get-started/setup/api-keys): This documentation page guides users on how to obtain and manage their Arcade API key, detailing the steps for generating keys through both the Arcade dashboard and CLI. It emphasizes the importance of securely storing API keys, as they serve as administrator credentials that grant access to +- [Governance](https://docs.arcade.dev/en/operate/governance): Documentation page - [Handle Errors](https://docs.arcade.dev/en/build/create-tools/error-handling): Documentation page -- [Hosting options overview](https://docs.arcade.dev/en/operate/deployment): Documentation page -- [How Hooks Work](https://docs.arcade.dev/en/operate/contextual-access/how-hooks-work): Documentation page -- [Hybrid MCP servers](https://docs.arcade.dev/en/operate/deployment/on-prem): Documentation page +- [Hosting options overview](https://docs.arcade.dev/en/operate/deploy): Documentation page +- [How Hooks Work](https://docs.arcade.dev/en/operate/governance/contextual-access/how-hooks-work): Documentation page +- [Hybrid MCP servers](https://docs.arcade.dev/en/operate/deploy/on-prem): Documentation page +- [Identity](https://docs.arcade.dev/en/operate/identity): Documentation page - [In Custom Applications](https://docs.arcade.dev/en/build/tool-calling/custom-apps): Documentation page - [Mastra](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, -- [MCP Gateways](https://docs.arcade.dev/en/operate/mcp-gateways): Documentation page -- [Microsoft Entra ID](https://docs.arcade.dev/en/operate/user-sources/microsoft-entra-id): Documentation page +- [MCP Gateways](https://docs.arcade.dev/en/operate/governance/mcp-gateways): Documentation page +- [Microsoft Entra ID](https://docs.arcade.dev/en/operate/identity/user-sources/microsoft-entra-id): Documentation page - [Migrate from toolkits to MCP servers](https://docs.arcade.dev/en/build/create-tools/migrate-toolkits): Documentation page -- [Okta](https://docs.arcade.dev/en/operate/user-sources/okta): Documentation page +- [Okta](https://docs.arcade.dev/en/operate/identity/user-sources/okta): Documentation page - [Operate Arcade](https://docs.arcade.dev/en/operate): Documentation page - [Organize your MCP server and tools](https://docs.arcade.dev/en/build/create-tools/tool-basics/organize-mcp-tools): Documentation page - [Providing useful tool errors](https://docs.arcade.dev/en/build/create-tools/error-handling/useful-tool-errors): Documentation page - [RetryableToolError in Arcade](https://docs.arcade.dev/en/build/create-tools/error-handling/retry-tools): Documentation page - [Run evaluations](https://docs.arcade.dev/en/build/create-tools/evaluate-tools/run-evaluations): Documentation page -- [Running a Server](https://docs.arcade.dev/en/operate/contextual-access/examples): Documentation page +- [Running a Server](https://docs.arcade.dev/en/operate/governance/contextual-access/examples): Documentation page - [Secure and Brand the Auth Flow in Production](https://docs.arcade.dev/en/build/user-facing-agents/secure-auth-production): Documentation page - [Securing Arcade MCP Deployments](https://docs.arcade.dev/en/build/create-tools/secure-your-server): Documentation page - [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, -- [Self-host Arcade with Helm](https://docs.arcade.dev/en/operate/deployment/helm): Documentation page +- [Self-host Arcade with Helm](https://docs.arcade.dev/en/operate/deploy/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 - [Setup Arcade with Google ADK (TypeScript)](https://docs.arcade.dev/en/get-started/agent-frameworks/google-adk/setup-typescript): This documentation page guides users through the process of setting up an AI agent using Arcade tools with the Google ADK in TypeScript. It covers prerequisites, integration steps, and key concepts such as tool conversion and session management, enabling users to build agents that @@ -145,7 +147,7 @@ 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 - [Stand up Arcade for your org](https://docs.arcade.dev/en/operate/quickstart): Documentation page -- [Stytch](https://docs.arcade.dev/en/operate/user-sources/stytch): Documentation page +- [Stytch](https://docs.arcade.dev/en/operate/identity/user-sources/stytch): 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/build/tool-calling/error-handling): 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 @@ -159,8 +161,8 @@ Arcade delivers three capabilities. Enforce (Agent Authorization): deploy agents - [Use Arcade in Visual Studio Code](https://docs.arcade.dev/en/get-started/mcp-clients/visual-studio-code): This documentation page provides a step-by-step guide for connecting Visual Studio Code to an Arcade MCP Gateway, enabling users to set up and run their MCP server within the IDE. It outlines prerequisites, setup instructions, and authentication processes to ensure a successful integration. - [Use Arcade tools with AG2](https://docs.arcade.dev/en/get-started/agent-frameworks/ag2/use-arcade-tools): Documentation page - [Use Arcade tools with CrewAI](https://docs.arcade.dev/en/get-started/agent-frameworks/crewai/use-arcade-tools): This documentation page provides a comprehensive guide for integrating Arcade tools into CrewAI applications, enabling users to build task-oriented multi-agent systems that assist with platforms like Gmail and Slack. It outlines the prerequisites, learning outcomes, and step-by-step instructions for setting up -- [User Sources](https://docs.arcade.dev/en/operate/user-sources): Documentation page -- [Warp Pipes](https://docs.arcade.dev/en/operate/deployment/warp-pipes): Documentation page +- [User Sources](https://docs.arcade.dev/en/operate/identity/user-sources): Documentation page +- [Warp Pipes](https://docs.arcade.dev/en/operate/deploy/warp-pipes): Documentation page - [What are tools?](https://docs.arcade.dev/en/build/tool-calling): Documentation page - [Why evaluate tools?](https://docs.arcade.dev/en/build/create-tools/evaluate-tools/why-evaluate): Documentation page - [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