Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion website/docs/api/HTTP/mcp-event.ParamsDetails.json

This file was deleted.

1 change: 0 additions & 1 deletion website/docs/api/HTTP/mcp-event.StatusCodes.json

This file was deleted.

70 changes: 0 additions & 70 deletions website/docs/api/HTTP/mcp-event.api.mdx

This file was deleted.

1 change: 1 addition & 0 deletions website/docs/api/HTTP/mcp-message.ParamsDetails.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"parameters":[{"name":"Mcp-Session-Id","in":"header","description":"Session identifier returned by the server on `initialize` and required on subsequent requests to maintain MCP session continuity.","required":false}]}
1 change: 1 addition & 0 deletions website/docs/api/HTTP/mcp-message.StatusCodes.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"responses":{"200":{"description":"JSON-RPC response. Returned as `application/json` for a single response or `text/event-stream` when the server streams additional messages."},"202":{"description":"Message accepted (for JSON-RPC notifications / responses that do not require a reply)."},"400":{"description":"Malformed JSON-RPC payload."},"401":{"description":"Unauthorized. The `/v1/mcp` endpoint requires `runtime.auth` to be configured. Configure an API key provider in your Spicepod and retry with credentials."},"403":{"description":"Forbidden. The `Host` header value is not in the `runtime.mcp.allowed_hosts` list. Configure `runtime.mcp.allowed_hosts` or set it to `[\"*\"]` to allow all hosts."},"404":{"description":"Unknown or expired `Mcp-Session-Id`."},"413":{"description":"Payload too large. Maximum allowed size is 32 MiB."}}}
70 changes: 70 additions & 0 deletions website/docs/api/HTTP/mcp-message.api.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
---
id: mcp-message
title: "Send a Model Context Protocol message"
description: "Send a JSON-RPC message to the Spice MCP server using the MCP Streamable HTTP transport. The response is either a single JSON-RPC response (`application/json`) or an SSE stream (`text/event-stream`), selected via the `Accept` header. Session continuity is carried via the `Mcp-Session-Id` header."
sidebar_label: "Send a Model Context Protocol message"
hide_title: true
hide_table_of_contents: true
api: eJztVk1vGzcQ/SsDnuJCX3ZyaHVzjRZxUTVC5JwcwUstRxIbLsmSXNmK4P/eGe5qK3uFADnl0oOkXXI482bem6EOIslNFNN7UZVeLAdCYSyD9kk7K6ZigVaBhD8WH/4afpzfQIUxyg1CcpC2CAuvS4TZzRwihh0GqKO2m7zFi4sUUFZyZRDe393NIQVpo3chjeCOTALSi40IOgJqOhQoFDsg+y5iZ/SmkN4bXUqGNv47OltcgKMjFhaL3yDmWGSV8CmNcYc2DZu14mJA8AyWCRXstMzwiuuyRJ8K2KJUGEawoMzIMZTOJm1rnfYMq5Qh6NNjs9IPW9PhreqOi4FwHkPGdquocFTNh7ZYtOdlkBUmDFzpg7D0QjYvfZGZ5pI3HkWfiQafVpSZXmsqVsBUB0voVvsMruWAjAptddLS6K9YUIEUmf5T60CmtBnrVaRXcpOXMabIfFZS20Sfls7X1eAUj17EdC1NxOclLzX0UGIHcTWZ8M9L4D0mR/DxCFxG6LMKa3cihI5/WjzDLTxu0Z5m36xHkEpp9inNUbRxJJ4HhPGqj3HWylpmURCwN4yhQ24dV7zBGGHcYaK6bWUC5djiWGOCHtCb/UUO9+5cSWbSkP+K4nQhvNwbJ1V75rJ/5pOVddq6QJSqpn2K8e5yTDorgJrUO207CFTVUBNxFY74UMH0rpDJXOtNHdjBzfGZ++d6fgtfcA8+uB3pKwCpYO/q0PS3d6rVUAp7eKRGhZJ8sAxJBS3it33Ev7uw0orsWrjvXez6DXbS1LnxuXK6YbADTUmNpDHuEdXDlk7FAoyO6RT1t2yJuojkNXHexf1n8dNnscxFyIb8Ddm0xf7uXLW/WPdo2RU++dw5r1u/OXx5JvF5wyUFdGBk2JDiZ/JJV3UFLVIS99ec/dsrmOlfyRX5ogGxdTw7PGHLQyNt6a1lmRYahTcjpA6GZ0VKfjoeG1dKwxlNf578MumNjj95GxT1jXG+4r5vPJ3WM9NaDIfskVNbcriyDtT5OZ70+oEkQs9L3tN27TjxpJPhUday0QvNxEcWEcmnM6F2R+oePt9Owmsvyy0Or0YM/r8J93KHSsTpN45pYTQZ1jYmvl54j6tWSXvitb28Zk6h4VR5esA8uORK102F15APgmceIfj/9vue2y/tPZc8h/eGrhGmJIv00Ar5XuwuybD9m8Fq5bXDYSUjfgrm+ZmX6ToKWWTEtQw6c8uSGxyvRdai0pE3jtfQNwn88Zfm2crkVur/AchTkTZy/3XzYP5hcUcT4l+e7F7s
sidebar_class_name: "post api-method"
info_path: docs/api/HTTP/runtime
custom_edit_url: null
proxy: http://localhost:8090
---

import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint";
import ParamsDetails from "@theme/ParamsDetails";
import RequestSchema from "@theme/RequestSchema";
import StatusCodes from "@theme/StatusCodes";
import OperationTabs from "@theme/OperationTabs";
import TabItem from "@theme/TabItem";
import Heading from "@theme/Heading";
import Translate from "@docusaurus/Translate";

<Heading
as={"h1"}
className={"openapi__heading"}
children={"Send a Model Context Protocol message"}
>
</Heading>

<MethodEndpoint
method={"post"}
path={"/v1/mcp"}
context={"endpoint"}
>

</MethodEndpoint>



Send a JSON-RPC message to the Spice MCP server using the MCP Streamable HTTP transport. The response is either a single JSON-RPC response (`application/json`) or an SSE stream (`text/event-stream`), selected via the `Accept` header. Session continuity is carried via the `Mcp-Session-Id` header.

<Heading
id={"request"}
as={"h2"}
className={"openapi-tabs__heading"}
>
<Translate id="theme.openapi.request.title">Request</Translate>
</Heading>

<ParamsDetails
{...require("./mcp-message.ParamsDetails.json")}
>

</ParamsDetails>

<RequestSchema
{...require("./mcp-message.RequestSchema.json")}
>

</RequestSchema>

<StatusCodes
{...require("./mcp-message.StatusCodes.json")}
>

</StatusCodes>



1 change: 1 addition & 0 deletions website/docs/api/HTTP/mcp-stream.ParamsDetails.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"parameters":[{"name":"Mcp-Session-Id","in":"header","description":"Session identifier returned by the server on `initialize` and required on subsequent requests to maintain MCP session continuity.","required":false}]}
1 change: 1 addition & 0 deletions website/docs/api/HTTP/mcp-stream.StatusCodes.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"responses":{"200":{"description":"SSE stream (`text/event-stream`) of server-originated MCP messages."},"401":{"description":"Unauthorized. The `/v1/mcp` endpoint requires `runtime.auth` to be configured. Configure an API key provider in your Spicepod and retry with credentials."},"403":{"description":"Forbidden. The `Host` header value is not in the `runtime.mcp.allowed_hosts` list."},"404":{"description":"Unknown or expired `Mcp-Session-Id`."}}}
70 changes: 70 additions & 0 deletions website/docs/api/HTTP/mcp-stream.api.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
---
id: mcp-stream
title: "Open an MCP server-to-client SSE stream"
description: "Open a long-lived server-to-client SSE stream for the current MCP session as defined by the Streamable HTTP transport. The `Mcp-Session-Id` header must identify an existing session created via `POST /v1/mcp`."
sidebar_label: "Open an MCP server-to-client SSE stream"
hide_title: true
hide_table_of_contents: true
api: eJzdVU2P00AM/SvWnEDatF3gAL0hxMdKIFZqOaHVZpq4rcVkZphxsluq/e/YSVp2t8AZcaiajD328/OzszdsN9nMv5qmiubqzNSYq0SRKXgzN58jerDggt8UjjqsIWPqMBUcisoReobF4i1kTmgbWIcEvEWo2pTU9OnNpfjnLLHAZqhxTV5CrHa916K/ZFcO4cNyeQmcrM8xJJ7AUszlpyoWi+F2cVGXsEVbY4KmzQxUS3xa78B6wFvKTH5zTFVJXJY8HVkoLz8vljDtzqdSXzkxZyZETFbLu6ilQDm9HtCLKdpkG2RMSsjeeHkRl4c4xI2UmQGNeUzY6HgASAI4IbfpXt0DgyBOJXliso5+YCmV1OL6vaUkrmLM7SrLq/Kox5g5AwdoLHmW3wNyqyDJfEu80woPUcx8bV3Guys9Ema9uJv53jybzfTvEfBfbXxSMt7yFDvJXQxn5VMI60PvQ6IN+Z5iBdEICLvBPDF3Z+bF7Pw09hdvW97KtR9Yj809dATQ1zHQWKSgzlCmVqppcKKXSq15hVrhmjZt0gBvDs/a/deXF/ANdxBT6Ej1IdTsQptgEanCGOqRWE47uCHeqjr63gg1I+Lnp4jfhbSiWvxGuB9C5qMCO+taBMrgA2s6beoRtBQ1sc6FG6yvt3Irl+BEn2OqF78j55sPNx5kdvA29t1/LH25LLdFmdugmt0g92LlrbyMRMrB0J1Bum1yqlHmOJ9OXaisUyzzl7NXsxPJflSzDGeHLsRG9TZEuk90z1xZFBpR4VxpOhlzUVyfz0a6li7I85XayK+DVsrETkdoJOcktXKbtU/SoaOLk3eRqt4fJ/B1tNUWi2cTBf9rsh5ahCEtfwgsB5NZ0frMul/UFqX+xvp7UYfddhikP261x6D3RqdNfP7P9ci7qOT0GyA6WTRKXi+n/Si5r6Y7F8fxe6G60rP9fmUzfknu7k6PZWGlXg7SFZuo74KK4+ywOFU1NWU1HBbVX4j+F9bqb5npRX/6iehXhBj6STkO7vu3S5nkn6SAmfA=
sidebar_class_name: "get api-method"
info_path: docs/api/HTTP/runtime
custom_edit_url: null
proxy: http://localhost:8090
---

import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint";
import ParamsDetails from "@theme/ParamsDetails";
import RequestSchema from "@theme/RequestSchema";
import StatusCodes from "@theme/StatusCodes";
import OperationTabs from "@theme/OperationTabs";
import TabItem from "@theme/TabItem";
import Heading from "@theme/Heading";
import Translate from "@docusaurus/Translate";

<Heading
as={"h1"}
className={"openapi__heading"}
children={"Open an MCP server-to-client SSE stream"}
>
</Heading>

<MethodEndpoint
method={"get"}
path={"/v1/mcp"}
context={"endpoint"}
>

</MethodEndpoint>



Open a long-lived server-to-client SSE stream for the current MCP session as defined by the Streamable HTTP transport. The `Mcp-Session-Id` header must identify an existing session created via `POST /v1/mcp`.

<Heading
id={"request"}
as={"h2"}
className={"openapi-tabs__heading"}
>
<Translate id="theme.openapi.request.title">Request</Translate>
</Heading>

<ParamsDetails
{...require("./mcp-stream.ParamsDetails.json")}
>

</ParamsDetails>

<RequestSchema
{...require("./mcp-stream.RequestSchema.json")}
>

</RequestSchema>

<StatusCodes
{...require("./mcp-stream.StatusCodes.json")}
>

</StatusCodes>



Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"parameters":[{"name":"Mcp-Session-Id","in":"header","description":"Session identifier returned by the server on `initialize` and required on subsequent requests to maintain MCP session continuity.","required":false}]}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"responses":{"204":{"description":"Session terminated."},"401":{"description":"Unauthorized. The `/v1/mcp` endpoint requires `runtime.auth` to be configured. Configure an API key provider in your Spicepod and retry with credentials."},"403":{"description":"Forbidden. The `Host` header value is not in the `runtime.mcp.allowed_hosts` list."},"404":{"description":"Unknown or already-terminated `Mcp-Session-Id`."}}}
70 changes: 70 additions & 0 deletions website/docs/api/HTTP/mcp-terminate-session.api.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
---
id: mcp-terminate-session
title: "Terminate an MCP Streamable HTTP session"
description: "Terminate the MCP session identified by the `Mcp-Session-Id` header. Subsequent requests bearing the same session id will receive `404 Not Found`."
sidebar_label: "Terminate an MCP Streamable HTTP session"
hide_title: true
hide_table_of_contents: true
api: eJzNVE1PGzEQ/Ssjn/MFzaHNDVEQSFAhJZxQxDprh7VwbNf2hqZR/nvfbDYJkKhnDqvd9YzH771547XI8iWJ0ZNYlEFMO0LpVEYTsvFOjMREx4VxMmvKlab7ywdKOiXEyCjtspkbrWi2aqLFfRm64224e6sKqrRUOvZoXM+S/l0jnyK/U0400zIa99JsTHKh39WlN2MtMkttlqg6HAzpl8907Wunip7oCB90lAzwVgEicD/nHczntgyygoyoiwizWwuHH2R/xIg0wzS3SMVn9uPPXCNg5Tq6A+mk4xLLSCqMM9lIa/7qgqRTDVcTkYpgOiFB9rSQxmU8H5QtPQ5ztckrJrurIkZzaZPeTHkpBe+QLkZrcT4Y8us08L0uqic2HTEcnB3nPjpZ58pH4FY9mnAj+8uzPmQtSDsVvGlBA0WiItZAt9A93lQwh5lmxHPzUkcucLn7hgZ08XBLr3pFIfolRIwEqitfRxoHU+rgVStUjit0PVdUogZrDaot4m/HiK99nBmFvBbujU955zZaSltrMokcPIPjGmfuQINUT1rr37R6rrArFWRNyu1RJ4R8dK/OvznykaSNOGHVPWh65HjUQSGYrvLsTKUt/NdYMVf4b2XFwtY1W2PW0bIDcw6jft/6UlpGNvo++DE4MuQdh0nppbY+LNhN20rvZW90LLpdrsiIpnxcWUf4qTlPBvOMnuB7yjHj5p55Z5MtD0gr1dHRrHTirqFf+xSLfxiR97fzdRFkWenueY/BH+bmYwQiMf1tYSz0Bt3apSxnQIBYAP+FdO+qHq4huZ2VcUYzFryBbiaT/ex8Rr0WPEwA8VWvsrwKzC/rP7kfLG4C5t84Yt265kksz5DY3s5sDV5br2cy6cdoNxteBpLYdBTCAkwjJPe3s7vZuPHKJA7sbpL/SPUV7r2TyjS+Pb7Dm5lHoDH7fvx+Xt1dTa4wkv8AsJFpLQ==
sidebar_class_name: "delete api-method"
info_path: docs/api/HTTP/runtime
custom_edit_url: null
proxy: http://localhost:8090
---

import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint";
import ParamsDetails from "@theme/ParamsDetails";
import RequestSchema from "@theme/RequestSchema";
import StatusCodes from "@theme/StatusCodes";
import OperationTabs from "@theme/OperationTabs";
import TabItem from "@theme/TabItem";
import Heading from "@theme/Heading";
import Translate from "@docusaurus/Translate";

<Heading
as={"h1"}
className={"openapi__heading"}
children={"Terminate an MCP Streamable HTTP session"}
>
</Heading>

<MethodEndpoint
method={"delete"}
path={"/v1/mcp"}
context={"endpoint"}
>

</MethodEndpoint>



Terminate the MCP session identified by the `Mcp-Session-Id` header. Subsequent requests bearing the same session id will receive `404 Not Found`.

<Heading
id={"request"}
as={"h2"}
className={"openapi-tabs__heading"}
>
<Translate id="theme.openapi.request.title">Request</Translate>
</Heading>

<ParamsDetails
{...require("./mcp-terminate-session.ParamsDetails.json")}
>

</ParamsDetails>

<RequestSchema
{...require("./mcp-terminate-session.RequestSchema.json")}
>

</RequestSchema>

<StatusCodes
{...require("./mcp-terminate-session.StatusCodes.json")}
>

</StatusCodes>



1 change: 0 additions & 1 deletion website/docs/api/HTTP/operation-id.StatusCodes.json

This file was deleted.

65 changes: 0 additions & 65 deletions website/docs/api/HTTP/operation-id.api.mdx

This file was deleted.

Loading
Loading