Потоковой инструмент MCP (FastMCP Streamable-HTTP). Предоставление клиенту сгенерированным фрагментам данных на парякахPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Потоковой инструмент MCP (FastMCP Streamable-HTTP). Предоставление клиенту сгенерированным фрагментам данных на паряках

Сообщение Anonymous »

Я пытаюсь создать сервер MCP на основе версии MCP Streamable-HTTP. Мой инструмент должен предоставить клиенту некоторые фрагменты информации (примитивы, объекты, что угодно). Но я не могу создать потоки этих объектов с сервера до клиента MCP. < /P>
Это мой минималистичный инструмент MCP: < /p>
from mcp.server.fastmcp import FastMCP, Context
from pydantic import Field

@mcp.tool()
async def number_stream(count: int, delay: int, ctx: Context):
for i in range(count):
await ctx.info(f"increment: {i}")
await asyncio.sleep(delay)
mcp.run(transport="streamable-http")
< /code>
Он работает нормально, он отправляет события журнала клиенту, это выглядит так, как TCP-Flow: < /p>
POST /mcp/ HTTP/1.1
host: localhost:8000
connection: keep-alive
accept: application/json, text/event-stream
content-type: application/json
accept-language: *
sec-fetch-mode: cors
user-agent: node
accept-encoding: gzip, deflate
content-length: 142

{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"_meta":{"progressToken":3},"name":"number_stream","arguments":{"count":3,"delay":2}}}
HTTP/1.1 200 OK
date: Wed, 25 Jun 2025 09:45:16 GMT
server: uvicorn
cache-control: no-cache, no-transform
connection: keep-alive
content-type: text/event-stream
x-accel-buffering: no
Transfer-Encoding: chunked
event: message
data: {"method":"notifications/message","params":{"level":"info","data":"increment: 0"},"jsonrpc":"2.0"}
event: message
data: {"method":"notifications/message","params":{"level":"info","data":"increment: 1"},"jsonrpc":"2.0"}
event: message
data: {"method":"notifications/message","params":{"level":"info","data":"increment: 2"},"jsonrpc":"2.0"}
event: message
data: {"jsonrpc":"2.0","id":3,"result":{"content":[],"isError":false}}
< /code>
Но я не вижу, как я мог бы отправлять последовательно сгенерированные объекты (в этом случае, но представьте, что вместо простых INT это Pojos) естественным потоковым способом. Хорошо, я полагаю, я мог бы сериализовать объекты на строки json один за другим и поместить их в поле данных Info-Message. Но это не выглядит аккуратно и красиво. И я не вижу никаких методов для класса контекста, которые предназначены для создания такого потока сгенерированных объектов с MCP -сервера.

Подробнее здесь: https://stackoverflow.com/questions/796 ... nerated-pi
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Session_id всегда null в Fastmcp (https://github.com/jlowin/fastmcp)
    Anonymous » » в форуме Python
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Есть ли причина не иметь общего интерфейса «Streamable»? [закрыто]
    Anonymous » » в форуме JAVA
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Я хотел бы создать сервер MCP, который позволяет мне подключать мои MCP-клиенты к базе данных SQLite [закрыто]
    Anonymous » » в форуме Python
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Могу ли я использовать анимацию перехода общего элемента в композиции с навигацией по фрагментам?
    Anonymous » » в форуме Android
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Цикл по фрагментам массива php [дубликат]
    Anonymous » » в форуме Php
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»