---
title: "Agent: invoke a tool on an MCP server"
method: POST
path: "/api/v1/mcp/internal/tools/call"
tags: ["MCP"]
---

# Agent: invoke a tool on an MCP server

`POST /api/v1/mcp/internal/tools/call`

## Request

- Base URL: `http://:8080`
- URL: `http://:8080/api/v1/mcp/internal/tools/call`
- Auth: none declared

Agent: invoke a tool on an MCP server.

Auth: Required (bearer token).
Scope: Organization-scoped in authenticated context.
Side effects: May mutate server state.

## Headers

- `Accept` string

## Request body `*/*`

- CallToolRequest: CallToolRequest schema
  - `arguments` object, nullable: Tool-specific arguments as key-value pairs
  - `server_id` string, uuid, required: ID of the MCP server to call the tool on
  - `tool_name` string, required: Name of the MCP tool to invoke

## Response `200`

OK

- Response: Response schema
  - `data` unknown
  - `message` string
  - `status` string

## Other responses

- `400`: Bad Request _(validation or deserialization error)_
- `500`: Internal Server Error _(panics)_
- `default`

## Changes

- **2026-04-26** `09f18af670c4`: 2 breaking, 4 info
  - the request property `server_id` became required
  - the request property `tool_name` became required
  - api tag `MCP` added
  - api tag `api/v1/mcp` removed
  - …2 more
- **2026-04-06** `6d5e3b7979d1`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/nixopus/apis/nixopus-api/changes/api/v1/mcp/internal/tools/call/post.md)

---

[API](https://skmtc.dev/nixopus/apis/nixopus-api.md) - [All operations](https://skmtc.dev/nixopus/apis/nixopus-api/llms.txt) - [OpenAPI document](https://skmtc.dev/nixopus/apis/nixopus-api/revisions/c5bacaea7239?raw)
