-
-
Notifications
You must be signed in to change notification settings - Fork 790
docs: MCP Server 2.0 #2385
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
docs: MCP Server 2.0 #2385
Conversation
|
WalkthroughAdds a new "MCP Server" navigation group to docs/docs.json (placed after the "CLI" group and before "Using the Dashboard") containing pages ["mcp-introduction", "mcp-tools", "mcp-agent-rules"]. Adds three new documentation pages: docs/mcp-introduction.mdx, docs/mcp-tools.mdx, and docs/mcp-agent-rules.mdx. Removes the guides/cursor-rules page from the Guides & examples section. Adds redirects: /guides/cursor-rules -> /mcp-agent-rules and /agents/rules/overview -> /mcp-agent-rules. No code or public API changes. Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Tip 🔌 Remote MCP (Model Context Protocol) integration is now available!Pro plan users can now connect to remote MCP servers from the Integrations page. Connect with popular remote MCPs such as Notion and Linear to add more context to your reviews and chats. 📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro 💡 Knowledge Base configuration:
You can enable these sources in your CodeRabbit configuration. 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
✨ Finishing Touches🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR/Issue comments)Type Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🧹 Nitpick comments (8)
docs/mcp-tools.mdx (5)
198-201
: Standardize duration types and document accepted formats.Current types mix “string | datetime” and “string | integer” without specifying units. Make formats explicit and use consistent nomenclature.
- <ParamField query="delay" type="string | datetime" optional> - The delay before the task run is executed + <ParamField query="delay" type="string | number | datetime" optional> + The delay before the task run is executed. Accepts human-readable durations (e.g., "10m", "2h"), ISO 8601 datetimes, or a number of milliseconds. </ParamField> @@ - <ParamField query="ttl" type="string | integer" default="10m"> - The time to live of the task run. If the run doesn't start executing within this time, it will - be automatically cancelled. + <ParamField query="ttl" type="string | number" default="10m"> + The time to live of the task run. If the run doesn't start executing within this time, it will + be automatically cancelled. Accepts human-readable durations (e.g., "10m") or a number of seconds. </ParamField>Also applies to: 217-220
215-216
: Tighten tag constraints wording.Make the constraints explicit and unambiguous.
- Tags to add to the task run. Must be less than 128 characters and cannot have more than 5 + Tags to add to the task run. Up to 5 tags; each tag must be fewer than 128 characters.
194-201
: Demonstrate nested queue option in the example payload.You document queue.name as a nested property; show it in the example to avoid ambiguity.
"arguments": { "projectRef": "proj_abc123", "taskId": "email-notification", "payload": "{\"email\": \"user@example.com\", \"subject\": \"Hello World\"}", "options": { + "queue": { "name": "high" }, "tags": ["urgent"], "maxAttempts": 3 } }
Also applies to: 224-239
465-467
: Use integer for list_deployments limit to match list_runs.Maintain consistency with list_runs (limit: integer).
-<ParamField query="limit" type="number" optional> +<ParamField query="limit" type="integer" optional>
525-527
: Good warning placement.Clear, actionable note about dev-only limitations. Consider cross-linking to the Introduction page’s dev-only section later if you add one.
docs/mcp-introduction.mdx (3)
56-56
: Fix spacing and improve wording in Authentication section.There’s a missing space after the period. Also “tool call” can be simplified.
-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. +You can use the MCP server without authentication with the `search_docs` tool, but for any other tool 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.
82-95
: Add OS-specific note for configuration paths.Paths shown are macOS-centric for some clients. Add an info callout to set expectations for Linux/Windows users.
| **opencode** | user, project | `~/.config/opencode/opencode.json` (user) or `./opencode.json` (project) | [opencode MCP Docs](https://opencode.ai/docs/mcp-servers/) | +<Callout type="info"> + Configuration file paths vary by OS. Paths listed here are examples (often macOS). Refer to each client’s documentation for Linux and Windows equivalents. +</Callout>
176-184
: Brand consistency: capitalize Trigger.dev in examples.Minor polish to keep the brand capitalization consistent.
-- `"Search the trigger docs for a ffmpeg example"` +- `"Search the Trigger.dev docs for an ffmpeg example"`
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (3)
docs/docs.json
(1 hunks)docs/mcp-introduction.mdx
(1 hunks)docs/mcp-tools.mdx
(1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
- GitHub Check: Analyze (actions)
- GitHub Check: Analyze (javascript-typescript)
🔇 Additional comments (3)
docs/mcp-tools.mdx (1)
333-336
: Confirm whether the list_runs cursor is an opaque token.Docs state the cursor “starts with run_”. Many APIs return opaque cursors that should not be parsed. If this API returns an opaque cursor, remove the prefix guidance.
Would you verify against the Runs API docs/schema and update this description if the cursor is opaque?
docs/mcp-introduction.mdx (1)
100-115
: Manual configuration looks correct and consistent with “trigger” server name.Command/args map cleanly to the documented installer behavior.
docs/docs.json (1)
182-188
: Navigation insertion looks correct and matches the new pages.“MCP Server” group appears after “CLI” and before “Using the Dashboard”, and pages reference existing MDX slugs.
<ParamField query="payload" type="string" required> | ||
The payload to trigger the task with, must be a valid JSON string | ||
</ParamField> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Clarify payload type to accept object input (not only stringified JSON).
Many MCP clients can pass structured JSON objects directly. Documenting only "string" can cause confusion.
-<ParamField query="payload" type="string" required>
- The payload to trigger the task with, must be a valid JSON string
-</ParamField>
+<ParamField query="payload" type="object | string" required>
+ The payload to trigger the task with. Prefer a JSON object; if a string is provided, it must be valid stringified JSON.
+</ParamField>
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
<ParamField query="payload" type="string" required> | |
The payload to trigger the task with, must be a valid JSON string | |
</ParamField> | |
<ParamField query="payload" type="object | string" required> | |
The payload to trigger the task with. Prefer a JSON object; if a string is provided, it must be valid stringified JSON. | |
</ParamField> |
🤖 Prompt for AI Agents
In docs/mcp-tools.mdx around lines 187 to 189, the ParamField currently
documents the payload as a string; update the documentation to clarify that the
payload can be either a JSON object or a stringified JSON and give guidance:
indicate the accepted types (object | string), say that clients may pass a
structured JSON object directly or a JSON string, and note any server-side
expectation (e.g., will parse strings into objects) and validation requirements
so consumers know both formats are supported.
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.
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.
6dd2e30
to
160cc90
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
♻️ Duplicate comments (1)
docs/mcp-tools.mdx (1)
187-189
: Clarify payload type and guidance (clients can pass objects directly).Many MCP clients can pass structured JSON objects directly. Limiting to "string" is misleading. Update the type and guidance to prefer objects, while accepting stringified JSON.
-<ParamField query="payload" type="string" required> - The payload to trigger the task with, must be a valid JSON string -</ParamField> +<ParamField query="payload" type="object | string" required> + The payload to trigger the task with. Prefer a JSON object; if a string is provided, it must be valid stringified JSON (the server will parse it). +</ParamField>
🧹 Nitpick comments (6)
docs/mcp-tools.mdx (3)
231-236
: Show object payload in example to reflect preferred usage.Demonstrate passing a structured JSON object rather than a stringified blob.
- "payload": "{\"email\": \"user@example.com\", \"subject\": \"Hello World\"}", + "payload": { "email": "user@example.com", "subject": "Hello World" },
465-467
: Make limit an integer for consistency with list_runs.Use integer (not number) and state the max clearly.
-<ParamField query="limit" type="number" optional> - The number of deployments to return, defaults to 20 (max 100) +<ParamField query="limit" type="integer" optional> + The number of deployments to return, defaults to 20 (maximum 100) </ParamField>
22-26
: Minor punctuation for consistency in example queries.End each bullet with punctuation for consistency; optional style polish.
-**Usage Examples:** - -- "How do I create a scheduled task?" -- "webhook examples" -- "deployment configuration" -- "error handling patterns" +**Usage Examples:** + +- "How do I create a scheduled task?" +- "webhook examples." +- "deployment configuration." +- "error handling patterns."docs/mcp-introduction.mdx (3)
82-95
: Add OS note about configuration file locations.Paths listed are macOS-centric and may differ on Linux/Windows. Add a short callout to prevent confusion. The installer abstracts this, but manual setup users may benefit.
@@ | **opencode** | user, project | `~/.config/opencode/opencode.json` (user) or `./opencode.json` (project) | [opencode MCP Docs](https://opencode.ai/docs/mcp-servers/) | | +<Callout type="info"> + The configuration paths shown above are for macOS and may differ on Linux or Windows. The `install-mcp` wizard handles OS-specific paths automatically. For manual configuration, see each client’s documentation. +</Callout>
176-176
: Use “an ffmpeg” (article agreement).Minor grammar improvement.
-- `"Search the trigger docs for a ffmpeg example"` +- `"Search the trigger docs for an ffmpeg example"`
42-42
: Verify default tag text won’t go stale.“default: latest or v4-beta” is time-sensitive and may become inaccurate. Consider simplifying to “default: latest” unless you plan to keep this updated.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (3)
docs/docs.json
(1 hunks)docs/mcp-introduction.mdx
(1 hunks)docs/mcp-tools.mdx
(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
- docs/docs.json
🧰 Additional context used
🪛 LanguageTool
docs/mcp-introduction.mdx
[grammar] ~31-~31: There might be a mistake here.
Context: ...Selecting which MCP clients to configure 2. Choosing installation scope (user, proje...
(QB_NEW_EN)
[grammar] ~32-~32: There might be a mistake here.
Context: ...allation scope (user, project, or local) 3. Automatically configuring the selected c...
(QB_NEW_EN)
docs/mcp-tools.mdx
[grammar] ~23-~23: There might be a mistake here.
Context: ... a scheduled task?" - "webhook examples" - "deployment configuration" - "error hand...
(QB_NEW_EN)
[grammar] ~24-~24: There might be a mistake here.
Context: ...k examples" - "deployment configuration" - "error handling patterns" `...
(QB_NEW_EN)
|
||
## 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. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fix missing space after period and tighten phrasing.
There’s a missing space after the period. Also clarify “tool call”.
-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.
+You can use the MCP server without authentication with the `search_docs` tool, but for any other tools 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 your MCP client.
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
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. | |
You can use the MCP server without authentication with the `search_docs` tool, but for any other tools 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 your MCP client. |
🤖 Prompt for AI Agents
In docs/mcp-introduction.mdx around line 56, fix the missing space after the
period and tighten the phrasing by replacing "tool call" with "tool invocation"
(or "tool request") and clarifying the authentication requirement; e.g., ensure
the sentence reads that `search_docs` can be used without authentication, but
any other tool invocation requires authenticating the MCP server via the same
method as the Trigger.dev CLI, and keep the following sentence about being
prompted to authenticate via the MCP client on first use.
<ParamField query="delay" type="string | datetime" optional> | ||
The delay before the task run is executed | ||
</ParamField> | ||
<ParamField query="idempotencyKey" type="string" optional> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Tighten and align parameter types for options (delay/maxDuration/tags/ttl).
- delay: “datetime” as a type is ambiguous; name the accepted formats.
- maxDuration: should be integer seconds for clarity.
- tags: specify item type.
- ttl: clarify accepted duration formats when string vs integer.
- <ParamField query="delay" type="string | datetime" optional>
- The delay before the task run is executed
+ <ParamField query="delay" type="string | ISO 8601 datetime" optional>
+ The delay before the task run is executed. String formats like "30s", "10m", "2h" are accepted, or an ISO 8601 datetime to schedule at an exact time.
</ParamField>
@@
- <ParamField query="maxDuration" type="number" optional>
- The maximum duration in seconds of the task run
+ <ParamField query="maxDuration" type="integer" optional>
+ The maximum duration of the task run in seconds
</ParamField>
@@
- <ParamField query="tags" type="array" optional>
- Tags to add to the task run. Must be less than 128 characters and cannot have more than 5
+ <ParamField query="tags" type="array<string>" optional>
+ Tags to add to the task run. Each tag must be less than 128 characters; maximum of 5 tags.
</ParamField>
@@
- <ParamField query="ttl" type="string | integer" default="10m">
- The time to live of the task run. If the run doesn't start executing within this time, it will
- be automatically cancelled.
+ <ParamField query="ttl" type="string | integer" default="10m">
+ The time to live for the task run. If the run doesn't start within this time, it will be automatically cancelled.
+ When a string, supports durations like "30s", "10m", "2h". When an integer, interpreted as seconds.
</ParamField>
Also applies to: 211-213, 214-216, 217-220
🤖 Prompt for AI Agents
In docs/mcp-tools.mdx around lines 198-201 and also at 211-213, 214-216,
217-220, the param type declarations are ambiguous; update them to precise types
and accepted formats: for delay, replace the vague "datetime" with explicit
accepted formats (e.g., ISO 8601 datetime string or integer seconds since epoch)
or a union of those; for maxDuration, change to integer (seconds) only; for
tags, declare as an array of strings (string[]); for ttl, clarify it accepts
either an integer (seconds) or a standardized duration string (e.g., ISO 8601
duration) and document which is preferred. Ensure each ParamField type and
description reflect these exact formats and indicate which units are required.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (1)
docs/docs.json (1)
193-198
: Group tag vs tags: likely redundant/invalid combinationMintlify documents “tag” (string) on groups; “tags” (array) isn’t shown in the schema. Keeping both risks schema validation issues. Suggest using only “tag”: "v4". (mintlify.com)
If “tags” isn’t required elsewhere, simplify:
- "tags": ["v4"], - "tag": "v4" + "tag": "v4"If you truly need multiple badges, consider encoding them into the group title (e.g., “Self-hosting (v4, OSS)”) or splitting into separate labeled groups.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (2)
docs/docs.json
(12 hunks)docs/mcp-agent-rules.mdx
(1 hunks)
✅ Files skipped from review due to trivial changes (1)
- docs/mcp-agent-rules.mdx
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Analyze (javascript-typescript)
🔇 Additional comments (7)
docs/docs.json (7)
13-14
: Contextual menu: ‘claude’ option is validMintlify supports contextual.options entries: copy, view, chatgpt, claude, perplexity. Your usage is valid. (mintlify.com)
165-168
: MCP Server nav group: placement and slugs look goodNice addition and position (after CLI and before Using the Dashboard). Assuming the new MDX pages ship in this PR, this should render correctly.
413-416
: OpenAPI configuration supports arrays; playground “simple” is validUsing an array for api.openapi is supported; “simple” is an allowed playground display mode. Looks correct. (mintlify.com)
627-630
: Redirect: /guides/cursor-rules → /mcp-agent-rulesGood redirect for backward compatibility after moving content into the new MCP section.
111-113
: No navigation changes neededThe shell check confirms that the file lives at
docs/vercel-integration.mdx
(and not underdocs/deployment/
), so the existing"pages": ["vercel-integration"]
entry is correct and will resolve without 404s in production.
39-40
: Keep the existingtasks/schemaTask
slugVerified that
docs/tasks/schemaTask.mdx
exists (the kebab-case variants do not), so the camelCase slug is correct and will not 404. You can safely ignore the earlier suggestion to switch to kebab-case.Likely an incorrect or invalid review comment.
165-168
: Missing redirects and stale references detected• New MCP pages and OpenAPI specs are present
- docs/mcp-introduction.mdx, docs/mcp-tools.mdx, docs/mcp-agent-rules.mdx, docs/management/overview.mdx: FOUND
- docs/openapi.yml, docs/v3-openapi.yaml: FOUND
• Redirect entries are missing in docs/docs.json for:
/mcp-agent-rules
/management/overview
Please add corresponding redirect objects under the JSON array, for example:
{ "source": "/mcp-agent-rules", "destination": "/mcp-agent-rules" }, { "source": "/management/overview", "destination": "/management/overview" }• Stale references to the removed cursor-rules guide found:
- docs/guides/introduction.mdx (line 29):
[Cursor rules](/guides/cursor-rules)
- docs/docs.json (line 628):
"source": "/guides/cursor-rules"
Remove or update these links to avoid broken references.
• Playground “simple” display is supported per Mintlify’s API Playground docs—no change needed there. [ critical_fixes_required ]
…uide # Conflicts: # docs/docs.json
No description provided.