From 2ab54e693b40ccca29017dfb84eed39473e535b1 Mon Sep 17 00:00:00 2001 From: Eric Allam Date: Tue, 12 Aug 2025 08:40:24 +0000 Subject: [PATCH 01/10] Add MCP Server documentation to documentation site This change introduces comprehensive documentation for the Trigger.dev MCP Server, covering its installation, usage, and available tools. The addition is necessary to provide users with detailed guidance on leveraging the MCP Server for managing Trigger.dev projects, tasks, and deployment processes. - Updated `docs.json` to include a new section for the MCP Server documentation, improving navigation and accessibility. - Added `mcp-introduction.mdx` as an introductory guide to the MCP Server, detailing its purpose and installation steps. - Included `mcp-tools.mdx`, a document outlining each tool available in the MCP Server, complete with descriptions and example usages. - The new content is aimed at improving user understanding and efficiency in using Trigger.dev's MCP Server capabilities. --- docs/docs.json | 7 + docs/mcp-introduction.mdx | 180 ++++++++++++++++++++ docs/mcp-tools.mdx | 344 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 531 insertions(+) create mode 100644 docs/mcp-introduction.mdx create mode 100644 docs/mcp-tools.mdx diff --git a/docs/docs.json b/docs/docs.json index e298807368..3ff3c7fc10 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -179,6 +179,13 @@ } ] }, + { + "group": "MCP Server", + "pages": [ + "mcp-introduction", + "mcp-tools" + ] + }, { "group": "Using the Dashboard", "pages": [ diff --git a/docs/mcp-introduction.mdx b/docs/mcp-introduction.mdx new file mode 100644 index 0000000000..84caca862b --- /dev/null +++ b/docs/mcp-introduction.mdx @@ -0,0 +1,180 @@ +--- +title: "MCP Introduction" +sidebarTitle: "Introduction" +description: "Learn how to install and configure the Trigger.dev MCP Server" +tag: "new" +--- + +## What is the Trigger.dev MCP Server? + +The Trigger.dev MCP (Model Context Protocol) Server enables AI assistants to interact directly with your Trigger.dev projects. It provides a comprehensive set of tools to: + +- Search Trigger.dev documentation +- Initialize new Trigger.dev projects +- List and manage your projects and organizations +- Get task information and trigger task runs +- Deploy projects to different environments +- Monitor run details and list runs with filtering options + +## Installation + +### Automatic Installation (Recommended) + +The easiest way to install the Trigger.dev MCP Server is using the interactive installation wizard: + +```bash +npx trigger.dev@latest install-mcp +``` + +This command will guide you through: +1. Selecting which MCP clients to configure +2. Choosing installation scope (user, project, or local) +3. Automatically configuring the selected clients + +### Manual Installation + +If you prefer manual installation or your client isn't automatically supported, you can configure it manually using: + +```bash +npx trigger.dev@latest mcp +``` + +## Command Line Options + +The `install-mcp` command supports the following options: + +### Core Options +- `-p, --project-ref ` - Scope the MCP server to a specific Trigger.dev project by providing its project ref +- `-t, --tag ` - The version of the trigger.dev CLI package to use for the MCP server (default: latest or v4-beta) +- `--dev-only` - Restrict the MCP server to the dev environment only +- `--yolo` - Install the MCP server into all supported clients automatically +- `--scope ` - Choose the scope of the MCP server: `user`, `project`, or `local` +- `--client ` - Choose specific client(s) to install into + +### Configuration Options +- `--log-file ` - Configure the MCP server to write logs to a file +- `-a, --api-url ` - Configure a custom Trigger.dev API URL +- `-l, --log-level ` - Set CLI log level (debug, info, log, warn, error, none) + +### Examples + +Install for all supported clients: +```bash +npx trigger.dev@latest install-mcp --yolo +``` + +Install for specific clients: +```bash +npx trigger.dev@latest install-mcp --client claude-code cursor --scope user +``` + +Install with development environment restriction: +```bash +npx trigger.dev@latest install-mcp --dev-only --project-ref proj_abc123 +``` + +## Supported MCP Clients + +The Trigger.dev MCP Server supports the following clients: + +| Client | Configuration File | Documentation | +|--------|-------------------|---------------| +| **Claude Code** | `~/.claude.json` or `./.mcp.json` | [Claude Code MCP Docs](https://docs.anthropic.com/en/docs/claude-code/mcp) | +| **Cursor** | `~/.cursor/mcp.json` or `./.cursor/mcp.json` | [Cursor MCP Docs](https://docs.cursor.com/features/mcp) | +| **VSCode** | `~/Library/Application Support/Code/User/mcp.json` or `./.vscode/mcp.json` | [VSCode MCP Docs](https://code.visualstudio.com/docs/copilot/chat/mcp-servers) | +| **Zed** | `~/.config/zed/settings.json` | [Zed Context Servers Docs](https://zed.dev/docs/context-servers) | +| **Windsurf** | `~/.codeium/windsurf/mcp_config.json` | [Windsurf MCP Docs](https://docs.codeium.com/windsurf/mcp) | +| **Gemini CLI** | `~/.gemini/settings.json` or `./.gemini/settings.json` | [Gemini CLI MCP Tutorial](https://medium.com/@joe.njenga/gemini-cli-mcp-tutorial-setup-commands-practical-use-step-by-step-example-b57f55db5f4a) | +| **Charm Crush** | `~/.config/crush/crush.json` or `./crush.json` | [Charm MCP Docs](https://github.com/charmbracelet/mcp) | +| **Cline** | `~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json` | [Cline MCP Docs](https://github.com/saoudrizwan/claude-dev#mcp) | +| **OpenAI Codex CLI** | `~/.codex/config.toml` | See OpenAI Codex CLI documentation for MCP configuration | +| **Sourcegraph AMP** | `~/.config/amp/settings.json` | [Sourcegraph AMP MCP Docs](https://docs.sourcegraph.com/amp/mcp) | +| **opencode** | `~/.config/opencode/opencode.json` or `./opencode.json` | [opencode MCP Docs](https://opencode.ai/docs/mcp-servers/) | + +## Manual Configuration + +If your client isn't directly supported by the installer, you can configure it manually. The MCP server uses the following configuration: + +**Server Name:** `trigger` + +**Command:** `npx` + +**Arguments:** `["trigger.dev@latest", "mcp"]` + +### Example JSON Configuration +```json +{ + "mcpServers": { + "trigger": { + "command": "npx", + "args": ["trigger.dev@latest", "mcp"] + } + } +} +``` + +### Example TOML Configuration (for Codex CLI) +```toml +[mcp_servers.trigger] +command = "npx" +args = ["trigger.dev@latest", "mcp"] +``` + +### Additional Options +You can add these optional arguments to customize the server behavior: + +- `--log-file ` - Log to a specific file +- `--api-url ` - Use a custom Trigger.dev API URL +- `--dev-only` - Restrict to dev environment only +- `--project-ref ` - Scope to a specific project + +## Environment-Specific Configuration + +### Development Only +To restrict the MCP server to only work with the development environment: + +```json +{ + "mcpServers": { + "trigger": { + "command": "npx", + "args": ["trigger.dev@latest", "mcp", "--dev-only"] + } + } +} +``` + +### Project-Scoped +To scope the server to a specific project: + +```json +{ + "mcpServers": { + "trigger": { + "command": "npx", + "args": ["trigger.dev@latest", "mcp", "--project-ref", "proj_your_project_ref"] + } + } +} +``` + +## Verification + +After installation, restart your MCP client and look for a server named "trigger". The server should connect automatically and provide access to all Trigger.dev tools. + +## Getting Started + +Once installed, you can start using the MCP server by asking your AI assistant questions like: + +- "Add trigger.dev to my project" +- "List my Trigger.dev projects" +- "Show me all tasks in my project" +- "Trigger the email-notification task" +- "How do I create a scheduled task in Trigger.dev?" +- "Search Trigger.dev docs for webhook examples" + +## Next Steps + +- [Explore available MCP tools](/docs/mcp-tools) +- [Trigger.dev Documentation](https://trigger.dev/docs) +- [Join our Discord](https://trigger.dev/discord) for support diff --git a/docs/mcp-tools.mdx b/docs/mcp-tools.mdx new file mode 100644 index 0000000000..77aaf2d0b8 --- /dev/null +++ b/docs/mcp-tools.mdx @@ -0,0 +1,344 @@ +--- +title: "MCP Tools" +sidebarTitle: "Tools" +description: "Learn about the tools available in the Trigger.dev MCP Server" +tag: "new" +--- + +The Trigger.dev MCP Server provides a comprehensive set of tools to interact with your Trigger.dev projects, tasks, and documentation. Below is a detailed reference of all available tools. + +## Documentation Tools + +### search_docs + +Search across the Trigger.dev documentation to find relevant information, code examples, API references, and guides. + +**Description:** Use this tool when you need to answer questions about Trigger.dev, find specific documentation, understand how features work, or locate implementation details. The search returns contextual content with titles and direct links to the documentation pages. + +**Parameters:** +- `query` (string, required): The search query to find relevant documentation + +**Example Usage:** +```json +{ + "tool": "search_docs", + "arguments": { + "query": "webhook examples" + } +} +``` + +## Project Management Tools + +### list_projects + +List all projects in your Trigger.dev account. + +**Description:** Retrieves a list of all projects you have access to across all organizations. + +**Parameters:** None + +**Output:** Returns an array of project objects with details like project name, ID, external reference, and organization information. + +**Example Usage:** +```json +{ + "tool": "list_projects", + "arguments": {} +} +``` + +### list_orgs + +List all organizations you have access to. + +**Description:** Retrieves a list of all organizations in your Trigger.dev account. + +**Parameters:** None + +**Output:** Returns an array of organization objects with details like organization name, slug, and ID. + +**Example Usage:** +```json +{ + "tool": "list_orgs", + "arguments": {} +} +``` + +### create_project_in_org + +Create a new project in a specified organization. + +**Description:** Creates a new Trigger.dev project within an organization. Use the `list_orgs` tool first to get available organizations. + +**Parameters:** +- `orgParam` (string, required): The organization to create the project in, can be either the organization slug or ID +- `name` (string, required): The name of the project to create + +**Example Usage:** +```json +{ + "tool": "create_project_in_org", + "arguments": { + "orgParam": "my-org-slug", + "name": "My New Project" + } +} +``` + +## Project Initialization + +### initialize_project + +Initialize Trigger.dev in your project with automatic configuration. + +**Description:** Sets up Trigger.dev in a new or existing project. This tool will either create a new project or use an existing one, and provide setup instructions. + +**Parameters:** +- `orgParam` (string, required): The organization to create/use the project in (organization slug or ID) +- `projectRef` (string, optional): The project reference starting with "proj_". If not provided, a new project will be created +- `projectName` (string, required): Name for the project (used when creating new projects) +- `cwd` (string, required): The current working directory of the project + +**Output:** Provides manual setup instructions with project-specific configuration details. + +**Example Usage:** +```json +{ + "tool": "initialize_project", + "arguments": { + "orgParam": "my-org", + "projectName": "My App", + "cwd": "/path/to/my/project" + } +} +``` + +## Task Management Tools + +### get_tasks + +Retrieve all tasks in a project for a specific environment. + +**Description:** Gets a list of all available tasks in your Trigger.dev project, including their IDs, names, and configuration. + +**Parameters:** +- `projectRef` (string, optional): The project reference starting with "proj_". Will auto-detect from config if not provided +- `configPath` (string, optional): Path to trigger.config.ts file (for monorepo setups) +- `environment` (string, optional): Environment to get tasks for - `"dev"`, `"staging"`, `"prod"`, or `"preview"` (default: "dev") +- `branch` (string, optional): Branch name for preview environments + +**Example Usage:** +```json +{ + "tool": "get_tasks", + "arguments": { + "projectRef": "proj_abc123", + "environment": "dev" + } +} +``` + +### trigger_task + +Trigger a task execution with optional configuration. + +**Description:** Executes a specific task with custom payload and execution options. + +**Parameters:** +- `projectRef` (string, optional): The project reference (will auto-detect if not provided) +- `configPath` (string, optional): Path to trigger.config.ts file +- `environment` (string, optional): Target environment (default: "dev") +- `branch` (string, optional): Branch for preview environments +- `taskId` (string, required): The task ID/slug to trigger +- `payload` (string, required): JSON string containing the task payload +- `options` (object, optional): Execution options including: + - `queue.name` (string): Queue name to use + - `delay` (string|date): Execution delay + - `idempotencyKey` (string): Unique key for deduplication + - `machine` (string): Machine preset ("micro", "small-1x", "small-2x", "medium-1x", "medium-2x", "large-1x", "large-2x") + - `maxAttempts` (number): Maximum retry attempts + - `maxDuration` (number): Maximum execution time in seconds + - `tags` (array): Tags for the run (max 5, each max 128 chars) + - `ttl` (string|number): Time to live (default: "10m") + +**Example Usage:** +```json +{ + "tool": "trigger_task", + "arguments": { + "taskId": "email-notification", + "payload": "{\"email\": \"user@example.com\", \"message\": \"Hello!\"}", + "options": { + "machine": "small-1x", + "tags": ["urgent"], + "ttl": "5m" + } + } +} +``` + +## Run Monitoring Tools + +### get_run_details + +Get detailed information about a specific task run. + +**Description:** Retrieves comprehensive details about a task run, including status, logs, and execution information. + +**Parameters:** +- `projectRef` (string, optional): Project reference (auto-detected if not provided) +- `configPath` (string, optional): Path to trigger.config.ts file +- `environment` (string, optional): Environment (default: "dev") +- `branch` (string, optional): Branch for preview environments +- `runId` (string, required): The run ID starting with "run_" + +**Example Usage:** +```json +{ + "tool": "get_run_details", + "arguments": { + "runId": "run_abc123def456" + } +} +``` + +### list_runs + +List and filter task runs in a project. + +**Description:** Retrieves a paginated list of task runs with powerful filtering capabilities. + +**Parameters:** +- `projectRef` (string, optional): Project reference +- `configPath` (string, optional): Path to trigger.config.ts file +- `environment` (string, optional): Environment (default: "dev") +- `branch` (string, optional): Branch for preview environments +- `cursor` (string, optional): Pagination cursor starting with "run_" +- `limit` (number, optional): Number of runs per page (max 100) +- `status` (string, optional): Filter by run status: + - "PENDING_VERSION", "QUEUED", "DEQUEUED", "EXECUTING" + - "WAITING", "COMPLETED", "CANCELED", "FAILED" + - "CRASHED", "SYSTEM_FAILURE", "DELAYED", "EXPIRED", "TIMED_OUT" +- `taskIdentifier` (string, optional): Filter by task identifier +- `version` (string, optional): Filter by version (e.g., "20250808.3") +- `tag` (string, optional): Filter by tag +- `from` (string, optional): Filter runs created after ISO 8601 timestamp +- `to` (string, optional): Filter runs created before ISO 8601 timestamp +- `period` (string, optional): Filter runs from last N time period (e.g., "7d", "30d", "365d") +- `machine` (string, optional): Filter by machine preset + +**Example Usage:** +```json +{ + "tool": "list_runs", + "arguments": { + "status": "COMPLETED", + "taskIdentifier": "email-notification", + "limit": 20, + "period": "7d" + } +} +``` + +## Deployment Tools + +### deploy + +Deploy your project to staging, production, or preview environments. + +**Description:** Deploys your Trigger.dev project to the specified environment. Not available when MCP server is configured with `--dev-only`. + +**Parameters:** +- `projectRef` (string, optional): Project reference (auto-detected if not provided) +- `configPath` (string, optional): Path to trigger.config.ts file +- `environment` (string, optional): Target environment - `"staging"`, `"prod"`, or `"preview"` (default: "prod") +- `branch` (string, optional): Branch name for preview environments +- `skipPromotion` (boolean, optional): Skip promoting deployment to current +- `skipSyncEnvVars` (boolean, optional): Skip syncing environment variables +- `skipUpdateCheck` (boolean, optional): Skip checking for package updates + +**Example Usage:** +```json +{ + "tool": "deploy", + "arguments": { + "environment": "prod", + "skipUpdateCheck": true + } +} +``` + +## Environment Restrictions + +When the MCP server is configured with the `--dev-only` flag, the following tools are restricted: + +- **Limited to dev environment only:** + - `get_tasks` + - `trigger_task` + - `get_run_details` + - `list_runs` + +- **Completely unavailable:** + - `deploy` + +## Error Handling + +All tools return structured error messages when: +- Authentication fails +- Project references are invalid +- Environment restrictions are violated +- API calls fail +- Invalid parameters are provided + +## Usage Examples + +### Complete Workflow Example + +1. **List your projects:** +```json +{"tool": "list_projects", "arguments": {}} +``` + +2. **Get tasks in a project:** +```json +{"tool": "get_tasks", "arguments": {"projectRef": "proj_abc123"}} +``` + +3. **Trigger a task:** +```json +{ + "tool": "trigger_task", + "arguments": { + "taskId": "process-webhook", + "payload": "{\"webhook_data\": {\"user_id\": 123}}" + } +} +``` + +4. **Monitor the run:** +```json +{"tool": "get_run_details", "arguments": {"runId": "run_xyz789"}} +``` + +### Search and Setup Workflow + +1. **Search documentation:** +```json +{"tool": "search_docs", "arguments": {"query": "getting started tutorial"}} +``` + +2. **Initialize project:** +```json +{ + "tool": "initialize_project", + "arguments": { + "orgParam": "my-org", + "projectName": "My New App", + "cwd": "/Users/me/my-app" + } +} +``` + +This comprehensive toolset enables full management of your Trigger.dev projects directly from your AI assistant. From 64586011d1dd3dfab6e9fa0f12051c1ea1deb7a2 Mon Sep 17 00:00:00 2001 From: Eric Allam Date: Tue, 12 Aug 2025 08:51:51 +0000 Subject: [PATCH 02/10] Refactor MCP installation documentation The changes were necessary to streamline the MCP installation guidance and align our documentation with the latest client support capabilities. Removing the manual installation section and redundant information helps reduce confusion for users. - Updated installation instructions to lead with auto-configuration for supported clients. - Cleaned up the options and examples sections to enhance clarity. - Reformatted client configuration details for better readability. - Removed outdated links in the "Next Steps" section, focusing on more direct resources such as available MCP tools. --- docs/mcp-introduction.mdx | 49 ++++++++++++++++++++------------------- 1 file changed, 25 insertions(+), 24 deletions(-) diff --git a/docs/mcp-introduction.mdx b/docs/mcp-introduction.mdx index 84caca862b..955cd8292a 100644 --- a/docs/mcp-introduction.mdx +++ b/docs/mcp-introduction.mdx @@ -27,23 +27,17 @@ npx trigger.dev@latest install-mcp ``` This command will guide you through: + 1. Selecting which MCP clients to configure 2. Choosing installation scope (user, project, or local) 3. Automatically configuring the selected clients -### Manual Installation - -If you prefer manual installation or your client isn't automatically supported, you can configure it manually using: - -```bash -npx trigger.dev@latest mcp -``` - ## Command Line Options The `install-mcp` command supports the following options: ### Core Options + - `-p, --project-ref ` - Scope the MCP server to a specific Trigger.dev project by providing its project ref - `-t, --tag ` - The version of the trigger.dev CLI package to use for the MCP server (default: latest or v4-beta) - `--dev-only` - Restrict the MCP server to the dev environment only @@ -52,6 +46,7 @@ The `install-mcp` command supports the following options: - `--client ` - Choose specific client(s) to install into ### Configuration Options + - `--log-file ` - Configure the MCP server to write logs to a file - `-a, --api-url ` - Configure a custom Trigger.dev API URL - `-l, --log-level ` - Set CLI log level (debug, info, log, warn, error, none) @@ -59,16 +54,19 @@ The `install-mcp` command supports the following options: ### Examples Install for all supported clients: + ```bash npx trigger.dev@latest install-mcp --yolo ``` Install for specific clients: + ```bash npx trigger.dev@latest install-mcp --client claude-code cursor --scope user ``` Install with development environment restriction: + ```bash npx trigger.dev@latest install-mcp --dev-only --project-ref proj_abc123 ``` @@ -77,19 +75,19 @@ npx trigger.dev@latest install-mcp --dev-only --project-ref proj_abc123 The Trigger.dev MCP Server supports the following clients: -| Client | Configuration File | Documentation | -|--------|-------------------|---------------| -| **Claude Code** | `~/.claude.json` or `./.mcp.json` | [Claude Code MCP Docs](https://docs.anthropic.com/en/docs/claude-code/mcp) | -| **Cursor** | `~/.cursor/mcp.json` or `./.cursor/mcp.json` | [Cursor MCP Docs](https://docs.cursor.com/features/mcp) | -| **VSCode** | `~/Library/Application Support/Code/User/mcp.json` or `./.vscode/mcp.json` | [VSCode MCP Docs](https://code.visualstudio.com/docs/copilot/chat/mcp-servers) | -| **Zed** | `~/.config/zed/settings.json` | [Zed Context Servers Docs](https://zed.dev/docs/context-servers) | -| **Windsurf** | `~/.codeium/windsurf/mcp_config.json` | [Windsurf MCP Docs](https://docs.codeium.com/windsurf/mcp) | -| **Gemini CLI** | `~/.gemini/settings.json` or `./.gemini/settings.json` | [Gemini CLI MCP Tutorial](https://medium.com/@joe.njenga/gemini-cli-mcp-tutorial-setup-commands-practical-use-step-by-step-example-b57f55db5f4a) | -| **Charm Crush** | `~/.config/crush/crush.json` or `./crush.json` | [Charm MCP Docs](https://github.com/charmbracelet/mcp) | -| **Cline** | `~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json` | [Cline MCP Docs](https://github.com/saoudrizwan/claude-dev#mcp) | -| **OpenAI Codex CLI** | `~/.codex/config.toml` | See OpenAI Codex CLI documentation for MCP configuration | -| **Sourcegraph AMP** | `~/.config/amp/settings.json` | [Sourcegraph AMP MCP Docs](https://docs.sourcegraph.com/amp/mcp) | -| **opencode** | `~/.config/opencode/opencode.json` or `./opencode.json` | [opencode MCP Docs](https://opencode.ai/docs/mcp-servers/) | +| Client | Configuration File | Documentation | +| -------------------- | --------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | +| **Claude Code** | `~/.claude.json` or `./.mcp.json` | [Claude Code MCP Docs](https://docs.anthropic.com/en/docs/claude-code/mcp) | +| **Cursor** | `~/.cursor/mcp.json` or `./.cursor/mcp.json` | [Cursor MCP Docs](https://docs.cursor.com/features/mcp) | +| **VSCode** | `~/Library/Application Support/Code/User/mcp.json` or `./.vscode/mcp.json` | [VSCode MCP Docs](https://code.visualstudio.com/docs/copilot/chat/mcp-servers) | +| **Zed** | `~/.config/zed/settings.json` | [Zed Context Servers Docs](https://zed.dev/docs/context-servers) | +| **Windsurf** | `~/.codeium/windsurf/mcp_config.json` | [Windsurf MCP Docs](https://docs.codeium.com/windsurf/mcp) | +| **Gemini CLI** | `~/.gemini/settings.json` or `./.gemini/settings.json` | [Gemini CLI MCP Tutorial](https://medium.com/@joe.njenga/gemini-cli-mcp-tutorial-setup-commands-practical-use-step-by-step-example-b57f55db5f4a) | +| **Charm Crush** | `~/.config/crush/crush.json` or `./crush.json` | [Charm MCP Docs](https://github.com/charmbracelet/mcp) | +| **Cline** | `~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json` | [Cline MCP Docs](https://github.com/saoudrizwan/claude-dev#mcp) | +| **OpenAI Codex CLI** | `~/.codex/config.toml` | See OpenAI Codex CLI documentation for MCP configuration | +| **Sourcegraph AMP** | `~/.config/amp/settings.json` | [Sourcegraph AMP MCP Docs](https://docs.sourcegraph.com/amp/mcp) | +| **opencode** | `~/.config/opencode/opencode.json` or `./opencode.json` | [opencode MCP Docs](https://opencode.ai/docs/mcp-servers/) | ## Manual Configuration @@ -102,6 +100,7 @@ If your client isn't directly supported by the installer, you can configure it m **Arguments:** `["trigger.dev@latest", "mcp"]` ### Example JSON Configuration + ```json { "mcpServers": { @@ -114,6 +113,7 @@ If your client isn't directly supported by the installer, you can configure it m ``` ### Example TOML Configuration (for Codex CLI) + ```toml [mcp_servers.trigger] command = "npx" @@ -121,6 +121,7 @@ args = ["trigger.dev@latest", "mcp"] ``` ### Additional Options + You can add these optional arguments to customize the server behavior: - `--log-file ` - Log to a specific file @@ -131,6 +132,7 @@ You can add these optional arguments to customize the server behavior: ## Environment-Specific Configuration ### Development Only + To restrict the MCP server to only work with the development environment: ```json @@ -145,6 +147,7 @@ To restrict the MCP server to only work with the development environment: ``` ### Project-Scoped + To scope the server to a specific project: ```json @@ -175,6 +178,4 @@ Once installed, you can start using the MCP server by asking your AI assistant q ## Next Steps -- [Explore available MCP tools](/docs/mcp-tools) -- [Trigger.dev Documentation](https://trigger.dev/docs) -- [Join our Discord](https://trigger.dev/discord) for support +- [Explore available MCP tools](/mcp-tools) From 717de189e64d115e5320d105cb5b17b10d539758 Mon Sep 17 00:00:00 2001 From: Eric Allam Date: Tue, 12 Aug 2025 10:05:05 +0100 Subject: [PATCH 03/10] mcp docs edits --- docs/mcp-introduction.mdx | 44 ++-- docs/mcp-tools.mdx | 483 +++++++++++++++++++++----------------- 2 files changed, 294 insertions(+), 233 deletions(-) diff --git a/docs/mcp-introduction.mdx b/docs/mcp-introduction.mdx index 955cd8292a..d9dc3474e1 100644 --- a/docs/mcp-introduction.mdx +++ b/docs/mcp-introduction.mdx @@ -51,6 +51,10 @@ The `install-mcp` command supports the following options: - `-a, --api-url ` - Configure a custom Trigger.dev API URL - `-l, --log-level ` - Set CLI log level (debug, info, log, warn, error, none) +## Authentication + +You can use the MCP server without authentication with the `search_docs` tool, but for any other tool call you will need to authenticate the MCP server via the same method as the [Trigger.dev CLI](/cli-login-commands).The first time you attempt to use a tool that requires authentication, you will be prompted to authenticate the MCP server via the MCP client. + ### Examples Install for all supported clients: @@ -75,19 +79,19 @@ npx trigger.dev@latest install-mcp --dev-only --project-ref proj_abc123 The Trigger.dev MCP Server supports the following clients: -| Client | Configuration File | Documentation | -| -------------------- | --------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | -| **Claude Code** | `~/.claude.json` or `./.mcp.json` | [Claude Code MCP Docs](https://docs.anthropic.com/en/docs/claude-code/mcp) | -| **Cursor** | `~/.cursor/mcp.json` or `./.cursor/mcp.json` | [Cursor MCP Docs](https://docs.cursor.com/features/mcp) | -| **VSCode** | `~/Library/Application Support/Code/User/mcp.json` or `./.vscode/mcp.json` | [VSCode MCP Docs](https://code.visualstudio.com/docs/copilot/chat/mcp-servers) | -| **Zed** | `~/.config/zed/settings.json` | [Zed Context Servers Docs](https://zed.dev/docs/context-servers) | -| **Windsurf** | `~/.codeium/windsurf/mcp_config.json` | [Windsurf MCP Docs](https://docs.codeium.com/windsurf/mcp) | -| **Gemini CLI** | `~/.gemini/settings.json` or `./.gemini/settings.json` | [Gemini CLI MCP Tutorial](https://medium.com/@joe.njenga/gemini-cli-mcp-tutorial-setup-commands-practical-use-step-by-step-example-b57f55db5f4a) | -| **Charm Crush** | `~/.config/crush/crush.json` or `./crush.json` | [Charm MCP Docs](https://github.com/charmbracelet/mcp) | -| **Cline** | `~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json` | [Cline MCP Docs](https://github.com/saoudrizwan/claude-dev#mcp) | -| **OpenAI Codex CLI** | `~/.codex/config.toml` | See OpenAI Codex CLI documentation for MCP configuration | -| **Sourcegraph AMP** | `~/.config/amp/settings.json` | [Sourcegraph AMP MCP Docs](https://docs.sourcegraph.com/amp/mcp) | -| **opencode** | `~/.config/opencode/opencode.json` or `./opencode.json` | [opencode MCP Docs](https://opencode.ai/docs/mcp-servers/) | +| Client | Scope Options | Configuration File | Documentation | +| -------------------- | -------------------- | --------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | +| **Claude Code** | user, project, local | `~/.claude.json` or `./.mcp.json` (project/local scope) | [Claude Code MCP Docs](https://docs.anthropic.com/en/docs/claude-code/mcp) | +| **Cursor** | user, project | `~/.cursor/mcp.json` (user) or `./.cursor/mcp.json` (project) | [Cursor MCP Docs](https://docs.cursor.com/features/mcp) | +| **VSCode** | user, project | `~/Library/Application Support/Code/User/mcp.json` (user) or `./.vscode/mcp.json` (project) | [VSCode MCP Docs](https://code.visualstudio.com/docs/copilot/chat/mcp-servers) | +| **Zed** | user | `~/.config/zed/settings.json` | [Zed Context Servers Docs](https://zed.dev/docs/context-servers) | +| **Windsurf** | user | `~/.codeium/windsurf/mcp_config.json` | [Windsurf MCP Docs](https://docs.codeium.com/windsurf/mcp) | +| **Gemini CLI** | user, project | `~/.gemini/settings.json` (user) or `./.gemini/settings.json` (project) | [Gemini CLI MCP Tutorial](https://medium.com/@joe.njenga/gemini-cli-mcp-tutorial-setup-commands-practical-use-step-by-step-example-b57f55db5f4a) | +| **Charm Crush** | user, project, local | `~/.config/crush/crush.json` (user), `./crush.json` (project), or `./.crush.json` (local) | [Charm MCP Docs](https://github.com/charmbracelet/mcp) | +| **Cline** | user | `~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json` | [Cline MCP Docs](https://github.com/saoudrizwan/claude-dev#mcp) | +| **OpenAI Codex CLI** | user | `~/.codex/config.toml` | See OpenAI Codex CLI documentation for MCP configuration | +| **Sourcegraph AMP** | user | `~/.config/amp/settings.json` | [Sourcegraph AMP MCP Docs](https://docs.sourcegraph.com/amp/mcp) | +| **opencode** | user, project | `~/.config/opencode/opencode.json` (user) or `./opencode.json` (project) | [opencode MCP Docs](https://opencode.ai/docs/mcp-servers/) | ## Manual Configuration @@ -169,12 +173,14 @@ After installation, restart your MCP client and look for a server named "trigger Once installed, you can start using the MCP server by asking your AI assistant questions like: -- "Add trigger.dev to my project" -- "List my Trigger.dev projects" -- "Show me all tasks in my project" -- "Trigger the email-notification task" -- "How do I create a scheduled task in Trigger.dev?" -- "Search Trigger.dev docs for webhook examples" +- `"Search the trigger docs for a ffmpeg example"` +- `"Initialize trigger.dev in my project"` +- `"Get all tasks in my project"` +- `"Trigger my foobar task with a sample payload"` +- `"Get the details of the latest run for my foobar task"` +- `"List all runs for my foobar task"` +- `"Deploy my project to staging"` +- `"Deploy my project to production"` ## Next Steps diff --git a/docs/mcp-tools.mdx b/docs/mcp-tools.mdx index 77aaf2d0b8..63346e51e2 100644 --- a/docs/mcp-tools.mdx +++ b/docs/mcp-tools.mdx @@ -5,21 +5,27 @@ description: "Learn about the tools available in the Trigger.dev MCP Server" tag: "new" --- -The Trigger.dev MCP Server provides a comprehensive set of tools to interact with your Trigger.dev projects, tasks, and documentation. Below is a detailed reference of all available tools. +The Trigger.dev MCP Server provides a comprehensive set of tools that enable AI assistants to interact with your Trigger.dev projects. These tools cover everything from project management to task execution and monitoring. -## Documentation Tools +## Documentation and Search Tools ### search_docs Search across the Trigger.dev documentation to find relevant information, code examples, API references, and guides. -**Description:** Use this tool when you need to answer questions about Trigger.dev, find specific documentation, understand how features work, or locate implementation details. The search returns contextual content with titles and direct links to the documentation pages. + + The search query to find information in the Trigger.dev documentation + -**Parameters:** -- `query` (string, required): The search query to find relevant documentation +**Usage Examples:** -**Example Usage:** -```json +- "How do I create a scheduled task?" +- "webhook examples" +- "deployment configuration" +- "error handling patterns" + + +```json Example Usage { "tool": "search_docs", "arguments": { @@ -27,6 +33,7 @@ Search across the Trigger.dev documentation to find relevant information, code e } } ``` + ## Project Management Tools @@ -34,103 +41,112 @@ Search across the Trigger.dev documentation to find relevant information, code e List all projects in your Trigger.dev account. -**Description:** Retrieves a list of all projects you have access to across all organizations. - -**Parameters:** None +**No parameters required** -**Output:** Returns an array of project objects with details like project name, ID, external reference, and organization information. + + Array of project objects containing project details, IDs, and metadata + -**Example Usage:** -```json + +```json Example Response { - "tool": "list_projects", - "arguments": {} + "projects": [ + { + "id": "proj_abc123", + "name": "My App", + "slug": "my-app", + "organizationId": "org_xyz789" + } + ] } ``` + ### list_orgs List all organizations you have access to. -**Description:** Retrieves a list of all organizations in your Trigger.dev account. +**No parameters required** -**Parameters:** None - -**Output:** Returns an array of organization objects with details like organization name, slug, and ID. - -**Example Usage:** -```json -{ - "tool": "list_orgs", - "arguments": {} -} -``` + + Array of organization objects containing organization details and metadata + ### create_project_in_org -Create a new project in a specified organization. +Create a new project in an organization. -**Description:** Creates a new Trigger.dev project within an organization. Use the `list_orgs` tool first to get available organizations. + + The organization to create the project in, can either be the organization slug or the ID. Use the + `list_orgs` tool to get a list of organizations and ask the user to select one. + -**Parameters:** -- `orgParam` (string, required): The organization to create the project in, can be either the organization slug or ID -- `name` (string, required): The name of the project to create + + The name of the project to create + -**Example Usage:** -```json + +```json Example Usage { "tool": "create_project_in_org", "arguments": { - "orgParam": "my-org-slug", - "name": "My New Project" + "orgParam": "my-org", + "name": "New Project" } } ``` - -## Project Initialization + ### initialize_project -Initialize Trigger.dev in your project with automatic configuration. +Initialize Trigger.dev in your project with automatic setup and configuration. -**Description:** Sets up Trigger.dev in a new or existing project. This tool will either create a new project or use an existing one, and provide setup instructions. + + The organization to create the project in, can either be the organization slug or the ID. Use the + `list_orgs` tool to get a list of organizations and ask the user to select one. + -**Parameters:** -- `orgParam` (string, required): The organization to create/use the project in (organization slug or ID) -- `projectRef` (string, optional): The project reference starting with "proj_". If not provided, a new project will be created -- `projectName` (string, required): Name for the project (used when creating new projects) -- `cwd` (string, required): The current working directory of the project + + The trigger.dev project ref, starts with `proj_`. We will attempt to automatically detect the + project ref if running inside a directory that includes a trigger.config.ts file. + -**Output:** Provides manual setup instructions with project-specific configuration details. + + The name of the project to create. If projectRef is not provided, we will use this name to create + a new project in the organization you select. + -**Example Usage:** -```json -{ - "tool": "initialize_project", - "arguments": { - "orgParam": "my-org", - "projectName": "My App", - "cwd": "/path/to/my/project" - } -} -``` + + The current working directory of the project + ## Task Management Tools ### get_tasks -Retrieve all tasks in a project for a specific environment. +Get all tasks in a project. + + + The trigger.dev project ref, starts with `proj_`. We will attempt to automatically detect the + project ref if running inside a directory that includes a trigger.config.ts file. + -**Description:** Gets a list of all available tasks in your Trigger.dev project, including their IDs, names, and configuration. + + The path to the trigger.config.ts file. Only used when the trigger.config.ts file is not at the + root dir (like in a monorepo setup). If not provided, we will try to find the config file in the + current working directory. + -**Parameters:** -- `projectRef` (string, optional): The project reference starting with "proj_". Will auto-detect from config if not provided -- `configPath` (string, optional): Path to trigger.config.ts file (for monorepo setups) -- `environment` (string, optional): Environment to get tasks for - `"dev"`, `"staging"`, `"prod"`, or `"preview"` (default: "dev") -- `branch` (string, optional): Branch name for preview environments + + The environment to get tasks for. Options: `dev`, `staging`, `prod`, `preview` + -**Example Usage:** -```json + + The branch to get tasks for, only used for preview environments + + + +```json Example Usage { "tool": "get_tasks", "arguments": { @@ -139,206 +155,245 @@ Retrieve all tasks in a project for a specific environment. } } ``` + ### trigger_task -Trigger a task execution with optional configuration. - -**Description:** Executes a specific task with custom payload and execution options. - -**Parameters:** -- `projectRef` (string, optional): The project reference (will auto-detect if not provided) -- `configPath` (string, optional): Path to trigger.config.ts file -- `environment` (string, optional): Target environment (default: "dev") -- `branch` (string, optional): Branch for preview environments -- `taskId` (string, required): The task ID/slug to trigger -- `payload` (string, required): JSON string containing the task payload -- `options` (object, optional): Execution options including: - - `queue.name` (string): Queue name to use - - `delay` (string|date): Execution delay - - `idempotencyKey` (string): Unique key for deduplication - - `machine` (string): Machine preset ("micro", "small-1x", "small-2x", "medium-1x", "medium-2x", "large-1x", "large-2x") - - `maxAttempts` (number): Maximum retry attempts - - `maxDuration` (number): Maximum execution time in seconds - - `tags` (array): Tags for the run (max 5, each max 128 chars) - - `ttl` (string|number): Time to live (default: "10m") - -**Example Usage:** -```json +Trigger a task to run. + + + The trigger.dev project ref, starts with `proj_`. We will attempt to automatically detect the + project ref if running inside a directory that includes a trigger.config.ts file. + + + + The path to the trigger.config.ts file. Only used when the trigger.config.ts file is not at the + root dir (like in a monorepo setup). + + + + The environment to trigger the task in. Options: `dev`, `staging`, `prod`, `preview` + + + + The branch to trigger the task in, only used for preview environments + + + + The ID/slug of the task to trigger. Use the `get_tasks` tool to get a list of tasks and ask the + user to select one if it's not clear which one to use. + + + + The payload to trigger the task with, must be a valid JSON string + + + + Additional options for the task run + + + The name of the queue to trigger the task in, by default will use the queue configured in the + task + + + The delay before the task run is executed + + + The idempotency key to use for the task run + + + The machine preset to use for the task run. Options: `micro`, `small-1x`, `small-2x`, + `medium-1x`, `medium-2x`, `large-1x`, `large-2x` + + + The maximum number of attempts to retry the task run + + + The maximum duration in seconds of the task run + + + Tags to add to the task run. Must be less than 128 characters and cannot have more than 5 + + + The time to live of the task run. If the run doesn't start executing within this time, it will + be automatically cancelled. + + + + + +```json Example Usage { "tool": "trigger_task", "arguments": { + "projectRef": "proj_abc123", "taskId": "email-notification", - "payload": "{\"email\": \"user@example.com\", \"message\": \"Hello!\"}", + "payload": "{\"email\": \"user@example.com\", \"subject\": \"Hello World\"}", "options": { - "machine": "small-1x", "tags": ["urgent"], - "ttl": "5m" + "maxAttempts": 3 } } } ``` + ## Run Monitoring Tools ### get_run_details -Get detailed information about a specific task run. +Get the details of a specific task run. -**Description:** Retrieves comprehensive details about a task run, including status, logs, and execution information. + + The trigger.dev project ref, starts with `proj_`. We will attempt to automatically detect the + project ref if running inside a directory that includes a trigger.config.ts file. + -**Parameters:** -- `projectRef` (string, optional): Project reference (auto-detected if not provided) -- `configPath` (string, optional): Path to trigger.config.ts file -- `environment` (string, optional): Environment (default: "dev") -- `branch` (string, optional): Branch for preview environments -- `runId` (string, required): The run ID starting with "run_" + + The path to the trigger.config.ts file. Only used when the trigger.config.ts file is not at the + root dir (like in a monorepo setup). + -**Example Usage:** -```json -{ - "tool": "get_run_details", - "arguments": { - "runId": "run_abc123def456" - } -} -``` + + The environment to get the run details from. Options: `dev`, `staging`, `prod`, `preview` + -### list_runs + + The branch to get the run details from, only used for preview environments + -List and filter task runs in a project. - -**Description:** Retrieves a paginated list of task runs with powerful filtering capabilities. - -**Parameters:** -- `projectRef` (string, optional): Project reference -- `configPath` (string, optional): Path to trigger.config.ts file -- `environment` (string, optional): Environment (default: "dev") -- `branch` (string, optional): Branch for preview environments -- `cursor` (string, optional): Pagination cursor starting with "run_" -- `limit` (number, optional): Number of runs per page (max 100) -- `status` (string, optional): Filter by run status: - - "PENDING_VERSION", "QUEUED", "DEQUEUED", "EXECUTING" - - "WAITING", "COMPLETED", "CANCELED", "FAILED" - - "CRASHED", "SYSTEM_FAILURE", "DELAYED", "EXPIRED", "TIMED_OUT" -- `taskIdentifier` (string, optional): Filter by task identifier -- `version` (string, optional): Filter by version (e.g., "20250808.3") -- `tag` (string, optional): Filter by tag -- `from` (string, optional): Filter runs created after ISO 8601 timestamp -- `to` (string, optional): Filter runs created before ISO 8601 timestamp -- `period` (string, optional): Filter runs from last N time period (e.g., "7d", "30d", "365d") -- `machine` (string, optional): Filter by machine preset - -**Example Usage:** -```json -{ - "tool": "list_runs", - "arguments": { - "status": "COMPLETED", - "taskIdentifier": "email-notification", - "limit": 20, - "period": "7d" - } -} -``` + + The ID of the run to get the details of, starts with `run_` + -## Deployment Tools +### list_runs -### deploy +List all runs for a project with comprehensive filtering options. -Deploy your project to staging, production, or preview environments. + + The trigger.dev project ref, starts with `proj_`. We will attempt to automatically detect the + project ref if running inside a directory that includes a trigger.config.ts file. + -**Description:** Deploys your Trigger.dev project to the specified environment. Not available when MCP server is configured with `--dev-only`. + + The path to the trigger.config.ts file. Only used when the trigger.config.ts file is not at the + root dir (like in a monorepo setup). + -**Parameters:** -- `projectRef` (string, optional): Project reference (auto-detected if not provided) -- `configPath` (string, optional): Path to trigger.config.ts file -- `environment` (string, optional): Target environment - `"staging"`, `"prod"`, or `"preview"` (default: "prod") -- `branch` (string, optional): Branch name for preview environments -- `skipPromotion` (boolean, optional): Skip promoting deployment to current -- `skipSyncEnvVars` (boolean, optional): Skip syncing environment variables -- `skipUpdateCheck` (boolean, optional): Skip checking for package updates + + The environment to list runs from. Options: `dev`, `staging`, `prod`, `preview` + -**Example Usage:** -```json -{ - "tool": "deploy", - "arguments": { - "environment": "prod", - "skipUpdateCheck": true - } -} -``` + + The branch to list runs from, only used for preview environments + -## Environment Restrictions + + The cursor to use for pagination, starts with `run_` + -When the MCP server is configured with the `--dev-only` flag, the following tools are restricted: + + The number of runs to list in a single page. Up to 100 + -- **Limited to dev environment only:** - - `get_tasks` - - `trigger_task` - - `get_run_details` - - `list_runs` + + Filter for runs with this run status. Options: `PENDING_VERSION`, `QUEUED`, `DEQUEUED`, + `EXECUTING`, `WAITING`, `COMPLETED`, `CANCELED`, `FAILED`, `CRASHED`, `SYSTEM_FAILURE`, `DELAYED`, + `EXPIRED`, `TIMED_OUT` + -- **Completely unavailable:** - - `deploy` + + Filter for runs that match this task identifier + -## Error Handling + + Filter for runs that match this version, e.g. `20250808.3` + -All tools return structured error messages when: -- Authentication fails -- Project references are invalid -- Environment restrictions are violated -- API calls fail -- Invalid parameters are provided + + Filter for runs that include this tag + -## Usage Examples + + Filter for runs created after this ISO 8601 timestamp + -### Complete Workflow Example + + Filter for runs created before this ISO 8601 timestamp + -1. **List your projects:** -```json -{"tool": "list_projects", "arguments": {}} -``` + + Filter for runs created in the last N time period. Examples: `7d`, `30d`, `365d` + -2. **Get tasks in a project:** -```json -{"tool": "get_tasks", "arguments": {"projectRef": "proj_abc123"}} -``` + + Filter for runs that match this machine preset. Options: `micro`, `small-1x`, `small-2x`, + `medium-1x`, `medium-2x`, `large-1x`, `large-2x` + -3. **Trigger a task:** -```json + +```json Example Usage { - "tool": "trigger_task", + "tool": "list_runs", "arguments": { - "taskId": "process-webhook", - "payload": "{\"webhook_data\": {\"user_id\": 123}}" + "projectRef": "proj_abc123", + "status": "COMPLETED", + "limit": 10, + "period": "7d" } } ``` + -4. **Monitor the run:** -```json -{"tool": "get_run_details", "arguments": {"runId": "run_xyz789"}} -``` +## Deployment Tools -### Search and Setup Workflow +### deploy -1. **Search documentation:** -```json -{"tool": "search_docs", "arguments": {"query": "getting started tutorial"}} -``` +Deploy a project to staging or production environments. + + + The trigger.dev project ref, starts with `proj_`. We will attempt to automatically detect the + project ref if running inside a directory that includes a trigger.config.ts file. + + + + The path to the trigger.config.ts file. Only used when the trigger.config.ts file is not at the + root dir (like in a monorepo setup). + + + + The environment to deploy to. Options: `staging`, `prod`, `preview` + + + + The branch to deploy, only used for preview environments + -2. **Initialize project:** -```json + + Skip promoting the deployment to the current deployment for the environment + + + + Skip syncing environment variables when using the syncEnvVars extension + + + + Skip checking for @trigger.dev package updates + + + +```json Example Usage { - "tool": "initialize_project", + "tool": "deploy", "arguments": { - "orgParam": "my-org", - "projectName": "My New App", - "cwd": "/Users/me/my-app" + "projectRef": "proj_abc123", + "environment": "prod", + "skipUpdateCheck": true } } ``` + -This comprehensive toolset enables full management of your Trigger.dev projects directly from your AI assistant. + + The deploy tool is not available when the MCP server is running with the `--dev-only` flag. + From a1155de84b4d4d9b9aa0a908d8f85a0e60d9c7f5 Mon Sep 17 00:00:00 2001 From: Eric Allam Date: Tue, 12 Aug 2025 11:27:24 +0100 Subject: [PATCH 04/10] Add debugMode to get_run_details --- docs/mcp-tools.mdx | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/mcp-tools.mdx b/docs/mcp-tools.mdx index 63346e51e2..4c27b69483 100644 --- a/docs/mcp-tools.mdx +++ b/docs/mcp-tools.mdx @@ -266,6 +266,11 @@ Get the details of a specific task run. The ID of the run to get the details of, starts with `run_` + + If true, the run trace will be returned in the response which can be helpful for debugging. + Defaults to false. + + ### list_runs List all runs for a project with comprehensive filtering options. From a94bbd46adf6854158e64d97f6717a89e44138fd Mon Sep 17 00:00:00 2001 From: Eric Allam Date: Tue, 12 Aug 2025 11:53:45 +0100 Subject: [PATCH 05/10] add cancel_run --- docs/mcp-tools.mdx | 41 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/docs/mcp-tools.mdx b/docs/mcp-tools.mdx index 4c27b69483..2043533bf8 100644 --- a/docs/mcp-tools.mdx +++ b/docs/mcp-tools.mdx @@ -267,10 +267,47 @@ Get the details of a specific task run. - If true, the run trace will be returned in the response which can be helpful for debugging. - Defaults to false. + Enable debug mode to get more detailed information about the run, including the entire trace (all logs and spans for the run and any child run). Set this to true if prompted to debug a run. +### cancel_run + +Cancel a running task. + + + The ID of the run to cancel, starts with `run_` + + + + The trigger.dev project ref, starts with `proj_`. We will attempt to automatically detect the + project ref if running inside a directory that includes a trigger.config.ts file. + + + + The path to the trigger.config.ts file. Only used when the trigger.config.ts file is not at the + root dir (like in a monorepo setup). + + + + The environment to cancel the run in. Options: `dev`, `staging`, `prod`, `preview` + + + + The branch to cancel the run in, only used for preview environments + + + +```json Example Usage +{ + "tool": "cancel_run", + "arguments": { + "runId": "run_abc123", + "projectRef": "proj_abc123" + } +} +``` + + ### list_runs List all runs for a project with comprehensive filtering options. From 7329ac42f1a525dcd74b24af20284fa3924224b9 Mon Sep 17 00:00:00 2001 From: Eric Allam Date: Tue, 12 Aug 2025 15:47:02 +0100 Subject: [PATCH 06/10] Add list deployments tools --- docs/mcp-tools.mdx | 60 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/docs/mcp-tools.mdx b/docs/mcp-tools.mdx index 2043533bf8..28bac20937 100644 --- a/docs/mcp-tools.mdx +++ b/docs/mcp-tools.mdx @@ -436,6 +436,66 @@ Deploy a project to staging or production environments. ``` +### list_deployments + +List deployments for a project with comprehensive filtering options. + + + The trigger.dev project ref, starts with `proj_`. We will attempt to automatically detect the + project ref if running inside a directory that includes a trigger.config.ts file. + + + + The path to the trigger.config.ts file. Only used when the trigger.config.ts file is not at the + root dir (like in a monorepo setup). + + + + The environment to list deployments for. Options: `staging`, `prod`, `preview` + + + + The branch to list deployments from, only used for preview environments + + + + The deployment ID to start the search from, to get the next page + + + + The number of deployments to return, defaults to 20 (max 100) + + + + Filter deployments that are in this status. Options: `PENDING`, `BUILDING`, `DEPLOYING`, `DEPLOYED`, `FAILED`, `CANCELED`, `TIMED_OUT` + + + + The date to start the search from, in ISO 8601 format + + + + The date to end the search, in ISO 8601 format + + + + The period to search within. Examples: `1d`, `7d`, `3h` + + + +```json Example Usage +{ + "tool": "list_deployments", + "arguments": { + "projectRef": "proj_abc123", + "environment": "prod", + "status": "DEPLOYED", + "limit": 10 + } +} +``` + + The deploy tool is not available when the MCP server is running with the `--dev-only` flag. From 160cc90e0903fec2f89b859b463575ab9d78d095 Mon Sep 17 00:00:00 2001 From: Eric Allam Date: Tue, 12 Aug 2025 17:09:18 +0100 Subject: [PATCH 07/10] Add list preview branches tool --- docs/mcp-tools.mdx | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/docs/mcp-tools.mdx b/docs/mcp-tools.mdx index 28bac20937..0163de97a4 100644 --- a/docs/mcp-tools.mdx +++ b/docs/mcp-tools.mdx @@ -496,6 +496,32 @@ List deployments for a project with comprehensive filtering options. ``` +### list_preview_branches + +List all preview branches in the project. + + + The trigger.dev project ref, starts with `proj_`. We will attempt to automatically detect the + project ref if running inside a directory that includes a trigger.config.ts file. + + + + The path to the trigger.config.ts file. Only used when the trigger.config.ts file is not at the + root dir (like in a monorepo setup). If not provided, we will try to find the config file in the + current working directory. + + + +```json Example Usage +{ + "tool": "list_preview_branches", + "arguments": { + "projectRef": "proj_abc123" + } +} +``` + + - The deploy tool is not available when the MCP server is running with the `--dev-only` flag. + The deploy tool and list_preview_branches tool are not available when the MCP server is running with the `--dev-only` flag. From 8b775f4a137e479f894fc09efa2230a314b2343a Mon Sep 17 00:00:00 2001 From: James Ritchie Date: Fri, 22 Aug 2025 14:54:38 +0100 Subject: [PATCH 08/10] Docs: adds agent rules page --- docs/docs.json | 90 +++++++----------------------- docs/mcp-agent-rules.mdx | 116 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 137 insertions(+), 69 deletions(-) create mode 100644 docs/mcp-agent-rules.mdx diff --git a/docs/docs.json b/docs/docs.json index 3ff3c7fc10..ff40ec41bf 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -10,11 +10,7 @@ }, "favicon": "/images/favicon.png", "contextual": { - "options": [ - "copy", - "view", - "claude" - ] + "options": ["copy", "view", "claude"] }, "navigation": { "dropdowns": [ @@ -40,11 +36,7 @@ "pages": [ { "group": "Tasks", - "pages": [ - "tasks/overview", - "tasks/schemaTask", - "tasks/scheduled" - ] + "pages": ["tasks/overview", "tasks/schemaTask", "tasks/scheduled"] }, "triggering", "runs", @@ -59,12 +51,7 @@ "errors-retrying", { "group": "Wait", - "pages": [ - "wait", - "wait-for", - "wait-until", - "wait-for-token" - ] + "pages": ["wait", "wait-for", "wait-until", "wait-for-token"] }, "queue-concurrency", "versioning", @@ -110,9 +97,7 @@ }, { "group": "Development", - "pages": [ - "cli-dev" - ] + "pages": ["cli-dev"] }, { "group": "Deployment", @@ -124,9 +109,7 @@ "deployment/atomic-deployment", { "group": "Deployment integrations", - "pages": [ - "vercel-integration" - ] + "pages": ["vercel-integration"] } ] }, @@ -181,19 +164,11 @@ }, { "group": "MCP Server", - "pages": [ - "mcp-introduction", - "mcp-tools" - ] + "pages": ["mcp-introduction", "mcp-tools", "mcp-agent-rules"] }, { "group": "Using the Dashboard", - "pages": [ - "run-tests", - "troubleshooting-alerts", - "replaying", - "bulk-actions" - ] + "pages": ["run-tests", "troubleshooting-alerts", "replaying", "bulk-actions"] }, { "group": "Troubleshooting", @@ -215,39 +190,23 @@ "self-hosting/kubernetes", { "group": "Environment variables", - "pages": [ - "self-hosting/env/webapp", - "self-hosting/env/supervisor" - ] + "pages": ["self-hosting/env/webapp", "self-hosting/env/supervisor"] } ], - "tags": [ - "v4" - ], + "tags": ["v4"], "tag": "v4" }, { "group": "Self-hosting", - "pages": [ - "open-source-self-hosting" - ] + "pages": ["open-source-self-hosting"] }, { "group": "Open source", - "pages": [ - "open-source-contributing", - "github-repo", - "changelog", - "roadmap" - ] + "pages": ["open-source-contributing", "github-repo", "changelog", "roadmap"] }, { "group": "Help", - "pages": [ - "community", - "help-slack", - "help-email" - ] + "pages": ["community", "help-slack", "help-email"] } ] }, @@ -268,10 +227,7 @@ }, { "group": "Tasks API", - "pages": [ - "management/tasks/trigger", - "management/tasks/batch-trigger" - ] + "pages": ["management/tasks/trigger", "management/tasks/batch-trigger"] }, { "group": "Runs API", @@ -317,9 +273,7 @@ "groups": [ { "group": "Introduction", - "pages": [ - "guides/introduction" - ] + "pages": ["guides/introduction"] }, { "group": "Frameworks", @@ -349,7 +303,6 @@ "guides/ai-agents/verify-news-article" ] }, - "guides/cursor-rules", "guides/frameworks/drizzle", "guides/frameworks/prisma", "guides/frameworks/sequin", @@ -436,9 +389,7 @@ }, { "group": "Migration guides", - "pages": [ - "migration-mergent" - ] + "pages": ["migration-mergent"] }, { "group": "Community packages", @@ -459,10 +410,7 @@ "href": "https://trigger.dev" }, "api": { - "openapi": [ - "openapi.yml", - "v3-openapi.yaml" - ], + "openapi": ["openapi.yml", "v3-openapi.yaml"], "playground": { "display": "simple" } @@ -675,6 +623,10 @@ { "source": "/management/projects/runs", "destination": "/management/overview" + }, + { + "source": "/guides/cursor-rules", + "destination": "/mcp-agent-rules" } ] -} \ No newline at end of file +} diff --git a/docs/mcp-agent-rules.mdx b/docs/mcp-agent-rules.mdx new file mode 100644 index 0000000000..84dbd019b4 --- /dev/null +++ b/docs/mcp-agent-rules.mdx @@ -0,0 +1,116 @@ +--- +title: "Agent rules" +sidebarTitle: "Agent rules" +description: "Learn how to use the Trigger.dev agent rules with the MCP server" +tag: "new" +--- + +## What are Trigger.dev agent rules? + +Trigger.dev agent rules are comprehensive instruction sets that guide AI assistants to write optimal Trigger.dev code. These rules ensure your AI assistant understands best practices, current APIs, and recommended patterns when working with Trigger.dev projects. + +## Installation + +Install the agent rules with the following command: + +```bash +npx trigger.dev@latest install-rules +``` + +## Available rule sets + +We provide five specialized rule sets, each optimized for different aspects of Trigger.dev development: + +| Rule set | Tokens | Description | GitHub | +|:---------|:-------|:------------|:------------| +| **Basic tasks** | 1,200 | Essential rules for writing basic Trigger.dev tasks and fundamental patterns | [View](https://github.com/triggerdotdev/trigger.dev/blob/main/rules/4.0.0/basic-tasks.md) | +| **Advanced tasks** | 3,000 | Comprehensive rules for complex workflows, error handling, and advanced task patterns | [View](https://github.com/triggerdotdev/trigger.dev/blob/main/rules/4.0.0/advanced-tasks.md) | +| **Scheduled tasks** | 780 | Specialized guidance for cron jobs, scheduled workflows, and time-based triggers | [View](https://github.com/triggerdotdev/trigger.dev/blob/main/rules/4.0.0/scheduled-tasks.md) | +| **Configuration** | 1,900 | Complete guide for trigger.config.ts setup, environment configuration, and project structure | [View](https://github.com/triggerdotdev/trigger.dev/blob/main/rules/4.0.0/config.md) | +| **Realtime** | 1,700 | Using Trigger.dev Realtime features and frontend integration patterns | [View](https://github.com/triggerdotdev/trigger.dev/blob/main/rules/4.0.0/realtime.md) | + +## Claude Code subagent + +For Claude Code users, we provide a subagent called `trigger-dev-expert` that's an expert at writing well-structured Trigger.dev code. + +### Installation + +The subagent is available as an option when running the rules installation command. Select "Claude Code" as your client and choose to include the subagent when prompted. + +### Usage + +Activate the subagent in your prompts by requesting it explicitly: + +```markdown +use the trigger-dev-expert subagent to create a trigger.dev job that accepts a video url, processes it with ffmpeg to extract the audio, runs the audio through a text-to-speech API like openai, and then uploads both the transcription and the audio to s3 +``` + +The subagent works best when combined with the appropriate rule sets installed alongside it, providing both high-level architectural guidance and detailed implementation knowledge. + +## Supported AI clients + +The Trigger.dev rules work across a wide range of AI coding assistants and editors: + +| Client | Rule activation | Docs | +|:--------|:----------------|:--------------| +| **Cursor** | Automatic when working in trigger directories | [Link](https://docs.cursor.com/en/context/rules#rules/) | +| **Claude Code** | Context-aware activation + custom subagent | [Link](https://docs.anthropic.com/en/docs/claude-code) | +| **VSCode Copilot** | Integration with GitHub Copilot chat | [Link](https://code.visualstudio.com/docs/copilot/overview) | +| **Windsurf** | Automatic activation in Trigger.dev projects | [Link](https://docs.windsurf.com/windsurf/cascade/memories#rules) | +| **Gemini CLI** | Command-line integration | [Link](https://ai.google.dev/gemini-api/docs) | +| **Cline** | Automatic context detection | [Link](https://github.com/cline/cline) | +| **Sourcegraph AMP** | Code intelligence integration | [Link](https://sourcegraph.com/docs) | +| **Kilo** | Custom rule integration | [Link](https://kilocode.ai/docs/advanced-usage/custom-rules) | +| **Ruler** | Rule management | [Link](https://github.com/intellectronica/ruler) | +| **AGENTS.md** | Universal format for OpenAI Codex, Jules, OpenCode, etc. | | + +### Rule activation behavior + +Different AI tools handle rules differently: + +- **Automatic Activation**: Cursor, Windsurf, VSCode Copilot, and Cline automatically apply relevant rules when working in Trigger.dev projects or when `trigger.config.ts` is detected +- **Context-Aware**: Claude Code intelligently applies rules based on the current context and file types +- **Manual Integration**: AGENTS.md clients and others append rules to configuration files for manual activation + +## Keeping rules updated + +Trigger.dev rules are regularly updated to reflect new features, API changes, and best practices. The CLI includes automatic update detection. + +### Automatic update notifications + +When running `npx trigger.dev@latest dev`, you'll receive notifications when newer rule versions are available with a simple update command. + +### Manual updates + +Update rules anytime with: + +```bash +npx trigger.dev@latest install-rules +``` + +The update process replaces existing rules without creating duplicates, keeping your configuration files clean and organized. + +### Why updates matter + +- **Current API patterns**: Access the latest Trigger.dev APIs and features +- **Performance optimizations**: Benefit from improved patterns and practices +- **Deprecated pattern avoidance**: Prevent AI assistants from generating outdated code +- **New feature support**: Immediate access to newly released capabilities + +## Getting started + +1. Install the rules: + +```bash +npx trigger.dev@latest install-rules +``` + +2. Follow the prompts to install the rules for your AI client. + +3. Consider installing the `trigger-dev-expert` subagent if using Claude Code. + +## Next steps + +- [Install the MCP server](/mcp-introduction) for complete Trigger.dev integration +- [Explore MCP tools](/mcp-tools) for project management and task execution + From e3e96dfe667ac3b59f4af5e2c0cba73d6c1222c4 Mon Sep 17 00:00:00 2001 From: James Ritchie Date: Fri, 22 Aug 2025 15:04:41 +0100 Subject: [PATCH 09/10] Adds redirect for the CLI path to work --- docs/docs.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/docs.json b/docs/docs.json index ff40ec41bf..358bf039b2 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -627,6 +627,10 @@ { "source": "/guides/cursor-rules", "destination": "/mcp-agent-rules" + }, + { + "source": "/agents/rules/overview", + "destination": "/mcp-agent-rules" } ] } From b162c8d2cb80ee8251b7c168762d6b505d848436 Mon Sep 17 00:00:00 2001 From: James Ritchie Date: Fri, 22 Aug 2025 15:11:54 +0100 Subject: [PATCH 10/10] Adds subagent install image --- docs/images/claude-code-subagent.png | Bin 0 -> 109578 bytes docs/mcp-agent-rules.mdx | 2 ++ 2 files changed, 2 insertions(+) create mode 100644 docs/images/claude-code-subagent.png diff --git a/docs/images/claude-code-subagent.png b/docs/images/claude-code-subagent.png new file mode 100644 index 0000000000000000000000000000000000000000..0adf0d5c3c22924c00509cd48cec5ccb3d340757 GIT binary patch literal 109578 zcmZ6xRa6{Yu(nA8!QG{yad&ruOK=IUjk|l}?h@SHf(4i0n&7U%-D#xp`OZIQ&CHs+ zUG>&})~fen@4BdHRb^Q;WMX6(7#K8pIVp7*7`R&)m`}rq@c(7JJC-B=3nFbab=-B7 z6a_&}4y>l;PG%OY-VV3+B9zwd?#_a2Y+hbotX^EK zPOesL90CFYZ0wwDoSZEGRj|1EIJ%p9vpBj@{SV^*W=L7Mfn05z-EEv4$^VCGYUbqO zE<#E9pHBY2a0_pn|CjFQ_P_1_X9U~-C~O?8>}>z1{C^@rRU2;$dmSko2Mb5H|Cl0_ z9Gtwo|36vx|08qra8a`TPeW|~+tGj4u>C*Y{1^N`?piqhXQ}Id-WBoU<-ouox7kQa zs>(}BlB>EpS=!iJz`)2wr)3~$rmkWKU42wU!hJ@OTy?z-15QpODkLn_F)n zr*C7iMnQ)y6vrgNm0mKbQp08|D*Q(3fX}e8mA|6qHX!f%&)_ufOFo=LLA1_GW-ap(|30k z{$cu9tzYe_5ffjmXy1nuubo73(nLE9ic;tvIVrr2lND1&CZEOr-t^LlC~@Eo0*Fe@ zZA|z%?I?I&L_BmGQih`;k`+2b1q}t;=F%n$xDfMmC_{Rgv~zjp^gY`5XZai;=de6w zU|GD}RCKOc@C2J#OxfRoG?&y;`z2hrvUve|^^zaY=AUFw#DoMmEn~Q(W+7=EWioIo z>kVnXRg?xD1i}1$R)TfCztB&9^`09Jsnw;?$-*<9_2o?&lUpji{1|3*+e7hxD|aaV z@qpct$eB*fqG-b=hoX9FL4@_E#dY6VxgJepi9MVImv^|202++BZyJQS4Py`_;w$@z+HdkltWN&`26$p*;i5e&-#6ys^||v;B6Rw)PxXPXXISij6NP`oQ*FS z;uyyWZ2g!}7#VWJ0deyvWE)BNBnERdfv<{VIJcn^h0gTo3PE8>gz8^w3h!01G*Qze z{fhLCt&XYP(K|nTNIVu9S!4R5fP>Z8k;?mh8;FESEC-nR2@}Ey1|_@&a?y_ZbGA9# zkwxM729CDvt_|A}0+29DU=+Sc%Mumat19A>;Kjtq(iD|e@>EJ_GE^gLCEAL&lsK07 zs@AI(%<6FCO@3W3+?)+Qrsu}^4fqZJ8_O_3G{{lP`0JL;V{zon7Q1;I>j?2)#Eyv> zhr|T3qG&m;M!Z09M^s1b$*6yyS)=<;fu%1bQSpQ2Cfa6vW?rTw4Ye!E_CQa<$U&RE zpDtwWssIAI(StqDUG$x)UB{hgmx60XZ`f|we?VX&!JgYq88j5i1=WWhL9srEnaYUk$hj4cV&4?QFy_2C)P-SW9VYy)~i{KbJ8rd?% zgQ!0iX+~+&)MzPq(Moz!>PfuGwsN(lFQs1QoU3u?N(pp-$8*M7_96Rp`zqC%TKZZE zjK&_dw&AuVr!0%hws1TeJn3uLE%q(yEg)OI1tT>?TrT9CfwG@PnySj`oeYDgnjU`l zs`u{q@uvuj^_3Xb+uRe}uiQ{#AL1A8DZ4v0HBAs>&YzOHipvV4(ues5Za3n{bP1+n z(sGZP2yPzkBWoEuOWW_(`Ag?TCC8TT=pykwSph%(Nq=xkI>FmTn8@_UJrlKA`Y&Wx z9n{jyFfQ26bk^KU=M-I3LH>XLtHMAsWtunL|+&f63u@GzPzopdi4&(YdlN^YDxgjgcbiyq z>cnx&5bb>ijj1lP�QVFE_2Ygn9a1wH8(KZuoN~oGvS;zPm|9Z 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�vF6y;FXH3ny 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