---
title: "Read a tool server’s tools"
method: POST
path: "/client/mcp/upstreams/{id}/refresh"
tags: ["Tool gateway"]
---

# Read a tool server’s tools

`POST /client/mcp/upstreams/{id}/refresh`

## Request

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

Connects to the server and records what it lists. New and changed tools wait for approval. At most 10 refreshes a minute per organisation. Owner or admin, or a key with `mcp:write`.

## Path parameters

- `id` string, uuid, required

## Response `200`

What the refresh found

- McpRefreshResult
  - `tools` integer, required: Tools the server lists now
  - `added` integer, required: New since the last refresh — they wait for approval
  - `changed` integer, required: Changed since the last refresh — hidden from agents until approved again
  - `removed` integer, required: No longer listed

## Other responses

- `404`: No such tool server
- `429`: Too many refreshes this minute
- `502`: The server could not be reached or did not speak MCP

---

[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)
