---
title: "Disconnect Integration"
method: POST
path: "/api/mcp-integrations/{provider_key}/disconnect"
tags: ["mcp-integrations"]
---

# Disconnect Integration

`POST /api/mcp-integrations/{provider_key}/disconnect`

Disconnect ONE MCP connection and remove its stored credentials.

Deliberately does not check `is_provider_enabled_for_org`/the org's
rollout flag: revoking an existing grant must never be trapped behind a
flag that got turned off or removed after connecting -- so the ungated
provider lookup is used purely to read the ownership axis.

Authorization:
- org-shared provider: org admin, as before. `target_user_id` is
  meaningless there and is rejected rather than silently ignored.
- user-scoped provider: a member disconnects their own connection with no
  admin gate; disconnecting ANOTHER member's connection (offboarding) is
  an explicit admin action that must name `target_user_id`.

## Path parameters

- `provider_key` string, required

## Query parameters

- `target_user_id` string, nullable

## Response `200`

Successful Response

- DisconnectResponse
  - `success` boolean, required
  - `message` string, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/every/apis/every-api.md) · [All operations](https://skmtc.net/every/apis/every-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/every/every-api/versions/f8600f7a4ae3/schema)
