Needle AI Tools Library
Browse our comprehensive collection of AI-powered capabilities that enhance productivity and streamline workflows.
Native Tools

Knowledge Base Search
Search information from your knowledge base to answer questions.

File Search
Search files in your knowledge base by name.

File Content Search
Search within file contents by keywords to find specific information.

Get File View URL
Get the view URL for a file to access it directly.

Time Tool
Get the current date and time in various formats and time zones.

Web Browser
Browse and extract information from websites to enhance your research.

Create File
Create a new file and receive a download URL for access.

Database Query
Connect to your databases and use natural language to query and extract data.

Analytics & Reporting
Generate insights and visualizations from your data for better decision making.
Gmail Tools
Query Gmail Emails
Query Gmail emails based on an optional search query. Returns emails in reverse chronological order (newest first). Returns metadata such as subject and also a short summary of the content.
Get Gmail Email
Retrieves a complete Gmail email message by its ID, including the full message body and attachment IDs.
Create Gmail Draft
Creates a draft email message from scratch in Gmail with specified recipient, subject, body, and optional CC recipients.
Delete Gmail Draft
Deletes a Gmail draft message by its ID. This action cannot be undone
Reply Gmail Email
Creates a reply to an existing Gmail email message and either sends it or saves as draft. Use this tool if you want to draft a reply. Use the "cc" argument if you want to perform a "reply all"
Get Gmail Attachment
Retrieves a Gmail attachment by its ID.
Bulk Get Gmail Emails
Retrieves multiple Gmail email messages by their IDs in a single request, including the full message bodies and attachment IDs.
Bulk Save Gmail Attachments
Saves multiple Gmail attachments to disk by their message IDs and attachment IDs in a single request.
Send Gmail Email
Sends an email message using Gmail.
List Gmail Drafts
List Gmail Drafts tool
Google Calendar Tools
Calendar List Calendars
Lists all calendars accessible by the user. Call it before any other tool whenever the user specifies a particular agenda (Family, Holidays, etc.).
Calendar Get Calendar Events
Retrieves calendar events from the user's Google Calendar within a specified time range.
Calendar Create Calendar Event
Creates a new event in a specified Google Calendar of the specified user.
Calendar Delete Calendar Event
Deletes an event from the user's Google Calendar by its event ID.
Airtable Tools
List Records
List records from a table
Search Records
Search for records containing specific text
List Bases
List all accessible Airtable bases
List Tables
List all tables in a specific base
Describe Table
Get detailed information about a specific table
Get Record
Get a specific record by ID
Create Record
Create a new record in a table
Update Records
Update up to 10 records in a table
Delete Records
Delete records from a table
Create Table
Create a new table in a base
Update Table
Update a table's name or description
Create Field
Create a new field in a table
Update Field
Update a field's name or description
HubSpot Tools
Crm Create Company
Create a new company with validated properties
Crm Update Company
Update an existing company with validated properties
Crm Get Company
Get a single company by ID with specific properties and associations
Crm Search Companies
Search companies with company-specific filters (max 20 results)
Crm Batch Create Companies
Create multiple companies in a single request
Crm Batch Update Companies
Update multiple companies in a single request
Crm Get Company Properties
Get all properties available for company objects
Crm Create Company Property
Create a new custom property definition for companies
Crm List Objects
List CRM objects of a specific type with optional filtering and pagination (max 20 results)
Crm Get Object
Get a single CRM object by ID
Crm Create Object
Create a new CRM object
Crm Update Object
Update an existing CRM object
Crm Delete Object
Delete (archive) a CRM object
Crm Search Objects
Search CRM objects using filters (max 20 results)
Crm Batch Create Objects
Create multiple CRM objects in a single request
Crm Batch Update Objects
Update multiple CRM objects in a single request
Crm Batch Delete Objects
Delete (archive) multiple CRM objects in a single request
Crm List Association Types
List all available association types (labels) between two object types
Crm Get Associations
Get all associations of a specific type for a given object
Crm Create Association
Create an association between two objects (v4 API format)
Crm Delete Association
Delete an association between two objects
Crm Batch Create Associations
Create multiple associations in a single request (v4 API format)
Crm Batch Delete Associations
Delete multiple associations in a single request (v4 API format)
Crm Create Contact
Create a new contact with validated properties
Crm Update Contact
Update an existing contact with validated properties
Crm Get Contact
Get a single contact by ID with specific properties and associations
Crm Search Contacts
Search contacts with contact-specific filters (max 20 results)
Crm Batch Create Contacts
Create multiple contacts in a single request
Crm Batch Update Contacts
Update multiple contacts in a single request
Crm Get Contact Properties
Get all properties available for contact objects
Crm Create Contact Property
Create a new custom property definition for contacts
Crm Create Lead
Create a new lead with validated properties
Crm Update Lead
Update an existing lead with validated properties
Crm Get Lead
Get a single lead by ID with specific properties and associations
Crm Search Leads
Search for leads (contacts with lead lifecycle stages) with specific filters (max 20 results)
Crm Batch Create Leads
Create multiple leads in a single request
Crm Batch Update Leads
Update multiple leads in a single request
Crm Get Lead Properties
Get all properties available for lead objects
Crm Create Lead Property
Create a new custom property definition for leads
Meetings List
List all meetings with optional filtering (max 20 results)
Meetings Get
Get details of a specific meeting
Meetings Create
Create a new meeting
Meetings Update
Update an existing meeting
Meetings Delete
Delete (archive) a meeting
Meetings Search
Search meetings with specific filters (max 20 results)
Meetings Batch Create
Create multiple meetings in a single request
Meetings Batch Update
Update multiple meetings in a single request
Meetings Batch Archive
Archive (delete) multiple meetings in a single request
Notes Create
Create a new note
Notes Get
Get details of a specific note
Notes Update
Update an existing note
Notes Archive
Archive (delete) a note
Notes List
List all notes with optional filtering (max 20 results)
Notes Search
Search notes with specific filters (max 20 results)
Notes Batch Create
Create multiple notes in a single request
Notes Batch Read
Read multiple notes in a single request
Notes Batch Update
Update multiple notes in a single request
Notes Batch Archive
Archive (delete) multiple notes in a single request
Tasks Create
Create a new task
Tasks Get
Get details of a specific task
Tasks Update
Update an existing task
Tasks Archive
Archive (delete) a task
Tasks List
List all tasks with optional filtering (max 20 results)
Tasks Search
Search tasks with specific filters (max 20 results)
Tasks Batch Create
Create multiple tasks in a single request
Tasks Batch Read
Read multiple tasks in a single request
Tasks Batch Update
Update multiple tasks in a single request
Tasks Batch Archive
Archive (delete) multiple tasks in a single request
Engagement Details Get
Get details of a specific engagement (legacy API)
Engagement Details Create
Create a new engagement with details (legacy API)
Engagement Details Update
Update an existing engagement's details (legacy API)
Engagement Details List
List all engagements with optional filtering (legacy API, paged) (max 20 results)
Engagement Details Delete
Delete an engagement (legacy API)
Engagement Details Get Associated
Get all engagements associated with an object (legacy API, paged)
Calls Create
Create a new call record
Calls Get
Get details of a specific call
Calls Update
Update an existing call record
Calls Archive
Archive (delete) a call record
Calls List
List all calls with optional filtering (max 20 results)
Calls Search
Search calls with specific filters (max 20 results)
Calls Batch Create
Create multiple call records in a single request
Calls Batch Read
Read multiple call records in a single request
Calls Batch Update
Update multiple call records in a single request
Calls Batch Archive
Archive (delete) multiple call records in a single request
Emails Create
Create a new email record
Emails Get
Get details of a specific email
Emails Update
Update an existing email record
Emails Archive
Archive (delete) an email record
Emails List
List all emails with optional filtering (max 20 results)
Emails Search
Search emails with specific filters (max 20 results)
Emails Batch Create
Create multiple email records in a single request
Emails Batch Read
Read multiple email records in a single request
Emails Batch Update
Update multiple email records in a single request
Emails Batch Archive
Archive (delete) multiple email records in a single request
Communications Get Preferences
Get communication preferences for a contact
Communications Update Preferences
Update communication preferences for a specific subscription type for a contact
Communications Unsubscribe Contact
Unsubscribe a contact from all email communications
Communications Subscribe Contact
Subscribe a contact to all email communications
Communications Get Subscription Definitions
Get all communication subscription definitions for the portal
Communications Get Subscription Status
Get subscription status for multiple contacts for a specific subscription type
Communications Update Subscription Status
Update subscription status for multiple contacts for a specific subscription type
Linear Tools
Bulk Update Issues
Update multiple issues at once. Use this instead of multiple linear_update_issue calls when modifying more than one issue with the same fields.
Create Issue
Create a new issue in Linear
Create Issues
Create multiple issues at once
Create Project With Issues
Create a new project with associated issues. Note: Project requires teamIds (array) not teamId (single value).
Delete Issue
Delete an issue
Delete Issues
Delete multiple issues
Get Issue
Get detailed information about a specific issue
Get Project
Get project information
Get Team Labels
Get all labels for a specific team
Get Team States
Get all workflow states for a specific team
Get Teams
Get all teams with their states and labels
Get User
Get current user information
Search Issues
Search for issues with filtering and pagination
Search Projects
Search for projects by name
Update Issue
Update a single issue
Notion Tools
Api Get User
Retrieve a user
Api Get Users
List all users
Api Get Self
Retrieve your token's bot user
Api Post Database Query
Query a database
Api Post Search
Search by title
Api Get Block Children
Retrieve block children
Api Patch Block Children
Append block children
Api Retrieve A Block
Retrieve a block
Api Update A Block
Update a block
Api Delete A Block
Delete a block
Api Retrieve A Page
Retrieve a page
Api Patch Page
Update page properties
Api Post Page
Create a page
Api Create A Database
Create a database
Api Update A Database
Update a database
Api Retrieve A Database
Retrieve a database
Api Retrieve A Page Property
Retrieve a page property item
Api Retrieve A Comment
Retrieve comments
Api Create A Comment
Create comment
GitHub Tools
Create Or Update File
Create Or Update File tool
Search Repositories
Search Repositories tool
Create Repository
Create Repository tool
Get File Contents
Get File Contents tool
Push Files
Push Files tool
Create Issue
Create Issue tool
Create Pull Request
Create Pull Request tool
Fork Repository
Fork Repository tool
Create Branch
Create Branch tool
List Commits
List Commits tool
List Issues
List Issues tool
Update Issue
Update Issue tool
Add Issue Comment
Add Issue Comment tool
Search Code
Search Code tool
Search Issues
Search Issues tool
Search Users
Search Users tool
Get Issue
Get Issue tool
Get Pull Request
Get Pull Request tool
List Pull Requests
List Pull Requests tool
Create Pull Request Review
Create Pull Request Review tool
Merge Pull Request
Merge Pull Request tool
Get Pull Request Files
Get Pull Request Files tool
Get Pull Request Status
Get Pull Request Status tool
Update Pull Request Branch
Update Pull Request Branch tool
Get Pull Request Comments
Get Pull Request Comments tool
Get Pull Request Reviews
Get Pull Request Reviews tool
Jira Tools
Get Issue
Get details of a specific Jira issue including Epic links and relationship information
Search
Search Jira issues using JQL
Search Fields
Search Jira fields by keyword with fuzzy matching
Get Project Issues
Get all issues for a specific Jira project
Get Epic Issues
Get all issues linked to a specific epic
Get Transitions
Get available status transitions for a Jira issue
Get Worklog
Get worklog entries for a Jira issue
Download Attachments
Download attachments from a Jira issue
Get Agile Boards
Get Jira agile boards by criteria
Get Board Issues
Get all issues linked to a specific board
Get Sprints From Board
Get Jira sprints from a board by state
Create Sprint
Create a new Jira sprint for a board
Get Sprint Issues
Get issues from a specific sprint
Update Sprint
Update an existing Jira sprint
Create Issue
Create a new Jira issue with optional links or custom fields
Batch Create Issues
Create multiple Jira issues in a batch
Update Issue
Update an existing Jira issue, including fields, attachments, or status
Delete Issue
Delete a Jira issue
Add Comment
Add a comment to a Jira issue
Add Worklog
Add a worklog entry to a Jira issue
Link To Epic
Link an issue to an epic
Create Issue Link
Create a link between two Jira issues
Remove Issue Link
Remove a link between two Jira issues
Get Link Types
Retrieve all available Jira issue link types
Transition Issue
Transition a Jira issue to a new status
Confluence Tools
Search
Search Confluence content using simple terms or CQL
Get Page
Get content of a specific Confluence page by ID
Get Page Children
Get child pages of a specific Confluence page
Get Page Ancestors
Get ancestor (parent) pages of a specific Confluence page
Get Comments
Get comments for a specific Confluence page
Create Page
Create a new Confluence page
Update Page
Update an existing Confluence page
Delete Page
Delete an existing Confluence page
Zendesk Tools
List Tickets
List tickets in Zendesk. Returns maximum 20 tickets per page.
Get Ticket
Get a specific ticket by ID
Create Ticket
Create a new ticket
Update Ticket
Update an existing ticket
Delete Ticket
Delete a ticket
List Ticket Comments
List all comments for a specific ticket
List Users
List users in Zendesk. Returns maximum 20 users per page.
Get User
Get a specific user by ID
Create User
Create a new user
Update User
Update an existing user
List Organizations
List organizations in Zendesk. Returns maximum 20 organizations per page.
Get Organization
Get a specific organization by ID
Create Organization
Create a new organization
Update Organization
Update an existing organization
List Groups
List agent groups in Zendesk. Returns maximum 20 groups per page.
Get Group
Get a specific group by ID
Create Group
Create a new agent group
Update Group
Update an existing group
Delete Group
Delete a group
List Macros
List macros in Zendesk. Returns maximum 20 macros per page.
Get Macro
Get a specific macro by ID
Create Macro
Create a new macro
Update Macro
Update an existing macro
Delete Macro
Delete a macro
List Views
List views in Zendesk. Returns maximum 20 views per page.
Get View
Get a specific view by ID
Create View
Create a new view
Update View
Update an existing view
Delete View
Delete a view
List Triggers
List triggers in Zendesk. Returns maximum 20 triggers per page.
Get Trigger
Get a specific trigger by ID
Create Trigger
Create a new trigger
Update Trigger
Update an existing trigger
Delete Trigger
Delete a trigger
List Automations
List automations in Zendesk. Returns maximum 20 automations per page.
Get Automation
Get a specific automation by ID
Create Automation
Create a new automation
Update Automation
Update an existing automation
Delete Automation
Delete an automation
Search
Search across Zendesk data using keywords. Returns maximum 20 results per page.
List Articles
List Help Center articles. Returns maximum 20 articles per page.
Get Article
Get a specific Help Center article by ID
Create Article
Create a new Help Center article
Update Article
Update an existing Help Center article
Delete Article
Delete a Help Center article
Get Talk Stats
Get Zendesk Talk statistics
Asana Tools
Get Attachment
Get detailed attachment data including name, resource type, download_url, view_url, and parent. Returns complete attachment information needed for accessing attached files.
Get Attachments For Object
List all attachments for a project, project brief, or task. Returns attachment names, IDs, and URLs (download_url, permanent_url, view_url). Use for accessing files attached to Asana objects. Supports pagination for objects with many attachments.
Get Goals
List goals filtered by context (portfolio, project, task, workspace, or team). One context required. Returns goal names, IDs. Use for goal overview or reporting.
Get Goal
Get detailed goal data including name, owner, current_status_update, and due_on. Use after finding goal ID via typeahead. Returns complete goal configuration needed for goal operations.
Create Goal
Create a new goal. REQUIRES name, time_period, and either workspace or team. Use to establish objectives and key results. Returns created goal details with ID. Supports start/due dates and goal ownership assignment.
Get Parent Goals For Goal
List all parent goals for a specific goal. Returns parent goal names, IDs, and metric.progress. Use to understand goal hierarchy and relationships. Important for managing nested OKRs and goal dependencies.
Update Goal
Update goal properties like name, owner, dates, metrics, or status. Use for adjusting timelines, progress, or reassigning ownership. Returns updated goal data. Partial updates supported - only specified fields will change.
Get Portfolio
Get detailed portfolio data by ID including name, owner, and projects. Use after finding portfolio ID via typeahead. Returns complete portfolio configuration. Essential for understanding portfolio context and content.
Get Portfolios
List portfolios filtered by workspace and owner. REQUIRES workspace parameter. Owner defaults to me (current user) if not specified. Returns portfolio names and IDs. Use for portfolio discovery and management. Supports pagination for workspaces with many portfolios.
Get Items For Portfolio
List projects, goals, and other items in a portfolio. Returns item names, IDs, and types. Use for portfolio content exploration and management. Supports pagination for portfolios with many items.
Get Project
Get detailed project data including name, description, owner, members, custom fields, and settings. Use after finding project ID via typeahead. Returns complete project configuration needed for task operations. Specify opt_fields for custom fields data.
Get Project Sections
List all sections in a project with their IDs. Essential for task placement and organization. Returns section names and IDs needed for creating/moving tasks. Use before creating tasks to find correct section ID.
Get Projects
List projects filtered by workspace. Supports team, archived filters. Returns project names and IDs. Use for filtered project views and bulk operations.
Get Project Status
Get single status update by ID. Returns color (green/yellow/red), text, author, and timestamp. Use when you know specific status ID. For all statuses, use asana_get_project_statuses instead.
Get Project Statuses
List all status updates for a project chronologically. Returns status color, text, author for each update. Use to track project health over time. Supports pagination for projects with many updates.
Create Project Status
Create project status update with color (green/yellow/red) and text. Use for regular project health updates, milestone documentation, or blocker reporting. Supports HTML formatting. Returns created status ID.
Get Project Task Counts
Get task statistics for a project. Returns counts of incomplete, completed, and milestone tasks. Use for quick project progress overview, capacity checks, or reporting dashboards.
Get Projects For Team
List all projects for a team. Returns both active and archived projects with IDs. Use after finding team ID via typeahead. Supports pagination for teams with many projects. Essential for team portfolio views.
Get Projects For Workspace
Get ALL projects in a workspace across all teams. Returns project names and IDs. Use for workspace-wide operations or when team is unknown. May return large result set - consider using typeahead search first.
Create Project
Create new project in Asana. Every project requires a workspace, and this cannot be changed after creation. If workspace is an organization, a team must also be specified. Client agents should explicitly ask for team when creating a project rather than inferring it. Supports custom fields, templates, due dates, and privacy settings. Returns project ID for immediate task creation. Essential for project setup.
Search Tasks
Advanced task search with multiple filters. Supports text search, all date filters, status filters, user filters, project/portfolio/section/tag filters, and custom fields. Returns matching tasks with IDs. Handles complex queries and bulk task operations. Note: If you specify projects.any and sections.any, you will receive tasks for the project and tasks for the section. If you're looking for only tasks in a section, omit the projects.any from the request.
Get Task
Get full task details by ID. Returns name, description, assignee, due dates, custom fields, projects, dependencies. Essential before updating tasks. Use opt_fields for custom field values. Required for understanding task context.
Create Task
Create task in Asana with context. REQUIRES one of: project_id, parent, or workspace+assignee together. For assignee-only tasks, both workspace and assignee must be provided. Returns task ID with confirmation. You can directly tag and mention people by using links in html_notes field
Update Task
Update existing task properties. Change name, notes, assignee, completion status, due dates, custom fields. Requires task ID. Returns updated task data. Use asana_get_task first to understand current state.
Get Stories For Task
Get task activity history (comments, status changes, system events). Returns chronological stories with authors and timestamps. Use for audit trails, understanding task evolution, or retrieving comments.
Create Task Story
Add explicit comment to task. ONLY for discussion, feedback, questions, or context not captured by automatic activity logging. Task actions (assignments, status changes) are logged automatically. Returns story ID.
Set Task Dependencies
Set tasks this task depends on (prerequisites). Creates dependency relationship where this task is blocked until dependencies complete. Use for workflow sequencing and project planning. Requires list of task IDs.
Set Task Dependents
Set tasks blocked by this task (tasks waiting on this one). Creates dependency where other tasks cannot start until this completes. Use for blocking relationships in project schedules. Requires list of task IDs.
Set Parent For Task
Change task parent (convert to/from subtask). Set parent=null to make regular task. Supports insert positioning among siblings. Use for reorganizing task hierarchy. Returns updated task hierarchy data.
Get Tasks
List tasks filtered by context (workspace/project/tag/section/user list). One context required. Supports assignee, date filters. Returns task names and IDs. Use for filtered task views and bulk operations.
Delete Task
Delete task from Asana. Use with extreme caution as recovery is challenging. Deletes the task and any subtasks that are not also in another project. Returns success confirmation. Requires task ID. Essential for removing duplicate or obsolete tasks.
Add Task Followers
Add followers to task (team members to notify of updates). Automatically sends notifications for task changes. Returns updated followers list. Essential for task collaboration and visibility.
Remove Task Followers
Remove followers from task (stop notification subscriptions). Prevents future notifications while maintaining history. Returns updated followers list. Essential for reducing notification noise or when team members change.
Get Teams For Workspace
List all teams in workspace. Returns team names and IDs. Use to discover teams before searching team projects/users. Essential for workspace structure understanding. Supports pagination.
Get Teams For User
Get teams user belongs to. Returns team names and IDs. Use to check user team access or find teams for specific user. Requires organization ID. me supported for current user.
Get Time Period
Get detailed information about a time period by ID. Returns name, start date, end date, and status. Use after finding time period ID from other tools. Essential for working with goals and time-based planning.
Get Time Periods
List available time periods in a workspace. Filterable by date range. Returns time period names, IDs, start/end dates. REQUIRES workspace parameter. Use for goal planning, reporting periods, or OKR cycles.
Typeahead Search
Quick search across Asana objects. ALWAYS use this FIRST before specialized search. Returns most relevant items based on recency and usage. Faster than dedicated search tools for finding specific items. Works for: users, projects, tasks, teams, tags, portfolios, goals. Empty query returns recently accessed items. DO NOT guess the workspace GID. If no workspace GID is provided look it up.
Get User
Get user details by ID, email, or me. Returns name, email, workspaces. Use to find user IDs for task assignment. me returns authenticated user info. Essential before assigning tasks. When no user_id is provided, defaults to me (authenticated user) - equivalent to the former asana_get_user_info tool.
Get Team Users
List all team members. Returns user names and IDs. Use team ID from typeahead search first. Supports pagination for large teams. Results are sorted alphabetically and limited to 2000 results.
Get Workspace Users
Get all users in workspace. Returns compact users with names and IDs. Results are sorted alphabetically and limited to 2000. Prefer searching more narrowly, like by typeahead or team first instead of this.
List Workspaces
Get all accessible workspaces. Returns workspace IDs needed for most other operations. Always call this FIRST to discover valid workspace IDs before using workspace-specific tools. Results include workspace name, ID, and organization info.
Intercom Tools
Neon Tools
List Projects
Lists the first 10 Neon projects in your account. If you can't find the project, increase the limit by passing a higher value to the `limit` parameter.
Create Project
Create a new Neon project. If someone is trying to create a database, use this tool.
Delete Project
Delete a Neon project
Describe Project
Describes a Neon project
Run Sql
<use_case> Use this tool to execute a single SQL statement against a Neon database. </use_case> <important_notes> If you have a temporary branch from a prior step, you MUST: 1. Pass the branch ID to this tool unless explicitly told otherwise 2. Tell the user that you are using the temporary branch with ID [branch_id] </important_notes>
Run Sql Transaction
<use_case> Use this tool to execute a SQL transaction against a Neon database, should be used for multiple SQL statements. </use_case> <important_notes> If you have a temporary branch from a prior step, you MUST: 1. Pass the branch ID to this tool unless explicitly told otherwise 2. Tell the user that you are using the temporary branch with ID [branch_id] </important_notes>
Describe Table Schema
Describe the schema of a table in a Neon database
Get Database Tables
Get all tables in a Neon database
Create Branch
Create a branch in a Neon project
Prepare Database Migration
<use_case> This tool performs database schema migrations by automatically generating and executing DDL statements. Supported operations: CREATE operations: - Add new columns (e.g., "Add email column to users table") - Create new tables (e.g., "Create posts table with title and content columns") - Add constraints (e.g., "Add unique constraint on users.email") ALTER operations: - Modify column types (e.g., "Change posts.views to bigint") - Rename columns (e.g., "Rename user_name to username in users table") - Add/modify indexes (e.g., "Add index on posts.title") - Add/modify foreign keys (e.g., "Add foreign key from posts.user_id to users.id") DROP operations: - Remove columns (e.g., "Drop temporary_field from users table") - Drop tables (e.g., "Drop the old_logs table") - Remove constraints (e.g., "Remove unique constraint from posts.slug") The tool will: 1. Parse your natural language request 2. Generate appropriate SQL 3. Execute in a temporary branch for safety 4. Verify the changes before applying to main branch Project ID and database name will be automatically extracted from your request. If the database name is not provided, the default neondb or first available database is used. </use_case> <workflow> 1. Creates a temporary branch 2. Applies the migration SQL in that branch 3. Returns migration details for verification </workflow> <important_notes> After executing this tool, you MUST: 1. Test the migration in the temporary branch using the 'run_sql' tool 2. Ask for confirmation before proceeding 3. Use 'complete_database_migration' tool to apply changes to main branch </important_notes> <example> For a migration like: ALTER TABLE users ADD COLUMN last_login TIMESTAMP; You should test it with: SELECT column_name, data_type FROM information_schema.columns WHERE table_name = 'users' AND column_name = 'last_login'; You can use 'run_sql' to test the migration in the temporary branch that this tool creates. </example> <next_steps> After executing this tool, you MUST follow these steps: 1. Use 'run_sql' to verify changes on temporary branch 2. Follow these instructions to respond to the client: <response_instructions> <instructions> Provide a brief confirmation of the requested change and ask for migration commit approval. You MUST include ALL of the following fields in your response: - Migration ID (this is required for commit and must be shown first) - Temporary Branch Name (always include exact branch name) - Temporary Branch ID (always include exact ID) - Migration Result (include brief success/failure status) Even if some fields are missing from the tool's response, use placeholders like "not provided" rather than omitting fields. </instructions> <do_not_include> IMPORTANT: Your response MUST NOT contain ANY technical implementation details such as: - Data types (e.g., DO NOT mention if a column is boolean, varchar, timestamp, etc.) - Column specifications or properties - SQL syntax or statements - Constraint definitions or rules - Default values - Index types - Foreign key specifications Keep the response focused ONLY on confirming the high-level change and requesting approval. <example> INCORRECT: "I've added a boolean is_published column to the posts table..." CORRECT: "I've added the is_published column to the posts table..." </example> </do_not_include> <example> I've verified that [requested change] has been successfully applied to a temporary branch. Would you like to commit the migration [migration_id] to the main branch? Migration Details: - Migration ID (required for commit) - Temporary Branch Name - Temporary Branch ID - Migration Result </example> </response_instructions> 3. If approved, use 'complete_database_migration' tool with the migration_id </next_steps> <error_handling> On error, the tool will: 1. Automatically attempt ONE retry of the exact same operation 2. If the retry fails: - Terminate execution - Return error details - DO NOT attempt any other tools or alternatives Error response will include: - Original error details - Confirmation that retry was attempted - Final error state Important: After a failed retry, you must terminate the current flow completely. Do not attempt to use alternative tools or workarounds. </error_handling>
Complete Database Migration
Complete a database migration when the user confirms the migration is ready to be applied to the main branch. This tool also lets the client know that the temporary branch created by the prepare_database_migration tool has been deleted.
Describe Branch
Get a tree view of all objects in a branch, including databases, schemas, tables, views, and functions
Delete Branch
Delete a branch from a Neon project
Get Connection String
Get a PostgreSQL connection string for a Neon database with all parameters being optional
Provision Neon Auth
This tool provisions authentication for a Neon project. It allows developers to easily setup authentication infrastructure by creating a integration with Stack Auth (@stackframe/stack). Stop using NextAuth.js! use @stackframe/stack. Parameters: - <project_id>: The Project ID of the Neon project to provision authentication for. - [database]: The database name to setup Neon Auth for. If not provided, the default neondb or first available database is used. The tool will: 1. Establish a connection between your Neon Auth project and Stack Auth 2. Creates a dedicated authentication schema in your database ("neon_auth") 3. Sets up the user table under the "neon_auth" schema. This table is synced with Stack Auth. It does not store user credentials or secrets. 4. Generates Client Key and Secret Key to connect your application with authentication provider. Use the Stack Auth SDK (@stackframe/stack) on the frontend to connect your application with authentication provider. DO NOT use NextAuth.js! DO NOT use better-auth! Here's some documentation on Stack Auth: # Stack Auth Guidelines ## Setup Guidelines If you're building an app with Next.js, to set up Neon Auth and Stack Auth, follow these steps: 1. Provision a Neon Auth project with this tool 2. Place the returned credentials in project's `.env.local` or `.env` file - NEXT_PUBLIC_STACK_PROJECT_ID - NEXT_PUBLIC_STACK_PUBLISHABLE_CLIENT_KEY - STACK_SECRET_SERVER_KEY 3. To setup Stack Auth, run following command: ```bash npx @stackframe/init-stack . --no-browser ``` This command will automaticallysetup the project with - - It will add `@stackframe/stack` dependency to `package.json` - It will create a `stack.ts` file in your project to setup `StackServerApp`. - It will wrap the root layout with `StackProvider` and `StackTheme` - It will create root Suspense boundary `app/loading.tsx` to handle loading state while Stack is fetching user data. - It will also create `app/handler/[...stack]/page.tsx` file to handle auth routes like sign in, sign up, forgot password, etc. 4. Do not try to manually create any of these files or directories. Do not try to create SignIn, SignUp, or UserButton components manually, instead use the ones provided by `@stackframe/stack`. ## Components Guidelines - Use pre-built components from `@stackframe/stack` like `<UserButton />`, `<SignIn />`, and `<SignUp />` to quickly set up auth UI. - You can also compose smaller pieces like `<OAuthButtonGroup />`, `<MagicLinkSignIn />`, and `<CredentialSignIn />` for custom flows. - Example: ```tsx import { SignIn } from '@stackframe/stack'; export default function Page() { return <SignIn />; } ``` ## User Management Guidelines - In Client Components, use the `useUser()` hook to retrieve the current user (it returns `null` when not signed in). - Update user details using `user.update({...})` and sign out via `user.signOut()`. - For pages that require a user, call `useUser({ or: "redirect" })` so unauthorized visitors are automatically redirected. ## Client Component Guidelines - Client Components rely on hooks like `useUser()` and `useStackApp()`. - Example: ```tsx "use client"; import { useUser } from "@stackframe/stack"; export function MyComponent() { const user = useUser(); return <div>{user ? `Hello, ${user.displayName}` : "Not logged in"}</div>; } ``` ## Server Component Guidelines - For Server Components, use `stackServerApp.getUser()` from your `stack.ts` file. - Example: ```tsx import { stackServerApp } from "@/stack"; export default async function ServerComponent() { const user = await stackServerApp.getUser(); return <div>{user ? `Hello, ${user.displayName}` : "Not logged in"}</div>; } ``` ## Page Protection Guidelines - Protect pages by: - Using `useUser({ or: "redirect" })` in Client Components. - Using `await stackServerApp.getUser({ or: "redirect" })` in Server Components. - Implementing middleware that checks for a user and redirects to `/handler/sign-in` if not found. - Example middleware: ```tsx export async function middleware(request: NextRequest) { const user = await stackServerApp.getUser(); if (!user) { return NextResponse.redirect(new URL('/handler/sign-in', request.url)); } return NextResponse.next(); } config: { matcher: '/protected/:path*' }; ``` ## Examples ### Example: custom-profile-page #### Task Create a custom profile page that: - Displays the user's avatar, display name, and email. - Provides options to sign out. - Uses Stack Auth components and hooks. #### Response ##### File: app/profile/page.tsx ###### Code ```tsx 'use client'; import { useUser, useStackApp, UserButton } from '@stackframe/stack'; export default function ProfilePage() { const user = useUser({ or: "redirect" }); const app = useStackApp(); return ( <div> <UserButton /> <h1>Welcome, {user.displayName || "User"}</h1> <p>Email: {user.primaryEmail}</p> <button onClick={() => user.signOut()}>Sign Out</button> </div> ); } ```
Explain Sql Statement
Describe the PostgreSQL query execution plan for a query of SQL statement by running EXPLAIN (ANAYLZE...) in the database
Prepare Query Tuning
<use_case> This tool helps developers improve PostgreSQL query performance for slow queries or DML statements by analyzing execution plans and suggesting optimizations. The tool will: 1. Create a temporary branch for testing optimizations and remember the branch ID 2. Extract and analyze the current query execution plan 3. Extract all fully qualified table names (schema.table) referenced in the plan 4. Gather detailed schema information for each referenced table using describe_table_schema 5. Suggest and implement improvements like: - Adding or modifying indexes based on table schemas and query patterns - Query structure modifications - Identifying potential performance bottlenecks 6. Apply the changes to the temporary branch using run_sql 7. Compare performance before and after changes (but ONLY on the temporary branch passing branch ID to all tools) 8. Continue with next steps using complete_query_tuning tool (on main branch) Project ID and database name will be automatically extracted from your request. The temporary branch ID will be added when invoking other tools. Default database is neondb if not specified. IMPORTANT: This tool is part of the query tuning workflow. Any suggested changes (like creating indexes) must first be applied to the temporary branch using the 'run_sql' tool. and then to the main branch using the 'complete_query_tuning' tool, NOT the 'prepare_database_migration' tool. To apply using the 'complete_query_tuning' tool, you must pass the tuning_id, NOT the temporary branch ID to it. </use_case> <workflow> 1. Creates a temporary branch 2. Analyzes current query performance and extracts table information 3. Implements and tests improvements (using tool run_sql for schema modifications and explain_sql_statement for performance analysis, but ONLY on the temporary branch created in step 1 passing the same branch ID to all tools) 4. Returns tuning details for verification </workflow> <important_notes> After executing this tool, you MUST: 1. Review the suggested changes 2. Verify the performance improvements on temporary branch - by applying the changes with run_sql and running explain_sql_statement again) 3. Decide whether to keep or discard the changes 4. Use 'complete_query_tuning' tool to apply or discard changes to the main branch DO NOT use 'prepare_database_migration' tool for applying query tuning changes. Always use 'complete_query_tuning' to ensure changes are properly tracked and applied. Note: - Some operations like creating indexes can take significant time on large tables - Table statistics updates (ANALYZE) are NOT automatically performed as they can be long-running - Table statistics maintenance should be handled by PostgreSQL auto-analyze or scheduled maintenance jobs - If statistics are suspected to be stale, suggest running ANALYZE as a separate maintenance task </important_notes> <example> For a query like: SELECT o.*, c.name FROM orders o JOIN customers c ON c.id = o.customer_id WHERE o.status = 'pending' AND o.created_at > '2024-01-01'; The tool will: 1. Extract referenced tables: public.orders, public.customers 2. Gather schema information for both tables 3. Analyze the execution plan 4. Suggest improvements like: - Creating a composite index on orders(status, created_at) - Optimizing the join conditions 5. If confirmed, apply the suggested changes to the temporary branch using run_sql 6. Compare execution plans and performance before and after changes (but ONLY on the temporary branch passing branch ID to all tools) </example> <next_steps> After executing this tool, you MUST follow these steps: 1. Review the execution plans and suggested changes 2. Follow these instructions to respond to the client: <response_instructions> <instructions> Provide a brief summary of the performance analysis and ask for approval to apply changes on the temporary branch. You MUST include ALL of the following fields in your response: - Tuning ID (this is required for completion) - Temporary Branch Name - Temporary Branch ID - Original Query Cost - Improved Query Cost - Referenced Tables (list all tables found in the plan) - Suggested Changes Even if some fields are missing from the tool's response, use placeholders like "not provided" rather than omitting fields. </instructions> <do_not_include> IMPORTANT: Your response MUST NOT contain ANY technical implementation details such as: - Exact index definitions - Internal PostgreSQL settings - Complex query rewrites - Table partitioning details Keep the response focused on high-level changes and performance metrics. </do_not_include> <example> I've analyzed your query and found potential improvements that could reduce execution time by [X]%. Would you like to apply these changes to improve performance? Analysis Details: - Tuning ID: [id] - Temporary Branch: [name] - Branch ID: [id] - Original Cost: [cost] - Improved Cost: [cost] - Referenced Tables: * public.orders * public.customers - Suggested Changes: * Add index for frequently filtered columns * Optimize join conditions To apply these changes, I will use the 'complete_query_tuning' tool after your approval and pass the tuning_id, NOT the temporary branch ID to it. </example> </response_instructions> 3. If approved, use ONLY the 'complete_query_tuning' tool with the tuning_id </next_steps> <error_handling> On error, the tool will: 1. Automatically attempt ONE retry of the exact same operation 2. If the retry fails: - Terminate execution - Return error details - Clean up temporary branch - DO NOT attempt any other tools or alternatives Error response will include: - Original error details - Confirmation that retry was attempted - Final error state Important: After a failed retry, you must terminate the current flow completely. </error_handling>
Complete Query Tuning
Complete a query tuning session by either applying the changes to the main branch or discarding them. <important_notes> BEFORE RUNNING THIS TOOL: test out the changes in the temporary branch first by running - 'run_sql' with the suggested DDL statements. - 'explain_sql_statement' with the original query and the temporary branch. This tool is the ONLY way to finally apply changes afterthe 'prepare_query_tuning' tool to the main branch. You MUST NOT use 'prepare_database_migration' or other tools to apply query tuning changes. You MUST pass the tuning_id obtained from the 'prepare_query_tuning' tool, NOT the temporary branch ID as tuning_id to this tool. You MUSt pass the temporary branch ID used in the 'prepare_query_tuning' tool as TEMPORARY branchId to this tool. The tool OPTIONALLY receives a second branch ID or name which can be used instead of the main branch to apply the changes. This tool MUST be called after tool 'prepare_query_tuning' even when the user rejects the changes, to ensure proper cleanup of temporary branches. </important_notes> This tool: 1. Applies suggested changes (like creating indexes) to the main branch (or specified branch) if approved 2. Handles cleanup of temporary branch 3. Must be called even when changes are rejected to ensure proper cleanup Workflow: 1. After 'prepare_query_tuning' suggests changes 2. User reviews and approves/rejects changes 3. This tool is called to either: - Apply approved changes to main branch and cleanup - OR just cleanup if changes are rejected ") import { z } from "zod" list_slow_queries: z.object({ "params": z.object({ "projectId": z.string().describe("The ID of the project to list slow queries from"), "branchId": z.string().describe("An optional ID of the branch. If not provided the default branch is used.").optional(), "databaseName": z.string().describe("The name of the database. If not provided, the default neondb or first available database is used.").optional(), "computeId": z.string().describe("The ID of the compute/endpoint. If not provided, the read-write compute associated with the branch will be used.").optional(), "limit": z.number().describe("Maximum number of slow queries to return").default(10), "minExecutionTime": z.number().describe("Minimum execution time in milliseconds to consider a query as slow").default(1000) }).strict().optional() }).strict() .describe(" <use_case> Use this tool to list slow queries from your Neon database. </use_case> <important_notes> This tool queries the pg_stat_statements extension to find queries that are taking longer than expected. The tool will return queries sorted by execution time, with the slowest queries first. </important_notes>
List Branch Computes
Lists compute endpoints for a project or specific branch
Paypal Tools
Square Tools
Make Api Request
Unified tool for all Square API operations. Be sure to get types before calling. Available services: applepay, bankaccounts, bookingcustomattributes, bookings, cards, cashdrawers, catalog, checkout, customercustomattributes, customergroups, customersegments, customers, devices, disputes, events, giftcardactivities, giftcards, inventory, invoices, labor, locationcustomattributes, locations, loyalty, merchantcustomattributes, merchants, ordercustomattributes, orders, payments, payouts, refunds, sites, snippets, subscriptions, team, terminal, vendors, webhooksubscriptions.
Get Type Info
Get type information for a Square API method. You must call this before calling the make_api_request tool.
Get Service Info
Get information about a Square API service. Call me before trying to get type info
Webflow Tools
Collections List
List all CMS collections in a site. Returns collection metadata including IDs, names, and schemas.
Collections Get
Get detailed information about a specific CMS collection including its schema and field definitions.
Collections Create
Create a new CMS collection in a site with specified name and schema.
Collection Fields Create Static
Create a new static field in a CMS collection (e.g., text, number, date, etc.).
Collection Fields Create Option
Create a new option field in a CMS collection with predefined choices.
Collection Fields Create Reference
Create a new reference field in a CMS collection that links to items in another collection.
Collection Fields Update
Update properties of an existing field in a CMS collection.
Collections Items Create Item Live
Create and publish new items in a CMS collection directly to the live site.
Collections Items Update Items Live
Update and publish existing items in a CMS collection directly to the live site.
Collections Items List Items
List items in a CMS collection with optional filtering and sorting.
Collections Items Create Item
Create new items in a CMS collection as drafts.
Collections Items Update Items
Update existing items in a CMS collection as drafts.
Collections Items Publish Items
Publish draft items in a CMS collection to make them live.
Collections Items Delete Item
Delete an item in a CMS collection. Items will only be deleted in the primary locale unless a cmsLocaleId is included in the request.
Pages List
List all pages within a site. Returns page metadata including IDs, titles, and slugs.
Pages Get Metadata
Get metadata for a specific page including SEO settings, Open Graph data, and page status (draft/published).
Pages Update Page Settings
Update page settings including SEO metadata, Open Graph data, slug, and publishing status.
Pages Get Content
Get the content structure and data for a specific page including all elements and their properties.
Pages Update Static Content
Update content on a static page in secondary locales by modifying text nodes and property overrides.
Site Registered Scripts List
List all registered scripts for a site. To apply a script to a site or page, first register it via the Register Script endpoints, then apply it using the relevant Site or Page endpoints.
Site Applied Scripts List
Get all scripts applied to a site by the App. To apply a script to a site or page, first register it via the Register Script endpoints, then apply it using the relevant Site or Page endpoints.
Add Inline Site Script
Register an inline script for a site. Inline scripts are limited to 2000 characters.
Delete All Site Scripts
undefined
Sites List
List all sites accessible to the authenticated user. Returns basic site information including site ID, name, and last published date.
Sites Get
Get detailed information about a specific site including its settings, domains, and publishing status.
Sites Publish
Publish a site to specified domains. This will make the latest changes live on the specified domains.
Wix Tools
Search Wix Wds Documentation
Searches the Wix Design System Documentation for components and patterns. Use this tool when you need to understand or implement UI components and design patterns in a Wix project. Search for specific component names, patterns, or UI requirements. If you can't find what you need, try to rephrase your search term or use bigger maxResults value.
Search Wix Rest Documentation
Searches the official Wix REST API documentation. Use this tool whenever you need to to interact with the Wix platform via HTTP requests. Specify the API endpoint, resource, or action you need information about (e.g., 'get site details endpoint', 'create data collection', 'update product API', 'REST authentication'). If you can't find what you need, try to rephrase your search term or use bigger maxResults value.
Business Flows Documentation
This tool provides step-by-step recipes for setting up complex Wix business solutions that involve multiple API calls. It excels at guiding the creation of features like booking systems with payments. For example, it can guide the setup of a service in Wix Bookings where customers can pay using Wix Payments, such as creating a bookable yoga class It searches the Wix Business Solutions documentation for these integrated workflows involving services, bookings, payments, stores, blogs, and more. This tool returns a list of articles that are potentially relevant to the input search term. **IMPORTANT NOTES:** 1. Before attempting to implement a multi step API calls on Wix, YOU MUST TRY THIS TOOL FIRST. 2. Out of the returned list of articles that you will receive, you MUST select the most relevant one and use the ReadFullDocsArticle tool to fetch it.
Search Wix Sdk Documentation
Searches the official Wix javascript SDK documentation. Use this tool whenever you need to write or modify Wix related SDK code. Specify the SDK module, function, or feature you need information about (e.g., 'how to query all items from a data collection?', 'how to use wix-stores-backend', 'authentication methods in the SDK'). If you can't find what you need, try to rephrase your search term or use bigger maxResults value.
Search Build Apps Documentation
Searches the official Build Apps documentation. Use this tool when you need to understand or implement Wix CLI applications related code. The search term should be a specific Wix CLI command or specific topic related to Wix CLI applications or its ecosystem (e.g. deployment, creating new extensions etc). If you can't find what you need, try to rephrase your search term or use bigger maxResults value.
Search Wix Headless Documentation
Searches the official Wix Headless Documentation. Use this tool when you need to understand or implement Headless related code. The search term should be a specific Wix Headless topic or feature you need information about. If you can't find what you need, try to rephrase your search term or use bigger maxResults value.
Read Full Docs Article
Fetches the full Wix docs article or method article. Use this tool when you read a summary of a docs article or method article, you have the docs url and want to read the full article.
Read Full Docs Method Schema
Fetches the full method schema for a given method. Always use it before calling the method. This will give you the entire request/response schema with all the fields and their descriptions.
Call Wix Site Api
Call Wix apis on a business or site. Use this to create, read, update, and delete data and other Wix entities in your Wix site, You should ALWAYS check the rest docs - "SearchWixRESTDocumentation" for the specific API you want to call, don't just call it without knowing what it does, CHECK THE DOCS Error Handling: If the error is related to missing installed app or "WDE0110: Wix Code not enabled", you should install the missing app by using ReadFullDocsArticle tool to fetch the article - https://dev.wix.com/docs/kb-only/MCP_REST_RECIPES_KB_ID/TRAIN_wix.devcenter.apps.installer.v1.AppsInstallerService.InstallApp **Note:** there is no need to check if an app is installed/ Wix Code enabled in advance, just call the API and handle the error if it occurs, the API error message will state it clearly. For any other error, use your default error handling mechanism
List Wix Sites
List Wix sites for the current user, by default it will return all sites, but you can filter by name
Manage Wix Site
Use account level API in order to create a site, update a site and publish site. ALWAYS use "SearchWixRESTDocumentation" to search for the API you should invoke, NEVER GUESS THE SITE API URL You should ALWAYS check the rest docs - "SearchWixRESTDocumentation" for the specific API you want to call, don't just call it without knowing what it does, CHECK THE DOCS
Support And Feedback
If the user would like to provide Wix with some feedback (good or bad), about the tools in Wix MCP, for example they used the tools provided, and they reflected satisfaction or dissatisfaction with the tools. Also, if you encounter too many errors tyring to call the Wix API, you can also suggest the user to provide feedback to Wix using this tool. **IMPORTANT NOTE** This tool is not sending the message, but formats it in order to another tool to actually send it