> ## Documentation Index
> Fetch the complete documentation index at: https://docs.groovin.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Protocol details

> For anyone building their own MCP client. If you use Claude, ChatGPT or Cursor, you do not need this page.

| | |
| - | - |
| **Address** | `https://api.groovin.ai/functions/v1/mcp-server` |
| **Transport** | Streamable HTTP: JSON-RPC 2.0 over `POST`, one JSON answer per request |
| **Protocol version** | `2025-06-18`. `initialize` answers with the version your client sends |
| **Sessions** | None: each request stands alone |
| **Streaming** | None: no server-sent events |
| **Sign-in** | `Authorization: Bearer` with an API key or an OAuth token |

## Supported methods

| Method | What it does |
| - | - |
| `initialize` | Starts the connection and returns the server's instructions |
| `ping` | Checks the server is there |
| `tools/list` | Lists every tool, in one page |
| `tools/call` | Runs a tool |

The server only offers tools: no prompts and no resources. Notifications get an empty `202` answer, and JSON-RPC batches are accepted.

## Tools

Each tool declares a JSON Schema for its arguments and its answer, and hints such as `readOnlyHint`. These hints help your client decide what needs a human confirmation: they do not replace [reading what each call does](https://docs.groovin.ai/reference/side-effects.md).

The answer schema only covers top-level fields. See [Data models](https://docs.groovin.ai/reference/data-models.md) for the full objects.

## Answers

A successful `tools/call` returns the answer twice, as JSON text in `content[0].text` and as an object in `structuredContent`.

A failed tool call still answers HTTP 200, with `isError: true` and the message in `content`. See [MCP errors](https://docs.groovin.ai/reference/mcp/errors.md).

## JSON-RPC errors

| Code | Meaning |
| - | - |
| `-32700` | The body is not valid JSON |
| `-32600` | The request is not valid JSON-RPC |
| `-32601` | Unknown method |
| `-32602` | Invalid parameters, such as a missing tool name |

Any method other than `POST` gets a `405`.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.