diff --git a/mcps/grok_com_vercel/tools/list_agent_run_projects.json b/mcps/grok_com_vercel/tools/list_agent_run_projects.json new file mode 100644 index 0000000000000000000000000000000000000000..9fa532a82763882be9ad7a220e236df86f0d6fce --- /dev/null +++ b/mcps/grok_com_vercel/tools/list_agent_run_projects.json @@ -0,0 +1,47 @@ +{ + "name": "list_agent_run_projects", + "description": "List projects in a Vercel team that have Agent Runs observability data, with run counts and average duration rollups. Use this to discover which projects have agent activity before drilling into a project.", + "inputSchema": { + "type": "object", + "properties": { + "teamId": { + "type": "string", + "description": "The team ID to get the deployment events for. Alternatively the team slug can be used.\nTeam IDs start with \"team_\".\nIf you do not know the team ID or slug, it can be found through these mechanism:\n- Read the file .vercel/project.json if it exists and extract the orgId\n- Use the `list_teams` tool" + }, + "environment": { + "type": "string", + "description": "Agent run environment, usually \"production\" or \"preview\". Defaults to \"production\"." + }, + "period": { + "type": "string", + "enum": [ + "5m", + "15m", + "1h", + "6h", + "12h", + "1d", + "3d", + "7d", + "14d", + "30d", + "90d" + ], + "description": "Preset time range. Ignored when both from and to are provided. Defaults to the dashboard endpoint default." + }, + "from": { + "type": "string", + "description": "Start time as ISO 8601, Unix seconds, Unix milliseconds, or a relative duration like \"12h\". Must be used with to." + }, + "to": { + "type": "string", + "description": "End time as ISO 8601, Unix seconds, Unix milliseconds, a relative duration like \"1h\", or \"now\". Must be used with from." + } + }, + "required": [ + "teamId" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/grok_com_vercel/tools/list_agent_runs.json b/mcps/grok_com_vercel/tools/list_agent_runs.json new file mode 100644 index 0000000000000000000000000000000000000000..888218aa7b0bae149e4fc2f41aac17353da17441 --- /dev/null +++ b/mcps/grok_com_vercel/tools/list_agent_runs.json @@ -0,0 +1,64 @@ +{ + "name": "list_agent_runs", + "description": "List Agent Runs for a Vercel project, including summaries, status, model, trigger, token usage, time series, and pagination metadata. Use this to find recent or matching production agent runs before fetching detail or trace data.", + "inputSchema": { + "type": "object", + "properties": { + "teamId": { + "type": "string", + "description": "The team ID to get the deployment events for. Alternatively the team slug can be used.\nTeam IDs start with \"team_\".\nIf you do not know the team ID or slug, it can be found through these mechanism:\n- Read the file .vercel/project.json if it exists and extract the orgId\n- Use the `list_teams` tool" + }, + "projectId": { + "type": "string", + "description": "The project ID to get the deployment events for. Alternatively the project slug can be used.\nProject IDs start with \"prj_\".\nIf you do not know the project ID or slug, it can be found through these mechanism:\n- Read the file .vercel/project.json if it exists and extract the projectId\n- Use the `list_projects` tool" + }, + "environment": { + "type": "string", + "description": "Agent run environment, usually \"production\" or \"preview\". Defaults to \"production\"." + }, + "period": { + "type": "string", + "enum": [ + "5m", + "15m", + "1h", + "6h", + "12h", + "1d", + "3d", + "7d", + "14d", + "30d", + "90d" + ], + "description": "Preset time range. Ignored when both from and to are provided. Defaults to the dashboard endpoint default." + }, + "from": { + "type": "string", + "description": "Start time as ISO 8601, Unix seconds, Unix milliseconds, or a relative duration like \"12h\". Must be used with to." + }, + "to": { + "type": "string", + "description": "End time as ISO 8601, Unix seconds, Unix milliseconds, a relative duration like \"1h\", or \"now\". Must be used with from." + }, + "page": { + "type": "number", + "description": "1-based page number. Defaults to 1." + }, + "pageSize": { + "type": "number", + "description": "Number of runs per page. The dashboard endpoint caps this at 100." + }, + "search": { + "type": "string", + "description": "Server-side title search for Agent Runs." + } + }, + "required": [ + "teamId", + "projectId" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/grok_com_vercel/tools/list_deployments.json b/mcps/grok_com_vercel/tools/list_deployments.json new file mode 100644 index 0000000000000000000000000000000000000000..7e70a5d118a5f4c5f51835695f964eb8a0024121 --- /dev/null +++ b/mcps/grok_com_vercel/tools/list_deployments.json @@ -0,0 +1,31 @@ +{ + "name": "list_deployments", + "description": "List all deployments for a project", + "inputSchema": { + "type": "object", + "properties": { + "projectId": { + "type": "string", + "description": "The project ID to list deployments for." + }, + "teamId": { + "type": "string", + "description": "The team ID to list deployments for." + }, + "since": { + "type": "number", + "description": "Get deployments created after this timestamp." + }, + "until": { + "type": "number", + "description": "Get deployments created before this timestamp." + } + }, + "required": [ + "projectId", + "teamId" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/grok_com_vercel/tools/list_projects.json b/mcps/grok_com_vercel/tools/list_projects.json new file mode 100644 index 0000000000000000000000000000000000000000..a45b8840f4d7e032824678ec1a2b156d3fdabeeb --- /dev/null +++ b/mcps/grok_com_vercel/tools/list_projects.json @@ -0,0 +1,18 @@ +{ + "name": "list_projects", + "description": "List all Vercel projects for a user (with a max of 50). Use this to help discover the Project ID of the project that the user is working on.", + "inputSchema": { + "type": "object", + "properties": { + "teamId": { + "type": "string", + "description": "The team ID to get the deployment events for. Alternatively the team slug can be used.\nTeam IDs start with \"team_\".\nIf you do not know the team ID or slug, it can be found through these mechanism:\n- Read the file .vercel/project.json if it exists and extract the orgId\n- Use the `list_teams` tool" + } + }, + "required": [ + "teamId" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/grok_com_vercel/tools/list_teams.json b/mcps/grok_com_vercel/tools/list_teams.json new file mode 100644 index 0000000000000000000000000000000000000000..b6bdf304d6bb28eb26b00e4e9a3029a10c37523b --- /dev/null +++ b/mcps/grok_com_vercel/tools/list_teams.json @@ -0,0 +1,9 @@ +{ + "name": "list_teams", + "description": "List the user's teams. Use this to help discover the Team ID of the teams that the user is part of.", + "inputSchema": { + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "object", + "properties": {} + } +} \ No newline at end of file diff --git a/mcps/grok_com_vercel/tools/list_toolbar_threads.json b/mcps/grok_com_vercel/tools/list_toolbar_threads.json new file mode 100644 index 0000000000000000000000000000000000000000..5155434b0e51d06335ae17ddf1de664eada4ec59 --- /dev/null +++ b/mcps/grok_com_vercel/tools/list_toolbar_threads.json @@ -0,0 +1,50 @@ +{ + "name": "list_toolbar_threads", + "description": "List Vercel toolbar comment threads for a team. Returns unresolved threads by default. Use this to see feedback, comments, or discussions on deployments and previews.", + "inputSchema": { + "type": "object", + "properties": { + "teamId": { + "type": "string", + "description": "The team ID to get the deployment events for. Alternatively the team slug can be used.\nTeam IDs start with \"team_\".\nIf you do not know the team ID or slug, it can be found through these mechanism:\n- Read the file .vercel/project.json if it exists and extract the orgId\n- Use the `list_teams` tool" + }, + "projectId": { + "type": "string", + "description": "Filter by project ID" + }, + "branch": { + "type": "string", + "description": "Filter by branch name" + }, + "status": { + "type": "string", + "enum": [ + "resolved", + "unresolved" + ], + "description": "Filter by status. Defaults to unresolved." + }, + "page": { + "type": "string", + "description": "Filter by page path (e.g. /docs) or glob (e.g. /docs*)" + }, + "search": { + "type": "string", + "description": "Search text in comments" + }, + "limit": { + "type": "number", + "description": "Maximum number of results to return. Defaults to 20." + }, + "offset": { + "type": "number", + "description": "Pagination offset" + } + }, + "required": [ + "teamId" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/grok_com_vercel/tools/reply_to_toolbar_thread.json b/mcps/grok_com_vercel/tools/reply_to_toolbar_thread.json new file mode 100644 index 0000000000000000000000000000000000000000..484672c803297d0ef026a66d2c582e48c4eed01f --- /dev/null +++ b/mcps/grok_com_vercel/tools/reply_to_toolbar_thread.json @@ -0,0 +1,28 @@ +{ + "name": "reply_to_toolbar_thread", + "description": "Add a reply message to an existing toolbar thread.", + "inputSchema": { + "type": "object", + "properties": { + "threadId": { + "type": "string", + "description": "The thread ID to reply to" + }, + "teamId": { + "type": "string", + "description": "The team ID to get the deployment events for. Alternatively the team slug can be used.\nTeam IDs start with \"team_\".\nIf you do not know the team ID or slug, it can be found through these mechanism:\n- Read the file .vercel/project.json if it exists and extract the orgId\n- Use the `list_teams` tool" + }, + "markdown": { + "type": "string", + "description": "The message content in markdown format" + } + }, + "required": [ + "threadId", + "teamId", + "markdown" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/grok_com_vercel/tools/search_vercel_documentation.json b/mcps/grok_com_vercel/tools/search_vercel_documentation.json new file mode 100644 index 0000000000000000000000000000000000000000..e11ef50a3548c14fc50c46e2c1a6ea6ea0c48ceb --- /dev/null +++ b/mcps/grok_com_vercel/tools/search_vercel_documentation.json @@ -0,0 +1,23 @@ +{ + "name": "search_vercel_documentation", + "description": "Search the Vercel documentation.\n \n Use this tool to answer any questions about Vercel’s platform, features, and best practices, including:\n - Core Concepts: Projects, Deployments, Git Integration, Preview Deployments, Environments\n - Frontend & Frameworks: Next.js, SvelteKit, Nuxt, Astro, Remix, frameworks configuration and optimization\n - APIs: REST API, Vercel SDK, Build Output API\n - Compute: Fluid Compute, Functions, Routing Middleware, Cron Jobs, OG Image Generation, Sandbox, Data Cache\n - AI: Vercel AI SDK, AI Gateway, MCP, v0\n - Performance & Delivery: Edge Network, Caching, CDN, Image Optimization, Headers, Redirects, Rewrites\n - Pricing: Plans, Spend Management, Billing\n - Security: Audit Logs, Firewall, Bot Management, BotID, OIDC, RBAC, Secure Compute, 2FA\n - Storage: Blog, Edge Config", + "inputSchema": { + "type": "object", + "properties": { + "topic": { + "type": "string", + "description": "Topic to focus the documentation search on (e.g., 'routing', 'data-fetching')." + }, + "tokens": { + "type": "number", + "description": "Maximum number of tokens to include in the result. Default is 2500.", + "default": 2500 + } + }, + "required": [ + "topic" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/grok_com_vercel/tools/web_fetch_vercel_url.json b/mcps/grok_com_vercel/tools/web_fetch_vercel_url.json new file mode 100644 index 0000000000000000000000000000000000000000..c0711a165e9fd9954f3e0430933707fcc4a1615b --- /dev/null +++ b/mcps/grok_com_vercel/tools/web_fetch_vercel_url.json @@ -0,0 +1,18 @@ +{ + "name": "web_fetch_vercel_url", + "description": "Fetches a Vercel deployment URL and returns the response.\n This is useful if another web fetch tool returns 401 (Unauthorized) or 403 (Forbidden) for a Vercel URL.\n Supports accessing deployments protected with Vercel Authentication which the user of this MCP server has access to.", + "inputSchema": { + "type": "object", + "properties": { + "url": { + "type": "string", + "description": "The full URL of the Vercel deployment including the path (e.g. \"https://myapp.vercel.app/my-page\")." + } + }, + "required": [ + "url" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/microsoft-learn/tools/microsoft_code_sample_search.json b/mcps/microsoft-learn/tools/microsoft_code_sample_search.json new file mode 100644 index 0000000000000000000000000000000000000000..534581749e14b9362e7996b598b6c6380355b0f7 --- /dev/null +++ b/mcps/microsoft-learn/tools/microsoft_code_sample_search.json @@ -0,0 +1,21 @@ +{ + "name": "microsoft_code_sample_search", + "description": "Search for code snippets and examples in official Microsoft Learn documentation. This tool retrieves relevant code samples from Microsoft documentation pages providing developers with practical implementation examples and best practices for Microsoft/Azure products and services related coding tasks. This tool will help you use the **LATEST OFFICIAL** code snippets to empower coding capabilities.\n\n## When to Use This Tool\n- When you are going to provide sample Microsoft/Azure related code snippets in your answers.\n- When you are **generating any Microsoft/Azure related code**.\n\n## Usage Pattern\nInput a descriptive query, or SDK/class/method name to retrieve related code samples. The optional parameter `language` can help to filter results.\n\nEligible values for `language` parameter include: csharp javascript typescript python powershell azurecli al sql java kusto cpp go rust ruby php", + "inputSchema": { + "type": "object", + "properties": { + "query": { + "description": "a descriptive query, SDK name, method name or code snippet related to Microsoft/Azure products, services, platforms, developer tools, frameworks, APIs or SDKs", + "type": "string" + }, + "language": { + "description": "Optional parameter specifying the programming language of code snippets to retrieve. Can significantly improve search quality if provided. Eligible values: csharp javascript typescript python powershell azurecli al sql java kusto cpp go rust ruby php", + "type": "string", + "default": null + } + }, + "required": [ + "query" + ] + } +} \ No newline at end of file diff --git a/mcps/microsoft-learn/tools/microsoft_docs_fetch.json b/mcps/microsoft-learn/tools/microsoft_docs_fetch.json new file mode 100644 index 0000000000000000000000000000000000000000..6ef83ca26c8ddaa24018024906b1ea2171cc5fda --- /dev/null +++ b/mcps/microsoft-learn/tools/microsoft_docs_fetch.json @@ -0,0 +1,16 @@ +{ + "name": "microsoft_docs_fetch", + "description": "Fetch and convert a Microsoft Learn documentation webpage to markdown format. This tool retrieves the latest complete content of Microsoft documentation webpages including Azure, .NET, Microsoft 365, and other Microsoft technologies.\n\n## When to Use This Tool\n- When search results provide incomplete information or truncated content\n- When you need complete step-by-step procedures or tutorials\n- When you need troubleshooting sections, prerequisites, or detailed explanations\n- When search results reference a specific page that seems highly relevant\n- For comprehensive guides that require full context\n\n## Usage Pattern\nUse this tool AFTER microsoft_docs_search when you identify specific high-value pages that need complete content. The search tool gives you an overview; this tool gives you the complete picture.\n\n## URL Requirements\n- The URL must be a valid HTML documentation webpage from the microsoft.com domain\n- Binary files (PDF, DOCX, images, etc.) are not supported\n\n## Output Format\nmarkdown with headings, code blocks, tables, and links preserved.", + "inputSchema": { + "type": "object", + "properties": { + "url": { + "description": "URL of the Microsoft documentation page to read", + "type": "string" + } + }, + "required": [ + "url" + ] + } +} \ No newline at end of file diff --git a/mcps/microsoft-learn/tools/microsoft_docs_search.json b/mcps/microsoft-learn/tools/microsoft_docs_search.json new file mode 100644 index 0000000000000000000000000000000000000000..98c926b4bcabc3409b109f81e94a274ff82fb817 --- /dev/null +++ b/mcps/microsoft-learn/tools/microsoft_docs_search.json @@ -0,0 +1,14 @@ +{ + "name": "microsoft_docs_search", + "description": "Search official Microsoft/Azure documentation to find the most relevant and trustworthy content for a user's query. This tool returns up to 10 high-quality content chunks (each max 500 tokens), extracted from Microsoft Learn and other official sources. Each result includes the article title, URL, and a self-contained content excerpt optimized for fast retrieval and reasoning. Always use this tool to quickly ground your answers in accurate, first-party Microsoft/Azure knowledge.\n\n## Follow-up Pattern\nTo ensure completeness, use microsoft_docs_fetch when high-value pages are identified by search. The fetch tool complements search by providing the full detail. This is a required step for comprehensive results.", + "inputSchema": { + "type": "object", + "properties": { + "query": { + "description": "a query or topic about Microsoft/Azure products, services, platforms, developer tools, frameworks, or APIs", + "type": "string", + "default": null + } + } + } +} \ No newline at end of file diff --git a/mcps/playwright/tools/browser_click.json b/mcps/playwright/tools/browser_click.json new file mode 100644 index 0000000000000000000000000000000000000000..26c304bbaefad81159d83a071603d0fb331e38d3 --- /dev/null +++ b/mcps/playwright/tools/browser_click.json @@ -0,0 +1,49 @@ +{ + "name": "browser_click", + "description": "Perform click on a web page", + "inputSchema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "element": { + "description": "Human-readable element description used to obtain permission to interact with the element", + "type": "string" + }, + "target": { + "type": "string", + "description": "Exact target element reference from the page snapshot, or a unique element selector" + }, + "doubleClick": { + "description": "Whether to perform a double click instead of a single click", + "type": "boolean" + }, + "button": { + "description": "Button to click, defaults to left", + "type": "string", + "enum": [ + "left", + "right", + "middle" + ] + }, + "modifiers": { + "description": "Modifier keys to press", + "type": "array", + "items": { + "type": "string", + "enum": [ + "Alt", + "Control", + "ControlOrMeta", + "Meta", + "Shift" + ] + } + } + }, + "required": [ + "target" + ], + "additionalProperties": false + } +} \ No newline at end of file diff --git a/mcps/playwright/tools/browser_close.json b/mcps/playwright/tools/browser_close.json new file mode 100644 index 0000000000000000000000000000000000000000..bada2d4ccc56f70b1a94047a5e4d9199823f6507 --- /dev/null +++ b/mcps/playwright/tools/browser_close.json @@ -0,0 +1,10 @@ +{ + "name": "browser_close", + "description": "Close the page", + "inputSchema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": {}, + "additionalProperties": false + } +} \ No newline at end of file diff --git a/mcps/playwright/tools/browser_console_messages.json b/mcps/playwright/tools/browser_console_messages.json new file mode 100644 index 0000000000000000000000000000000000000000..d52eda3a27199c49f826937365f3b0f90bf24a65 --- /dev/null +++ b/mcps/playwright/tools/browser_console_messages.json @@ -0,0 +1,33 @@ +{ + "name": "browser_console_messages", + "description": "Returns all console messages", + "inputSchema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "level": { + "default": "info", + "description": "Level of the console messages to return. Each level includes the messages of more severe levels. Defaults to \"info\".", + "type": "string", + "enum": [ + "error", + "warning", + "info", + "debug" + ] + }, + "all": { + "description": "Return all console messages since the beginning of the session, not just since the last navigation. Defaults to false.", + "type": "boolean" + }, + "filename": { + "description": "Filename to save the console messages to. If not provided, messages are returned as text.", + "type": "string" + } + }, + "required": [ + "level" + ], + "additionalProperties": false + } +} \ No newline at end of file diff --git a/mcps/playwright/tools/browser_drag.json b/mcps/playwright/tools/browser_drag.json new file mode 100644 index 0000000000000000000000000000000000000000..2c2031a73f44343e29a4ff9ff1500dc4dd0e55a1 --- /dev/null +++ b/mcps/playwright/tools/browser_drag.json @@ -0,0 +1,31 @@ +{ + "name": "browser_drag", + "description": "Perform drag and drop between two elements", + "inputSchema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "startElement": { + "description": "Human-readable source element description used to obtain the permission to interact with the element", + "type": "string" + }, + "startTarget": { + "type": "string", + "description": "Exact target element reference from the page snapshot, or a unique element selector" + }, + "endElement": { + "description": "Human-readable target element description used to obtain the permission to interact with the element", + "type": "string" + }, + "endTarget": { + "type": "string", + "description": "Exact target element reference from the page snapshot, or a unique element selector" + } + }, + "required": [ + "startTarget", + "endTarget" + ], + "additionalProperties": false + } +} \ No newline at end of file diff --git a/mcps/playwright/tools/browser_drop.json b/mcps/playwright/tools/browser_drop.json new file mode 100644 index 0000000000000000000000000000000000000000..9308188d9825be98ab491046e33454e88f5080a3 --- /dev/null +++ b/mcps/playwright/tools/browser_drop.json @@ -0,0 +1,39 @@ +{ + "name": "browser_drop", + "description": "Drop files or MIME-typed data onto an element, as if dragged from outside the page. At least one of \"paths\" or \"data\" must be provided.", + "inputSchema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "element": { + "description": "Human-readable element description used to obtain permission to interact with the element", + "type": "string" + }, + "target": { + "type": "string", + "description": "Exact target element reference from the page snapshot, or a unique element selector" + }, + "paths": { + "description": "Absolute paths to files to drop onto the element.", + "type": "array", + "items": { + "type": "string" + } + }, + "data": { + "description": "Data to drop, as a map of MIME type to string value (e.g. {\"text/plain\": \"hello\", \"text/uri-list\": \"https://example.com\"}).", + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "target" + ], + "additionalProperties": false + } +} \ No newline at end of file diff --git a/mcps/playwright/tools/browser_evaluate.json b/mcps/playwright/tools/browser_evaluate.json new file mode 100644 index 0000000000000000000000000000000000000000..6681ae0a8d2576e71cba29addb5c42665d840ed0 --- /dev/null +++ b/mcps/playwright/tools/browser_evaluate.json @@ -0,0 +1,30 @@ +{ + "name": "browser_evaluate", + "description": "Evaluate JavaScript expression on page or element", + "inputSchema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "element": { + "description": "Human-readable element description used to obtain permission to interact with the element", + "type": "string" + }, + "target": { + "description": "Exact target element reference from the page snapshot, or a unique element selector", + "type": "string" + }, + "function": { + "type": "string", + "description": "() => { /* code */ } or (element) => { /* code */ } when element is provided" + }, + "filename": { + "description": "Filename to save the result to. If not provided, result is returned as text.", + "type": "string" + } + }, + "required": [ + "function" + ], + "additionalProperties": false + } +} \ No newline at end of file diff --git a/mcps/playwright/tools/browser_file_upload.json b/mcps/playwright/tools/browser_file_upload.json new file mode 100644 index 0000000000000000000000000000000000000000..cc3ba6529efbfdf2634361ea09a0c52e8c78fce7 --- /dev/null +++ b/mcps/playwright/tools/browser_file_upload.json @@ -0,0 +1,18 @@ +{ + "name": "browser_file_upload", + "description": "Upload one or multiple files", + "inputSchema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "paths": { + "description": "The absolute paths to the files to upload. Can be single file or multiple files. If omitted, file chooser is cancelled.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + } +} \ No newline at end of file diff --git a/mcps/playwright/tools/browser_fill_form.json b/mcps/playwright/tools/browser_fill_form.json new file mode 100644 index 0000000000000000000000000000000000000000..444aa8db737483843feee751a6801f06a4746421 --- /dev/null +++ b/mcps/playwright/tools/browser_fill_form.json @@ -0,0 +1,57 @@ +{ + "name": "browser_fill_form", + "description": "Fill multiple form fields", + "inputSchema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "element": { + "description": "Human-readable element description used to obtain permission to interact with the element", + "type": "string" + }, + "target": { + "type": "string", + "description": "Exact target element reference from the page snapshot, or a unique element selector" + }, + "name": { + "type": "string", + "description": "Human-readable field name" + }, + "type": { + "type": "string", + "enum": [ + "textbox", + "checkbox", + "radio", + "combobox", + "slider" + ], + "description": "Type of the field" + }, + "value": { + "type": "string", + "description": "Value to fill in the field. If the field is a checkbox, the value should be `true` or `false`. If the field is a combobox, the value should be the text of the option." + } + }, + "required": [ + "target", + "name", + "type", + "value" + ], + "additionalProperties": false + }, + "description": "Fields to fill in" + } + }, + "required": [ + "fields" + ], + "additionalProperties": false + } +} \ No newline at end of file diff --git a/mcps/playwright/tools/browser_handle_dialog.json b/mcps/playwright/tools/browser_handle_dialog.json new file mode 100644 index 0000000000000000000000000000000000000000..c204f252fba4dca5535686bd755307eba258c156 --- /dev/null +++ b/mcps/playwright/tools/browser_handle_dialog.json @@ -0,0 +1,22 @@ +{ + "name": "browser_handle_dialog", + "description": "Handle a dialog", + "inputSchema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "accept": { + "type": "boolean", + "description": "Whether to accept the dialog." + }, + "promptText": { + "description": "The text of the prompt in case of a prompt dialog.", + "type": "string" + } + }, + "required": [ + "accept" + ], + "additionalProperties": false + } +} \ No newline at end of file diff --git a/mcps/playwright/tools/browser_hover.json b/mcps/playwright/tools/browser_hover.json new file mode 100644 index 0000000000000000000000000000000000000000..460114c99ad1a5865848bf4b8ea2a26bca0d2c4a --- /dev/null +++ b/mcps/playwright/tools/browser_hover.json @@ -0,0 +1,22 @@ +{ + "name": "browser_hover", + "description": "Hover over element on page", + "inputSchema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "element": { + "description": "Human-readable element description used to obtain permission to interact with the element", + "type": "string" + }, + "target": { + "type": "string", + "description": "Exact target element reference from the page snapshot, or a unique element selector" + } + }, + "required": [ + "target" + ], + "additionalProperties": false + } +} \ No newline at end of file diff --git a/mcps/playwright/tools/browser_navigate.json b/mcps/playwright/tools/browser_navigate.json new file mode 100644 index 0000000000000000000000000000000000000000..7567f13c0470167bb2cd5023daca742b77174498 --- /dev/null +++ b/mcps/playwright/tools/browser_navigate.json @@ -0,0 +1,18 @@ +{ + "name": "browser_navigate", + "description": "Navigate to a URL", + "inputSchema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "url": { + "type": "string", + "description": "The URL to navigate to" + } + }, + "required": [ + "url" + ], + "additionalProperties": false + } +} \ No newline at end of file diff --git a/mcps/playwright/tools/browser_navigate_back.json b/mcps/playwright/tools/browser_navigate_back.json new file mode 100644 index 0000000000000000000000000000000000000000..1f18123b41cd976bf3ebca506945e065dd8a2caa --- /dev/null +++ b/mcps/playwright/tools/browser_navigate_back.json @@ -0,0 +1,10 @@ +{ + "name": "browser_navigate_back", + "description": "Go back to the previous page in the history", + "inputSchema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": {}, + "additionalProperties": false + } +} \ No newline at end of file diff --git a/mcps/playwright/tools/browser_network_request.json b/mcps/playwright/tools/browser_network_request.json new file mode 100644 index 0000000000000000000000000000000000000000..095924bed495778a18f3dcf09b0218d31ad89cd6 --- /dev/null +++ b/mcps/playwright/tools/browser_network_request.json @@ -0,0 +1,34 @@ +{ + "name": "browser_network_request", + "description": "Returns full details (headers and body) of a single network request, or a single part if `part` is set. Use the number from browser_network_requests.", + "inputSchema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "index": { + "type": "integer", + "minimum": 1, + "maximum": 9007199254740991, + "description": "1-based index of the request, as printed by browser_network_requests." + }, + "part": { + "description": "Return only this part of the request. Omit to return full details.", + "type": "string", + "enum": [ + "request-headers", + "request-body", + "response-headers", + "response-body" + ] + }, + "filename": { + "description": "Filename to save the result to. If not provided, output is returned as text.", + "type": "string" + } + }, + "required": [ + "index" + ], + "additionalProperties": false + } +} \ No newline at end of file diff --git a/mcps/playwright/tools/browser_network_requests.json b/mcps/playwright/tools/browser_network_requests.json new file mode 100644 index 0000000000000000000000000000000000000000..7696e5cde19da00e081776ba71dfc44cc73c11a1 --- /dev/null +++ b/mcps/playwright/tools/browser_network_requests.json @@ -0,0 +1,27 @@ +{ + "name": "browser_network_requests", + "description": "Returns a numbered list of network requests since loading the page. Use browser_network_request with the number to get full details.", + "inputSchema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "static": { + "default": false, + "description": "Whether to include successful static resources like images, fonts, scripts, etc. Defaults to false.", + "type": "boolean" + }, + "filter": { + "description": "Only return requests whose URL matches this regexp (e.g. \"/api/.*user\").", + "type": "string" + }, + "filename": { + "description": "Filename to save the network requests to. If not provided, requests are returned as text.", + "type": "string" + } + }, + "required": [ + "static" + ], + "additionalProperties": false + } +} \ No newline at end of file diff --git a/mcps/playwright/tools/browser_press_key.json b/mcps/playwright/tools/browser_press_key.json new file mode 100644 index 0000000000000000000000000000000000000000..9a5cb912eda3c2a9e1ce8420d00d9302b7ec523d --- /dev/null +++ b/mcps/playwright/tools/browser_press_key.json @@ -0,0 +1,18 @@ +{ + "name": "browser_press_key", + "description": "Press a key on the keyboard", + "inputSchema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Name of the key to press or a character to generate, such as `ArrowLeft` or `a`" + } + }, + "required": [ + "key" + ], + "additionalProperties": false + } +} \ No newline at end of file diff --git a/mcps/playwright/tools/browser_resize.json b/mcps/playwright/tools/browser_resize.json new file mode 100644 index 0000000000000000000000000000000000000000..620ab6ffacb7be45f6053556d3e06bf167dea4df --- /dev/null +++ b/mcps/playwright/tools/browser_resize.json @@ -0,0 +1,23 @@ +{ + "name": "browser_resize", + "description": "Resize the browser window", + "inputSchema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "width": { + "type": "number", + "description": "Width of the browser window" + }, + "height": { + "type": "number", + "description": "Height of the browser window" + } + }, + "required": [ + "width", + "height" + ], + "additionalProperties": false + } +} \ No newline at end of file diff --git a/mcps/playwright/tools/browser_run_code_unsafe.json b/mcps/playwright/tools/browser_run_code_unsafe.json new file mode 100644 index 0000000000000000000000000000000000000000..ed7afe95c21817a9b8fd6e078a394a06e5079bae --- /dev/null +++ b/mcps/playwright/tools/browser_run_code_unsafe.json @@ -0,0 +1,19 @@ +{ + "name": "browser_run_code_unsafe", + "description": "Run a Playwright code snippet. Unsafe: executes arbitrary JavaScript in the Playwright server process and is RCE-equivalent.", + "inputSchema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "code": { + "description": "A JavaScript function containing Playwright code to execute. It will be invoked with a single argument, page, which you can use for any page interaction. For example: `async (page) => { await page.getByRole('button', { name: 'Submit' }).click(); return await page.title(); }`", + "type": "string" + }, + "filename": { + "description": "Load code from the specified file. If both code and filename are provided, code will be ignored.", + "type": "string" + } + }, + "additionalProperties": false + } +} \ No newline at end of file diff --git a/mcps/playwright/tools/browser_select_option.json b/mcps/playwright/tools/browser_select_option.json new file mode 100644 index 0000000000000000000000000000000000000000..2324c8018c62318723a181874f83a4aa67cdbb52 --- /dev/null +++ b/mcps/playwright/tools/browser_select_option.json @@ -0,0 +1,30 @@ +{ + "name": "browser_select_option", + "description": "Select an option in a dropdown", + "inputSchema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "element": { + "description": "Human-readable element description used to obtain permission to interact with the element", + "type": "string" + }, + "target": { + "type": "string", + "description": "Exact target element reference from the page snapshot, or a unique element selector" + }, + "values": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of values to select in the dropdown. This can be a single value or multiple values." + } + }, + "required": [ + "target", + "values" + ], + "additionalProperties": false + } +} \ No newline at end of file diff --git a/mcps/playwright/tools/browser_snapshot.json b/mcps/playwright/tools/browser_snapshot.json new file mode 100644 index 0000000000000000000000000000000000000000..c44c5d7792fe8ef7d57e0decbc26c9259b1fc157 --- /dev/null +++ b/mcps/playwright/tools/browser_snapshot.json @@ -0,0 +1,27 @@ +{ + "name": "browser_snapshot", + "description": "Capture accessibility snapshot of the current page, this is better than screenshot", + "inputSchema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "target": { + "description": "Exact target element reference from the page snapshot, or a unique element selector", + "type": "string" + }, + "filename": { + "description": "Save snapshot to markdown file instead of returning it in the response.", + "type": "string" + }, + "depth": { + "description": "Limit the depth of the snapshot tree", + "type": "number" + }, + "boxes": { + "description": "Include each element's bounding box as [box=x,y,width,height] in the snapshot. Coordinates are viewport-relative, in CSS pixels (Element.getBoundingClientRect)", + "type": "boolean" + } + }, + "additionalProperties": false + } +} \ No newline at end of file diff --git a/mcps/playwright/tools/browser_tabs.json b/mcps/playwright/tools/browser_tabs.json new file mode 100644 index 0000000000000000000000000000000000000000..f4918ed97fb4458aa315ff7dfb11d8a151259a3a --- /dev/null +++ b/mcps/playwright/tools/browser_tabs.json @@ -0,0 +1,32 @@ +{ + "name": "browser_tabs", + "description": "List, create, close, or select a browser tab.", + "inputSchema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "list", + "new", + "close", + "select" + ], + "description": "Operation to perform" + }, + "index": { + "description": "Tab index, used for close/select. If omitted for close, current tab is closed.", + "type": "number" + }, + "url": { + "description": "URL to navigate to in the new tab, used for new.", + "type": "string" + } + }, + "required": [ + "action" + ], + "additionalProperties": false + } +} \ No newline at end of file diff --git a/mcps/playwright/tools/browser_take_screenshot.json b/mcps/playwright/tools/browser_take_screenshot.json new file mode 100644 index 0000000000000000000000000000000000000000..b333041e2c0f711a9592acb90f73a2c110e025dd --- /dev/null +++ b/mcps/playwright/tools/browser_take_screenshot.json @@ -0,0 +1,39 @@ +{ + "name": "browser_take_screenshot", + "description": "Take a screenshot of the current page. You can't perform actions based on the screenshot, use browser_snapshot for actions.", + "inputSchema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "element": { + "description": "Human-readable element description used to obtain permission to interact with the element", + "type": "string" + }, + "target": { + "description": "Exact target element reference from the page snapshot, or a unique element selector", + "type": "string" + }, + "type": { + "default": "png", + "description": "Image format for the screenshot. Default is png.", + "type": "string", + "enum": [ + "png", + "jpeg" + ] + }, + "filename": { + "description": "File name to save the screenshot to. Defaults to `page-{timestamp}.{png|jpeg}` if not specified. Prefer relative file names to stay within the output directory.", + "type": "string" + }, + "fullPage": { + "description": "When true, takes a screenshot of the full scrollable page, instead of the currently visible viewport. Cannot be used with element screenshots.", + "type": "boolean" + } + }, + "required": [ + "type" + ], + "additionalProperties": false + } +} \ No newline at end of file diff --git a/mcps/playwright/tools/browser_type.json b/mcps/playwright/tools/browser_type.json new file mode 100644 index 0000000000000000000000000000000000000000..3ec2c71f28f79b71542158cb347a85aff840a138 --- /dev/null +++ b/mcps/playwright/tools/browser_type.json @@ -0,0 +1,35 @@ +{ + "name": "browser_type", + "description": "Type text into editable element", + "inputSchema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "element": { + "description": "Human-readable element description used to obtain permission to interact with the element", + "type": "string" + }, + "target": { + "type": "string", + "description": "Exact target element reference from the page snapshot, or a unique element selector" + }, + "text": { + "type": "string", + "description": "Text to type into the element" + }, + "submit": { + "description": "Whether to submit entered text (press Enter after)", + "type": "boolean" + }, + "slowly": { + "description": "Whether to type one character at a time. Useful for triggering key handlers in the page. By default entire text is filled in at once.", + "type": "boolean" + } + }, + "required": [ + "target", + "text" + ], + "additionalProperties": false + } +} \ No newline at end of file diff --git a/mcps/playwright/tools/browser_wait_for.json b/mcps/playwright/tools/browser_wait_for.json new file mode 100644 index 0000000000000000000000000000000000000000..5d2bbeb208b2a163a0f9cad9e94abe752f917c3b --- /dev/null +++ b/mcps/playwright/tools/browser_wait_for.json @@ -0,0 +1,23 @@ +{ + "name": "browser_wait_for", + "description": "Wait for text to appear or disappear or a specified time to pass", + "inputSchema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "time": { + "description": "The time to wait in seconds", + "type": "number" + }, + "text": { + "description": "The text to wait for", + "type": "string" + }, + "textGone": { + "description": "The text to wait for to disappear", + "type": "string" + } + }, + "additionalProperties": false + } +} \ No newline at end of file diff --git a/mcps/trigger/tools/cancel_run.json b/mcps/trigger/tools/cancel_run.json new file mode 100644 index 0000000000000000000000000000000000000000..0307804f0b8670bc199978cfd435b9e6a42b0df1 --- /dev/null +++ b/mcps/trigger/tools/cancel_run.json @@ -0,0 +1,41 @@ +{ + "name": "cancel_run", + "description": "Cancel a run. The run ID is the ID of the run that was triggered. It starts with run_", + "inputSchema": { + "type": "object", + "properties": { + "projectRef": { + "type": "string", + "description": "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, or if you pass the --project-ref option to the MCP server." + }, + "configPath": { + "type": "string", + "description": "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" + }, + "environment": { + "type": "string", + "enum": [ + "dev", + "staging", + "prod", + "preview" + ], + "description": "The environment to get tasks for", + "default": "dev" + }, + "branch": { + "type": "string", + "description": "The branch to get tasks for, only used for preview environments" + }, + "runId": { + "type": "string", + "description": "The ID of the run to get the details of, starts with run_" + } + }, + "required": [ + "runId" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/trigger/tools/create_project_in_org.json b/mcps/trigger/tools/create_project_in_org.json new file mode 100644 index 0000000000000000000000000000000000000000..51d2104d7a7bd025ed02dd3a5fb091aab360f8b0 --- /dev/null +++ b/mcps/trigger/tools/create_project_in_org.json @@ -0,0 +1,23 @@ +{ + "name": "create_project_in_org", + "description": "Create a new project in an organization. Only do this if the user wants to add Trigger.dev to an existing project. If there is already a trigger.config.ts file present, then you should not create a new project.", + "inputSchema": { + "type": "object", + "properties": { + "orgParam": { + "type": "string", + "description": "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." + }, + "name": { + "type": "string", + "description": "The name of the project to create." + } + }, + "required": [ + "orgParam", + "name" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/trigger/tools/create_prompt_override.json b/mcps/trigger/tools/create_prompt_override.json new file mode 100644 index 0000000000000000000000000000000000000000..8667c6d27ca1dfb8114cb2184caf7d8148981d7d --- /dev/null +++ b/mcps/trigger/tools/create_prompt_override.json @@ -0,0 +1,54 @@ +{ + "name": "create_prompt_override", + "description": "Create a dashboard override for a prompt. The override takes precedence over the current code version when resolving the prompt. Provide the full text content for the override.", + "inputSchema": { + "type": "object", + "properties": { + "projectRef": { + "type": "string", + "description": "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, or if you pass the --project-ref option to the MCP server." + }, + "configPath": { + "type": "string", + "description": "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" + }, + "environment": { + "type": "string", + "enum": [ + "dev", + "staging", + "prod", + "preview" + ], + "description": "The environment to get tasks for", + "default": "dev" + }, + "branch": { + "type": "string", + "description": "The branch to get tasks for, only used for preview environments" + }, + "slug": { + "type": "string", + "description": "The prompt slug" + }, + "textContent": { + "type": "string", + "description": "The full text content for the override" + }, + "model": { + "type": "string", + "description": "Optional model override" + }, + "commitMessage": { + "type": "string", + "description": "Optional commit message describing the change" + } + }, + "required": [ + "slug", + "textContent" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/trigger/tools/deploy.json b/mcps/trigger/tools/deploy.json new file mode 100644 index 0000000000000000000000000000000000000000..cb9b4783d49a16b8408b2baff79b01bb2ee30e2c --- /dev/null +++ b/mcps/trigger/tools/deploy.json @@ -0,0 +1,45 @@ +{ + "name": "deploy", + "description": "Deploy a project. Use this tool when you need to deploy a project. This will trigger a deployment for the project. This is a long running operation and including a progress token will allow you to display the progress to the user.", + "inputSchema": { + "type": "object", + "properties": { + "projectRef": { + "type": "string", + "description": "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, or if you pass the --project-ref option to the MCP server." + }, + "configPath": { + "type": "string", + "description": "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" + }, + "branch": { + "type": "string", + "description": "The branch to get tasks for, only used for preview environments" + }, + "environment": { + "type": "string", + "enum": [ + "staging", + "prod", + "preview" + ], + "description": "The environment to trigger the task in", + "default": "prod" + }, + "skipPromotion": { + "type": "boolean", + "description": "Skip promoting the deployment to the current deployment for the environment" + }, + "skipSyncEnvVars": { + "type": "boolean", + "description": "Skip syncing environment variables when using the syncEnvVars extension" + }, + "skipUpdateCheck": { + "type": "boolean", + "description": "Skip checking for @trigger.dev package updates" + } + }, + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/trigger/tools/dev_server_status.json b/mcps/trigger/tools/dev_server_status.json new file mode 100644 index 0000000000000000000000000000000000000000..22fe730922a9550488d57d363a1e86b1e9d5ea73 --- /dev/null +++ b/mcps/trigger/tools/dev_server_status.json @@ -0,0 +1,16 @@ +{ + "name": "dev_server_status", + "description": "Check the status of the dev server and view recent output. Shows whether it is stopped, starting, ready, or has errors, along with recent log lines.", + "inputSchema": { + "type": "object", + "properties": { + "lines": { + "type": "integer", + "default": 50, + "description": "Number of recent log lines to return. Defaults to 50." + } + }, + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/trigger/tools/get_current_worker.json b/mcps/trigger/tools/get_current_worker.json new file mode 100644 index 0000000000000000000000000000000000000000..77ed4434de31c5b91a4b016c18591dfae575f1b3 --- /dev/null +++ b/mcps/trigger/tools/get_current_worker.json @@ -0,0 +1,34 @@ +{ + "name": "get_current_worker", + "description": "Get the current worker for the project, including version and registered task slugs. Use get_task_schema to get the payload schema for a specific task.", + "inputSchema": { + "type": "object", + "properties": { + "projectRef": { + "type": "string", + "description": "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, or if you pass the --project-ref option to the MCP server." + }, + "configPath": { + "type": "string", + "description": "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" + }, + "environment": { + "type": "string", + "enum": [ + "dev", + "staging", + "prod", + "preview" + ], + "description": "The environment to get tasks for", + "default": "dev" + }, + "branch": { + "type": "string", + "description": "The branch to get tasks for, only used for preview environments" + } + }, + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/trigger/tools/get_prompt_versions.json b/mcps/trigger/tools/get_prompt_versions.json new file mode 100644 index 0000000000000000000000000000000000000000..e44c43855baa78300dcfbbcc2b839a0bd9fbe87d --- /dev/null +++ b/mcps/trigger/tools/get_prompt_versions.json @@ -0,0 +1,41 @@ +{ + "name": "get_prompt_versions", + "description": "List all versions for a specific prompt. Shows version number, labels (current, override, latest), source (code or dashboard), model, and content.", + "inputSchema": { + "type": "object", + "properties": { + "projectRef": { + "type": "string", + "description": "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, or if you pass the --project-ref option to the MCP server." + }, + "configPath": { + "type": "string", + "description": "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" + }, + "environment": { + "type": "string", + "enum": [ + "dev", + "staging", + "prod", + "preview" + ], + "description": "The environment to get tasks for", + "default": "dev" + }, + "branch": { + "type": "string", + "description": "The branch to get tasks for, only used for preview environments" + }, + "slug": { + "type": "string", + "description": "The prompt slug" + } + }, + "required": [ + "slug" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/trigger/tools/get_query_schema.json b/mcps/trigger/tools/get_query_schema.json new file mode 100644 index 0000000000000000000000000000000000000000..40f04cb4bdc72c864e3c419d7495733969978ac9 --- /dev/null +++ b/mcps/trigger/tools/get_query_schema.json @@ -0,0 +1,41 @@ +{ + "name": "get_query_schema", + "description": "Get the column schema for a specific TRQL table. Available tables: 'runs' (task execution data), 'metrics' (CPU, memory, custom metrics), 'llm_metrics' (LLM token usage, costs, latency). Returns columns, types, descriptions, and allowed values for the specified table.", + "inputSchema": { + "type": "object", + "properties": { + "projectRef": { + "type": "string", + "description": "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, or if you pass the --project-ref option to the MCP server." + }, + "configPath": { + "type": "string", + "description": "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" + }, + "environment": { + "type": "string", + "enum": [ + "dev", + "staging", + "prod", + "preview" + ], + "description": "The environment to get tasks for", + "default": "dev" + }, + "branch": { + "type": "string", + "description": "The branch to get tasks for, only used for preview environments" + }, + "table": { + "type": "string", + "description": "The table name to get the schema for (e.g. 'runs', 'metrics', 'llm_metrics')." + } + }, + "required": [ + "table" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/trigger/tools/get_run_details.json b/mcps/trigger/tools/get_run_details.json new file mode 100644 index 0000000000000000000000000000000000000000..3346c29fe4fa800f16abff322666fbfea7ff6ab3 --- /dev/null +++ b/mcps/trigger/tools/get_run_details.json @@ -0,0 +1,50 @@ +{ + "name": "get_run_details", + "description": "Get the details and trace of a run. Trace events are paginated — the first call returns run details and the first page of trace lines. Pass the returned cursor to fetch subsequent pages without re-fetching the trace. The run ID starts with run_.", + "inputSchema": { + "type": "object", + "properties": { + "projectRef": { + "type": "string", + "description": "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, or if you pass the --project-ref option to the MCP server." + }, + "configPath": { + "type": "string", + "description": "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" + }, + "environment": { + "type": "string", + "enum": [ + "dev", + "staging", + "prod", + "preview" + ], + "description": "The environment to get tasks for", + "default": "dev" + }, + "branch": { + "type": "string", + "description": "The branch to get tasks for, only used for preview environments" + }, + "runId": { + "type": "string", + "description": "The ID of the run to get the details of, starts with run_" + }, + "maxTraceLines": { + "type": "integer", + "description": "The maximum number of trace lines per page. Defaults to 200. Use the `cursor` parameter to fetch subsequent pages.", + "default": 200 + }, + "cursor": { + "type": "string", + "description": "Pagination cursor returned from a previous get_run_details call. Pass this to fetch the next page of trace events." + } + }, + "required": [ + "runId" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/trigger/tools/get_span_details.json b/mcps/trigger/tools/get_span_details.json new file mode 100644 index 0000000000000000000000000000000000000000..662dcbc08ea1a7773e78819df3530d17c0431a76 --- /dev/null +++ b/mcps/trigger/tools/get_span_details.json @@ -0,0 +1,46 @@ +{ + "name": "get_span_details", + "description": "Get detailed information about a specific span within a run trace. Use get_run_details first to see the trace and find span IDs (shown as [spanId] in the trace output). Returns timing, properties/attributes, error info, and for AI spans: model, tokens, cost, and response data.", + "inputSchema": { + "type": "object", + "properties": { + "projectRef": { + "type": "string", + "description": "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, or if you pass the --project-ref option to the MCP server." + }, + "configPath": { + "type": "string", + "description": "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" + }, + "environment": { + "type": "string", + "enum": [ + "dev", + "staging", + "prod", + "preview" + ], + "description": "The environment to get tasks for", + "default": "dev" + }, + "branch": { + "type": "string", + "description": "The branch to get tasks for, only used for preview environments" + }, + "runId": { + "type": "string", + "description": "The ID of the run to get the details of, starts with run_" + }, + "spanId": { + "type": "string", + "description": "The span ID to get details for. You can find span IDs in the trace output from get_run_details — they appear as [spanId] before each span message." + } + }, + "required": [ + "runId", + "spanId" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/trigger/tools/get_task_schema.json b/mcps/trigger/tools/get_task_schema.json new file mode 100644 index 0000000000000000000000000000000000000000..04eccd555c1af6875e5975292b9fd129c79d7126 --- /dev/null +++ b/mcps/trigger/tools/get_task_schema.json @@ -0,0 +1,41 @@ +{ + "name": "get_task_schema", + "description": "Get the payload schema for a specific task. Use get_current_worker first to see available task slugs.", + "inputSchema": { + "type": "object", + "properties": { + "projectRef": { + "type": "string", + "description": "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, or if you pass the --project-ref option to the MCP server." + }, + "configPath": { + "type": "string", + "description": "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" + }, + "environment": { + "type": "string", + "enum": [ + "dev", + "staging", + "prod", + "preview" + ], + "description": "The environment to get tasks for", + "default": "dev" + }, + "branch": { + "type": "string", + "description": "The branch to get tasks for, only used for preview environments" + }, + "taskSlug": { + "type": "string", + "description": "The task slug/identifier to get the payload schema for. Use get_current_worker to see available tasks." + } + }, + "required": [ + "taskSlug" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/trigger/tools/initialize_project.json b/mcps/trigger/tools/initialize_project.json new file mode 100644 index 0000000000000000000000000000000000000000..fa65f544485cbed60a66e4185690e7b4a93bd986 --- /dev/null +++ b/mcps/trigger/tools/initialize_project.json @@ -0,0 +1,31 @@ +{ + "name": "initialize_project", + "description": "Initialize Trigger.dev in your project. This will create a new project in the organization you select and add Trigger.dev to your project.", + "inputSchema": { + "type": "object", + "properties": { + "orgParam": { + "type": "string", + "description": "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." + }, + "projectRef": { + "type": "string", + "description": "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, or if you pass the --project-ref option to the MCP server." + }, + "projectName": { + "type": "string", + "description": "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." + }, + "cwd": { + "type": "string", + "description": "The current working directory of the project" + } + }, + "required": [ + "orgParam", + "projectName" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/trigger/tools/list_dashboards.json b/mcps/trigger/tools/list_dashboards.json new file mode 100644 index 0000000000000000000000000000000000000000..ffdce22a38389eee821ee6e1698f530725939806 --- /dev/null +++ b/mcps/trigger/tools/list_dashboards.json @@ -0,0 +1,34 @@ +{ + "name": "list_dashboards", + "description": "List available built-in dashboards with their widgets. Each dashboard contains pre-built queries for common metrics like run success rates, costs, LLM usage, and more. Use run_dashboard to execute a dashboard's queries.", + "inputSchema": { + "type": "object", + "properties": { + "projectRef": { + "type": "string", + "description": "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, or if you pass the --project-ref option to the MCP server." + }, + "configPath": { + "type": "string", + "description": "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" + }, + "environment": { + "type": "string", + "enum": [ + "dev", + "staging", + "prod", + "preview" + ], + "description": "The environment to get tasks for", + "default": "dev" + }, + "branch": { + "type": "string", + "description": "The branch to get tasks for, only used for preview environments" + } + }, + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/trigger/tools/list_deploys.json b/mcps/trigger/tools/list_deploys.json new file mode 100644 index 0000000000000000000000000000000000000000..9bcc053cffef1f295a0caad7a3675502c8c650c1 --- /dev/null +++ b/mcps/trigger/tools/list_deploys.json @@ -0,0 +1,68 @@ +{ + "name": "list_deploys", + "description": "List all deploys for a project. Use this tool when you need to search for a deploy or list all deploys for a project.", + "inputSchema": { + "type": "object", + "properties": { + "projectRef": { + "type": "string", + "description": "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, or if you pass the --project-ref option to the MCP server." + }, + "configPath": { + "type": "string", + "description": "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" + }, + "branch": { + "type": "string", + "description": "The branch to get tasks for, only used for preview environments" + }, + "environment": { + "type": "string", + "enum": [ + "staging", + "prod", + "preview" + ], + "description": "The environment to trigger the task in", + "default": "prod" + }, + "from": { + "type": "string", + "description": "The date to start the search from, in ISO 8601 format" + }, + "to": { + "type": "string", + "description": "The date to end the search, in ISO 8601 format" + }, + "period": { + "type": "string", + "description": "The period to search within (e.g. 1d, 7d, 3h, etc.)" + }, + "status": { + "type": "string", + "enum": [ + "PENDING", + "BUILDING", + "DEPLOYING", + "DEPLOYED", + "FAILED", + "CANCELED", + "TIMED_OUT" + ], + "description": "Filter deployments that are in this status" + }, + "cursor": { + "type": "string", + "description": "The deployment ID to start the search from, to get the next page" + }, + "limit": { + "type": "number", + "minimum": 1, + "maximum": 100, + "description": "The number of deployments to return, defaults to 20 (max 100)" + } + }, + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/trigger/tools/list_orgs.json b/mcps/trigger/tools/list_orgs.json new file mode 100644 index 0000000000000000000000000000000000000000..90590802fc676e84a51770f24ce48e4992a70aec --- /dev/null +++ b/mcps/trigger/tools/list_orgs.json @@ -0,0 +1,9 @@ +{ + "name": "list_orgs", + "description": "List all organizations for the current user. Useful when looking up an org slug or ID.", + "inputSchema": { + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "object", + "properties": {} + } +} \ No newline at end of file diff --git a/mcps/trigger/tools/list_preview_branches.json b/mcps/trigger/tools/list_preview_branches.json new file mode 100644 index 0000000000000000000000000000000000000000..7c6cb90b548f6d44be42998da324eba7d55d12b8 --- /dev/null +++ b/mcps/trigger/tools/list_preview_branches.json @@ -0,0 +1,19 @@ +{ + "name": "list_preview_branches", + "description": "List all preview branches for a project. Use this tool when you need to search for a preview branch or list all preview branches for a project.", + "inputSchema": { + "type": "object", + "properties": { + "projectRef": { + "type": "string", + "description": "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, or if you pass the --project-ref option to the MCP server." + }, + "configPath": { + "type": "string", + "description": "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" + } + }, + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/trigger/tools/list_profiles.json b/mcps/trigger/tools/list_profiles.json new file mode 100644 index 0000000000000000000000000000000000000000..363e6388535ec13bd06012ca61474023d681fc43 --- /dev/null +++ b/mcps/trigger/tools/list_profiles.json @@ -0,0 +1,9 @@ +{ + "name": "list_profiles", + "description": "List all configured CLI profiles. Shows which profile is currently active.", + "inputSchema": { + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "object", + "properties": {} + } +} \ No newline at end of file diff --git a/mcps/trigger/tools/list_projects.json b/mcps/trigger/tools/list_projects.json new file mode 100644 index 0000000000000000000000000000000000000000..d5c46e47e46a18d27eb2040e4b032860096f0248 --- /dev/null +++ b/mcps/trigger/tools/list_projects.json @@ -0,0 +1,9 @@ +{ + "name": "list_projects", + "description": "List all projects for the current user, useful for when searching for a project and for looking up a projectRef", + "inputSchema": { + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "object", + "properties": {} + } +} \ No newline at end of file diff --git a/mcps/trigger/tools/list_prompts.json b/mcps/trigger/tools/list_prompts.json new file mode 100644 index 0000000000000000000000000000000000000000..7338c78a0be14f2c06f1e2f7c6e17dbad60a66e7 --- /dev/null +++ b/mcps/trigger/tools/list_prompts.json @@ -0,0 +1,34 @@ +{ + "name": "list_prompts", + "description": "List all managed prompts in the project environment. Shows slug, current version, override status, and version count.", + "inputSchema": { + "type": "object", + "properties": { + "projectRef": { + "type": "string", + "description": "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, or if you pass the --project-ref option to the MCP server." + }, + "configPath": { + "type": "string", + "description": "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" + }, + "environment": { + "type": "string", + "enum": [ + "dev", + "staging", + "prod", + "preview" + ], + "description": "The environment to get tasks for", + "default": "dev" + }, + "branch": { + "type": "string", + "description": "The branch to get tasks for, only used for preview environments" + } + }, + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/trigger/tools/list_runs.json b/mcps/trigger/tools/list_runs.json new file mode 100644 index 0000000000000000000000000000000000000000..80912f9f82defd63eb7baf2433595cfd1049bc20 --- /dev/null +++ b/mcps/trigger/tools/list_runs.json @@ -0,0 +1,98 @@ +{ + "name": "list_runs", + "description": "List all runs for a project. Use this tool when you need to search for a run or list all runs for a project.", + "inputSchema": { + "type": "object", + "properties": { + "projectRef": { + "type": "string", + "description": "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, or if you pass the --project-ref option to the MCP server." + }, + "configPath": { + "type": "string", + "description": "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" + }, + "environment": { + "type": "string", + "enum": [ + "dev", + "staging", + "prod", + "preview" + ], + "description": "The environment to get tasks for", + "default": "dev" + }, + "branch": { + "type": "string", + "description": "The branch to get tasks for, only used for preview environments" + }, + "cursor": { + "type": "string", + "description": "The cursor to use for pagination, starts with run_" + }, + "limit": { + "type": "integer", + "description": "The number of runs to list in a single page. Up to 100" + }, + "status": { + "type": "string", + "enum": [ + "PENDING_VERSION", + "QUEUED", + "DEQUEUED", + "EXECUTING", + "WAITING", + "COMPLETED", + "CANCELED", + "FAILED", + "CRASHED", + "SYSTEM_FAILURE", + "DELAYED", + "EXPIRED", + "TIMED_OUT" + ], + "description": "Filter for runs with this run status" + }, + "taskIdentifier": { + "type": "string", + "description": "Filter for runs that match this task identifier" + }, + "version": { + "type": "string", + "description": "Filter for runs that match this version, e.g. 20250808.3" + }, + "tag": { + "type": "string", + "description": "Filter for runs that include this tag" + }, + "from": { + "type": "string", + "description": "Filter for runs created after this ISO 8601 timestamp" + }, + "to": { + "type": "string", + "description": "Filter for runs created before this ISO 8601 timestamp" + }, + "period": { + "type": "string", + "description": "Filter for runs created in the last N time period. e.g. 7d, 30d, 365d" + }, + "machine": { + "type": "string", + "enum": [ + "micro", + "small-1x", + "small-2x", + "medium-1x", + "medium-2x", + "large-1x", + "large-2x" + ], + "description": "Filter for runs that match this machine preset" + } + }, + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/trigger/tools/promote_prompt_version.json b/mcps/trigger/tools/promote_prompt_version.json new file mode 100644 index 0000000000000000000000000000000000000000..b45b775cd662a2c0cd51f0fc076f58748fd5dd58 --- /dev/null +++ b/mcps/trigger/tools/promote_prompt_version.json @@ -0,0 +1,47 @@ +{ + "name": "promote_prompt_version", + "description": "Promote a prompt version to be the current active version. Only code-sourced versions can be promoted — dashboard overrides must use the override tools instead.", + "inputSchema": { + "type": "object", + "properties": { + "projectRef": { + "type": "string", + "description": "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, or if you pass the --project-ref option to the MCP server." + }, + "configPath": { + "type": "string", + "description": "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" + }, + "environment": { + "type": "string", + "enum": [ + "dev", + "staging", + "prod", + "preview" + ], + "description": "The environment to get tasks for", + "default": "dev" + }, + "branch": { + "type": "string", + "description": "The branch to get tasks for, only used for preview environments" + }, + "slug": { + "type": "string", + "description": "The prompt slug" + }, + "version": { + "type": "integer", + "exclusiveMinimum": 0, + "description": "The version number to promote to current" + } + }, + "required": [ + "slug", + "version" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/trigger/tools/query.json b/mcps/trigger/tools/query.json new file mode 100644 index 0000000000000000000000000000000000000000..2925e24a2f8e18ea03da476727c6898538adc5b5 --- /dev/null +++ b/mcps/trigger/tools/query.json @@ -0,0 +1,63 @@ +{ + "name": "query", + "description": "Execute a TRQL query against your Trigger.dev data. TRQL is a SQL-style query language for analyzing runs, metrics, and LLM usage. Call the get_query_schema tool first to discover available tables and columns before writing a query.", + "inputSchema": { + "type": "object", + "properties": { + "projectRef": { + "type": "string", + "description": "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, or if you pass the --project-ref option to the MCP server." + }, + "configPath": { + "type": "string", + "description": "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" + }, + "environment": { + "type": "string", + "enum": [ + "dev", + "staging", + "prod", + "preview" + ], + "description": "The environment to get tasks for", + "default": "dev" + }, + "branch": { + "type": "string", + "description": "The branch to get tasks for, only used for preview environments" + }, + "query": { + "type": "string", + "description": "The TRQL query to execute. TRQL is a SQL-style language for analyzing your Trigger.dev data. Use the get_query_schema tool first to discover available tables and columns." + }, + "scope": { + "type": "string", + "enum": [ + "environment", + "project", + "organization" + ], + "default": "environment", + "description": "Data access scope. 'environment' (default) limits to the current environment, 'project' spans all environments, 'organization' spans all projects." + }, + "period": { + "type": "string", + "description": "Time period shorthand, e.g. '1h', '7d', '30d'. Mutually exclusive with from/to." + }, + "from": { + "type": "string", + "description": "Start of time range (ISO 8601). Must be paired with 'to'." + }, + "to": { + "type": "string", + "description": "End of time range (ISO 8601). Must be paired with 'from'." + } + }, + "required": [ + "query" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/trigger/tools/reactivate_prompt_override.json b/mcps/trigger/tools/reactivate_prompt_override.json new file mode 100644 index 0000000000000000000000000000000000000000..f2a55de333922c086ee91c6cf5d329cb828c32fd --- /dev/null +++ b/mcps/trigger/tools/reactivate_prompt_override.json @@ -0,0 +1,47 @@ +{ + "name": "reactivate_prompt_override", + "description": "Reactivate a previous dashboard-sourced version as the active override. Use get_prompt_versions to find dashboard versions that can be reactivated.", + "inputSchema": { + "type": "object", + "properties": { + "projectRef": { + "type": "string", + "description": "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, or if you pass the --project-ref option to the MCP server." + }, + "configPath": { + "type": "string", + "description": "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" + }, + "environment": { + "type": "string", + "enum": [ + "dev", + "staging", + "prod", + "preview" + ], + "description": "The environment to get tasks for", + "default": "dev" + }, + "branch": { + "type": "string", + "description": "The branch to get tasks for, only used for preview environments" + }, + "slug": { + "type": "string", + "description": "The prompt slug" + }, + "version": { + "type": "integer", + "exclusiveMinimum": 0, + "description": "The dashboard-sourced version number to reactivate as override" + } + }, + "required": [ + "slug", + "version" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/trigger/tools/remove_prompt_override.json b/mcps/trigger/tools/remove_prompt_override.json new file mode 100644 index 0000000000000000000000000000000000000000..09d718a64c4eb209d300e4800f67f6e0975e1244 --- /dev/null +++ b/mcps/trigger/tools/remove_prompt_override.json @@ -0,0 +1,41 @@ +{ + "name": "remove_prompt_override", + "description": "Remove the active dashboard override for a prompt, reverting to the current code version.", + "inputSchema": { + "type": "object", + "properties": { + "projectRef": { + "type": "string", + "description": "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, or if you pass the --project-ref option to the MCP server." + }, + "configPath": { + "type": "string", + "description": "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" + }, + "environment": { + "type": "string", + "enum": [ + "dev", + "staging", + "prod", + "preview" + ], + "description": "The environment to get tasks for", + "default": "dev" + }, + "branch": { + "type": "string", + "description": "The branch to get tasks for, only used for preview environments" + }, + "slug": { + "type": "string", + "description": "The prompt slug" + } + }, + "required": [ + "slug" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/trigger/tools/run_dashboard_query.json b/mcps/trigger/tools/run_dashboard_query.json new file mode 100644 index 0000000000000000000000000000000000000000..5c55ab85b722c081cecccdac1a527ef128bd1f16 --- /dev/null +++ b/mcps/trigger/tools/run_dashboard_query.json @@ -0,0 +1,68 @@ +{ + "name": "run_dashboard_query", + "description": "Execute a single widget query from a built-in dashboard. Use list_dashboards first to see available dashboards, widget IDs, and their queries. Supports time period and scope options.", + "inputSchema": { + "type": "object", + "properties": { + "projectRef": { + "type": "string", + "description": "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, or if you pass the --project-ref option to the MCP server." + }, + "configPath": { + "type": "string", + "description": "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" + }, + "environment": { + "type": "string", + "enum": [ + "dev", + "staging", + "prod", + "preview" + ], + "description": "The environment to get tasks for", + "default": "dev" + }, + "branch": { + "type": "string", + "description": "The branch to get tasks for, only used for preview environments" + }, + "dashboardKey": { + "type": "string", + "description": "The dashboard key (e.g. 'overview', 'llm'). Use list_dashboards to discover available dashboards." + }, + "widgetId": { + "type": "string", + "description": "The widget ID to execute. Use list_dashboards to see available widget IDs and their queries." + }, + "period": { + "type": "string", + "description": "Time period shorthand, e.g. '1h', '7d', '30d'. Defaults to 1d." + }, + "from": { + "type": "string", + "description": "Start of time range (ISO 8601). Must be paired with 'to'." + }, + "to": { + "type": "string", + "description": "End of time range (ISO 8601). Must be paired with 'from'." + }, + "scope": { + "type": "string", + "enum": [ + "environment", + "project", + "organization" + ], + "default": "environment", + "description": "Data access scope." + } + }, + "required": [ + "dashboardKey", + "widgetId" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/trigger/tools/search_docs.json b/mcps/trigger/tools/search_docs.json new file mode 100644 index 0000000000000000000000000000000000000000..10946844a35ed6c4a2c6fa635424aa718e25cef0 --- /dev/null +++ b/mcps/trigger/tools/search_docs.json @@ -0,0 +1,17 @@ +{ + "name": "search_docs", + "description": "Search across the Trigger.dev documentation to find relevant information, code examples, API references, and guides. 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", + "inputSchema": { + "type": "object", + "properties": { + "query": { + "type": "string" + } + }, + "required": [ + "query" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/trigger/tools/start_dev_server.json b/mcps/trigger/tools/start_dev_server.json new file mode 100644 index 0000000000000000000000000000000000000000..f7c477f2a2dd8f7292f150c70c89825002949fb2 --- /dev/null +++ b/mcps/trigger/tools/start_dev_server.json @@ -0,0 +1,15 @@ +{ + "name": "start_dev_server", + "description": "Start the Trigger.dev dev server (`trigger dev`) in the background. Waits up to 30 seconds for the worker to be ready. Use `dev_server_status` to check output and `stop_dev_server` to stop it.", + "inputSchema": { + "type": "object", + "properties": { + "configPath": { + "type": "string", + "description": "The path to the trigger.config.ts file or project directory. Only needed when the trigger.config.ts file is not at the root dir." + } + }, + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/trigger/tools/stop_dev_server.json b/mcps/trigger/tools/stop_dev_server.json new file mode 100644 index 0000000000000000000000000000000000000000..a8779dcb22f2c0052d60c0fbfa0ff7e18a276567 --- /dev/null +++ b/mcps/trigger/tools/stop_dev_server.json @@ -0,0 +1,9 @@ +{ + "name": "stop_dev_server", + "description": "Stop the running Trigger.dev dev server.", + "inputSchema": { + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "object", + "properties": {} + } +} \ No newline at end of file diff --git a/mcps/trigger/tools/switch_profile.json b/mcps/trigger/tools/switch_profile.json new file mode 100644 index 0000000000000000000000000000000000000000..e389ca47b750a038f2dd6fd3e1f6d5e5d116dda5 --- /dev/null +++ b/mcps/trigger/tools/switch_profile.json @@ -0,0 +1,18 @@ +{ + "name": "switch_profile", + "description": "Switch the active CLI profile for this MCP session. This changes which Trigger.dev account and API URL are used for all subsequent tool calls.", + "inputSchema": { + "type": "object", + "properties": { + "profile": { + "type": "string", + "description": "The profile name to switch to. Use list_profiles to see available profiles." + } + }, + "required": [ + "profile" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/trigger/tools/trigger_task.json b/mcps/trigger/tools/trigger_task.json new file mode 100644 index 0000000000000000000000000000000000000000..f457bfa88410d06fbe6ef01440d3eb596dcbff51 --- /dev/null +++ b/mcps/trigger/tools/trigger_task.json @@ -0,0 +1,120 @@ +{ + "name": "trigger_task", + "description": "Trigger a task in the project. 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. Use the wait_for_run_to_complete tool to wait for the run to complete.", + "inputSchema": { + "type": "object", + "properties": { + "projectRef": { + "type": "string", + "description": "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, or if you pass the --project-ref option to the MCP server." + }, + "configPath": { + "type": "string", + "description": "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" + }, + "environment": { + "type": "string", + "enum": [ + "dev", + "staging", + "prod", + "preview" + ], + "description": "The environment to get tasks for", + "default": "dev" + }, + "branch": { + "type": "string", + "description": "The branch to get tasks for, only used for preview environments" + }, + "taskId": { + "type": "string", + "description": "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." + }, + "payload": { + "description": "The payload to trigger the task with. Should match the task's payload schema. Not a JSON string, but the actual payload object" + }, + "options": { + "type": "object", + "properties": { + "queue": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the queue to trigger the task in, by default will use the queue configured in the task" + } + }, + "required": [ + "name" + ], + "additionalProperties": false + }, + "delay": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "string", + "format": "date-time" + } + ], + "description": "The delay before the task run is executed" + }, + "idempotencyKey": { + "type": "string", + "description": "The idempotency key to use for the task run" + }, + "machine": { + "type": "string", + "enum": [ + "micro", + "small-1x", + "small-2x", + "medium-1x", + "medium-2x", + "large-1x", + "large-2x" + ], + "description": "The machine preset to use for the task run" + }, + "maxAttempts": { + "type": "integer", + "description": "The maximum number of attempts to retry the task run" + }, + "maxDuration": { + "type": "number", + "description": "The maximum duration in seconds of the task run" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Tags to add to the task run. Must be less than 128 characters and cannot have more than 5" + }, + "ttl": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "integer", + "minimum": 0 + } + ], + "description": "The time to live of the task run. If the run doesn't start executing within this time, it will be automatically cancelled.", + "default": "10m" + } + }, + "additionalProperties": false + } + }, + "required": [ + "taskId" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/trigger/tools/update_prompt_override.json b/mcps/trigger/tools/update_prompt_override.json new file mode 100644 index 0000000000000000000000000000000000000000..aca9b8933451e0802d2bc347cbec8289590fa555 --- /dev/null +++ b/mcps/trigger/tools/update_prompt_override.json @@ -0,0 +1,53 @@ +{ + "name": "update_prompt_override", + "description": "Update the active dashboard override for a prompt. Only works if an override is currently active.", + "inputSchema": { + "type": "object", + "properties": { + "projectRef": { + "type": "string", + "description": "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, or if you pass the --project-ref option to the MCP server." + }, + "configPath": { + "type": "string", + "description": "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" + }, + "environment": { + "type": "string", + "enum": [ + "dev", + "staging", + "prod", + "preview" + ], + "description": "The environment to get tasks for", + "default": "dev" + }, + "branch": { + "type": "string", + "description": "The branch to get tasks for, only used for preview environments" + }, + "slug": { + "type": "string", + "description": "The prompt slug" + }, + "textContent": { + "type": "string", + "description": "Updated text content" + }, + "model": { + "type": "string", + "description": "Updated model" + }, + "commitMessage": { + "type": "string", + "description": "Commit message describing the change" + } + }, + "required": [ + "slug" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/trigger/tools/wait_for_run_to_complete.json b/mcps/trigger/tools/wait_for_run_to_complete.json new file mode 100644 index 0000000000000000000000000000000000000000..9ea0bc875669e3b45dd88b8eb0ba2663f6d87318 --- /dev/null +++ b/mcps/trigger/tools/wait_for_run_to_complete.json @@ -0,0 +1,46 @@ +{ + "name": "wait_for_run_to_complete", + "description": "Wait for a run to complete. The run ID is the ID of the run that was triggered. It starts with run_. Has an optional timeoutInSeconds parameter (default 60s) - if the run doesn't complete within that time, the current state of the run will be returned.", + "inputSchema": { + "type": "object", + "properties": { + "projectRef": { + "type": "string", + "description": "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, or if you pass the --project-ref option to the MCP server." + }, + "configPath": { + "type": "string", + "description": "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" + }, + "environment": { + "type": "string", + "enum": [ + "dev", + "staging", + "prod", + "preview" + ], + "description": "The environment to get tasks for", + "default": "dev" + }, + "branch": { + "type": "string", + "description": "The branch to get tasks for, only used for preview environments" + }, + "runId": { + "type": "string", + "description": "The ID of the run to get the details of, starts with run_" + }, + "timeoutInSeconds": { + "type": "number", + "description": "The maximum time in seconds to wait for the run to complete. If the run doesn't complete within this time, the current state of the run will be returned. Defaults to 60 seconds.", + "default": 60 + } + }, + "required": [ + "runId" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/trigger/tools/whoami.json b/mcps/trigger/tools/whoami.json new file mode 100644 index 0000000000000000000000000000000000000000..d863f4ae31e6247bfe0dd84de5547d1c8f223c44 --- /dev/null +++ b/mcps/trigger/tools/whoami.json @@ -0,0 +1,9 @@ +{ + "name": "whoami", + "description": "Show the current authenticated user, active CLI profile, email, and API URL.", + "inputSchema": { + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "object", + "properties": {} + } +} \ No newline at end of file diff --git a/mcps/vercel/tools/add_toolbar_reaction.json b/mcps/vercel/tools/add_toolbar_reaction.json new file mode 100644 index 0000000000000000000000000000000000000000..134f8c62e931c8c4b20a1bcf6691e20db82ec3f7 --- /dev/null +++ b/mcps/vercel/tools/add_toolbar_reaction.json @@ -0,0 +1,33 @@ +{ + "name": "add_toolbar_reaction", + "description": "Add an emoji reaction to a message in a toolbar thread.", + "inputSchema": { + "type": "object", + "properties": { + "threadId": { + "type": "string", + "description": "The thread ID containing the message" + }, + "messageId": { + "type": "string", + "description": "The message ID to react to" + }, + "teamId": { + "type": "string", + "description": "The team ID to get the deployment events for. Alternatively the team slug can be used.\nTeam IDs start with \"team_\".\nIf you do not know the team ID or slug, it can be found through these mechanism:\n- Read the file .vercel/project.json if it exists and extract the orgId\n- Use the `list_teams` tool" + }, + "emoji": { + "type": "string", + "description": "The emoji to add as a reaction (e.g. 👍)" + } + }, + "required": [ + "threadId", + "messageId", + "teamId", + "emoji" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/vercel/tools/change_toolbar_thread_resolve_status.json b/mcps/vercel/tools/change_toolbar_thread_resolve_status.json new file mode 100644 index 0000000000000000000000000000000000000000..e1dbf49f21d4a609978751cce02c4b9e3d25cdf9 --- /dev/null +++ b/mcps/vercel/tools/change_toolbar_thread_resolve_status.json @@ -0,0 +1,28 @@ +{ + "name": "change_toolbar_thread_resolve_status", + "description": "Change the resolve status of a toolbar thread. Can be used to mark a thread as resolved or unresolve a previously resolved thread.", + "inputSchema": { + "type": "object", + "properties": { + "threadId": { + "type": "string", + "description": "The thread ID to update" + }, + "teamId": { + "type": "string", + "description": "The team ID to get the deployment events for. Alternatively the team slug can be used.\nTeam IDs start with \"team_\".\nIf you do not know the team ID or slug, it can be found through these mechanism:\n- Read the file .vercel/project.json if it exists and extract the orgId\n- Use the `list_teams` tool" + }, + "resolved": { + "type": "boolean", + "description": "Set to true to resolve the thread, false to unresolve it" + } + }, + "required": [ + "threadId", + "teamId", + "resolved" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/vercel/tools/check_domain_availability_and_price.json b/mcps/vercel/tools/check_domain_availability_and_price.json new file mode 100644 index 0000000000000000000000000000000000000000..81b6abac98e1dca0bed5d075addfd63a14ede02b --- /dev/null +++ b/mcps/vercel/tools/check_domain_availability_and_price.json @@ -0,0 +1,24 @@ +{ + "name": "check_domain_availability_and_price", + "description": "Check if domain names are available for purchase and get pricing information", + "inputSchema": { + "type": "object", + "properties": { + "names": { + "type": "array", + "items": { + "type": "string", + "minLength": 1 + }, + "minItems": 1, + "maxItems": 10, + "description": "Array of domain names to check availability for (e.g., [\"example.com\", \"test.org\"])" + } + }, + "required": [ + "names" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/vercel/tools/deploy_to_vercel.json b/mcps/vercel/tools/deploy_to_vercel.json new file mode 100644 index 0000000000000000000000000000000000000000..dfa8841a324f8d69616c8e11dd7cfd47e723cd81 --- /dev/null +++ b/mcps/vercel/tools/deploy_to_vercel.json @@ -0,0 +1,9 @@ +{ + "name": "deploy_to_vercel", + "description": "Deploy the current project to Vercel", + "inputSchema": { + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "object", + "properties": {} + } +} \ No newline at end of file diff --git a/mcps/vercel/tools/edit_toolbar_message.json b/mcps/vercel/tools/edit_toolbar_message.json new file mode 100644 index 0000000000000000000000000000000000000000..baa1ffd6b89a802113e4f685293c90dd2d88fa68 --- /dev/null +++ b/mcps/vercel/tools/edit_toolbar_message.json @@ -0,0 +1,33 @@ +{ + "name": "edit_toolbar_message", + "description": "Edit an existing message in a toolbar thread.", + "inputSchema": { + "type": "object", + "properties": { + "threadId": { + "type": "string", + "description": "The thread ID containing the message" + }, + "messageId": { + "type": "string", + "description": "The message ID to edit" + }, + "teamId": { + "type": "string", + "description": "The team ID to get the deployment events for. Alternatively the team slug can be used.\nTeam IDs start with \"team_\".\nIf you do not know the team ID or slug, it can be found through these mechanism:\n- Read the file .vercel/project.json if it exists and extract the orgId\n- Use the `list_teams` tool" + }, + "markdown": { + "type": "string", + "description": "The updated message content in markdown format" + } + }, + "required": [ + "threadId", + "messageId", + "teamId", + "markdown" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/vercel/tools/get_access_to_vercel_url.json b/mcps/vercel/tools/get_access_to_vercel_url.json new file mode 100644 index 0000000000000000000000000000000000000000..f45afd78fc8d825835334970efd3cd589066b541 --- /dev/null +++ b/mcps/vercel/tools/get_access_to_vercel_url.json @@ -0,0 +1,18 @@ +{ + "name": "get_access_to_vercel_url", + "description": "Creates a temporary shareable link that bypasses authentication for protected Vercel deployments.\n\n When you encounter a Vercel deployment URL (like https://myapp-abc123.vercel.app), \n you might receive a 403 (Forbidden) error when trying to access it. \n\n This tool generates a special URL with a '_vercel_share' parameter that allows temporary access \n without requiring login credentials. The shareable URL will expire in 23 hours.\n \n When you use the returned URL, that URL will redirect and set an auth cookie.\n If your fetch implementation does not support cookies, use the 'web_fetch_vercel_url' tool instead.", + "inputSchema": { + "type": "object", + "properties": { + "url": { + "type": "string", + "description": "The full URL of the Vercel deployment (e.g. \"https://myapp.vercel.app\")." + } + }, + "required": [ + "url" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/vercel/tools/get_agent_run.json b/mcps/vercel/tools/get_agent_run.json new file mode 100644 index 0000000000000000000000000000000000000000..496d73dbf59ef0e31e083ca150a10f09056ce0ec --- /dev/null +++ b/mcps/vercel/tools/get_agent_run.json @@ -0,0 +1,57 @@ +{ + "name": "get_agent_run", + "description": "Get detailed Agent Run metadata for a single run, including events, workflow metadata, usage, and subagent breakout data. Use list_agent_runs first if you need to discover a run ID.", + "inputSchema": { + "type": "object", + "properties": { + "teamId": { + "type": "string", + "description": "The team ID to get the deployment events for. Alternatively the team slug can be used.\nTeam IDs start with \"team_\".\nIf you do not know the team ID or slug, it can be found through these mechanism:\n- Read the file .vercel/project.json if it exists and extract the orgId\n- Use the `list_teams` tool" + }, + "projectId": { + "type": "string", + "description": "The project ID to get the deployment events for. Alternatively the project slug can be used.\nProject IDs start with \"prj_\".\nIf you do not know the project ID or slug, it can be found through these mechanism:\n- Read the file .vercel/project.json if it exists and extract the projectId\n- Use the `list_projects` tool" + }, + "runId": { + "type": "string", + "description": "The Agent Run ID to inspect." + }, + "environment": { + "type": "string", + "description": "Agent run environment, usually \"production\" or \"preview\". Defaults to \"production\"." + }, + "period": { + "type": "string", + "enum": [ + "5m", + "15m", + "1h", + "6h", + "12h", + "1d", + "3d", + "7d", + "14d", + "30d", + "90d" + ], + "description": "Preset time range. Ignored when both from and to are provided. Defaults to the dashboard endpoint default." + }, + "from": { + "type": "string", + "description": "Start time as ISO 8601, Unix seconds, Unix milliseconds, or a relative duration like \"12h\". Must be used with to." + }, + "to": { + "type": "string", + "description": "End time as ISO 8601, Unix seconds, Unix milliseconds, a relative duration like \"1h\", or \"now\". Must be used with from." + } + }, + "required": [ + "teamId", + "projectId", + "runId" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/vercel/tools/get_agent_run_trace.json b/mcps/vercel/tools/get_agent_run_trace.json new file mode 100644 index 0000000000000000000000000000000000000000..c549899f4ef6ab9ba2a6c330eca1b5f377e80e10 --- /dev/null +++ b/mcps/vercel/tools/get_agent_run_trace.json @@ -0,0 +1,61 @@ +{ + "name": "get_agent_run_trace", + "description": "Get the Ash trace for a single Agent Run, including turns, messages, reasoning, tool calls, token usage, and tool input/output when available. Use this for debugging exact agent behavior in production.", + "inputSchema": { + "type": "object", + "properties": { + "teamId": { + "type": "string", + "description": "The team ID to get the deployment events for. Alternatively the team slug can be used.\nTeam IDs start with \"team_\".\nIf you do not know the team ID or slug, it can be found through these mechanism:\n- Read the file .vercel/project.json if it exists and extract the orgId\n- Use the `list_teams` tool" + }, + "projectId": { + "type": "string", + "description": "The project ID to get the deployment events for. Alternatively the project slug can be used.\nProject IDs start with \"prj_\".\nIf you do not know the project ID or slug, it can be found through these mechanism:\n- Read the file .vercel/project.json if it exists and extract the projectId\n- Use the `list_projects` tool" + }, + "runId": { + "type": "string", + "description": "The Agent Run ID to inspect." + }, + "environment": { + "type": "string", + "description": "Agent run environment, usually \"production\" or \"preview\". Defaults to \"production\"." + }, + "period": { + "type": "string", + "enum": [ + "5m", + "15m", + "1h", + "6h", + "12h", + "1d", + "3d", + "7d", + "14d", + "30d", + "90d" + ], + "description": "Preset time range. Ignored when both from and to are provided. Defaults to the dashboard endpoint default." + }, + "from": { + "type": "string", + "description": "Start time as ISO 8601, Unix seconds, Unix milliseconds, or a relative duration like \"12h\". Must be used with to." + }, + "to": { + "type": "string", + "description": "End time as ISO 8601, Unix seconds, Unix milliseconds, a relative duration like \"1h\", or \"now\". Must be used with from." + }, + "maxFieldLength": { + "type": "number", + "description": "Maximum length for individual string fields in the returned trace. Defaults to 8000; use 0 to disable truncation." + } + }, + "required": [ + "teamId", + "projectId", + "runId" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/vercel/tools/get_deployment.json b/mcps/vercel/tools/get_deployment.json new file mode 100644 index 0000000000000000000000000000000000000000..c63f7ed4a3acc6cdbf2896a95807876cbf540970 --- /dev/null +++ b/mcps/vercel/tools/get_deployment.json @@ -0,0 +1,23 @@ +{ + "name": "get_deployment", + "description": "Get a specific deployment by ID or URL.", + "inputSchema": { + "type": "object", + "properties": { + "idOrUrl": { + "type": "string", + "description": "The unique identifier or hostname of the deployment." + }, + "teamId": { + "type": "string", + "description": "The team ID to get the deployment events for. Alternatively the team slug can be used.\nTeam IDs start with \"team_\".\nIf you do not know the team ID or slug, it can be found through these mechanism:\n- Read the file .vercel/project.json if it exists and extract the orgId\n- Use the `list_teams` tool" + } + }, + "required": [ + "idOrUrl", + "teamId" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/vercel/tools/get_deployment_build_logs.json b/mcps/vercel/tools/get_deployment_build_logs.json new file mode 100644 index 0000000000000000000000000000000000000000..246bc66898a0d4f36a80231e4a91bb65ac5353ae --- /dev/null +++ b/mcps/vercel/tools/get_deployment_build_logs.json @@ -0,0 +1,54 @@ +{ + "name": "get_deployment_build_logs", + "description": "Get the build logs for a deployment by ID or URL, to investigate why a build failed. Returns the most recent lines by default (where build errors appear). Use errorsOnly to see just the failing lines.", + "inputSchema": { + "type": "object", + "properties": { + "idOrUrl": { + "type": "string", + "description": "The unique identifier or hostname of the deployment." + }, + "direction": { + "type": "string", + "enum": [ + "tail", + "head" + ], + "default": "tail", + "description": "Which end of the build log to return. \"tail\" (default) returns the most recent lines, where build errors appear. \"head\" returns the earliest lines." + }, + "errorsOnly": { + "type": "boolean", + "default": false, + "description": "Return only error, stderr, exit, and fatal events." + }, + "limit": { + "type": "number", + "description": "Maximum number of log lines to return. Defaults is 100.", + "default": 100 + }, + "since": { + "type": "string", + "description": "Start time - ISO date or relative (e.g. \"1h\", \"30m\")." + }, + "until": { + "type": "string", + "description": "End time - ISO date or relative." + }, + "buildId": { + "type": "string", + "description": "Filter to a specific build ID (bld_...) for multi-build deployments." + }, + "teamId": { + "type": "string", + "description": "The team ID to get the deployment events for. Alternatively the team slug can be used.\nTeam IDs start with \"team_\".\nIf you do not know the team ID or slug, it can be found through these mechanism:\n- Read the file .vercel/project.json if it exists and extract the orgId\n- Use the `list_teams` tool" + } + }, + "required": [ + "idOrUrl", + "teamId" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/vercel/tools/get_project.json b/mcps/vercel/tools/get_project.json new file mode 100644 index 0000000000000000000000000000000000000000..538b36179e33e83337ac47dc1a2417168106e2f3 --- /dev/null +++ b/mcps/vercel/tools/get_project.json @@ -0,0 +1,23 @@ +{ + "name": "get_project", + "description": "Get a specific project in Vercel", + "inputSchema": { + "type": "object", + "properties": { + "projectId": { + "type": "string", + "description": "The project ID to get the deployment events for. Alternatively the project slug can be used.\nProject IDs start with \"prj_\".\nIf you do not know the project ID or slug, it can be found through these mechanism:\n- Read the file .vercel/project.json if it exists and extract the projectId\n- Use the `list_projects` tool" + }, + "teamId": { + "type": "string", + "description": "The team ID to get the deployment events for. Alternatively the team slug can be used.\nTeam IDs start with \"team_\".\nIf you do not know the team ID or slug, it can be found through these mechanism:\n- Read the file .vercel/project.json if it exists and extract the orgId\n- Use the `list_teams` tool" + } + }, + "required": [ + "projectId", + "teamId" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/vercel/tools/get_runtime_errors.json b/mcps/vercel/tools/get_runtime_errors.json new file mode 100644 index 0000000000000000000000000000000000000000..ce53e6280e561634a28fed1293a9dc2ca3c7224f --- /dev/null +++ b/mcps/vercel/tools/get_runtime_errors.json @@ -0,0 +1,35 @@ +{ + "name": "get_runtime_errors", + "description": "Get grouped runtime error clusters for a project (error name, occurrence count, affected routes, sample messages, first/last seen). Use this first to answer \"why is production erroring\" — it reads a pre-aggregated table and does not time out. Max 7-day range.", + "inputSchema": { + "type": "object", + "properties": { + "projectId": { + "type": "string", + "description": "The project ID to get runtime errors for." + }, + "teamId": { + "type": "string", + "description": "The team ID to get the deployment events for. Alternatively the team slug can be used.\nTeam IDs start with \"team_\".\nIf you do not know the team ID or slug, it can be found through these mechanism:\n- Read the file .vercel/project.json if it exists and extract the orgId\n- Use the `list_teams` tool" + }, + "since": { + "type": "string", + "description": "Start time - ISO date or relative (e.g. \"1h\", \"7d\"). Defaults to 24h ago." + }, + "until": { + "type": "string", + "description": "End time - ISO date or relative." + }, + "routes": { + "type": "string", + "description": "Comma-separated route paths to filter by (e.g. \"/api/checkout\")." + } + }, + "required": [ + "projectId", + "teamId" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/vercel/tools/get_runtime_logs.json b/mcps/vercel/tools/get_runtime_logs.json new file mode 100644 index 0000000000000000000000000000000000000000..8c68a1f6d4fca9f763e4fabee6fa558777550b3a --- /dev/null +++ b/mcps/vercel/tools/get_runtime_logs.json @@ -0,0 +1,98 @@ +{ + "name": "get_runtime_logs", + "description": "Get runtime logs for a project or deployment. Runtime logs show application output (console.log, errors, etc.) from serverless functions and edge functions during execution. Supports filtering by environment, log level, status code, source, time range, and full-text search. For wide time ranges, scope to a deploymentId for speed, or use group_by to get counts instead of individual lines. To investigate production errors specifically, prefer get_runtime_errors.", + "inputSchema": { + "type": "object", + "properties": { + "projectId": { + "type": "string", + "description": "The project ID to get runtime logs for." + }, + "teamId": { + "type": "string", + "description": "The team ID to get the deployment events for. Alternatively the team slug can be used.\nTeam IDs start with \"team_\".\nIf you do not know the team ID or slug, it can be found through these mechanism:\n- Read the file .vercel/project.json if it exists and extract the orgId\n- Use the `list_teams` tool" + }, + "deploymentId": { + "type": "string", + "description": "Filter logs to a specific deployment ID or URL." + }, + "environment": { + "type": "string", + "enum": [ + "production", + "preview" + ], + "description": "Filter by environment: \"production\" or \"preview\"." + }, + "level": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "error", + "warning", + "info", + "fatal" + ] + }, + "description": "Filter by log level(s). Can specify multiple levels." + }, + "statusCode": { + "type": "string", + "description": "Filter by HTTP status code (e.g., \"500\", \"4xx\")." + }, + "source": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "serverless", + "edge-function", + "edge-middleware", + "static" + ] + }, + "description": "Filter by source type(s). Can specify multiple sources." + }, + "since": { + "type": "string", + "description": "Start time - ISO format or relative time (e.g., \"1h\", \"30m\", \"7d\"). Defaults to 24 hours ago." + }, + "until": { + "type": "string", + "description": "End time - ISO format or relative time. Defaults to now." + }, + "limit": { + "type": "number", + "description": "Maximum number of log entries to return. Defaults to 50, max 100." + }, + "query": { + "type": "string", + "description": "Full-text search query to filter logs." + }, + "requestId": { + "type": "string", + "description": "Filter by specific request ID." + }, + "group_by": { + "type": "string", + "enum": [ + "statusCode", + "requestPath", + "route", + "level", + "source", + "deploymentId", + "branch" + ], + "description": "Return counts grouped by this attribute instead of individual log lines. Use for \"how many errors\", \"status code breakdown\", \"top paths\". Fast even over wide time ranges." + } + }, + "required": [ + "projectId", + "teamId" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/vercel/tools/get_toolbar_thread.json b/mcps/vercel/tools/get_toolbar_thread.json new file mode 100644 index 0000000000000000000000000000000000000000..76f628cf6fc39b22607d6a5b2cb984f38bc03df6 --- /dev/null +++ b/mcps/vercel/tools/get_toolbar_thread.json @@ -0,0 +1,23 @@ +{ + "name": "get_toolbar_thread", + "description": "Get a specific toolbar thread by ID, including all messages and context.", + "inputSchema": { + "type": "object", + "properties": { + "threadId": { + "type": "string", + "description": "The thread ID to retrieve" + }, + "teamId": { + "type": "string", + "description": "The team ID to get the deployment events for. Alternatively the team slug can be used.\nTeam IDs start with \"team_\".\nIf you do not know the team ID or slug, it can be found through these mechanism:\n- Read the file .vercel/project.json if it exists and extract the orgId\n- Use the `list_teams` tool" + } + }, + "required": [ + "threadId", + "teamId" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/vercel/tools/import-claude-design-from-url.json b/mcps/vercel/tools/import-claude-design-from-url.json new file mode 100644 index 0000000000000000000000000000000000000000..da12ef6a4b726b975c731ae5e9fb5fab879de90e --- /dev/null +++ b/mcps/vercel/tools/import-claude-design-from-url.json @@ -0,0 +1,22 @@ +{ + "name": "import-claude-design-from-url", + "description": "Import a design into Vercel from a publicly fetchable URL. The file is a self-contained HTML bundle with all images, fonts, and styles inlined.", + "inputSchema": { + "type": "object", + "properties": { + "url": { + "type": "string", + "description": "Public HTTPS URL to the design file. Valid for ~1 hour. Fetched server-side." + }, + "title": { + "type": "string", + "description": "Suggested title for the imported design." + } + }, + "required": [ + "url" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/vercel/tools/list_agent_run_projects.json b/mcps/vercel/tools/list_agent_run_projects.json new file mode 100644 index 0000000000000000000000000000000000000000..9fa532a82763882be9ad7a220e236df86f0d6fce --- /dev/null +++ b/mcps/vercel/tools/list_agent_run_projects.json @@ -0,0 +1,47 @@ +{ + "name": "list_agent_run_projects", + "description": "List projects in a Vercel team that have Agent Runs observability data, with run counts and average duration rollups. Use this to discover which projects have agent activity before drilling into a project.", + "inputSchema": { + "type": "object", + "properties": { + "teamId": { + "type": "string", + "description": "The team ID to get the deployment events for. Alternatively the team slug can be used.\nTeam IDs start with \"team_\".\nIf you do not know the team ID or slug, it can be found through these mechanism:\n- Read the file .vercel/project.json if it exists and extract the orgId\n- Use the `list_teams` tool" + }, + "environment": { + "type": "string", + "description": "Agent run environment, usually \"production\" or \"preview\". Defaults to \"production\"." + }, + "period": { + "type": "string", + "enum": [ + "5m", + "15m", + "1h", + "6h", + "12h", + "1d", + "3d", + "7d", + "14d", + "30d", + "90d" + ], + "description": "Preset time range. Ignored when both from and to are provided. Defaults to the dashboard endpoint default." + }, + "from": { + "type": "string", + "description": "Start time as ISO 8601, Unix seconds, Unix milliseconds, or a relative duration like \"12h\". Must be used with to." + }, + "to": { + "type": "string", + "description": "End time as ISO 8601, Unix seconds, Unix milliseconds, a relative duration like \"1h\", or \"now\". Must be used with from." + } + }, + "required": [ + "teamId" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/vercel/tools/list_agent_runs.json b/mcps/vercel/tools/list_agent_runs.json new file mode 100644 index 0000000000000000000000000000000000000000..888218aa7b0bae149e4fc2f41aac17353da17441 --- /dev/null +++ b/mcps/vercel/tools/list_agent_runs.json @@ -0,0 +1,64 @@ +{ + "name": "list_agent_runs", + "description": "List Agent Runs for a Vercel project, including summaries, status, model, trigger, token usage, time series, and pagination metadata. Use this to find recent or matching production agent runs before fetching detail or trace data.", + "inputSchema": { + "type": "object", + "properties": { + "teamId": { + "type": "string", + "description": "The team ID to get the deployment events for. Alternatively the team slug can be used.\nTeam IDs start with \"team_\".\nIf you do not know the team ID or slug, it can be found through these mechanism:\n- Read the file .vercel/project.json if it exists and extract the orgId\n- Use the `list_teams` tool" + }, + "projectId": { + "type": "string", + "description": "The project ID to get the deployment events for. Alternatively the project slug can be used.\nProject IDs start with \"prj_\".\nIf you do not know the project ID or slug, it can be found through these mechanism:\n- Read the file .vercel/project.json if it exists and extract the projectId\n- Use the `list_projects` tool" + }, + "environment": { + "type": "string", + "description": "Agent run environment, usually \"production\" or \"preview\". Defaults to \"production\"." + }, + "period": { + "type": "string", + "enum": [ + "5m", + "15m", + "1h", + "6h", + "12h", + "1d", + "3d", + "7d", + "14d", + "30d", + "90d" + ], + "description": "Preset time range. Ignored when both from and to are provided. Defaults to the dashboard endpoint default." + }, + "from": { + "type": "string", + "description": "Start time as ISO 8601, Unix seconds, Unix milliseconds, or a relative duration like \"12h\". Must be used with to." + }, + "to": { + "type": "string", + "description": "End time as ISO 8601, Unix seconds, Unix milliseconds, a relative duration like \"1h\", or \"now\". Must be used with from." + }, + "page": { + "type": "number", + "description": "1-based page number. Defaults to 1." + }, + "pageSize": { + "type": "number", + "description": "Number of runs per page. The dashboard endpoint caps this at 100." + }, + "search": { + "type": "string", + "description": "Server-side title search for Agent Runs." + } + }, + "required": [ + "teamId", + "projectId" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/vercel/tools/list_deployments.json b/mcps/vercel/tools/list_deployments.json new file mode 100644 index 0000000000000000000000000000000000000000..7e70a5d118a5f4c5f51835695f964eb8a0024121 --- /dev/null +++ b/mcps/vercel/tools/list_deployments.json @@ -0,0 +1,31 @@ +{ + "name": "list_deployments", + "description": "List all deployments for a project", + "inputSchema": { + "type": "object", + "properties": { + "projectId": { + "type": "string", + "description": "The project ID to list deployments for." + }, + "teamId": { + "type": "string", + "description": "The team ID to list deployments for." + }, + "since": { + "type": "number", + "description": "Get deployments created after this timestamp." + }, + "until": { + "type": "number", + "description": "Get deployments created before this timestamp." + } + }, + "required": [ + "projectId", + "teamId" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/vercel/tools/list_projects.json b/mcps/vercel/tools/list_projects.json new file mode 100644 index 0000000000000000000000000000000000000000..a45b8840f4d7e032824678ec1a2b156d3fdabeeb --- /dev/null +++ b/mcps/vercel/tools/list_projects.json @@ -0,0 +1,18 @@ +{ + "name": "list_projects", + "description": "List all Vercel projects for a user (with a max of 50). Use this to help discover the Project ID of the project that the user is working on.", + "inputSchema": { + "type": "object", + "properties": { + "teamId": { + "type": "string", + "description": "The team ID to get the deployment events for. Alternatively the team slug can be used.\nTeam IDs start with \"team_\".\nIf you do not know the team ID or slug, it can be found through these mechanism:\n- Read the file .vercel/project.json if it exists and extract the orgId\n- Use the `list_teams` tool" + } + }, + "required": [ + "teamId" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/vercel/tools/list_teams.json b/mcps/vercel/tools/list_teams.json new file mode 100644 index 0000000000000000000000000000000000000000..b6bdf304d6bb28eb26b00e4e9a3029a10c37523b --- /dev/null +++ b/mcps/vercel/tools/list_teams.json @@ -0,0 +1,9 @@ +{ + "name": "list_teams", + "description": "List the user's teams. Use this to help discover the Team ID of the teams that the user is part of.", + "inputSchema": { + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "object", + "properties": {} + } +} \ No newline at end of file diff --git a/mcps/vercel/tools/list_toolbar_threads.json b/mcps/vercel/tools/list_toolbar_threads.json new file mode 100644 index 0000000000000000000000000000000000000000..5155434b0e51d06335ae17ddf1de664eada4ec59 --- /dev/null +++ b/mcps/vercel/tools/list_toolbar_threads.json @@ -0,0 +1,50 @@ +{ + "name": "list_toolbar_threads", + "description": "List Vercel toolbar comment threads for a team. Returns unresolved threads by default. Use this to see feedback, comments, or discussions on deployments and previews.", + "inputSchema": { + "type": "object", + "properties": { + "teamId": { + "type": "string", + "description": "The team ID to get the deployment events for. Alternatively the team slug can be used.\nTeam IDs start with \"team_\".\nIf you do not know the team ID or slug, it can be found through these mechanism:\n- Read the file .vercel/project.json if it exists and extract the orgId\n- Use the `list_teams` tool" + }, + "projectId": { + "type": "string", + "description": "Filter by project ID" + }, + "branch": { + "type": "string", + "description": "Filter by branch name" + }, + "status": { + "type": "string", + "enum": [ + "resolved", + "unresolved" + ], + "description": "Filter by status. Defaults to unresolved." + }, + "page": { + "type": "string", + "description": "Filter by page path (e.g. /docs) or glob (e.g. /docs*)" + }, + "search": { + "type": "string", + "description": "Search text in comments" + }, + "limit": { + "type": "number", + "description": "Maximum number of results to return. Defaults to 20." + }, + "offset": { + "type": "number", + "description": "Pagination offset" + } + }, + "required": [ + "teamId" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/vercel/tools/reply_to_toolbar_thread.json b/mcps/vercel/tools/reply_to_toolbar_thread.json new file mode 100644 index 0000000000000000000000000000000000000000..484672c803297d0ef026a66d2c582e48c4eed01f --- /dev/null +++ b/mcps/vercel/tools/reply_to_toolbar_thread.json @@ -0,0 +1,28 @@ +{ + "name": "reply_to_toolbar_thread", + "description": "Add a reply message to an existing toolbar thread.", + "inputSchema": { + "type": "object", + "properties": { + "threadId": { + "type": "string", + "description": "The thread ID to reply to" + }, + "teamId": { + "type": "string", + "description": "The team ID to get the deployment events for. Alternatively the team slug can be used.\nTeam IDs start with \"team_\".\nIf you do not know the team ID or slug, it can be found through these mechanism:\n- Read the file .vercel/project.json if it exists and extract the orgId\n- Use the `list_teams` tool" + }, + "markdown": { + "type": "string", + "description": "The message content in markdown format" + } + }, + "required": [ + "threadId", + "teamId", + "markdown" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/vercel/tools/search_vercel_documentation.json b/mcps/vercel/tools/search_vercel_documentation.json new file mode 100644 index 0000000000000000000000000000000000000000..e11ef50a3548c14fc50c46e2c1a6ea6ea0c48ceb --- /dev/null +++ b/mcps/vercel/tools/search_vercel_documentation.json @@ -0,0 +1,23 @@ +{ + "name": "search_vercel_documentation", + "description": "Search the Vercel documentation.\n \n Use this tool to answer any questions about Vercel’s platform, features, and best practices, including:\n - Core Concepts: Projects, Deployments, Git Integration, Preview Deployments, Environments\n - Frontend & Frameworks: Next.js, SvelteKit, Nuxt, Astro, Remix, frameworks configuration and optimization\n - APIs: REST API, Vercel SDK, Build Output API\n - Compute: Fluid Compute, Functions, Routing Middleware, Cron Jobs, OG Image Generation, Sandbox, Data Cache\n - AI: Vercel AI SDK, AI Gateway, MCP, v0\n - Performance & Delivery: Edge Network, Caching, CDN, Image Optimization, Headers, Redirects, Rewrites\n - Pricing: Plans, Spend Management, Billing\n - Security: Audit Logs, Firewall, Bot Management, BotID, OIDC, RBAC, Secure Compute, 2FA\n - Storage: Blog, Edge Config", + "inputSchema": { + "type": "object", + "properties": { + "topic": { + "type": "string", + "description": "Topic to focus the documentation search on (e.g., 'routing', 'data-fetching')." + }, + "tokens": { + "type": "number", + "description": "Maximum number of tokens to include in the result. Default is 2500.", + "default": 2500 + } + }, + "required": [ + "topic" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/mcps/vercel/tools/web_fetch_vercel_url.json b/mcps/vercel/tools/web_fetch_vercel_url.json new file mode 100644 index 0000000000000000000000000000000000000000..c0711a165e9fd9954f3e0430933707fcc4a1615b --- /dev/null +++ b/mcps/vercel/tools/web_fetch_vercel_url.json @@ -0,0 +1,18 @@ +{ + "name": "web_fetch_vercel_url", + "description": "Fetches a Vercel deployment URL and returns the response.\n This is useful if another web fetch tool returns 401 (Unauthorized) or 403 (Forbidden) for a Vercel URL.\n Supports accessing deployments protected with Vercel Authentication which the user of this MCP server has access to.", + "inputSchema": { + "type": "object", + "properties": { + "url": { + "type": "string", + "description": "The full URL of the Vercel deployment including the path (e.g. \"https://myapp.vercel.app/my-page\")." + } + }, + "required": [ + "url" + ], + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file