Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
4124823
feat: add exclusion list file reader utility
jottakka Feb 25, 2026
efde4f8
feat: add utility to remove excluded toolkit output files
jottakka Feb 25, 2026
8ee7d2b
chore: export exclusion list utilities from utils index
jottakka Feb 25, 2026
2f44db3
feat: add --exclude-file option to generate command
jottakka Feb 25, 2026
3e501dd
feat: add --exclude-file option to generate-all command
jottakka Feb 25, 2026
584d5ea
docs: document --exclude-file option in README
jottakka Feb 25, 2026
c906d4a
style: fix passive voice in README exclusion section
jottakka Feb 25, 2026
bf90f2a
Update docs gent to have toolkit metdata in json and exclusion list
jottakka Feb 25, 2026
d2f8c5b
Merge branch 'main' into francisco/update-gendocs-to-add-toolsmetadata
jottakka Feb 26, 2026
ef9b94e
Merge branch 'main' into francisco/update-gendocs-to-add-toolsmetadata
jottakka Feb 26, 2026
617ccbd
Regenerate clean markdown files
github-actions[bot] Feb 26, 2026
e2855f7
chore: add .worktrees to gitignore
jottakka Feb 26, 2026
028f7fc
adding ignore list logic
jottakka Feb 26, 2026
761c7a7
Regenerate clean markdown files
github-actions[bot] Feb 26, 2026
c4a43d1
test: add failing CLI flow regression tests
jottakka Feb 26, 2026
1fc759b
fix: add tested CLI flow helpers for skip and provider filtering
jottakka Feb 26, 2026
74ae208
fix: make excluded output cleanup resilient to missing directories
jottakka Feb 26, 2026
2462130
fix: run exclusion cleanup when skip-unchanged finds no changes
jottakka Feb 26, 2026
996d4f8
fix: compute toProcess from effective skip intersection
jottakka Feb 26, 2026
1da9c26
fix: apply skip and ignore filters in providers mode
jottakka Feb 26, 2026
92f7d16
fix: make ProviderEntry.version compatible with exactOptionalProperty…
jottakka Feb 26, 2026
10b4097
[AUTO] Adding MCP Servers docs update
jottakka Feb 26, 2026
cc24515
Regenerate clean markdown files
github-actions[bot] Feb 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/generate-toolkit-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,8 @@ jobs:
--llm-api-key "$OPENAI_API_KEY" \
--toolkit-concurrency 8 \
--llm-concurrency 15 \
--exclude-file ./excluded-toolkits.txt \
--ignore-file ./ignored-toolkits.txt \
--output data/toolkits
working-directory: toolkit-docs-generator
env:
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -28,3 +28,6 @@ toolkit-docs-generator-verification/logs/

# Generated toolkit markdown (built at build time, not committed)
public/toolkit-markdown/

# Git worktrees
.worktrees/
24 changes: 24 additions & 0 deletions app/_components/toolkit-docs/types/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,28 @@ export type ToolCodeExample = {
tabLabel?: string;
};

// ============================================================================
// Tool Metadata Types
// ============================================================================

export type ToolMetadataClassification = {
serviceDomains: string[];
};

export type ToolMetadataBehavior = {
operations: string[];
readOnly?: boolean;
destructive?: boolean;
idempotent?: boolean;
openWorld?: boolean;
};

export type ToolMetadata = {
classification: ToolMetadataClassification;
behavior: ToolMetadataBehavior;
extras?: Record<string, unknown> | null;
};

// ============================================================================
// Tool Definition Types
// ============================================================================
Expand All @@ -207,6 +229,8 @@ export type ToolDefinition = {
secretsInfo?: ToolSecret[];
/** Tool output schema */
output: ToolOutput | null;
/** Per-tool metadata from Engine API */
metadata?: ToolMetadata | null;
/** Custom documentation chunks for this tool */
documentationChunks: DocumentationChunk[];
/** Generated code example configuration */
Expand Down
26 changes: 26 additions & 0 deletions app/en/get-started/quickstarts/mcp-server-quickstart/page.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -115,18 +115,44 @@ MY_SECRET_KEY="my-secret-value"
The generated project includes a `.env.example` file at the project root with the secret key name and example value.
You can rename it to `.env` to start using it.

<Tabs items={["Bash/Zsh (macOS/Linux)", "PowerShell (Windows)"]}>
<Tabs.Tab>

```bash
mv ../../.env.example ../../.env
```

</Tabs.Tab>
<Tabs.Tab>

```powershell
Copy-Item .env.example .env
```

</Tabs.Tab>
</Tabs>

</Tabs.Tab>
<Tabs.Tab>
You can set the environment variable in your terminal directly with this command:

<Tabs items={["Bash/Zsh (macOS/Linux)", "PowerShell (Windows)"]}>
<Tabs.Tab>

```bash
export MY_SECRET_KEY="my-secret-value"
```

</Tabs.Tab>
<Tabs.Tab>

```powershell
$env:MY_SECRET_KEY="my-secret-value"
```

</Tabs.Tab>
</Tabs>

</Tabs.Tab>
</Tabs>

Expand Down
26 changes: 26 additions & 0 deletions app/en/guides/create-tools/tool-basics/build-mcp-server/page.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -182,18 +182,44 @@ Arcade automatically discovers `.env` files by traversing upward from the curren
The generated project includes a `.env.example` file at the project root with the secret key name and example value.
You can rename it to `.env` to start using it.

<Tabs items={["Bash/Zsh (macOS/Linux)", "PowerShell (Windows)"]}>
<Tabs.Tab>

```bash
mv ../../.env.example ../../.env
```

</Tabs.Tab>
<Tabs.Tab>

```powershell
Copy-Item .env.example .env
```

</Tabs.Tab>
</Tabs>

</Tabs.Tab>
<Tabs.Tab>
You can set the environment variable in your terminal directly with this command:

<Tabs items={["Bash/Zsh (macOS/Linux)", "PowerShell (Windows)"]}>
<Tabs.Tab>

```bash
export MY_SECRET_KEY="my-secret-value"
```

</Tabs.Tab>
<Tabs.Tab>

```powershell
$env:MY_SECRET_KEY="my-secret-value"
```

</Tabs.Tab>
</Tabs>

</Tabs.Tab>
</Tabs>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,10 +77,23 @@ MY_SECRET_KEY="my-secret-value"
The project includes a `.env.example` file at the project root with the secret key name and example value.
You can rename it to `.env` to start using it.

<Tabs items={["Bash/Zsh (macOS/Linux)", "PowerShell (Windows)"]}>
<Tabs.Tab>

```bash
mv .env.example .env
```

</Tabs.Tab>
<Tabs.Tab>

```powershell
Copy-Item .env.example .env
```

</Tabs.Tab>
</Tabs>

<Callout type="info">
Using a `.env` file is okay for local development, but you should use
the Arcade Dashboard or Arcade CLI for production deployments.
Expand Down Expand Up @@ -117,10 +130,23 @@ arcade secret set MY_SECRET_KEY="my-secret-value"
<Tabs.Tab>
You can set the environment variable in your terminal directly with this command:

<Tabs items={["Bash/Zsh (macOS/Linux)", "PowerShell (Windows)"]}>
<Tabs.Tab>

```bash
export MY_SECRET_KEY="my-secret-value"
```

</Tabs.Tab>
<Tabs.Tab>

```powershell
$env:MY_SECRET_KEY="my-secret-value"
```

</Tabs.Tab>
</Tabs>

<Callout type="info">
Using environment variables is okay for local development, but you should use
the Arcade Dashboard or Arcade CLI for production deployments.
Expand Down
4 changes: 4 additions & 0 deletions app/en/resources/integrations/databases/_meta.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@ const meta: MetaRecord = {
title: "Weaviate API",
href: "/en/resources/integrations/databases/weaviate-api",
},
yugabytedb: {
title: "YugabyteDB",
href: "/en/resources/integrations/databases/yugabytedb",
},
};

export default meta;
8 changes: 0 additions & 8 deletions app/en/resources/integrations/development/_meta.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -37,18 +37,10 @@ const meta: MetaRecord = {
title: "GitHub",
href: "/en/resources/integrations/development/github",
},
google: {
title: "Google",
href: "/en/resources/integrations/development/google",
},
math: {
title: "Math",
href: "/en/resources/integrations/development/math",
},
microsoft: {
title: "Microsoft",
href: "/en/resources/integrations/development/microsoft",
},
pagerduty: {
title: "Pagerduty",
href: "/en/resources/integrations/development/pagerduty",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,18 +92,34 @@ MY_SECRET_KEY="my-secret-value"

The generated includes a `.env.example` file at the project root with the secret key name and example value. You can rename it to `.env` to start using it.

### Bash/Zsh (macOS/Linux)

```bash
mv ../../.env.example ../../.env
```

### PowerShell (Windows)

```bash
Copy-Item .env.example .env
```

### Environment Variable

You can set the environment variable in your terminal directly with this command:

### Bash/Zsh (macOS/Linux)

```bash
export MY_SECRET_KEY="my-secret-value"
```

### PowerShell (Windows)

```bash
$env:MY_SECRET_KEY="my-secret-value"
```

## Connect to Arcade to unlock authorized tool calling

Since the Reddit tool accesses information only available to your Reddit , you’ll need to authorize it. For this, you’ll need to create an Arcade account and connect from the terminal, run:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -163,18 +163,34 @@ Arcade automatically discovers `.env` files by traversing upward from the curren

The generated includes a `.env.example` file at the project root with the secret key name and example value. You can rename it to `.env` to start using it.

### Bash/Zsh (macOS/Linux)

```bash
mv ../../.env.example ../../.env
```

### PowerShell (Windows)

```bash
Copy-Item .env.example .env
```

### Environment Variable

You can set the environment variable in your terminal directly with this command:

### Bash/Zsh (macOS/Linux)

```bash
export MY_SECRET_KEY="my-secret-value"
```

### PowerShell (Windows)

```bash
$env:MY_SECRET_KEY="my-secret-value"
```

## Connect to Arcade to unlock authorized tool calling

Since the Reddit tool accesses information only available to your Reddit , you’ll need to authorize it. For this, you’ll need to create an Arcade account and connect to it from the terminal, run:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,10 +71,18 @@ MY_SECRET_KEY="my-secret-value"

The includes a `.env.example` file at the project root with the secret key name and example value. You can rename it to `.env` to start using it.

### Bash/Zsh (macOS/Linux)

```bash
mv .env.example .env
```

### PowerShell (Windows)

```bash
Copy-Item .env.example .env
```

Using a `.env` file is okay for local development, but you should use the Arcade Dashboard or Arcade CLI for production deployments.

### Arcade Dashboard
Expand Down Expand Up @@ -104,10 +112,18 @@ The Arcade CLI will make the secret available to your server when it is deploye

You can set the environment variable in your terminal directly with this command:

### Bash/Zsh (macOS/Linux)

```bash
export MY_SECRET_KEY="my-secret-value"
```

### PowerShell (Windows)

```bash
$env:MY_SECRET_KEY="my-secret-value"
```

Using environment variables is okay for local development, but you should use the Arcade Dashboard or Arcade CLI for production deployments.

### Using secrets with stdio transport
Expand Down
2 changes: 1 addition & 1 deletion public/_markdown/en/references/mcp/telemetry.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: "Arcade MCP Telemtry"
title: "Arcade MCP Telemetry"
description: "Learn about what data we track when using arcade-mcp"
---
[Arcade MCP](/en/references/mcp/python.md)
Expand Down
48 changes: 48 additions & 0 deletions toolkit-docs-generator/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,54 @@ Sync sidebar navigation locally:
pnpm dlx tsx .github/scripts/sync-toolkit-sidebar.ts
```

## Ignoring toolkits

Pass `--ignore-file <path>` to skip specific toolkits during generation. Existing
output files for ignored toolkits are left unchanged — nothing is deleted.

A default empty template ships at `ignored-toolkits.txt` in the generator root.
Add one toolkit ID per line:

```text
# Toolkits to ignore during docs generation (skip-only, no file deletion)
SomeInternalTool
```

```bash
pnpm dlx tsx src/cli/index.ts generate --all \
--ignore-file ./ignored-toolkits.txt
```

The parser ignores blank lines and lines starting with `#`. IDs are case-insensitive.

Works with both `generate` and `generate-all`. The ignore list is purely skip-only:
no existing `.json` files are removed and `index.json` is not rebuilt for ignored
toolkits.

## Excluding toolkits

Pass `--exclude-file <path>` to skip toolkits **and** delete their existing output
files if they already exist.

Create a plain-text file with one toolkit ID per line:

```text
# toolkits to exclude from docs generation
Jira
Confluence
SomeInternalTool
```

The parser ignores blank lines and lines starting with `#`. IDs are case-insensitive.

```bash
pnpm dlx tsx src/cli/index.ts generate --all \
--exclude-file ./excluded-toolkits.txt
```

If a toolkit in the file already has an output `.json` file, the generator
deletes it and rebuilds `index.json`.

## Key CLI options

- `--all` generate all toolkits
Expand Down
Loading