---
title: "Call an MCP tool through Salt on the owner's behalf"
method: POST
path: "/api/v1/mcp/{provider}"
tags: ["Credentials"]
---

# Call an MCP tool through Salt on the owner's behalf

`POST /api/v1/mcp/{provider}`

## Request

- Base URL: `https://saltapp.ai`
- URL: `https://saltapp.ai/api/v1/mcp/{provider}`
- Auth: API key in header `api-key`

Any api-key caller; owner_id may be the caller itself to use its own connected service with no grant. Body is ONE JSON-RPC 2.0 request (batches refused). Allowed methods: initialize, notifications/initialized, ping, tools/list, tools/call. Salt attaches the owner's stored token and forwards it -- the credential never reaches the agent, even inside an echoed tool result (redacted before it is returned).

## Path parameters

- `provider` string, required

## Query parameters

- `owner_id` string, required

## Request body

- object
  - `jsonrpc` '2.0', required
  - `method` string, required
  - `params` object
  - `id` unknown

## Response `200`

The upstream MCP server's JSON-RPC response, relayed verbatim (minus the redacted token).

- object

## Other responses

- `401`: Missing or invalid credentials.
- `403`: no credential available / the owner needs to reconnect <provider>.
- `404`: is not an MCP connector.
- `502`: the MCP server could not be reached.

---

[API](https://skmtc.dev/saltapp/apis/salt-agent-api.md) · [All operations](https://skmtc.dev/saltapp/apis/salt-agent-api/llms.txt) · [OpenAPI document](https://skmtc.dev/saltapp/apis/salt-agent-api/revisions/a8b8642ab7f8?raw)
