# Diagnostic topic: Precall: the request itself

When a pre-call check does not run at all, the refusal is one of two catalog errors, and the fix is in the request. The check takes the MCP server's URL and, optionally, one tool name to focus the answer on. The URL must be https — http is accepted only for a loopback address — and a URL naming a private, link-local or reserved address is not fetched. The tool name, when one is sent, must be a tool name of 200 characters or fewer. Both errors carry what to send instead, verbatim in the record below and at the error catalog.

Kind: precall troubleshooting · 2 request errors, carried verbatim from the error catalog · tool focus at most 200 characters

## Entry points

- precall: https://www.rightshold.com/v1/security/precall
- errors: https://www.rightshold.com/v1/errors
- spec: https://www.rightshold.com/security/spec

## Checks to run

- GET /v1/security/precall?url=<the MCP server's https URL> — the check itself; add &tool=<tool name> to focus the answer on one tool.
- GET /v1/errors/invalid_server_url and GET /v1/errors/invalid_precall — the two refusals, with their typical status and the action each names.

## Outcomes

- invalid_server_url (422): The url was missing or malformed, was not https (http is accepted only for a loopback address), or named a private, link-local or reserved address, which this service does not fetch. Next step: Send the remote MCP server's https URL (http only for a loopback address). URLs naming — or resolving to — private, link-local or reserved addresses are not fetched.
- invalid_precall (422): The request reached the check but the tool focus was not usable: a tool name must be a string of 200 characters or fewer. Next step: Send ?url=<the MCP server's https URL> and optionally ?tool=<a tool name of 200 characters or fewer>.

Machine form: https://www.rightshold.com/v1/diagnostics/precall-request · All diagnostics: https://www.rightshold.com/diagnostics
