veryfront 0.1.110 → 0.1.111
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/deno.js +1 -1
- package/esm/src/integrations/_data.js +5 -5
- package/esm/src/integrations/index.d.ts +2 -5
- package/esm/src/integrations/index.d.ts.map +1 -1
- package/esm/src/integrations/index.js +2 -5
- package/esm/src/integrations/schema.d.ts +181 -0
- package/esm/src/integrations/schema.d.ts.map +1 -1
- package/esm/src/integrations/schema.js +24 -0
- package/esm/src/mcp/server.d.ts +0 -2
- package/esm/src/mcp/server.d.ts.map +1 -1
- package/esm/src/mcp/server.js +4 -35
- package/esm/src/server/services/rsc/endpoints/rsc-bundles.generated.js +1 -1
- package/esm/src/utils/version.d.ts +1 -1
- package/esm/src/utils/version.js +1 -1
- package/package.json +1 -1
- package/src/deno.js +1 -1
- package/src/src/integrations/_data.ts +5 -5
- package/src/src/integrations/index.ts +13 -6
- package/src/src/integrations/schema.ts +27 -0
- package/src/src/mcp/server.ts +4 -45
- package/src/src/server/services/rsc/endpoints/rsc-bundles.generated.ts +1 -1
- package/src/src/utils/version.ts +1 -1
- package/esm/src/integrations/connector-fetcher.d.ts +0 -5
- package/esm/src/integrations/connector-fetcher.d.ts.map +0 -1
- package/esm/src/integrations/connector-fetcher.js +0 -62
- package/esm/src/integrations/endpoint-executor.d.ts +0 -12
- package/esm/src/integrations/endpoint-executor.d.ts.map +0 -1
- package/esm/src/integrations/endpoint-executor.js +0 -184
- package/esm/src/integrations/mcp-registration.d.ts +0 -25
- package/esm/src/integrations/mcp-registration.d.ts.map +0 -1
- package/esm/src/integrations/mcp-registration.js +0 -47
- package/esm/src/integrations/tool-factory.d.ts +0 -4
- package/esm/src/integrations/tool-factory.d.ts.map +0 -1
- package/esm/src/integrations/tool-factory.js +0 -125
- package/src/src/integrations/connector-fetcher.ts +0 -80
- package/src/src/integrations/endpoint-executor.ts +0 -231
- package/src/src/integrations/mcp-registration.ts +0 -75
- package/src/src/integrations/tool-factory.ts +0 -167
package/esm/deno.js
CHANGED
|
@@ -5,7 +5,7 @@ export const connectors = [
|
|
|
5
5
|
{ "name": "aws", "displayName": "Amazon Web Services", "icon": "aws.svg", "description": "Integration with AWS services including S3, EC2, and Lambda", "auth": { "type": "api-key", "fields": [{ "name": "accessKeyId", "label": "AWS Access Key ID", "type": "string", "required": true, "envVar": "AWS_ACCESS_KEY_ID" }, { "name": "secretAccessKey", "label": "AWS Secret Access Key", "type": "password", "required": true, "envVar": "AWS_SECRET_ACCESS_KEY" }, { "name": "region", "label": "AWS Region", "type": "string", "required": true, "envVar": "AWS_REGION", "default": "us-east-1" }] }, "envVars": [{ "name": "AWS_ACCESS_KEY_ID", "description": "AWS Access Key ID", "required": true }, { "name": "AWS_SECRET_ACCESS_KEY", "description": "AWS Secret Access Key", "required": true, "sensitive": true }, { "name": "AWS_REGION", "description": "AWS Region (e.g. us-east-1)", "required": true, "default": "us-east-1" }], "tools": [{ "name": "list-s3-buckets", "description": "List all S3 buckets in your AWS account", "file": "tools/list-s3-buckets.ts" }, { "name": "list-s3-objects", "description": "List objects in a specific S3 bucket", "file": "tools/list-s3-objects.ts" }, { "name": "get-s3-object", "description": "Get the contents of an object from S3", "file": "tools/get-s3-object.ts" }, { "name": "list-ec2-instances", "description": "List EC2 instances in your AWS account", "file": "tools/list-ec2-instances.ts" }, { "name": "list-lambda-functions", "description": "List Lambda functions in your AWS account", "file": "tools/list-lambda-functions.ts" }], "dependencies": { "@aws-sdk/client-s3": "^3.600.0", "@aws-sdk/client-ec2": "^3.600.0", "@aws-sdk/client-lambda": "^3.600.0", "@aws-sdk/credential-providers": "^3.600.0" } },
|
|
6
6
|
{ "name": "bitbucket", "displayName": "Bitbucket", "icon": "bitbucket.svg", "description": "Manage repositories, pull requests, and issues on Bitbucket", "auth": { "type": "oauth2", "provider": "bitbucket", "authorizationUrl": "https://bitbucket.org/site/oauth2/authorize", "tokenUrl": "https://bitbucket.org/site/oauth2/access_token", "scopes": ["repository", "pullrequest", "issue", "account"] }, "envVars": [{ "name": "BITBUCKET_CLIENT_ID", "description": "Bitbucket OAuth Consumer Key", "required": true, "sensitive": false, "docsUrl": "https://support.atlassian.com/bitbucket-cloud/docs/use-oauth-on-bitbucket-cloud/" }, { "name": "BITBUCKET_CLIENT_SECRET", "description": "Bitbucket OAuth Consumer Secret", "required": true, "sensitive": true, "docsUrl": "https://support.atlassian.com/bitbucket-cloud/docs/use-oauth-on-bitbucket-cloud/" }], "tools": [{ "id": "list-repositories", "name": "List Repositories", "description": "Get list of user's repositories", "requiresWrite": false }, { "id": "list-pull-requests", "name": "List Pull Requests", "description": "Get pull requests for a repository", "requiresWrite": false }, { "id": "create-pull-request", "name": "Create Pull Request", "description": "Create a new pull request", "requiresWrite": true }, { "id": "list-issues", "name": "List Issues", "description": "Get issues for a repository", "requiresWrite": false }], "prompts": [{ "id": "review-prs", "title": "Review my pull requests", "prompt": "Show me my open pull requests on Bitbucket and help me review them. Summarize the changes and any comments.", "category": "development", "icon": "git-pull-request" }, { "id": "list-repos", "title": "List my repositories", "prompt": "Show me all my Bitbucket repositories with their details and recent activity.", "category": "development", "icon": "folder" }, { "id": "check-issues", "title": "Check repository issues", "prompt": "Show me the open issues in my repositories and help me prioritize them.", "category": "development", "icon": "bug" }], "suggestedWith": ["github", "gitlab", "jira"] },
|
|
7
7
|
{ "name": "box", "displayName": "Box", "icon": "box.svg", "description": "Access and manage files, folders, and content in Box", "auth": { "type": "oauth2", "provider": "box", "authorizationUrl": "https://account.box.com/api/oauth2/authorize", "tokenUrl": "https://api.box.com/oauth2/token", "scopes": ["root_readwrite"], "requiredApis": [{ "name": "Box Developer Console", "enableUrl": "https://app.box.com/developers/console" }] }, "envVars": [{ "name": "BOX_CLIENT_ID", "description": "Box OAuth Client ID", "required": true, "sensitive": false, "docsUrl": "https://developer.box.com/guides/authentication/oauth2/" }, { "name": "BOX_CLIENT_SECRET", "description": "Box OAuth Client Secret", "required": true, "sensitive": true, "docsUrl": "https://developer.box.com/guides/authentication/oauth2/" }], "tools": [{ "id": "list-files", "name": "List Files", "description": "List files and folders in a Box folder", "requiresWrite": false }, { "id": "get-file", "name": "Get File", "description": "Get details of a specific file or folder", "requiresWrite": false }, { "id": "search-files", "name": "Search Files", "description": "Search for files and folders in Box", "requiresWrite": false }, { "id": "create-folder", "name": "Create Folder", "description": "Create a new folder in Box", "requiresWrite": true }, { "id": "upload-file", "name": "Upload File", "description": "Upload a file to Box", "requiresWrite": true }], "prompts": [{ "id": "my-files", "title": "Show my files", "prompt": "List all files in my Box root folder with their details.", "category": "productivity", "icon": "folder" }, { "id": "search-content", "title": "Search for files", "prompt": "Search for files in Box by name or content.", "category": "productivity", "icon": "search" }], "suggestedWith": ["dropbox", "onedrive", "notion"] },
|
|
8
|
-
{ "name": "calendar", "displayName": "Google Calendar", "icon": "calendar.svg", "description": "Manage events, find free time, and schedule meetings", "auth": { "type": "oauth2", "provider": "google", "authorizationUrl": "https://accounts.google.com/o/oauth2/v2/auth", "tokenUrl": "https://oauth2.googleapis.com/token", "scopes": ["https://www.googleapis.com/auth/calendar.readonly", "https://www.googleapis.com/auth/calendar.events"], "requiredApis": [{ "name": "Google Calendar API", "enableUrl": "https://console.cloud.google.com/apis/library/calendar-json.googleapis.com" }] }, "envVars": [{ "name": "GOOGLE_CLIENT_ID", "description": "Google OAuth Client ID", "required": true, "sensitive": false, "docsUrl": "https://console.cloud.google.com/apis/credentials" }, { "name": "GOOGLE_CLIENT_SECRET", "description": "Google OAuth Client Secret", "required": true, "sensitive": true, "docsUrl": "https://console.cloud.google.com/apis/credentials" }], "tools": [{ "id": "list-events", "name": "List Events", "description": "Get upcoming calendar events", "requiresWrite": false }, { "id": "create-event", "name": "Create Event", "description": "Schedule a new calendar event", "requiresWrite": true }, { "id": "find-free-time", "name": "Find Free Time", "description": "Find available time slots in calendar", "requiresWrite": false }], "prompts": [{ "id": "block-deep-work", "title": "Block time for deep work", "prompt": "Find a 2-hour block for focused work this week and add it to my calendar.", "category": "productivity", "icon": "clock" }, { "id": "schedule-meeting", "title": "Schedule a meeting", "prompt": "Help me schedule a meeting. Find available time slots and create the calendar event.", "category": "productivity", "icon": "users" }, { "id": "today-agenda", "title": "What's on my calendar today?", "prompt": "Show me my calendar for today and summarize my schedule.", "category": "productivity", "icon": "calendar" }], "suggestedWith": ["gmail", "slack"] },
|
|
8
|
+
{ "name": "calendar", "displayName": "Google Calendar", "icon": "calendar.svg", "description": "Manage events, find free time, and schedule meetings", "auth": { "type": "oauth2", "provider": "google", "authorizationUrl": "https://accounts.google.com/o/oauth2/v2/auth", "tokenUrl": "https://oauth2.googleapis.com/token", "scopes": ["https://www.googleapis.com/auth/calendar.readonly", "https://www.googleapis.com/auth/calendar.events"], "requiredApis": [{ "name": "Google Calendar API", "enableUrl": "https://console.cloud.google.com/apis/library/calendar-json.googleapis.com" }] }, "envVars": [{ "name": "GOOGLE_CLIENT_ID", "description": "Google OAuth Client ID", "required": true, "sensitive": false, "docsUrl": "https://console.cloud.google.com/apis/credentials" }, { "name": "GOOGLE_CLIENT_SECRET", "description": "Google OAuth Client Secret", "required": true, "sensitive": true, "docsUrl": "https://console.cloud.google.com/apis/credentials" }], "tools": [{ "id": "list-events", "name": "List Events", "description": "Get upcoming calendar events", "requiresWrite": false, "endpoint": { "method": "GET", "url": "https://www.googleapis.com/calendar/v3/calendars/{calendarId}/events", "params": { "calendarId": { "type": "string", "in": "path", "description": "Calendar ID (use 'primary' for main calendar)", "required": true, "default": "primary" }, "timeMin": { "type": "string", "in": "query", "description": "Start time (RFC3339)" }, "timeMax": { "type": "string", "in": "query", "description": "End time (RFC3339)" }, "maxResults": { "type": "number", "in": "query", "description": "Maximum events", "default": 10 }, "orderBy": { "type": "string", "in": "query", "description": "Order by: startTime or updated", "default": "startTime" }, "singleEvents": { "type": "boolean", "in": "query", "description": "Expand recurring events", "default": true } }, "response": { "transform": "items" } } }, { "id": "create-event", "name": "Create Event", "description": "Schedule a new calendar event", "requiresWrite": true, "endpoint": { "method": "POST", "url": "https://www.googleapis.com/calendar/v3/calendars/{calendarId}/events", "params": { "calendarId": { "type": "string", "in": "path", "description": "Calendar ID", "required": true, "default": "primary" } }, "body": { "summary": { "type": "string", "description": "Event title", "required": true }, "description": { "type": "string", "description": "Event description" }, "start": { "type": "object", "description": "Start time: {dateTime: 'RFC3339', timeZone: 'TZ'}", "required": true }, "end": { "type": "object", "description": "End time: {dateTime: 'RFC3339', timeZone: 'TZ'}", "required": true }, "attendees": { "type": "array", "description": "Array of {email: string} objects" }, "location": { "type": "string", "description": "Event location" } } } }, { "id": "get-event", "name": "Get Event", "description": "Get details of a specific calendar event", "requiresWrite": false, "endpoint": { "method": "GET", "url": "https://www.googleapis.com/calendar/v3/calendars/{calendarId}/events/{eventId}", "params": { "calendarId": { "type": "string", "in": "path", "description": "Calendar ID", "required": true, "default": "primary" }, "eventId": { "type": "string", "in": "path", "description": "Event ID", "required": true } } } }, { "id": "find-free-time", "name": "Find Free Time", "description": "Find available time slots in calendar", "requiresWrite": false, "endpoint": { "method": "POST", "url": "https://www.googleapis.com/calendar/v3/freeBusy", "body": { "timeMin": { "type": "string", "description": "Start of window (RFC3339)", "required": true }, "timeMax": { "type": "string", "description": "End of window (RFC3339)", "required": true }, "items": { "type": "array", "description": "Array of {id: calendarId} to check", "required": true } } } }], "prompts": [{ "id": "block-deep-work", "title": "Block time for deep work", "prompt": "Find a 2-hour block for focused work this week and add it to my calendar.", "category": "productivity", "icon": "clock" }, { "id": "schedule-meeting", "title": "Schedule a meeting", "prompt": "Help me schedule a meeting. Find available time slots and create the calendar event.", "category": "productivity", "icon": "users" }, { "id": "today-agenda", "title": "What's on my calendar today?", "prompt": "Show me my calendar for today and summarize my schedule.", "category": "productivity", "icon": "calendar" }], "suggestedWith": ["gmail", "slack"] },
|
|
9
9
|
{ "name": "clickup", "displayName": "ClickUp", "icon": "clickup.svg", "description": "Manage tasks, lists, and projects in ClickUp", "auth": { "type": "oauth2", "provider": "clickup", "authorizationUrl": "https://app.clickup.com/api", "tokenUrl": "https://api.clickup.com/api/v2/oauth/token", "scopes": [], "requiredApis": [{ "name": "ClickUp Developer Portal", "enableUrl": "https://app.clickup.com/settings/apps" }] }, "envVars": [{ "name": "CLICKUP_CLIENT_ID", "description": "ClickUp OAuth Client ID", "required": true, "sensitive": false, "docsUrl": "https://clickup.com/api/developer-portal/authentication" }, { "name": "CLICKUP_CLIENT_SECRET", "description": "ClickUp OAuth Client Secret", "required": true, "sensitive": true, "docsUrl": "https://clickup.com/api/developer-portal/authentication" }], "tools": [{ "id": "list-tasks", "name": "List Tasks", "description": "List tasks in a list or assigned to a user", "requiresWrite": false }, { "id": "get-task", "name": "Get Task", "description": "Get details of a specific task", "requiresWrite": false }, { "id": "create-task", "name": "Create Task", "description": "Create a new task in a list", "requiresWrite": true }, { "id": "update-task", "name": "Update Task", "description": "Update an existing task", "requiresWrite": true }, { "id": "list-lists", "name": "List Lists", "description": "List all lists in a folder or space", "requiresWrite": false }], "prompts": [{ "id": "my-tasks", "title": "Show my tasks", "prompt": "List all tasks assigned to me in ClickUp with their due dates and priorities.", "category": "productivity", "icon": "list" }, { "id": "create-task", "title": "Create a task", "prompt": "Create a new task with a title, description, due date, and assignee.", "category": "productivity", "icon": "plus" }], "suggestedWith": ["slack", "notion", "calendar"] },
|
|
10
10
|
{ "name": "confluence", "displayName": "Confluence", "icon": "confluence.svg", "description": "Search, read, and create documentation in Confluence", "auth": { "type": "oauth2", "provider": "atlassian", "authorizationUrl": "https://auth.atlassian.com/authorize", "tokenUrl": "https://auth.atlassian.com/oauth/token", "scopes": ["read:confluence-content.all", "write:confluence-content"], "tokenAuthMethod": "client_secret_post", "requiredApis": [{ "name": "Atlassian OAuth 2.0 App", "enableUrl": "https://developer.atlassian.com/console/myapps/" }], "additionalParams": { "audience": "api.atlassian.com", "prompt": "consent" } }, "envVars": [{ "name": "ATLASSIAN_CLIENT_ID", "description": "Atlassian OAuth Client ID (from your OAuth 2.0 app)", "required": true, "sensitive": false, "docsUrl": "https://developer.atlassian.com/console/myapps/" }, { "name": "ATLASSIAN_CLIENT_SECRET", "description": "Atlassian OAuth Client Secret", "required": true, "sensitive": true, "docsUrl": "https://developer.atlassian.com/console/myapps/" }], "tools": [{ "id": "search-content", "name": "Search Confluence", "description": "Search for pages and blog posts in Confluence", "requiresWrite": false }, { "id": "get-page", "name": "Get Page", "description": "Get the content of a specific Confluence page", "requiresWrite": false }, { "id": "create-page", "name": "Create Page", "description": "Create a new page in a Confluence space", "requiresWrite": true }, { "id": "update-page", "name": "Update Page", "description": "Update the content of an existing Confluence page", "requiresWrite": true }, { "id": "list-spaces", "name": "List Spaces", "description": "List all accessible Confluence spaces", "requiresWrite": false }], "prompts": [{ "id": "search-docs", "title": "Search documentation", "prompt": "Search Confluence for documentation about a specific topic or feature.", "category": "productivity", "icon": "search" }, { "id": "summarize-page", "title": "Summarize a page", "prompt": "Read and summarize a Confluence page. Extract key information and action items.", "category": "productivity", "icon": "document" }, { "id": "create-doc", "title": "Create documentation", "prompt": "Create a new documentation page in Confluence with structured content.", "category": "productivity", "icon": "plus" }, { "id": "update-doc", "title": "Update documentation", "prompt": "Update an existing Confluence page with new information while preserving existing content.", "category": "productivity", "icon": "edit" }], "suggestedWith": ["jira", "slack", "notion"] },
|
|
11
11
|
{ "name": "discord", "displayName": "Discord", "icon": "discord.svg", "description": "Read messages, send messages, and interact with Discord servers", "auth": { "type": "oauth2", "provider": "discord", "authorizationUrl": "https://discord.com/api/oauth2/authorize", "tokenUrl": "https://discord.com/api/oauth2/token", "scopes": ["identify", "guilds", "guilds.members.read", "messages.read"], "tokenAuthMethod": "body", "requiredApis": [{ "name": "Discord Application", "enableUrl": "https://discord.com/developers/applications" }] }, "envVars": [{ "name": "DISCORD_CLIENT_ID", "description": "Discord OAuth Client ID (from your application)", "required": true, "sensitive": false, "docsUrl": "https://discord.com/developers/applications" }, { "name": "DISCORD_CLIENT_SECRET", "description": "Discord OAuth Client Secret", "required": true, "sensitive": true, "docsUrl": "https://discord.com/developers/applications" }, { "name": "DISCORD_BOT_TOKEN", "description": "Discord Bot Token (optional, for advanced bot features)", "required": false, "sensitive": true, "docsUrl": "https://discord.com/developers/applications" }], "tools": [{ "id": "list-guilds", "name": "List Guilds", "description": "List Discord servers (guilds) the user is a member of", "requiresWrite": false }, { "id": "list-channels", "name": "List Channels", "description": "List channels in a Discord server", "requiresWrite": false }, { "id": "get-messages", "name": "Get Messages", "description": "Get recent messages from a Discord channel", "requiresWrite": false }, { "id": "send-message", "name": "Send Message", "description": "Send a message to a Discord channel", "requiresWrite": true }, { "id": "get-user", "name": "Get User", "description": "Get information about the authenticated Discord user", "requiresWrite": false }], "prompts": [{ "id": "check-messages", "title": "Check my Discord messages", "prompt": "Check my recent Discord messages across all servers and summarize any important updates or mentions.", "category": "communication", "icon": "message" }, { "id": "send-announcement", "title": "Send an announcement", "prompt": "Send an announcement message to a specific Discord channel.", "category": "communication", "icon": "megaphone" }, { "id": "list-servers", "title": "List my servers", "prompt": "Show me all the Discord servers I'm a member of with their details.", "category": "communication", "icon": "list" }], "suggestedWith": ["slack", "github", "notion"] },
|
|
@@ -14,13 +14,13 @@ export const connectors = [
|
|
|
14
14
|
{ "name": "dropbox", "displayName": "Dropbox", "icon": "dropbox.svg", "description": "Access, search, and manage files in your Dropbox storage", "auth": { "type": "oauth2", "provider": "dropbox", "authorizationUrl": "https://www.dropbox.com/oauth2/authorize", "tokenUrl": "https://api.dropboxapi.com/oauth2/token", "scopes": ["files.content.read", "files.content.write", "files.metadata.read", "files.metadata.write", "account_info.read"], "tokenAuthMethod": "request_body", "supportsRefreshToken": true, "requiredApis": [{ "name": "Dropbox App", "enableUrl": "https://www.dropbox.com/developers/apps" }] }, "envVars": [{ "name": "DROPBOX_APP_KEY", "description": "Dropbox App Key (Client ID)", "required": true, "sensitive": false, "docsUrl": "https://www.dropbox.com/developers/apps" }, { "name": "DROPBOX_APP_SECRET", "description": "Dropbox App Secret", "required": true, "sensitive": true, "docsUrl": "https://www.dropbox.com/developers/apps" }], "tools": [{ "id": "list-files", "name": "List Files", "description": "List files and folders in a Dropbox folder", "requiresWrite": false }, { "id": "get-file", "name": "Get File", "description": "Get file metadata and optionally download file content", "requiresWrite": false }, { "id": "upload-file", "name": "Upload File", "description": "Upload or update a file in Dropbox", "requiresWrite": true }, { "id": "search-files", "name": "Search Files", "description": "Search for files and folders by name or content", "requiresWrite": false }, { "id": "get-account", "name": "Get Account Info", "description": "Get current user account information and storage usage", "requiresWrite": false }], "prompts": [{ "id": "find-documents", "title": "Find my documents", "prompt": "Search my Dropbox for specific documents or files by name or content.", "category": "productivity", "icon": "search" }, { "id": "organize-files", "title": "Organize files", "prompt": "Help me organize and manage files in my Dropbox, including moving, copying, or cleaning up duplicates.", "category": "productivity", "icon": "folder" }, { "id": "backup-file", "title": "Backup a file", "prompt": "Upload and backup a file to my Dropbox storage.", "category": "productivity", "icon": "upload" }, { "id": "check-storage", "title": "Check storage", "prompt": "Check my Dropbox storage usage and available space.", "category": "productivity", "icon": "database" }], "suggestedWith": ["notion", "gmail", "drive"] },
|
|
15
15
|
{ "name": "figma", "displayName": "Figma", "icon": "figma.svg", "description": "Access Figma designs, files, comments, and collaborate on design projects", "auth": { "type": "oauth2", "provider": "figma", "authorizationUrl": "https://www.figma.com/oauth", "tokenUrl": "https://api.figma.com/v1/oauth/token", "scopes": ["file_content:read"], "tokenAuthMethod": "client_secret_basic", "requiredApis": [{ "name": "Figma OAuth App", "enableUrl": "https://www.figma.com/developers/apps" }] }, "envVars": [{ "name": "FIGMA_CLIENT_ID", "description": "Figma OAuth Client ID (from your app settings)", "required": true, "sensitive": false, "docsUrl": "https://www.figma.com/developers/apps" }, { "name": "FIGMA_CLIENT_SECRET", "description": "Figma OAuth Client Secret", "required": true, "sensitive": true, "docsUrl": "https://www.figma.com/developers/apps" }], "tools": [{ "id": "list-files", "name": "List Files", "description": "List recent Figma files accessible to the user", "requiresWrite": false }, { "id": "get-file", "name": "Get File", "description": "Get detailed information about a Figma file including components and styles", "requiresWrite": false }, { "id": "get-comments", "name": "Get Comments", "description": "Get all comments on a Figma file", "requiresWrite": false }, { "id": "post-comment", "name": "Post Comment", "description": "Post a comment on a Figma file", "requiresWrite": true }, { "id": "list-projects", "name": "List Projects", "description": "List all projects in a team", "requiresWrite": false }], "prompts": [{ "id": "review-design", "title": "Review a design", "prompt": "Review a Figma design file and provide feedback on the components, layout, and design system usage.", "category": "design", "icon": "eye" }, { "id": "summarize-comments", "title": "Summarize comments", "prompt": "Read all comments on a Figma file and summarize the feedback, action items, and unresolved discussions.", "category": "design", "icon": "message" }, { "id": "extract-components", "title": "Extract components", "prompt": "List all components in a Figma file and describe their structure, variants, and properties.", "category": "design", "icon": "component" }, { "id": "design-feedback", "title": "Give design feedback", "prompt": "Review the design file and post constructive feedback as comments on specific elements.", "category": "design", "icon": "plus" }], "suggestedWith": ["linear", "slack", "notion"] },
|
|
16
16
|
{ "name": "freshdesk", "displayName": "Freshdesk", "icon": "freshdesk.svg", "description": "Manage customer support tickets and contacts in Freshdesk", "auth": { "type": "oauth2", "provider": "freshdesk", "authorizationUrl": "https://accounts.freshworks.com/authorize", "tokenUrl": "https://accounts.freshworks.com/oauth/token", "scopes": ["freshdesk"], "requiredApis": [{ "name": "Freshdesk Developer Portal", "enableUrl": "https://developers.freshdesk.com/apps/" }] }, "envVars": [{ "name": "FRESHDESK_CLIENT_ID", "description": "Freshdesk OAuth Client ID", "required": true, "sensitive": false, "docsUrl": "https://developers.freshdesk.com/api/" }, { "name": "FRESHDESK_CLIENT_SECRET", "description": "Freshdesk OAuth Client Secret", "required": true, "sensitive": true, "docsUrl": "https://developers.freshdesk.com/api/" }], "tools": [{ "id": "list-tickets", "name": "List Tickets", "description": "List support tickets from Freshdesk", "requiresWrite": false }, { "id": "get-ticket", "name": "Get Ticket", "description": "Get details of a specific ticket", "requiresWrite": false }, { "id": "create-ticket", "name": "Create Ticket", "description": "Create a new support ticket", "requiresWrite": true }, { "id": "update-ticket", "name": "Update Ticket", "description": "Update an existing ticket", "requiresWrite": true }, { "id": "list-contacts", "name": "List Contacts", "description": "List customer contacts in Freshdesk", "requiresWrite": false }], "prompts": [{ "id": "my-tickets", "title": "Show my tickets", "prompt": "List all open support tickets assigned to me with their priority and status.", "category": "support", "icon": "inbox" }, { "id": "create-ticket", "title": "Create a ticket", "prompt": "Create a new support ticket with a subject, description, priority, and contact.", "category": "support", "icon": "plus" }], "suggestedWith": ["slack", "intercom", "zendesk"] },
|
|
17
|
-
{ "name": "github", "displayName": "GitHub", "icon": "github.svg", "description": "Manage repositories, issues, and pull requests", "auth": { "type": "oauth2", "provider": "github", "authorizationUrl": "https://github.com/login/oauth/authorize", "tokenUrl": "https://github.com/login/oauth/access_token", "scopes": ["repo", "read:user", "read:org"] }, "envVars": [{ "name": "GITHUB_CLIENT_ID", "description": "GitHub OAuth App Client ID", "required": true, "sensitive": false, "docsUrl": "https://github.com/settings/developers" }, { "name": "GITHUB_CLIENT_SECRET", "description": "GitHub OAuth App Client Secret", "required": true, "sensitive": true, "docsUrl": "https://github.com/settings/developers" }], "tools": [{ "id": "list-repos", "name": "List Repositories", "description": "Get list of user's repositories", "requiresWrite": false }, { "id": "list-prs", "name": "List Pull Requests", "description": "Get
|
|
17
|
+
{ "name": "github", "displayName": "GitHub", "icon": "github.svg", "description": "Manage repositories, issues, and pull requests", "auth": { "type": "oauth2", "provider": "github", "authorizationUrl": "https://github.com/login/oauth/authorize", "tokenUrl": "https://github.com/login/oauth/access_token", "scopes": ["repo", "read:user", "read:org"] }, "envVars": [{ "name": "GITHUB_CLIENT_ID", "description": "GitHub OAuth App Client ID", "required": true, "sensitive": false, "docsUrl": "https://github.com/settings/developers" }, { "name": "GITHUB_CLIENT_SECRET", "description": "GitHub OAuth App Client Secret", "required": true, "sensitive": true, "docsUrl": "https://github.com/settings/developers" }], "tools": [{ "id": "list-repos", "name": "List Repositories", "description": "Get list of user's repositories", "requiresWrite": false, "endpoint": { "method": "GET", "url": "https://api.github.com/user/repos", "params": { "type": { "type": "string", "in": "query", "description": "Type: all, owner, public, private, member" }, "sort": { "type": "string", "in": "query", "description": "Sort: created, updated, pushed, full_name", "default": "updated" }, "per_page": { "type": "number", "in": "query", "description": "Results per page (max 100)", "default": 30 } } } }, { "id": "get-repo", "name": "Get Repository", "description": "Get details of a specific repository", "requiresWrite": false, "endpoint": { "method": "GET", "url": "https://api.github.com/repos/{owner}/{repo}", "params": { "owner": { "type": "string", "in": "path", "description": "Repository owner", "required": true }, "repo": { "type": "string", "in": "path", "description": "Repository name", "required": true } } } }, { "id": "list-prs", "name": "List Pull Requests", "description": "Get pull requests for a repository", "requiresWrite": false, "endpoint": { "method": "GET", "url": "https://api.github.com/repos/{owner}/{repo}/pulls", "params": { "owner": { "type": "string", "in": "path", "description": "Repository owner", "required": true }, "repo": { "type": "string", "in": "path", "description": "Repository name", "required": true }, "state": { "type": "string", "in": "query", "description": "State: open, closed, all", "default": "open" }, "per_page": { "type": "number", "in": "query", "description": "Results per page", "default": 30 } } } }, { "id": "create-issue", "name": "Create Issue", "description": "Create a new issue in a repository", "requiresWrite": true, "endpoint": { "method": "POST", "url": "https://api.github.com/repos/{owner}/{repo}/issues", "params": { "owner": { "type": "string", "in": "path", "description": "Repository owner", "required": true }, "repo": { "type": "string", "in": "path", "description": "Repository name", "required": true } }, "body": { "title": { "type": "string", "description": "Issue title", "required": true }, "body": { "type": "string", "description": "Issue body (markdown)" }, "labels": { "type": "array", "description": "Label names" }, "assignees": { "type": "array", "description": "Usernames to assign" } } } }, { "id": "get-pr-diff", "name": "Get PR Diff", "description": "Get the diff for a pull request", "requiresWrite": false, "endpoint": { "method": "GET", "url": "https://api.github.com/repos/{owner}/{repo}/pulls/{pull_number}", "params": { "owner": { "type": "string", "in": "path", "description": "Repository owner", "required": true }, "repo": { "type": "string", "in": "path", "description": "Repository name", "required": true }, "pull_number": { "type": "number", "in": "path", "description": "Pull request number", "required": true }, "Accept": { "type": "string", "in": "header", "description": "Response format", "default": "application/vnd.github.v3.diff" } } } }, { "id": "list-issues", "name": "List Issues", "description": "List issues for a repository", "requiresWrite": false, "endpoint": { "type": "graphql", "method": "POST", "url": "https://api.github.com/graphql", "query": "query($owner: String!, $repo: String!, $first: Int, $states: [IssueState!]) { repository(owner: $owner, name: $repo) { issues(first: $first, states: $states, orderBy: { field: UPDATED_AT, direction: DESC }) { nodes { id number title body state url createdAt updatedAt author { login } labels(first: 10) { nodes { name } } assignees(first: 10) { nodes { login } } } } } }", "params": { "owner": { "type": "string", "in": "body", "description": "Repository owner", "required": true }, "repo": { "type": "string", "in": "body", "description": "Repository name", "required": true }, "states": { "type": "string[]", "in": "body", "description": "Issue states to include (e.g. OPEN, CLOSED)", "default": ["OPEN"] }, "first": { "type": "number", "in": "body", "description": "Results per page", "default": 30 } }, "response": { "transform": "repository.issues.nodes" } } }], "prompts": [{ "id": "review-prs", "title": "Review my open PRs", "prompt": "Show me my open pull requests and help me review them. Summarize the changes and any comments.", "category": "development", "icon": "git-pull-request" }, { "id": "create-issue", "title": "Create GitHub issue", "prompt": "Help me create a new GitHub issue with a clear description and appropriate labels.", "category": "development", "icon": "circle-dot" }, { "id": "summarize-commits", "title": "Summarize recent commits", "prompt": "Summarize the recent commits in my repository and highlight significant changes.", "category": "development", "icon": "git-commit" }], "suggestedWith": ["jira", "slack"] },
|
|
18
18
|
{ "name": "gitlab", "displayName": "GitLab", "icon": "gitlab.svg", "description": "Search and manage GitLab issues, merge requests, and projects", "auth": { "type": "oauth2", "provider": "gitlab", "authorizationUrl": "https://gitlab.com/oauth/authorize", "tokenUrl": "https://gitlab.com/oauth/token", "scopes": ["api", "read_user", "read_repository"], "tokenAuthMethod": "body", "requiredApis": [{ "name": "GitLab Application", "enableUrl": "https://gitlab.com/-/profile/applications" }] }, "envVars": [{ "name": "GITLAB_CLIENT_ID", "description": "GitLab OAuth Application ID", "required": true, "sensitive": false, "docsUrl": "https://docs.gitlab.com/ee/api/oauth2.html" }, { "name": "GITLAB_CLIENT_SECRET", "description": "GitLab OAuth Application Secret", "required": true, "sensitive": true, "docsUrl": "https://docs.gitlab.com/ee/api/oauth2.html" }], "tools": [{ "id": "search-issues", "name": "Search Issues", "description": "Search for issues across projects", "requiresWrite": false }, { "id": "get-issue", "name": "Get Issue", "description": "Get detailed information about a specific issue", "requiresWrite": false }, { "id": "create-issue", "name": "Create Issue", "description": "Create a new issue in a project", "requiresWrite": true }, { "id": "list-merge-requests", "name": "List Merge Requests", "description": "List merge requests for a project or across projects", "requiresWrite": false }, { "id": "list-projects", "name": "List Projects", "description": "List accessible GitLab projects", "requiresWrite": false }], "prompts": [{ "id": "find-issues", "title": "Find my issues", "prompt": "Search for issues assigned to me that are open. Show me the most important ones.", "category": "development", "icon": "bug" }, { "id": "review-mrs", "title": "Review merge requests", "prompt": "Show me all open merge requests that need my review. Summarize what each one does.", "category": "development", "icon": "git-merge" }, { "id": "create-bug-report", "title": "Create bug report", "prompt": "Help me create a detailed bug report issue with steps to reproduce, expected vs actual behavior.", "category": "development", "icon": "plus" }, { "id": "project-status", "title": "Project status", "prompt": "Give me a summary of my projects: open issues, merge requests, and recent activity.", "category": "development", "icon": "list" }], "suggestedWith": ["github", "jira", "slack"] },
|
|
19
|
-
{ "name": "gmail", "displayName": "Gmail", "icon": "gmail.svg", "description": "Read and send emails via Gmail API", "auth": { "type": "oauth2", "provider": "google", "authorizationUrl": "https://accounts.google.com/o/oauth2/v2/auth", "tokenUrl": "https://oauth2.googleapis.com/token", "scopes": ["https://www.googleapis.com/auth/gmail.readonly", "https://www.googleapis.com/auth/gmail.send", "https://www.googleapis.com/auth/gmail.modify"], "requiredApis": [{ "name": "Gmail API", "enableUrl": "https://console.cloud.google.com/apis/library/gmail.googleapis.com" }] }, "envVars": [{ "name": "GOOGLE_CLIENT_ID", "description": "Google OAuth Client ID", "required": true, "sensitive": false, "docsUrl": "https://console.cloud.google.com/apis/credentials" }, { "name": "GOOGLE_CLIENT_SECRET", "description": "Google OAuth Client Secret", "required": true, "sensitive": true, "docsUrl": "https://console.cloud.google.com/apis/credentials" }], "tools": [{ "id": "list-emails", "name": "List Emails", "description": "
|
|
19
|
+
{ "name": "gmail", "displayName": "Gmail", "icon": "gmail.svg", "description": "Read and send emails via Gmail API", "auth": { "type": "oauth2", "provider": "google", "authorizationUrl": "https://accounts.google.com/o/oauth2/v2/auth", "tokenUrl": "https://oauth2.googleapis.com/token", "scopes": ["https://www.googleapis.com/auth/gmail.readonly", "https://www.googleapis.com/auth/gmail.send", "https://www.googleapis.com/auth/gmail.modify"], "requiredApis": [{ "name": "Gmail API", "enableUrl": "https://console.cloud.google.com/apis/library/gmail.googleapis.com" }] }, "envVars": [{ "name": "GOOGLE_CLIENT_ID", "description": "Google OAuth Client ID", "required": true, "sensitive": false, "docsUrl": "https://console.cloud.google.com/apis/credentials" }, { "name": "GOOGLE_CLIENT_SECRET", "description": "Google OAuth Client Secret", "required": true, "sensitive": true, "docsUrl": "https://console.cloud.google.com/apis/credentials" }], "tools": [{ "id": "list-emails", "name": "List Emails", "description": "List email message IDs from inbox. Use get-email to fetch full content for each message.", "requiresWrite": false, "endpoint": { "method": "GET", "url": "https://gmail.googleapis.com/gmail/v1/users/me/messages", "params": { "maxResults": { "type": "number", "in": "query", "description": "Maximum number of messages to return (1-500)", "default": 20 }, "q": { "type": "string", "in": "query", "description": "Gmail search query (e.g. is:unread, from:user@example.com)" }, "labelIds": { "type": "string[]", "in": "query", "description": "Only return messages with these label IDs (e.g. INBOX, UNREAD)" } }, "response": { "transform": "messages" } } }, { "id": "send-email", "name": "Send Email", "description": "Send an email to recipients", "requiresWrite": true, "endpoint": { "method": "POST", "url": "https://gmail.googleapis.com/gmail/v1/users/me/messages/send", "body": { "raw": { "type": "string", "description": "Base64url-encoded RFC 2822 email message", "required": true } } } }, { "id": "get-email", "name": "Get Email", "description": "Get a specific email by ID with full content", "requiresWrite": false, "endpoint": { "method": "GET", "url": "https://gmail.googleapis.com/gmail/v1/users/me/messages/{messageId}", "params": { "messageId": { "type": "string", "in": "path", "description": "Email message ID", "required": true }, "format": { "type": "string", "in": "query", "description": "Format: full, metadata, minimal, raw", "default": "full" } } } }, { "id": "search-emails", "name": "Search Emails", "description": "Search emails by query", "requiresWrite": false, "endpoint": { "method": "GET", "url": "https://gmail.googleapis.com/gmail/v1/users/me/messages", "params": { "q": { "type": "string", "in": "query", "description": "Gmail search query", "required": true }, "maxResults": { "type": "number", "in": "query", "description": "Maximum results", "default": 10 } }, "response": { "transform": "messages" } } }], "prompts": [{ "id": "summarize-emails", "title": "Summarize today's emails", "prompt": "Summarize my unread emails from today. Group them by priority and highlight any that need immediate attention.", "category": "productivity", "icon": "mail" }, { "id": "draft-reply", "title": "Draft a quick reply", "prompt": "Help me draft a reply to my most recent email. Keep it professional and concise.", "category": "productivity", "icon": "reply" }, { "id": "find-emails", "title": "Find important emails", "prompt": "Search my emails for important messages from the past week that I might have missed.", "category": "productivity", "icon": "search" }], "suggestedWith": ["calendar", "slack"] },
|
|
20
20
|
{ "name": "hubspot", "displayName": "HubSpot", "icon": "hubspot.svg", "description": "Manage contacts, companies, and deals in your HubSpot CRM", "auth": { "type": "oauth2", "provider": "hubspot", "authorizationUrl": "https://app.hubspot.com/oauth/authorize", "tokenUrl": "https://api.hubapi.com/oauth/v1/token", "scopes": ["crm.objects.contacts.read", "crm.objects.contacts.write", "crm.objects.companies.read", "crm.objects.deals.read"], "tokenAuthMethod": "request_body", "requiredApis": [{ "name": "HubSpot App", "enableUrl": "https://app.hubspot.com/developer" }] }, "envVars": [{ "name": "HUBSPOT_CLIENT_ID", "description": "HubSpot OAuth Client ID (from your app)", "required": true, "sensitive": false, "docsUrl": "https://app.hubspot.com/developer" }, { "name": "HUBSPOT_CLIENT_SECRET", "description": "HubSpot OAuth Client Secret", "required": true, "sensitive": true, "docsUrl": "https://app.hubspot.com/developer" }], "tools": [{ "id": "list-contacts", "name": "List Contacts", "description": "List contacts from your HubSpot CRM", "requiresWrite": false }, { "id": "get-contact", "name": "Get Contact", "description": "Get detailed information about a specific contact", "requiresWrite": false }, { "id": "create-contact", "name": "Create Contact", "description": "Create a new contact in HubSpot CRM", "requiresWrite": true }, { "id": "list-deals", "name": "List Deals", "description": "List sales deals from your HubSpot CRM", "requiresWrite": false }, { "id": "create-deal", "name": "Create Deal", "description": "Create a new deal in HubSpot CRM", "requiresWrite": true }], "prompts": [{ "id": "find-contacts", "title": "Find contacts", "prompt": "Search for contacts in my HubSpot CRM and show me their key information.", "category": "crm", "icon": "search" }, { "id": "create-contact", "title": "Create a contact", "prompt": "Create a new contact in HubSpot CRM with the information I provide.", "category": "crm", "icon": "plus" }, { "id": "pipeline-summary", "title": "Pipeline summary", "prompt": "Show me a summary of my current sales deals and pipeline status.", "category": "crm", "icon": "chart" }], "suggestedWith": ["gmail", "slack", "calendar"] },
|
|
21
21
|
{ "name": "intercom", "displayName": "Intercom", "icon": "intercom.svg", "description": "Customer messaging platform for support and engagement", "auth": { "type": "oauth2", "provider": "intercom", "authorizationUrl": "https://app.intercom.com/oauth", "tokenUrl": "https://api.intercom.io/auth/eagle/token", "scopes": [], "requiredApis": [{ "name": "Intercom Developer Hub", "enableUrl": "https://developers.intercom.com/building-apps/" }] }, "envVars": [{ "name": "INTERCOM_CLIENT_ID", "description": "Intercom OAuth Client ID", "required": true, "sensitive": false, "docsUrl": "https://developers.intercom.com/building-apps/docs/setting-up-oauth" }, { "name": "INTERCOM_CLIENT_SECRET", "description": "Intercom OAuth Client Secret", "required": true, "sensitive": true, "docsUrl": "https://developers.intercom.com/building-apps/docs/setting-up-oauth" }], "tools": [{ "id": "list-contacts", "name": "List Contacts", "description": "List contacts from Intercom workspace", "requiresWrite": false }, { "id": "get-contact", "name": "Get Contact", "description": "Get details of a specific contact", "requiresWrite": false }, { "id": "list-conversations", "name": "List Conversations", "description": "List conversations from Intercom", "requiresWrite": false }, { "id": "get-conversation", "name": "Get Conversation", "description": "Get details of a specific conversation", "requiresWrite": false }, { "id": "send-message", "name": "Send Message", "description": "Send a message in a conversation", "requiresWrite": true }], "prompts": [{ "id": "recent-conversations", "title": "Show recent conversations", "prompt": "List the most recent customer conversations from Intercom with their status and priority.", "category": "support", "icon": "message-circle" }, { "id": "find-contact", "title": "Find a contact", "prompt": "Search for a contact in Intercom and show their details and conversation history.", "category": "support", "icon": "user" }], "suggestedWith": ["slack", "zendesk", "hubspot"] },
|
|
22
22
|
{ "name": "jira", "displayName": "Jira", "icon": "jira.svg", "description": "Search, create, and manage Jira issues and projects", "auth": { "type": "oauth2", "provider": "atlassian", "authorizationUrl": "https://auth.atlassian.com/authorize", "tokenUrl": "https://auth.atlassian.com/oauth/token", "scopes": ["read:jira-work", "write:jira-work", "read:jira-user", "offline_access"], "tokenAuthMethod": "body", "requiredApis": [{ "name": "Atlassian OAuth 2.0", "enableUrl": "https://developer.atlassian.com/console/myapps/" }], "additionalAuthParams": { "audience": "api.atlassian.com", "prompt": "consent" } }, "envVars": [{ "name": "ATLASSIAN_CLIENT_ID", "description": "Atlassian OAuth 2.0 Client ID (from your app)", "required": true, "sensitive": false, "docsUrl": "https://developer.atlassian.com/console/myapps/" }, { "name": "ATLASSIAN_CLIENT_SECRET", "description": "Atlassian OAuth 2.0 Client Secret", "required": true, "sensitive": true, "docsUrl": "https://developer.atlassian.com/console/myapps/" }], "tools": [{ "id": "search-issues", "name": "Search Issues", "description": "Search Jira issues using JQL (Jira Query Language)", "requiresWrite": false }, { "id": "get-issue", "name": "Get Issue", "description": "Get detailed information about a specific Jira issue", "requiresWrite": false }, { "id": "create-issue", "name": "Create Issue", "description": "Create a new Jira issue in a project", "requiresWrite": true }, { "id": "update-issue", "name": "Update Issue", "description": "Update an existing Jira issue (status, fields, etc.)", "requiresWrite": true }, { "id": "list-projects", "name": "List Projects", "description": "List all accessible Jira projects", "requiresWrite": false }], "prompts": [{ "id": "find-bugs", "title": "Find open bugs", "prompt": "Search for all open bugs assigned to me or in my current sprint.", "category": "productivity", "icon": "bug" }, { "id": "create-task", "title": "Create a task", "prompt": "Create a new task in Jira with a title, description, and priority.", "category": "productivity", "icon": "plus" }, { "id": "sprint-summary", "title": "Sprint summary", "prompt": "Get a summary of all issues in the current sprint, organized by status.", "category": "productivity", "icon": "list" }, { "id": "update-status", "title": "Update issue status", "prompt": "Move an issue to a different status (To Do, In Progress, Done, etc.).", "category": "productivity", "icon": "check" }], "suggestedWith": ["github", "slack", "confluence"] },
|
|
23
|
-
{ "name": "linear", "displayName": "Linear", "icon": "linear.svg", "description": "Search, create, and manage Linear issues and projects", "auth": { "type": "oauth2", "provider": "linear", "authorizationUrl": "https://linear.app/oauth/authorize", "tokenUrl": "https://api.linear.app/oauth/token", "scopes": ["read", "write"], "tokenAuthMethod": "basic", "requiredApis": [{ "name": "Linear OAuth Application", "enableUrl": "https://linear.app/settings/api" }] }, "envVars": [{ "name": "LINEAR_CLIENT_ID", "description": "Linear OAuth Client ID (from your OAuth application)", "required": true, "sensitive": false, "docsUrl": "https://linear.app/settings/api" }, { "name": "LINEAR_CLIENT_SECRET", "description": "Linear OAuth Client Secret", "required": true, "sensitive": true, "docsUrl": "https://linear.app/settings/api" }], "tools": [{ "id": "search-issues", "name": "Search Issues", "description": "Search for Linear issues by title or description", "requiresWrite": false }, { "id": "get-issue", "name": "Get Issue", "description": "Get detailed information about a specific Linear issue", "requiresWrite": false }, { "id": "create-issue", "name": "Create Issue", "description": "Create a new Linear issue in a team", "requiresWrite": true }, { "id": "update-issue", "name": "Update Issue", "description": "Update the status, assignee, or other properties of an issue", "requiresWrite": true }, { "id": "list-projects", "name": "List Projects", "description": "List all projects in the workspace", "requiresWrite": false }], "prompts": [{ "id": "find-issues", "title": "Find my issues", "prompt": "Search for Linear issues assigned to me or related to a specific topic.", "category": "productivity", "icon": "search" }, { "id": "create-bug-report", "title": "Create bug report", "prompt": "Create a new bug report in Linear with title, description, and relevant labels.", "category": "productivity", "icon": "plus" }, { "id": "update-issue-status", "title": "Update issue status", "prompt": "Update the status of a Linear issue (e.g., mark as done, in progress, blocked).", "category": "productivity", "icon": "check" }, { "id": "project-overview", "title": "Project overview", "prompt": "Get an overview of all projects in Linear, including their status and key issues.", "category": "productivity", "icon": "list" }], "suggestedWith": ["github", "slack", "figma"] },
|
|
23
|
+
{ "name": "linear", "displayName": "Linear", "icon": "linear.svg", "description": "Search, create, and manage Linear issues and projects", "auth": { "type": "oauth2", "provider": "linear", "authorizationUrl": "https://linear.app/oauth/authorize", "tokenUrl": "https://api.linear.app/oauth/token", "scopes": ["read", "write"], "tokenAuthMethod": "basic", "requiredApis": [{ "name": "Linear OAuth Application", "enableUrl": "https://linear.app/settings/api" }] }, "envVars": [{ "name": "LINEAR_CLIENT_ID", "description": "Linear OAuth Client ID (from your OAuth application)", "required": true, "sensitive": false, "docsUrl": "https://linear.app/settings/api" }, { "name": "LINEAR_CLIENT_SECRET", "description": "Linear OAuth Client Secret", "required": true, "sensitive": true, "docsUrl": "https://linear.app/settings/api" }], "tools": [{ "id": "search-issues", "name": "Search Issues", "description": "Search for Linear issues by title or description", "requiresWrite": false, "endpoint": { "type": "graphql", "method": "POST", "url": "https://api.linear.app/graphql", "query": "query($query: String!, $first: Int) { issueSearch(query: $query, first: $first) { nodes { id identifier title description state { name } assignee { name } priority priorityLabel createdAt updatedAt } } }", "params": { "query": { "type": "string", "in": "body", "description": "Search query text", "required": true }, "first": { "type": "number", "in": "body", "description": "Max results", "default": 20 } }, "response": { "transform": "issueSearch" } } }, { "id": "get-issue", "name": "Get Issue", "description": "Get detailed information about a specific Linear issue", "requiresWrite": false, "endpoint": { "type": "graphql", "method": "POST", "url": "https://api.linear.app/graphql", "query": "query($id: String!) { issue(id: $id) { id identifier title description state { name } assignee { name email } priority priorityLabel team { name } project { name } labels { nodes { name } } comments { nodes { body user { name } createdAt } } createdAt updatedAt } }", "params": { "id": { "type": "string", "in": "body", "description": "Issue ID or identifier (e.g. ENG-123)", "required": true } }, "response": { "transform": "issue" } } }, { "id": "create-issue", "name": "Create Issue", "description": "Create a new Linear issue in a team", "requiresWrite": true, "endpoint": { "type": "graphql", "method": "POST", "url": "https://api.linear.app/graphql", "query": "mutation($teamId: String!, $title: String!, $description: String, $priority: Int) { issueCreate(input: { teamId: $teamId, title: $title, description: $description, priority: $priority }) { success issue { id identifier title url } } }", "params": { "teamId": { "type": "string", "in": "body", "description": "Team ID", "required": true }, "title": { "type": "string", "in": "body", "description": "Issue title", "required": true }, "description": { "type": "string", "in": "body", "description": "Issue description (markdown)" }, "priority": { "type": "number", "in": "body", "description": "Priority (0=none, 1=urgent, 2=high, 3=medium, 4=low)" } }, "response": { "transform": "issueCreate" } } }, { "id": "update-issue", "name": "Update Issue", "description": "Update the status, assignee, or other properties of an issue", "requiresWrite": true, "endpoint": { "type": "graphql", "method": "POST", "url": "https://api.linear.app/graphql", "query": "mutation($id: String!, $stateId: String, $assigneeId: String, $priority: Int) { issueUpdate(id: $id, input: { stateId: $stateId, assigneeId: $assigneeId, priority: $priority }) { success issue { id identifier title state { name } assignee { name } } } }", "params": { "id": { "type": "string", "in": "body", "description": "Issue ID", "required": true }, "stateId": { "type": "string", "in": "body", "description": "New state ID" }, "assigneeId": { "type": "string", "in": "body", "description": "New assignee user ID" }, "priority": { "type": "number", "in": "body", "description": "New priority" } }, "response": { "transform": "issueUpdate" } } }, { "id": "list-projects", "name": "List Projects", "description": "List all projects in the workspace", "requiresWrite": false, "endpoint": { "type": "graphql", "method": "POST", "url": "https://api.linear.app/graphql", "query": "query($first: Int) { projects(first: $first) { nodes { id name description state startDate targetDate lead { name } teams { nodes { name } } } } }", "params": { "first": { "type": "number", "in": "body", "description": "Max results", "default": 50 } }, "response": { "transform": "projects" } } }], "prompts": [{ "id": "find-issues", "title": "Find my issues", "prompt": "Search for Linear issues assigned to me or related to a specific topic.", "category": "productivity", "icon": "search" }, { "id": "create-bug-report", "title": "Create bug report", "prompt": "Create a new bug report in Linear with title, description, and relevant labels.", "category": "productivity", "icon": "plus" }, { "id": "update-issue-status", "title": "Update issue status", "prompt": "Update the status of a Linear issue (e.g., mark as done, in progress, blocked).", "category": "productivity", "icon": "check" }, { "id": "project-overview", "title": "Project overview", "prompt": "Get an overview of all projects in Linear, including their status and key issues.", "category": "productivity", "icon": "list" }], "suggestedWith": ["github", "slack", "figma"] },
|
|
24
24
|
{ "name": "mailchimp", "displayName": "Mailchimp", "icon": "mailchimp.svg", "description": "Manage email campaigns, lists, and subscribers in Mailchimp", "auth": { "type": "oauth2", "provider": "mailchimp", "authorizationUrl": "https://login.mailchimp.com/oauth2/authorize", "tokenUrl": "https://login.mailchimp.com/oauth2/token", "scopes": [], "requiredApis": [{ "name": "Mailchimp API", "enableUrl": "https://admin.mailchimp.com/account/oauth2/" }] }, "envVars": [{ "name": "MAILCHIMP_CLIENT_ID", "description": "Mailchimp OAuth Client ID", "required": true, "sensitive": false, "docsUrl": "https://mailchimp.com/developer/marketing/guides/access-user-data-oauth-2/" }, { "name": "MAILCHIMP_CLIENT_SECRET", "description": "Mailchimp OAuth Client Secret", "required": true, "sensitive": true, "docsUrl": "https://mailchimp.com/developer/marketing/guides/access-user-data-oauth-2/" }], "tools": [{ "id": "list-campaigns", "name": "List Campaigns", "description": "List all email campaigns in Mailchimp", "requiresWrite": false }, { "id": "get-campaign", "name": "Get Campaign", "description": "Get details of a specific campaign", "requiresWrite": false }, { "id": "list-lists", "name": "List Audience Lists", "description": "List all audience lists (mailing lists) in Mailchimp", "requiresWrite": false }, { "id": "get-list", "name": "Get Audience List", "description": "Get details of a specific audience list", "requiresWrite": false }, { "id": "list-members", "name": "List Members", "description": "List subscribers/members in an audience list", "requiresWrite": false }], "prompts": [{ "id": "campaign-stats", "title": "Show campaign stats", "prompt": "Show me the performance statistics for my recent email campaigns in Mailchimp.", "category": "marketing", "icon": "chart" }, { "id": "list-subscribers", "title": "List subscribers", "prompt": "Show me the subscribers in my main email list with their subscription status.", "category": "marketing", "icon": "users" }], "suggestedWith": ["slack", "notion", "hubspot"] },
|
|
25
25
|
{ "name": "mixpanel", "displayName": "Mixpanel", "icon": "mixpanel.svg", "description": "Track events, analyze funnels, and understand user behavior with Mixpanel analytics", "auth": { "type": "api-key", "requiredApis": [{ "name": "Mixpanel API", "enableUrl": "https://mixpanel.com/settings/project" }], "keyName": "MIXPANEL_PROJECT_TOKEN" }, "envVars": [{ "name": "MIXPANEL_PROJECT_TOKEN", "description": "Mixpanel Project Token for event tracking", "required": true, "sensitive": true, "docsUrl": "https://docs.mixpanel.com/docs/tracking-methods/id-management/authentication" }, { "name": "MIXPANEL_API_SECRET", "description": "Mixpanel API Secret for data export and query operations", "required": true, "sensitive": true, "docsUrl": "https://developer.mixpanel.com/reference/authentication" }, { "name": "MIXPANEL_PROJECT_ID", "description": "Mixpanel Project ID (found in project settings)", "required": true, "sensitive": false, "docsUrl": "https://docs.mixpanel.com/docs/admin/organizations-projects/manage-projects" }], "tools": [{ "id": "track-event", "name": "Track Event", "description": "Track a custom event in Mixpanel with properties", "requiresWrite": true }, { "id": "query-events", "name": "Query Events", "description": "Query and export event data from Mixpanel", "requiresWrite": false }, { "id": "get-funnel", "name": "Get Funnel", "description": "Retrieve funnel analysis data to understand conversion rates", "requiresWrite": false }, { "id": "get-retention", "name": "Get Retention", "description": "Analyze user retention cohorts over time", "requiresWrite": false }, { "id": "list-cohorts", "name": "List Cohorts", "description": "List all user cohorts defined in your Mixpanel project", "requiresWrite": false }], "prompts": [{ "id": "event-analysis", "title": "Event analysis", "prompt": "Show me the most important events tracked in my Mixpanel project over the last 7 days and their trends.", "category": "analytics", "icon": "chart" }, { "id": "funnel-performance", "title": "Funnel performance", "prompt": "Analyze my key conversion funnels and identify where users are dropping off.", "category": "analytics", "icon": "funnel" }, { "id": "retention-insights", "title": "Retention insights", "prompt": "Give me insights about user retention and cohort behavior over the past month.", "category": "analytics", "icon": "users" }], "suggestedWith": ["slack", "analytics", "monitoring"] },
|
|
26
26
|
{ "name": "monday", "displayName": "Monday.com", "icon": "monday.svg", "description": "Manage projects, tasks, and workflows in Monday.com", "auth": { "type": "oauth2", "provider": "monday", "authorizationUrl": "https://auth.monday.com/oauth2/authorize", "tokenUrl": "https://auth.monday.com/oauth2/token", "scopes": ["me:read", "boards:read", "boards:write"], "requiredApis": [{ "name": "Monday.com Developers", "enableUrl": "https://monday.com/developers/apps" }] }, "envVars": [{ "name": "MONDAY_CLIENT_ID", "description": "Monday.com OAuth Client ID", "required": true, "sensitive": false, "docsUrl": "https://developer.monday.com/apps/docs/oauth" }, { "name": "MONDAY_CLIENT_SECRET", "description": "Monday.com OAuth Client Secret", "required": true, "sensitive": true, "docsUrl": "https://developer.monday.com/apps/docs/oauth" }], "tools": [{ "id": "list-boards", "name": "List Boards", "description": "List all boards in the workspace", "requiresWrite": false }, { "id": "list-items", "name": "List Items", "description": "List items in a board", "requiresWrite": false }, { "id": "get-item", "name": "Get Item", "description": "Get details of a specific item", "requiresWrite": false }, { "id": "create-item", "name": "Create Item", "description": "Create a new item in a board", "requiresWrite": true }, { "id": "update-item", "name": "Update Item", "description": "Update an existing item", "requiresWrite": true }], "prompts": [{ "id": "my-items", "title": "Show my items", "prompt": "List all items assigned to me in Monday.com with their status and due dates.", "category": "productivity", "icon": "list" }, { "id": "create-item", "title": "Create an item", "prompt": "Create a new item with a name, status, and assign it to someone.", "category": "productivity", "icon": "plus" }], "suggestedWith": ["slack", "notion", "asana"] },
|
|
@@ -37,7 +37,7 @@ export const connectors = [
|
|
|
37
37
|
{ "name": "sharepoint", "displayName": "SharePoint", "icon": "sharepoint.svg", "description": "Access and manage SharePoint sites, document libraries, and files", "auth": { "type": "oauth2", "provider": "microsoft", "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/v2.0/authorize", "tokenUrl": "https://login.microsoftonline.com/common/oauth2/v2.0/token", "scopes": ["Sites.Read.All", "Sites.ReadWrite.All", "Files.Read.All", "Files.ReadWrite.All", "offline_access"], "tokenAuthMethod": "body", "requiredApis": [{ "name": "Microsoft Graph API", "enableUrl": "https://portal.azure.com/#blade/Microsoft_AAD_RegisteredApps/ApplicationsListBlade" }] }, "envVars": [{ "name": "MICROSOFT_CLIENT_ID", "description": "Microsoft Azure App Client ID (shared with Outlook/Teams)", "required": true, "sensitive": false, "docsUrl": "https://portal.azure.com/#blade/Microsoft_AAD_RegisteredApps/ApplicationsListBlade" }, { "name": "MICROSOFT_CLIENT_SECRET", "description": "Microsoft Azure App Client Secret", "required": true, "sensitive": true, "docsUrl": "https://portal.azure.com/#blade/Microsoft_AAD_RegisteredApps/ApplicationsListBlade" }], "tools": [{ "id": "list-sites", "name": "List SharePoint Sites", "description": "List all SharePoint sites the user has access to", "requiresWrite": false }, { "id": "get-site", "name": "Get Site Details", "description": "Get detailed information about a specific SharePoint site", "requiresWrite": false }, { "id": "list-files", "name": "List Files", "description": "List files and folders in a SharePoint document library", "requiresWrite": false }, { "id": "get-file", "name": "Get File", "description": "Get file metadata and content from SharePoint", "requiresWrite": false }, { "id": "upload-file", "name": "Upload File", "description": "Upload a file to a SharePoint document library", "requiresWrite": true }], "prompts": [{ "id": "search-documents", "title": "Search documents", "prompt": "Search for documents in SharePoint sites and summarize their content.", "category": "productivity", "icon": "search" }, { "id": "list-recent-files", "title": "List recent files", "prompt": "Show me the most recently modified files across all SharePoint sites I have access to.", "category": "productivity", "icon": "document" }, { "id": "organize-documents", "title": "Organize documents", "prompt": "Help me organize and categorize documents in a SharePoint library.", "category": "productivity", "icon": "folder" }], "suggestedWith": ["outlook", "teams", "onedrive"] },
|
|
38
38
|
{ "name": "sheets", "displayName": "Google Sheets", "icon": "sheets.svg", "description": "Read, write, and manage Google Sheets spreadsheets", "auth": { "type": "oauth2", "provider": "google", "authorizationUrl": "https://accounts.google.com/o/oauth2/v2/auth", "tokenUrl": "https://oauth2.googleapis.com/token", "scopes": ["https://www.googleapis.com/auth/spreadsheets", "https://www.googleapis.com/auth/drive.readonly"], "requiredApis": [{ "name": "Google Sheets API", "enableUrl": "https://console.cloud.google.com/apis/library/sheets.googleapis.com" }, { "name": "Google Drive API", "enableUrl": "https://console.cloud.google.com/apis/library/drive.googleapis.com" }] }, "envVars": [{ "name": "GOOGLE_CLIENT_ID", "description": "Google OAuth Client ID", "required": true, "sensitive": false, "docsUrl": "https://console.cloud.google.com/apis/credentials" }, { "name": "GOOGLE_CLIENT_SECRET", "description": "Google OAuth Client Secret", "required": true, "sensitive": true, "docsUrl": "https://console.cloud.google.com/apis/credentials" }], "tools": [{ "id": "list-spreadsheets", "name": "List Spreadsheets", "description": "List recent Google Sheets spreadsheets from Drive", "requiresWrite": false }, { "id": "get-spreadsheet", "name": "Get Spreadsheet", "description": "Get spreadsheet metadata including sheet names and properties", "requiresWrite": false }, { "id": "read-range", "name": "Read Range", "description": "Read cell data from a spreadsheet range", "requiresWrite": false }, { "id": "write-range", "name": "Write Range", "description": "Write data to a spreadsheet range", "requiresWrite": true }, { "id": "create-spreadsheet", "name": "Create Spreadsheet", "description": "Create a new spreadsheet with optional initial data", "requiresWrite": true }], "prompts": [{ "id": "analyze-data", "title": "Analyze spreadsheet data", "prompt": "Read and analyze data from a Google Sheets spreadsheet. Provide insights, trends, and statistics.", "category": "productivity", "icon": "chart" }, { "id": "create-report", "title": "Create a report spreadsheet", "prompt": "Create a new Google Sheets spreadsheet with formatted data, headers, and calculations.", "category": "productivity", "icon": "plus" }, { "id": "update-tracker", "title": "Update a tracker", "prompt": "Update a tracking spreadsheet with new data. Add rows, update values, or calculate totals.", "category": "productivity", "icon": "edit" }], "suggestedWith": ["gmail", "calendar", "notion"] },
|
|
39
39
|
{ "name": "shopify", "displayName": "Shopify", "icon": "shopify.svg", "description": "Manage products, orders, and customers in your Shopify store", "auth": { "type": "oauth2", "provider": "shopify", "authorizationUrl": "https://shop.myshopify.com/admin/oauth/authorize", "tokenUrl": "https://shop.myshopify.com/admin/oauth/access_token", "scopes": ["read_products", "write_products", "read_orders"], "requiredApis": [{ "name": "Shopify Admin API", "enableUrl": "https://partners.shopify.com" }] }, "envVars": [{ "name": "SHOPIFY_CLIENT_ID", "description": "Shopify OAuth Client ID (API Key)", "required": true, "sensitive": false, "docsUrl": "https://shopify.dev/docs/apps/auth/oauth" }, { "name": "SHOPIFY_CLIENT_SECRET", "description": "Shopify OAuth Client Secret (API Secret Key)", "required": true, "sensitive": true, "docsUrl": "https://shopify.dev/docs/apps/auth/oauth" }, { "name": "SHOPIFY_SHOP_DOMAIN", "description": "Your Shopify store domain (e.g., mystore.myshopify.com)", "required": true, "sensitive": false, "docsUrl": "https://shopify.dev/docs/apps/auth/oauth" }], "tools": [{ "id": "list-products", "name": "List Products", "description": "List products in your Shopify store", "requiresWrite": false }, { "id": "get-product", "name": "Get Product", "description": "Get details of a specific product", "requiresWrite": false }, { "id": "list-orders", "name": "List Orders", "description": "List orders from your Shopify store", "requiresWrite": false }, { "id": "get-order", "name": "Get Order", "description": "Get details of a specific order", "requiresWrite": false }, { "id": "list-customers", "name": "List Customers", "description": "List customers in your Shopify store", "requiresWrite": false }], "prompts": [{ "id": "list-products", "title": "Show my products", "prompt": "List all products in my Shopify store with their prices and inventory levels.", "category": "ecommerce", "icon": "shopping-bag" }, { "id": "recent-orders", "title": "Show recent orders", "prompt": "Show me the most recent orders from my Shopify store with customer details and order totals.", "category": "ecommerce", "icon": "receipt" }, { "id": "customer-list", "title": "Show my customers", "prompt": "List all customers in my Shopify store with their contact information and order history.", "category": "ecommerce", "icon": "users" }], "suggestedWith": ["stripe", "mailchimp", "analytics"] },
|
|
40
|
-
{ "name": "slack", "displayName": "Slack", "icon": "slack.svg", "description": "Send messages, read channels, and manage Slack workspace", "auth": { "type": "oauth2", "provider": "slack", "authorizationUrl": "https://slack.com/oauth/v2/authorize", "tokenUrl": "https://slack.com/api/oauth.v2.access", "scopes": ["channels:history", "channels:read", "chat:write", "users:read", "im:history", "im:read"] }, "envVars": [{ "name": "SLACK_CLIENT_ID", "description": "Slack App Client ID", "required": true, "sensitive": false, "docsUrl": "https://api.slack.com/apps" }, { "name": "SLACK_CLIENT_SECRET", "description": "Slack App Client Secret", "required": true, "sensitive": true, "docsUrl": "https://api.slack.com/apps" }], "tools": [{ "id": "list-channels", "name": "List Channels", "description": "Get list of Slack channels", "requiresWrite": false }, { "id": "send-message", "name": "Send Message", "description": "Send a message to a Slack channel", "requiresWrite": true }, { "id": "get-messages", "name": "Get Messages", "description": "Get recent messages from a channel", "requiresWrite": false }], "prompts": [{ "id": "catch-up-slack", "title": "Catch up on Slack", "prompt": "Summarize the important messages from my Slack channels from today. Highlight any mentions or urgent items.", "category": "productivity", "icon": "slack" }, { "id": "post-update", "title": "Post team update", "prompt": "Help me write and post a team update to Slack about my current work progress.", "category": "productivity", "icon": "message" }], "suggestedWith": ["gmail", "calendar", "jira"] },
|
|
40
|
+
{ "name": "slack", "displayName": "Slack", "icon": "slack.svg", "description": "Send messages, read channels, and manage Slack workspace", "auth": { "type": "oauth2", "provider": "slack", "authorizationUrl": "https://slack.com/oauth/v2/authorize", "tokenUrl": "https://slack.com/api/oauth.v2.access", "scopes": ["channels:history", "channels:read", "chat:write", "users:read", "im:history", "im:read"] }, "envVars": [{ "name": "SLACK_CLIENT_ID", "description": "Slack App Client ID", "required": true, "sensitive": false, "docsUrl": "https://api.slack.com/apps" }, { "name": "SLACK_CLIENT_SECRET", "description": "Slack App Client Secret", "required": true, "sensitive": true, "docsUrl": "https://api.slack.com/apps" }], "tools": [{ "id": "list-channels", "name": "List Channels", "description": "Get list of Slack channels", "requiresWrite": false, "endpoint": { "method": "POST", "url": "https://slack.com/api/conversations.list", "body": { "limit": { "type": "number", "description": "Max channels (1-1000)", "default": 100 }, "exclude_archived": { "type": "boolean", "description": "Exclude archived channels", "default": true }, "types": { "type": "string", "description": "Channel types: public_channel, private_channel, mpim, im", "default": "public_channel" } }, "response": { "transform": "channels" } } }, { "id": "send-message", "name": "Send Message", "description": "Send a message to a Slack channel", "requiresWrite": true, "endpoint": { "method": "POST", "url": "https://slack.com/api/chat.postMessage", "body": { "channel": { "type": "string", "description": "Channel ID to send to", "required": true }, "text": { "type": "string", "description": "Message text (supports mrkdwn)", "required": true }, "thread_ts": { "type": "string", "description": "Thread timestamp to reply to" }, "unfurl_links": { "type": "boolean", "description": "Unfurl URLs" } } } }, { "id": "get-messages", "name": "Get Messages", "description": "Get recent messages from a channel", "requiresWrite": false, "endpoint": { "method": "POST", "url": "https://slack.com/api/conversations.history", "body": { "channel": { "type": "string", "description": "Channel ID", "required": true }, "limit": { "type": "number", "description": "Max messages (1-1000)", "default": 20 }, "oldest": { "type": "string", "description": "Only messages after this timestamp" } }, "response": { "transform": "messages" } } }], "prompts": [{ "id": "catch-up-slack", "title": "Catch up on Slack", "prompt": "Summarize the important messages from my Slack channels from today. Highlight any mentions or urgent items.", "category": "productivity", "icon": "slack" }, { "id": "post-update", "title": "Post team update", "prompt": "Help me write and post a team update to Slack about my current work progress.", "category": "productivity", "icon": "message" }], "suggestedWith": ["gmail", "calendar", "jira"] },
|
|
41
41
|
{ "name": "snowflake", "displayName": "Snowflake", "icon": "snowflake.svg", "description": "Query and manage your Snowflake data warehouse with SQL operations across databases, schemas, and tables", "auth": { "type": "api-key", "requiredApis": [{ "name": "Snowflake Account", "enableUrl": "https://app.snowflake.com/" }] }, "envVars": [{ "name": "SNOWFLAKE_ACCOUNT", "description": "Your Snowflake account identifier (e.g., xy12345.us-east-1)", "required": true, "sensitive": false, "docsUrl": "https://docs.snowflake.com/en/user-guide/admin-account-identifier" }, { "name": "SNOWFLAKE_USERNAME", "description": "Snowflake username for authentication", "required": true, "sensitive": false, "docsUrl": "https://docs.snowflake.com/en/user-guide/admin-user-management" }, { "name": "SNOWFLAKE_PASSWORD", "description": "Snowflake password for authentication", "required": true, "sensitive": true, "docsUrl": "https://docs.snowflake.com/en/user-guide/admin-user-management" }, { "name": "SNOWFLAKE_WAREHOUSE", "description": "Default warehouse to use for queries (e.g., COMPUTE_WH)", "required": true, "sensitive": false, "docsUrl": "https://docs.snowflake.com/en/user-guide/warehouses" }, { "name": "SNOWFLAKE_DATABASE", "description": "Default database to use for queries", "required": false, "sensitive": false, "docsUrl": "https://docs.snowflake.com/en/user-guide/databases" }, { "name": "SNOWFLAKE_SCHEMA", "description": "Default schema to use for queries (defaults to PUBLIC)", "required": false, "sensitive": false, "docsUrl": "https://docs.snowflake.com/en/user-guide/schemas" }], "tools": [{ "id": "run-query", "name": "Run Query", "description": "Execute a SQL query against your Snowflake data warehouse", "requiresWrite": false }, { "id": "list-databases", "name": "List Databases", "description": "List all databases in your Snowflake account", "requiresWrite": false }, { "id": "list-schemas", "name": "List Schemas", "description": "List all schemas in a Snowflake database", "requiresWrite": false }, { "id": "list-tables", "name": "List Tables", "description": "List all tables in a Snowflake database schema", "requiresWrite": false }, { "id": "describe-table", "name": "Describe Table", "description": "Get detailed column information for a specific table", "requiresWrite": false }], "prompts": [{ "id": "query-data", "title": "Query my data warehouse", "prompt": "Help me query data from my Snowflake data warehouse. Show me specific records or analyze patterns.", "category": "data", "icon": "search" }, { "id": "analyze-tables", "title": "Analyze table structure", "prompt": "Show me the structure of tables in my Snowflake database and help me understand the schema.", "category": "data", "icon": "database" }, { "id": "data-insights", "title": "Generate insights", "prompt": "Analyze my Snowflake data and generate insights about trends, patterns, and anomalies.", "category": "analytics", "icon": "chart" }, { "id": "optimize-queries", "title": "Optimize queries", "prompt": "Help me optimize my SQL queries for better performance in Snowflake.", "category": "analytics", "icon": "lightning" }], "suggestedWith": ["github", "slack", "notion"] },
|
|
42
42
|
{ "name": "stripe", "displayName": "Stripe", "icon": "stripe.svg", "description": "Access Stripe payment data, customers, subscriptions, and balance information", "auth": { "type": "api-key", "requiredApis": [{ "name": "Stripe API", "enableUrl": "https://dashboard.stripe.com/apikeys" }], "keyName": "STRIPE_SECRET_KEY", "headerName": "Authorization", "headerPrefix": "Bearer" }, "envVars": [{ "name": "STRIPE_SECRET_KEY", "description": "Stripe Secret Key (starts with sk_)", "required": true, "sensitive": true, "docsUrl": "https://dashboard.stripe.com/apikeys" }, { "name": "STRIPE_WEBHOOK_SECRET", "description": "Stripe Webhook Secret (optional, for webhook verification)", "required": false, "sensitive": true, "docsUrl": "https://dashboard.stripe.com/webhooks" }], "tools": [{ "id": "list-customers", "name": "List Customers", "description": "List Stripe customers with optional filtering", "requiresWrite": false }, { "id": "get-customer", "name": "Get Customer", "description": "Retrieve detailed information about a specific customer", "requiresWrite": false }, { "id": "list-payments", "name": "List Payments", "description": "List payment intents with optional status filtering", "requiresWrite": false }, { "id": "get-balance", "name": "Get Balance", "description": "Retrieve the current account balance", "requiresWrite": false }, { "id": "list-subscriptions", "name": "List Subscriptions", "description": "List subscriptions with optional status filtering", "requiresWrite": false }], "prompts": [{ "id": "check-balance", "title": "Check account balance", "prompt": "Check my Stripe account balance and provide a summary of available and pending funds.", "category": "finance", "icon": "currency" }, { "id": "recent-payments", "title": "Recent payments", "prompt": "Show me the most recent successful payments in my Stripe account.", "category": "finance", "icon": "payment" }, { "id": "customer-overview", "title": "Customer overview", "prompt": "Give me an overview of my Stripe customers including total count and recent additions.", "category": "analytics", "icon": "users" }, { "id": "subscription-status", "title": "Subscription status", "prompt": "Show me the status of all active subscriptions and any that are expiring soon.", "category": "analytics", "icon": "repeat" }], "suggestedWith": ["slack", "email", "analytics"] },
|
|
43
43
|
{ "name": "supabase", "displayName": "Supabase", "icon": "supabase.svg", "description": "Query and manage your Supabase database with full CRUD operations", "auth": { "type": "api-key", "requiredApis": [{ "name": "Supabase Project", "enableUrl": "https://supabase.com/dashboard/projects" }] }, "envVars": [{ "name": "SUPABASE_URL", "description": "Your Supabase project URL (e.g., https://xxxxx.supabase.co)", "required": true, "sensitive": false, "docsUrl": "https://supabase.com/docs/guides/api#api-url-and-keys" }, { "name": "SUPABASE_ANON_KEY", "description": "Supabase anonymous/public API key for client-side operations", "required": true, "sensitive": true, "docsUrl": "https://supabase.com/docs/guides/api#api-url-and-keys" }, { "name": "SUPABASE_SERVICE_KEY", "description": "Supabase service role key for server-side operations (bypasses RLS)", "required": true, "sensitive": true, "docsUrl": "https://supabase.com/docs/guides/api#api-url-and-keys" }], "tools": [{ "id": "list-tables", "name": "List Tables", "description": "List all tables in your Supabase database", "requiresWrite": false }, { "id": "query-table", "name": "Query Table", "description": "Select rows from a table with optional filters and sorting", "requiresWrite": false }, { "id": "insert-row", "name": "Insert Row", "description": "Insert a new row into a table", "requiresWrite": true }, { "id": "update-row", "name": "Update Row", "description": "Update an existing row in a table", "requiresWrite": true }, { "id": "delete-row", "name": "Delete Row", "description": "Delete a row from a table", "requiresWrite": true }], "prompts": [{ "id": "query-data", "title": "Query my database", "prompt": "Help me query data from my Supabase database. Show me specific records or analyze patterns.", "category": "data", "icon": "search" }, { "id": "create-record", "title": "Create a record", "prompt": "Create a new record in my Supabase database with the information I provide.", "category": "data", "icon": "plus" }, { "id": "update-records", "title": "Update records", "prompt": "Find and update records in my Supabase database based on specific criteria.", "category": "data", "icon": "edit" }, { "id": "database-stats", "title": "Database statistics", "prompt": "Show me statistics and insights about my Supabase database tables and data.", "category": "analytics", "icon": "chart" }], "suggestedWith": ["github", "slack", "linear"] },
|
|
@@ -18,9 +18,6 @@ export declare function getConnector(name: IntegrationName | string): Integratio
|
|
|
18
18
|
export declare function listConnectors(): readonly IntegrationConfig[];
|
|
19
19
|
export declare function getConnectorNames(): readonly string[];
|
|
20
20
|
export declare function getIcon(name: IntegrationName | string): string | undefined;
|
|
21
|
-
export {
|
|
22
|
-
export {
|
|
23
|
-
export { executeEndpoint } from "./endpoint-executor.js";
|
|
24
|
-
export { type IntegrationMCPConfig, registerIntegrationMCP } from "./mcp-registration.js";
|
|
25
|
-
export type { IntegrationConnector, IntegrationRuntimeConfig, IntegrationTool } from "./types.js";
|
|
21
|
+
export { executeRemoteIntegrationTool, getRemoteIntegrationToolDefinitions, isRemoteIntegrationTool, syncIntegrationConfig, } from "./remote-tools.js";
|
|
22
|
+
export type { IntegrationConnector, IntegrationRuntimeConfig, IntegrationScope, IntegrationTool, } from "./types.js";
|
|
26
23
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/src/integrations/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,yBAAyB,CAAC;AAEjC,YAAY,EACV,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,EACX,UAAU,GACX,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,YAAY,EACZ,uBAAuB,EACvB,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAGrB,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAQtE,wBAAgB,YAAY,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAE1F;AAED,wBAAgB,cAAc,IAAI,SAAS,iBAAiB,EAAE,CAE7D;AAED,wBAAgB,iBAAiB,IAAI,SAAS,MAAM,EAAE,CAErD;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAE1E;AAGD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/src/integrations/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,yBAAyB,CAAC;AAEjC,YAAY,EACV,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,EACX,UAAU,GACX,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,YAAY,EACZ,uBAAuB,EACvB,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAGrB,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAQtE,wBAAgB,YAAY,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAE1F;AAED,wBAAgB,cAAc,IAAI,SAAS,iBAAiB,EAAE,CAE7D;AAED,wBAAgB,iBAAiB,IAAI,SAAS,MAAM,EAAE,CAErD;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAE1E;AAGD,OAAO,EACL,4BAA4B,EAC5B,mCAAmC,EACnC,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,oBAAoB,EACpB,wBAAwB,EACxB,gBAAgB,EAChB,eAAe,GAChB,MAAM,YAAY,CAAC"}
|
|
@@ -28,8 +28,5 @@ export function getConnectorNames() {
|
|
|
28
28
|
export function getIcon(name) {
|
|
29
29
|
return iconMap.get(name);
|
|
30
30
|
}
|
|
31
|
-
//
|
|
32
|
-
export {
|
|
33
|
-
export { createIntegrationTools } from "./tool-factory.js";
|
|
34
|
-
export { executeEndpoint } from "./endpoint-executor.js";
|
|
35
|
-
export { registerIntegrationMCP } from "./mcp-registration.js";
|
|
31
|
+
// Remote integration tool helpers (per-request, no global registration)
|
|
32
|
+
export { executeRemoteIntegrationTool, getRemoteIntegrationToolDefinitions, isRemoteIntegrationTool, syncIntegrationConfig, } from "./remote-tools.js";
|
|
@@ -107,12 +107,143 @@ export declare const OAuthConfigSchema: z.ZodObject<{
|
|
|
107
107
|
tokenName: z.ZodOptional<z.ZodString>;
|
|
108
108
|
docsUrl: z.ZodOptional<z.ZodString>;
|
|
109
109
|
}, z.core.$strip>;
|
|
110
|
+
export declare const IntegrationEndpointParamSchema: z.ZodObject<{
|
|
111
|
+
type: z.ZodEnum<{
|
|
112
|
+
string: "string";
|
|
113
|
+
number: "number";
|
|
114
|
+
boolean: "boolean";
|
|
115
|
+
object: "object";
|
|
116
|
+
array: "array";
|
|
117
|
+
"string[]": "string[]";
|
|
118
|
+
}>;
|
|
119
|
+
in: z.ZodEnum<{
|
|
120
|
+
path: "path";
|
|
121
|
+
body: "body";
|
|
122
|
+
header: "header";
|
|
123
|
+
query: "query";
|
|
124
|
+
}>;
|
|
125
|
+
description: z.ZodString;
|
|
126
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
127
|
+
default: z.ZodOptional<z.ZodUnknown>;
|
|
128
|
+
}, z.core.$strip>;
|
|
129
|
+
export declare const IntegrationEndpointBodyFieldSchema: z.ZodObject<{
|
|
130
|
+
type: z.ZodEnum<{
|
|
131
|
+
string: "string";
|
|
132
|
+
number: "number";
|
|
133
|
+
boolean: "boolean";
|
|
134
|
+
object: "object";
|
|
135
|
+
array: "array";
|
|
136
|
+
}>;
|
|
137
|
+
description: z.ZodString;
|
|
138
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
139
|
+
default: z.ZodOptional<z.ZodUnknown>;
|
|
140
|
+
}, z.core.$strip>;
|
|
141
|
+
export declare const IntegrationEndpointSchema: z.ZodObject<{
|
|
142
|
+
type: z.ZodOptional<z.ZodEnum<{
|
|
143
|
+
rest: "rest";
|
|
144
|
+
graphql: "graphql";
|
|
145
|
+
}>>;
|
|
146
|
+
method: z.ZodEnum<{
|
|
147
|
+
DELETE: "DELETE";
|
|
148
|
+
GET: "GET";
|
|
149
|
+
PATCH: "PATCH";
|
|
150
|
+
POST: "POST";
|
|
151
|
+
PUT: "PUT";
|
|
152
|
+
}>;
|
|
153
|
+
url: z.ZodString;
|
|
154
|
+
query: z.ZodOptional<z.ZodString>;
|
|
155
|
+
params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
156
|
+
type: z.ZodEnum<{
|
|
157
|
+
string: "string";
|
|
158
|
+
number: "number";
|
|
159
|
+
boolean: "boolean";
|
|
160
|
+
object: "object";
|
|
161
|
+
array: "array";
|
|
162
|
+
"string[]": "string[]";
|
|
163
|
+
}>;
|
|
164
|
+
in: z.ZodEnum<{
|
|
165
|
+
path: "path";
|
|
166
|
+
body: "body";
|
|
167
|
+
header: "header";
|
|
168
|
+
query: "query";
|
|
169
|
+
}>;
|
|
170
|
+
description: z.ZodString;
|
|
171
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
172
|
+
default: z.ZodOptional<z.ZodUnknown>;
|
|
173
|
+
}, z.core.$strip>>>;
|
|
174
|
+
body: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
175
|
+
type: z.ZodEnum<{
|
|
176
|
+
string: "string";
|
|
177
|
+
number: "number";
|
|
178
|
+
boolean: "boolean";
|
|
179
|
+
object: "object";
|
|
180
|
+
array: "array";
|
|
181
|
+
}>;
|
|
182
|
+
description: z.ZodString;
|
|
183
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
184
|
+
default: z.ZodOptional<z.ZodUnknown>;
|
|
185
|
+
}, z.core.$strip>>>;
|
|
186
|
+
contentType: z.ZodOptional<z.ZodString>;
|
|
187
|
+
response: z.ZodOptional<z.ZodObject<{
|
|
188
|
+
transform: z.ZodOptional<z.ZodString>;
|
|
189
|
+
}, z.core.$strip>>;
|
|
190
|
+
}, z.core.$strip>;
|
|
110
191
|
export declare const IntegrationToolSchema: z.ZodObject<{
|
|
111
192
|
id: z.ZodOptional<z.ZodString>;
|
|
112
193
|
name: z.ZodString;
|
|
113
194
|
description: z.ZodString;
|
|
114
195
|
requiresWrite: z.ZodOptional<z.ZodBoolean>;
|
|
115
196
|
file: z.ZodOptional<z.ZodString>;
|
|
197
|
+
endpoint: z.ZodOptional<z.ZodObject<{
|
|
198
|
+
type: z.ZodOptional<z.ZodEnum<{
|
|
199
|
+
rest: "rest";
|
|
200
|
+
graphql: "graphql";
|
|
201
|
+
}>>;
|
|
202
|
+
method: z.ZodEnum<{
|
|
203
|
+
DELETE: "DELETE";
|
|
204
|
+
GET: "GET";
|
|
205
|
+
PATCH: "PATCH";
|
|
206
|
+
POST: "POST";
|
|
207
|
+
PUT: "PUT";
|
|
208
|
+
}>;
|
|
209
|
+
url: z.ZodString;
|
|
210
|
+
query: z.ZodOptional<z.ZodString>;
|
|
211
|
+
params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
212
|
+
type: z.ZodEnum<{
|
|
213
|
+
string: "string";
|
|
214
|
+
number: "number";
|
|
215
|
+
boolean: "boolean";
|
|
216
|
+
object: "object";
|
|
217
|
+
array: "array";
|
|
218
|
+
"string[]": "string[]";
|
|
219
|
+
}>;
|
|
220
|
+
in: z.ZodEnum<{
|
|
221
|
+
path: "path";
|
|
222
|
+
body: "body";
|
|
223
|
+
header: "header";
|
|
224
|
+
query: "query";
|
|
225
|
+
}>;
|
|
226
|
+
description: z.ZodString;
|
|
227
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
228
|
+
default: z.ZodOptional<z.ZodUnknown>;
|
|
229
|
+
}, z.core.$strip>>>;
|
|
230
|
+
body: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
231
|
+
type: z.ZodEnum<{
|
|
232
|
+
string: "string";
|
|
233
|
+
number: "number";
|
|
234
|
+
boolean: "boolean";
|
|
235
|
+
object: "object";
|
|
236
|
+
array: "array";
|
|
237
|
+
}>;
|
|
238
|
+
description: z.ZodString;
|
|
239
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
240
|
+
default: z.ZodOptional<z.ZodUnknown>;
|
|
241
|
+
}, z.core.$strip>>>;
|
|
242
|
+
contentType: z.ZodOptional<z.ZodString>;
|
|
243
|
+
response: z.ZodOptional<z.ZodObject<{
|
|
244
|
+
transform: z.ZodOptional<z.ZodString>;
|
|
245
|
+
}, z.core.$strip>>;
|
|
246
|
+
}, z.core.$strip>>;
|
|
116
247
|
}, z.core.$strip>;
|
|
117
248
|
export declare const IntegrationPromptSchema: z.ZodObject<{
|
|
118
249
|
id: z.ZodString;
|
|
@@ -231,6 +362,56 @@ export declare const IntegrationConfigSchema: z.ZodObject<{
|
|
|
231
362
|
description: z.ZodString;
|
|
232
363
|
requiresWrite: z.ZodOptional<z.ZodBoolean>;
|
|
233
364
|
file: z.ZodOptional<z.ZodString>;
|
|
365
|
+
endpoint: z.ZodOptional<z.ZodObject<{
|
|
366
|
+
type: z.ZodOptional<z.ZodEnum<{
|
|
367
|
+
rest: "rest";
|
|
368
|
+
graphql: "graphql";
|
|
369
|
+
}>>;
|
|
370
|
+
method: z.ZodEnum<{
|
|
371
|
+
DELETE: "DELETE";
|
|
372
|
+
GET: "GET";
|
|
373
|
+
PATCH: "PATCH";
|
|
374
|
+
POST: "POST";
|
|
375
|
+
PUT: "PUT";
|
|
376
|
+
}>;
|
|
377
|
+
url: z.ZodString;
|
|
378
|
+
query: z.ZodOptional<z.ZodString>;
|
|
379
|
+
params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
380
|
+
type: z.ZodEnum<{
|
|
381
|
+
string: "string";
|
|
382
|
+
number: "number";
|
|
383
|
+
boolean: "boolean";
|
|
384
|
+
object: "object";
|
|
385
|
+
array: "array";
|
|
386
|
+
"string[]": "string[]";
|
|
387
|
+
}>;
|
|
388
|
+
in: z.ZodEnum<{
|
|
389
|
+
path: "path";
|
|
390
|
+
body: "body";
|
|
391
|
+
header: "header";
|
|
392
|
+
query: "query";
|
|
393
|
+
}>;
|
|
394
|
+
description: z.ZodString;
|
|
395
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
396
|
+
default: z.ZodOptional<z.ZodUnknown>;
|
|
397
|
+
}, z.core.$strip>>>;
|
|
398
|
+
body: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
399
|
+
type: z.ZodEnum<{
|
|
400
|
+
string: "string";
|
|
401
|
+
number: "number";
|
|
402
|
+
boolean: "boolean";
|
|
403
|
+
object: "object";
|
|
404
|
+
array: "array";
|
|
405
|
+
}>;
|
|
406
|
+
description: z.ZodString;
|
|
407
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
408
|
+
default: z.ZodOptional<z.ZodUnknown>;
|
|
409
|
+
}, z.core.$strip>>>;
|
|
410
|
+
contentType: z.ZodOptional<z.ZodString>;
|
|
411
|
+
response: z.ZodOptional<z.ZodObject<{
|
|
412
|
+
transform: z.ZodOptional<z.ZodString>;
|
|
413
|
+
}, z.core.$strip>>;
|
|
414
|
+
}, z.core.$strip>>;
|
|
234
415
|
}, z.core.$strip>>;
|
|
235
416
|
prompts: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
236
417
|
id: z.ZodString;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/src/integrations/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAuDxB,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAA2B,CAAC;AAE9D,eAAO,MAAM,YAAY;;;;;;;;iBAQvB,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;iBAO3B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAyB5B,CAAC;AAEH,eAAO,MAAM,qBAAqB
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/src/integrations/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAuDxB,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAA2B,CAAC;AAE9D,eAAO,MAAM,YAAY;;;;;;;;iBAQvB,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;iBAO3B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAyB5B,CAAC;AAEH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;iBAMzC,CAAC;AAEH,eAAO,MAAM,kCAAkC;;;;;;;;;;;iBAK7C,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBASpC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAOhC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;iBAMlC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAYlC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AACxD,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACxE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
|
|
@@ -95,12 +95,36 @@ export const OAuthConfigSchema = z.object({
|
|
|
95
95
|
tokenName: z.string().optional(),
|
|
96
96
|
docsUrl: z.string().optional(),
|
|
97
97
|
});
|
|
98
|
+
export const IntegrationEndpointParamSchema = z.object({
|
|
99
|
+
type: z.enum(["string", "number", "boolean", "string[]", "object", "array"]),
|
|
100
|
+
in: z.enum(["path", "query", "header", "body"]),
|
|
101
|
+
description: z.string(),
|
|
102
|
+
required: z.boolean().optional(),
|
|
103
|
+
default: z.unknown().optional(),
|
|
104
|
+
});
|
|
105
|
+
export const IntegrationEndpointBodyFieldSchema = z.object({
|
|
106
|
+
type: z.enum(["string", "number", "boolean", "object", "array"]),
|
|
107
|
+
description: z.string(),
|
|
108
|
+
required: z.boolean().optional(),
|
|
109
|
+
default: z.unknown().optional(),
|
|
110
|
+
});
|
|
111
|
+
export const IntegrationEndpointSchema = z.object({
|
|
112
|
+
type: z.enum(["rest", "graphql"]).optional(),
|
|
113
|
+
method: z.enum(["GET", "POST", "PUT", "PATCH", "DELETE"]),
|
|
114
|
+
url: z.string(),
|
|
115
|
+
query: z.string().optional(),
|
|
116
|
+
params: z.record(z.string(), IntegrationEndpointParamSchema).optional(),
|
|
117
|
+
body: z.record(z.string(), IntegrationEndpointBodyFieldSchema).optional(),
|
|
118
|
+
contentType: z.string().optional(),
|
|
119
|
+
response: z.object({ transform: z.string().optional() }).optional(),
|
|
120
|
+
});
|
|
98
121
|
export const IntegrationToolSchema = z.object({
|
|
99
122
|
id: z.string().optional(),
|
|
100
123
|
name: z.string(),
|
|
101
124
|
description: z.string(),
|
|
102
125
|
requiresWrite: z.boolean().optional(),
|
|
103
126
|
file: z.string().optional(),
|
|
127
|
+
endpoint: IntegrationEndpointSchema.optional(),
|
|
104
128
|
});
|
|
105
129
|
export const IntegrationPromptSchema = z.object({
|
|
106
130
|
id: z.string(),
|
package/esm/src/mcp/server.d.ts
CHANGED
|
@@ -52,8 +52,6 @@ export declare class MCPServer {
|
|
|
52
52
|
private handleCORS;
|
|
53
53
|
private getCORSHeaders;
|
|
54
54
|
private loadRemoteIntegrationTools;
|
|
55
|
-
/** @deprecated Legacy local loading — fallback when API-side tools are unavailable */
|
|
56
|
-
private loadIntegrationTools;
|
|
57
55
|
}
|
|
58
56
|
export declare function createMCPServer(config: MCPServerConfig): MCPServer;
|
|
59
57
|
export {};
|