---
title: "One tool server’s sign-in status"
method: GET
path: "/client/mcp/upstreams/{id}/oauth"
tags: ["Tool gateway"]
---

# One tool server’s sign-in status

`GET /client/mcp/upstreams/{id}/oauth`

## Request

- Base URL: `https://api.roar-ai.com`
- URL: `https://api.roar-ai.com/client/mcp/upstreams/{id}/oauth`
- Auth: HTTP bearer

Requires `mcp:read`.

## Path parameters

- `id` string, uuid, required

## Response `200`

Sign-in status

- McpSignInStatus: Where one signed-in tool server stands. No token or secret is ever returned
  - `upstreamId` string, uuid, required
  - `state` 'not_signed_in' | 'connected' | 'needs_sign_in', required
  - `signedInBy` object, nullable, required: The person who signed in. Null once they are deleted
    - `id` string, required
    - `name` string, required
    - `email` string, required
  - `signedInByFormerMember` boolean, required: The person who signed in has left the organisation: sign in again as someone current
  - `signedInAt` string, date-time, nullable, required
  - `accountLabel` string, nullable, required: The vendor account the sign-in page REPORTED, when it named one. Unverified
  - `accountLabelVerified` false, required: Always false: `accountLabel` is not verified
  - `signInHost` string, nullable, required: The sign-in server’s host
  - `knownVendor` boolean, required: Whether the sign-in is a vendor Roar recognises, rather than a server’s own
  - `vendor` string, nullable, required: That vendor’s name, when `knownVendor`
  - `scopes` string[], required: The permissions granted
  - `problem` 'renewal_refused' | 'server_refused' | 'no_refresh_token' | 'app_removed' | 'unreadable' | 'null', nullable, required: Why it needs signing in again. Null unless `state` is `needs_sign_in`

## Other responses

- `404`: No such tool server

---

[API](https://skmtc.dev/roar-ai/apis/roar-ai-api.md) · [All operations](https://skmtc.dev/roar-ai/apis/roar-ai-api/llms.txt) · [OpenAPI document](https://skmtc.dev/roar-ai/apis/roar-ai-api/revisions/37e4d0d5a7fe?raw)
