Taskade MCP

Official registry AI and agents

Taskade projects, tasks and AI agents. Hosted OAuth server or local stdio package.

What can you do with Taskade MCP?

  • get_flow_runs: reads the recent runs of one automation, newest first. Each run has its status and times. A failed run also names the failed step and a short error. It needs edit rights on automations.
  • run_flow: starts one run of an automation that is On and starts "When asked". Every run is real: it counts toward the monthly automation runs of the plan, and AI steps use credits.

Install

Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).

Remote (streamable-http)
Claude Code
claude mcp add --transport http taskade-mcp 'https://www.taskade.com/mcp'
JSON configuration (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "taskade-mcp": {
            "type": "http",
            "url": "https://www.taskade.com/mcp"
        }
    }
}
NPM package @taskade/mcp-server
Claude Code
claude mcp add taskade-mcp -e 'TASKADE_API_KEY=<your taskade_api_key>' -- npx -y @taskade/mcp-server@0.1.4
JSON configuration (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "taskade-mcp": {
            "command": "npx",
            "args": [
                "-y",
                "@taskade/mcp-server@0.1.4"
            ],
            "env": {
                "TASKADE_API_KEY": "<your taskade_api_key>"
            }
        }
    }
}

Environment variables

  • TASKADE_API_KEY required secret Your Taskade API key. Get it from Taskade Settings > API.

Documentation

From the project's README on GitHub, refreshed weekly. Links open on GitHub.

Contents
  1. Taskade MCP Server and Agent Plugin
  2. Agent plugin for Claude Code, Codex, Copilot, Gemini CLI and Cursor
  3. Contents
  4. Demo
  5. Taskade MCP server: quick start
  6. Hosted tools
  7. Example prompts
  8. Troubleshooting
  9. Local package (stdio)
  10. Local package tools (62)
  11. Why Taskade MCP?
  12. Agent Recipes
  13. Use Cases
  14. OpenAPI Codegen
  15. What is Taskade?
  16. Roadmap
  17. Privacy & Security
  18. Support
  19. Contributing
  20. More from Taskade
  21. License

Taskade MCP Server and Agent Plugin

Taskade is the AI-native workspace for projects, AI agents and automations. Taskade Genesis builds a running app from one prompt.

Connect Taskade to Claude, Claude Code, ChatGPT, Codex, Cursor, VS Code, GitHub Copilot, Gemini CLI, Windsurf and any other client of the Model Context Protocol.

Hosted server: https://www.taskade.com/mcp (Streamable HTTP, OAuth). Nothing to install.

This repo holds the Taskade agent plugin and two packages:

  • MCP Server (@taskade/mcp-server): the local stdio server, for clients that cannot connect to a remote server.
  • OpenAPI Codegen: generate MCP tools from any OpenAPI spec, not only Taskade.

Agent plugin for Claude Code, Codex, Copilot, Gemini CLI and Cursor

The taskade plugin connects your AI tool to your Taskade workspace through the hosted server, and adds 7 skills: a front door (taskade) and six jobs (getting-started, import-spreadsheet, fix-my-app, app-report, backup-my-app, plan-new-app). The skills tell the agent which tools to call, in which order, and what to check before it reports back.

  • Plan: MCP access is part of every paid Taskade plan (Starter and up). Sign in once with your Taskade account.
  • What it does: imports a spreadsheet into a project, fixes a Taskade Genesis app one checked change at a time, reports on your projects and automations, backs up an app to a folder, and plans a new app.
  • What stays in Taskade: the plugin cannot create or edit an automation, build or publish an app, or set who can use an app. For those jobs, it writes the request for you to paste into Taskade EVE.
HostInstall
Claude Codeclaude plugin marketplace add taskade/mcp, then claude plugin install taskade@taskade. Run /mcp, select taskade and sign in.
Codexcodex plugin marketplace add taskade/mcp, then codex plugin add taskade@taskade
GitHub Copilot CLIcopilot plugin install taskade/mcp
Gemini CLIgemini extensions install https://github.com/taskade/mcp
VS CodeSee below
CursorSee below
Any other agentnpx skills add https://github.com/taskade/mcp installs the skills only. Then add the hosted server https://www.taskade.com/mcp to the agent and sign in (see the quick start).

VS Code: turn on the chat.plugins.enabled setting. Then run Chat: Install Plugin From Source from the Command Palette and enter https://github.com/taskade/mcp.

Cursor: the Cursor plugin taskade (.cursor-plugin/) in this repository adds the same hosted server and skills.

To add only the hosted server to Codex, run codex mcp add taskade --url https://www.taskade.com/mcp, then codex mcp login taskade.


Contents


Demo

MCP-powered Taskade agent running inside Claude Desktop by Anthropic:

Build Agents via MCPRun AutomationsManage Projects
Create, train, deploy AI agents from Claude/CursorList automations, run one, and read its runsFull workspace management from your AI assistant (paid plans)

Taskade MCP server: quick start

URLhttps://www.taskade.com/mcp
TransportStreamable HTTP
AuthOAuth 2.0 with PKCE and dynamic client registration. Your client opens a Taskade sign-in page once.
PlanMCP access is part of every paid Taskade plan (Starter and up). On the Free plan, list_spaces returns no workspaces.
Discoveryhttps://www.taskade.com/.well-known/oauth-protected-resource/mcp

An initialize request without a token returns 401 on purpose. The 401 tells your client where to start the OAuth sign-in.

Claude (web, Desktop and mobile)
  1. In Claude, go to **Customize > Connectors** and select Add custom connector. On a Team or Enterprise plan, an Owner first adds the connector in Organization settings > Connectors (Add, then Custom).
  2. Enter the name Taskade and the URL https://www.taskade.com/mcp, then select Add.
  3. Select Connect, sign in to Taskade, and approve access.
  4. In a chat, select + > Connectors and turn on Taskade.

If the dialog asks for an OAuth client, select Register automatically. The connector also works in Claude Desktop and the Claude mobile apps on the same account.

Claude Code
claude mcp add --transport http taskade https://www.taskade.com/mcp

Then run /mcp in Claude Code and select taskade to sign in.

ChatGPT

ChatGPT connects to a remote MCP server as a custom connector in developer mode. It uses OAuth only.

  1. In ChatGPT settings, turn on developer mode for apps and connectors.
  2. Create a connector. Enter Taskade as the name and https://www.taskade.com/mcp as the server URL.
  3. Select OAuth as the authentication. Sign in to Taskade and allow access.

Developer mode is available only on some ChatGPT plans, and its labels change often.

Cursor

Select Add to Cursor at the top of this page, or add this to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "taskade": {
      "url": "https://www.taskade.com/mcp"
    }
  }
}
VS Code

Select Install in VS Code at the top of this page, or run:

code --add-mcp '{"name":"taskade","type":"http","url":"https://www.taskade.com/mcp"}'
Windsurf

Add this to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "taskade": {
      "serverUrl": "https://www.taskade.com/mcp"
    }
  }
}
Other clients and servers (API token)

A client that cannot do OAuth can send a Taskade personal access token as a Bearer token. Create the token in Taskade Settings > API.

{
  "mcpServers": {
    "taskade": {
      "type": "http",
      "url": "https://www.taskade.com/mcp",
      "headers": { "Authorization": "Bearer YOUR_TASKADE_API_TOKEN" }
    }
  }
}

Full guide: Hosted Taskade MCP.


Hosted tools

Every hosted tool declares MCP tool annotations. Claude can run a read-only tool without a confirmation, and it asks before a tool that deletes or replaces data.

AreaRead-only toolsWrite tools
Workspaceslist_spaces, list_folders, list_media, list_templates, inspect_spacewrite_file (Genesis app source in app/)
Automationslist_automations, get_flow_runsrun_flow
Projectslist_projects, list_my_projects, get_project, read_project, list_fields, list_blocks, list_project_members, get_share_linkcreate_project, create_project_from_template, copy_project, complete_project, restore_project, enable_share_link
Taskslist_taskscreate_task, update_task, complete_task, uncomplete_task, delete_task, move_task, set_task_note, delete_task_note, set_task_date, delete_task_date, assign_task, unassign_task, set_task_field_value, delete_task_field_value
AI agentslist_agents, get_agent, list_conversations, get_conversationcreate_agent, update_agent, delete_agent, prompt_agent, add_knowledge_project, remove_knowledge_project, add_knowledge_media, remove_knowledge_media
  • get_flow_runs: reads the recent runs of one automation, newest first. Each run has its status and times. A failed run also names the failed step and a short error. It needs edit rights on automations.
  • run_flow: starts one run of an automation that is On and starts "When asked". Every run is real: it counts toward the monthly automation runs of the plan, and AI steps use credits.

The server also serves the resource taskade://getting-started, a short guide for the model.


Example prompts

  1. Weekly review. "List my Taskade workspaces, read the Q4 Roadmap project, and give me the open tasks grouped by assignee." Tools: list_spaces, list_projects, read_project.
  2. Plan a launch. "Create a project called Website Launch in my Marketing workspace with tasks for copy, design, QA and launch day, and set the launch task to November 3." Tools: list_spaces, create_project, create_task, set_task_date.
  3. Build a support agent. "Create an agent called Help Bot in my Support workspace, add the FAQ project as its knowledge, then ask it how a customer resets a password." Tools: create_agent, add_knowledge_project, prompt_agent.
  4. Close out a sprint. "In the Sprint 42 project, mark every task that mentions 'shipped' as complete, then mark the project as completed." Tools: list_tasks, complete_task, complete_project.
  5. Edit a Genesis app. "In my CRM app, read app/src/App.tsx and change the page title to Acme CRM." Tools: inspect_space, write_file.

Troubleshooting

SymptomCause and fix
401 Unauthorized on the first requestExpected. Your client must start the OAuth sign-in. If it does not, update the client or use an API token (see above).
list_spaces returns no workspacesMCP access needs a paid plan on that workspace. Upgrade at taskade.com/pricing.
A tool returns "permission denied"Your role in that workspace or project does not allow the action. Ask a workspace owner for access.
Claude shows "Authorization with the MCP server failed"Remove the connector, add it again, and sign in to the correct Taskade account.
A local npx server fails with "TASKADE_API_KEY appears to be invalid"Create a new token in Settings > API.

If the problem continues, open an issue or email support@taskade.com.


Local package (stdio)

Use the local package when your client supports only stdio servers, or when you need a tool that only the local package has, for example the webhook tools (subscribeWebhook, unsubscribeWebhook). It runs on your machine with npx and calls the Taskade public API over the network with a personal access token.

I want to...UseWhere / auth
Use Taskade from Claude, Cursor, VS Code or another client that supports remote serversHosted serverhttps://www.taskade.com/mcp · OAuth 2.0 or API token · paid plans
Run Taskade tools in a client that supports only stdio, or use the webhook toolsLocal package (@taskade/mcp-server)npx · personal access token · needs network access to taskade.com
Let my Taskade agents reach Slack, Shopify or GmailMCP ConnectorsHosted, in the Taskade app
1. Get Your API Key

Go to Taskade Settings > API and create a Personal Access Token.

2. Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "taskade": {
      "command": "npx",
      "args": ["-y", "@taskade/mcp-server"],
      "env": {
        "TASKADE_API_KEY": "your-api-key-here"
      }
    }
  }
}
3. Cursor

Add to your Cursor MCP settings:

{
  "mcpServers": {
    "taskade": {
      "command": "npx",
      "args": ["-y", "@taskade/mcp-server"],
      "env": {
        "TASKADE_API_KEY": "your-api-key-here"
      }
    }
  }
}
4. Windsurf

Add to ~/.codeium/windsurf/mcp_config.json (or Settings → Cascade → MCP → Add Server):

{
  "mcpServers": {
    "taskade": {
      "command": "npx",
      "args": ["-y", "@taskade/mcp-server"],
      "env": {
        "TASKADE_API_KEY": "your-api-key-here"
      }
    }
  }
}
5. Cline

In VS Code, open the Cline MCP Servers panel → Configure MCP Servers and add:

{
  "mcpServers": {
    "taskade": {
      "command": "npx",
      "args": ["-y", "@taskade/mcp-server"],
      "env": {
        "TASKADE_API_KEY": "your-api-key-here"
      }
    }
  }
}
6. VS Code

Add a .vscode/mcp.json to your workspace (VS Code uses the servers key; ${input:…} prompts for your key on first run):

{
  "servers": {
    "taskade": {
      "command": "npx",
      "args": ["-y", "@taskade/mcp-server"],
      "env": {
        "TASKADE_API_KEY": "${input:taskade_api_key}"
      }
    }
  }
}
7. Remote and HTTP clients

The local package runs over stdio only. It has no HTTP or SSE mode. For a client that connects over HTTP, use the hosted server at https://www.taskade.com/mcp (see Taskade MCP server: quick start).


Local package tools (62)

The local package has its own tool names. They map to the Taskade public API v1 and v2.

Workspaces
ToolDescription
workspacesGetList all workspaces
workspaceFoldersGetList folders in a workspace
workspaceCreateProjectCreate a project in a workspace
Projects
ToolDescription
projectGetGet project details
projectCreateCreate a new project
projectCopyCopy a project to a folder
projectCompleteMark project as completed
projectRestoreRestore a completed project
projectMembersGetList project members
projectFieldsGetGet custom fields for a project
projectShareLinkGetGet the share link
projectShareLinkEnableEnable the share link
projectBlocksGetGet all blocks in a project
projectTasksGetGet all tasks in a project
folderProjectsGetList projects in a folder
Tasks
ToolDescription
taskGetGet task details
taskCreateCreate one or more tasks
taskPutUpdate a task
taskDeleteDelete a task
taskCompleteMark task as complete
taskUncompleteMark task as incomplete
taskMoveMove a task within a project
taskAssigneesGetGet task assignees
taskPutAssigneesAssign users to a task
taskDeleteAssigneesRemove assignees
taskGetDateGet task due date
taskPutDateSet task due date
taskDeleteDateRemove task due date
taskNoteGetGet task note
taskNotePutUpdate task note
taskNoteDeleteDelete task note
taskFieldsValueGetGet all field values
taskFieldValueGetGet a specific field value
taskFieldValuePutSet a field value
taskFieldValueDeleteDelete a field value
AI Agents

Create, manage, and publish autonomous AI agents with custom knowledge and tools.

ToolDescription
folderAgentGenerateGenerate an AI agent from a text prompt
folderCreateAgentCreate an agent with custom configuration
folderAgentGetList agents in a folder
agentGetGet agent details
agentUpdateUpdate agent configuration
deleteAgentDelete an agent
agentPublicAccessEnablePublish agent publicly
agentPublicGetGet public agent details
agentPublicUpdateUpdate public agent settings
agentKnowledgeProjectCreateAdd a project as agent knowledge
agentKnowledgeMediaCreateAdd media as agent knowledge
agentKnowledgeProjectRemoveRemove project from knowledge
agentKnowledgeMediaRemoveRemove media from knowledge
agentConvosGetList agent conversations
agentConvoGetGet conversation details
publicAgentGetGet agent by public ID
Templates
ToolDescription
folderProjectTemplatesGetList available project templates
projectFromTemplateCreate a project from a template
Media
ToolDescription
mediasGetList media files in a folder
mediaGetGet media details
mediaDeleteDelete a media file
Personal
ToolDescription
meProjectsGetList all your projects
Agent Chat & Webhooks (API v2, beta)

Capabilities the v1 API doesn't have: hold a live conversation with an AI agent, and receive real-time events.

ToolDescription
promptAgentSend a message to an AI agent and get its reply
listConversationsList an agent's conversations
getConversationGet a conversation's messages
subscribeWebhookSubscribe to real-time Taskade event webhooks
unsubscribeWebhookRemove a webhook subscription

Why Taskade MCP?

Taskade MCP gives your AI assistant access to your workspace — projects, tasks, agents, knowledge bases, templates, and automations (on paid plans; some endpoints such as workspace listing are gated for free accounts). Instead of writing API code, describe what you need in natural language.

┌──────────────────────────────────────────────────────────┐
│                HOW TASKADE MCP WORKS                     │
└──────────────────────────────────────────────────────────┘

  You (in Claude/Cursor/Windsurf):
  "Create a support agent trained on our docs project"
                         ↓
  ┌──────────────────────────────────┐
  │     Taskade MCP Server           │
  │     (62 tools, 8 categories)     │
  └──────────────────────────────────┘
       ↓              ↓            ↓
  folderCreateAgent  agentKnowledge  agentPublicAccess
  (creates agent)    (attaches docs)  (publishes it)
                         ↓
  Result: Live AI chatbot trained on your data
What You SayWhat Happens
"Show me all overdue tasks"Reads projects → filters tasks → formats report
"Create a support agent trained on our docs"Creates agent → attaches knowledge → publishes
"Set up next week's sprint from our template"Copies template → populates tasks → assigns team
"Summarize the completed work in my Sprint project"Reads completed tasks → generates a standup summary
Why MCP Instead of REST API?

| | REST API | MCP Server | |-|----------|-----------| | Setup | Write HTTP client, handle auth, parse JSON | npx @taskade/mcp-server — one command | | Interface | Code against endpoints | Natural language — describe what you need | | Chaining | Manual orchestration | AI chains tools intelligently | | Error handling | Write error handling code | AI interprets errors and retries |

Why Taskade MCP Over Other MCP Servers?

Taskade MCP includes AI agent management (create, train, deploy agents), knowledge base training (attach docs, projects, media), and OpenAPI codegen (generate MCP tools from any API spec). 62 tools across 8 categories.


Agent Recipes

Recipe 1: Daily Standup Summarizer

Problem: Team standup notes scattered across Slack, email, and docs.

You: "Check my Taskade workspace for yesterday's completed tasks,
      summarize them as a standup update, then create today's
      priority tasks based on what's still open."

Claude uses:
  1. meProjectsGet → find your active projects
  2. projectTasksGet → pull tasks from each project
  3. taskCreate → create today's priority tasks

Result: A formatted standup summary + fresh task list in Taskade.

Recipe 2: Knowledge Base Agent Builder

Problem: You have docs scattered across files and need an AI agent trained on them.

You: "Create an AI support agent called 'Help Bot' in my
      Customer Success folder, train it on our Documentation
      project, and publish it publicly."

Claude uses:
  1. workspaceFoldersGet → find "Customer Success" folder
  2. folderCreateAgent → create "Help Bot" with support instructions
  3. agentKnowledgeProjectCreate → attach Documentation project
  4. agentPublicAccessEnable → publish with shareable link

Result: Live AI chatbot trained on your docs, ready to embed.

Recipe 3: Sprint Planning Automation

Problem: Creating sprint projects manually every two weeks.

You: "Create a new sprint project from our 'Sprint Template',
      name it 'Sprint 2026-W15', move the top 10 backlog
      items into it, and assign them to the engineering team."

Claude uses:
  1. folderProjectTemplatesGet → find "Sprint Template"
  2. projectFromTemplate → create "Sprint 2026-W15"
  3. projectTasksGet → get backlog items
  4. taskMove → move top 10 tasks to new sprint
  5. taskPutAssignees → assign engineering team members

Result: Sprint ready to go, fully populated and assigned.

Recipe 4: Competitive Intelligence Agent

Problem: You need an agent that monitors competitors and reports findings.

You: "Generate an AI agent that researches our top 5 competitors.
      Train it on our Competitive Analysis project.
      Name it 'Market Intel Agent'."

Claude uses:
  1. folderAgentGenerate → generate agent from research prompt
  2. agentKnowledgeProjectCreate → connect Competitive Analysis project
  3. agentUpdate → refine instructions for research cadence

Result: AI research agent with domain knowledge, ready for briefings.

Recipe 5: Client Onboarding Pipeline

Problem: Each new client needs the same project structure, tasks, and materials.

You: "For our new client Acme Corp: create a project from
      the 'Client Onboarding' template, add tasks for
      kickoff meeting and SOW review, set due dates for
      the next 2 weeks, then share the project link."

Claude uses:
  1. projectFromTemplate → create "Acme Corp Onboarding"
  2. taskCreate → add kickoff, requirements, SOW tasks
  3. taskPutDate → set dates across next 2 weeks
  4. projectShareLinkEnable → generate share link

Result: Client onboarding project live and shareable in 30 seconds.

Use Cases

Project Management with AI

Ask your AI assistant to manage your Taskade workspace:

  • "Show me all my projects and their status"
  • "Create a new project called Q1 Planning with tasks for each team"
  • "Move all overdue tasks to the Backlog project"
  • "Set due dates for all tasks in the Sprint project"
AI Agent Creation

Build and deploy AI agents directly from your editor:

  • "Create an AI agent called Customer Support Bot with knowledge from our docs project"
  • "Generate an agent for code review using this prompt: ..."
  • "Publish my agent publicly and give me the share link"
  • "Add our API documentation project as knowledge to the agent"
Template Workflows

Automate project creation from templates:

  • "List all templates in my workspace"
  • "Create 5 new client onboarding projects from the Client Template"
  • "Copy the Sprint Retrospective project for this week"

OpenAPI Codegen

Use our generator to build MCP tools from any OpenAPI spec — not just Taskade.

npm install --save-dev @taskade/mcp-openapi-codegen @readme/openapi-parser
import { dereference } from '@readme/openapi-parser';
import { codegen } from '@taskade/mcp-openapi-codegen';

const document = await dereference('your-api-spec.yaml');

await codegen({
  path: 'src/tools.generated.ts',
  document,
});

Works with any OpenAPI 3.0+ spec. Generate MCP tools for your own APIs in minutes.


What is Taskade?

Taskade (Y Combinator S19) is the AI-native workspace for building apps, deploying agents, and automating workflows from a single prompt. 150,000+ apps built.

  • Genesis Apps — Build complete apps from prompts. Dashboards, CRMs, portals, forms — deployed instantly. Try it →
  • AI Agents — Custom agents with built-in tools, persistent memory, multi-agent teams, public embedding
  • Automations — No-code workflow automation with 100+ integrations, branching, looping, filtering
  • Real-time Collaboration — Multiplayer workspace with chat, video, and multiple project views
  • Templates: templates for project management, engineering, marketing, and more
  • API & MCP: REST API v2, this MCP server, the agent plugin, Agent API, webhooks, OAuth 2.0

Links:


Roadmap

See open issues for planned features and improvements.

Recently shipped (v0.1.0): Agent chat (promptAgent) and webhook triggers, live now via the Taskade API v2 tool layer.

  • Automation tools: the hosted server lists automations, reads their runs and runs a "When asked" automation (list_automations, get_flow_runs, run_flow). Create, enable and manage automations through MCP are on the roadmap.
  • agent.js — Open-source autonomous agent toolkit (coming soon)
  • TaskOS — Agent platform at docs.taskade.com

Privacy & Security

  • Hosted server. Taskade runs it on www.taskade.com. It reads and writes only the workspaces that your Taskade account can access and that are on a paid plan. The server does not read your chat history with the AI client. prompt_agent runs a Taskade agent, which can use its own tools, for example web search.
  • Agent plugin. The plugin holds skills (text files) and the address of the hosted server. It runs no code of its own. The backup skill writes workspace files to a local folder (./taskade-backup/ unless you name another one).
  • Local package. Your API token authorizes the server to call the Taskade public API (https://www.taskade.com/api/v1 and https://www.taskade.com/api/v2) on your behalf. The package sends your data to no other service. Keep the token in an environment variable, and never commit it.
  • Privacy policy: taskade.com/privacy. Terms: taskade.com/terms.
  • Security and vulnerability reports: see SECURITY.md.

Support


Contributing

Help us improve MCP tools, OpenAPI workflows, and agent capabilities.

  • Issues — Report bugs or request features
  • Pull Requests — Contributions welcome
  • Apps — Browse and clone community apps

More from Taskade


License

MIT

Frequently asked questions

What is Taskade MCP?

Taskade projects, tasks and AI agents. Hosted OAuth server or local stdio package.

How do I install Taskade MCP?

It runs as a remote server. In Claude Code: claude mcp add --transport http taskade-mcp 'https://www.taskade.com/mcp'. For other clients, paste the JSON configuration from this page into their MCP settings.

Does Taskade MCP need an API key?

Yes. It expects TASKADE_API_KEY, which you set in its configuration.

Is Taskade MCP open source?

Yes. Its code is on GitHub under the MIT license.

Who maintains Taskade MCP?

It is published by taskade. AI.tn lists it but does not maintain or endorse it.

From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.