
jameshwade/shinymcp
Developer toolsЭта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал
Преобразование Shiny Apps в MCP Apps
Обзор
Превратите живые рабочие процессы Shiny в приложения MCP. shinymcp преобразует интерфейсы Shiny и R-вычисления в приложения MCP: интерактивные карты, которые могут работать в клиентах чата, хостах Shiny и разговорах shinychat. Get Start See Use Cases Использование с помощью shinychat ui:// Ресурсы Объявляют поверхности HTML-приложений для MCP-хостов. PostMessage Bridge Сохраняйте входы, вызовы инструментов и результаты синхронизированными. Shiny размещает приложения Embed MCP в качестве полноэкранных карт Shiny. Используйте Shiny или bslib входы, добавьте MCP выходные цели и свяжите их с R-инструментами. Сплющенные реактивные группы в функции инструмента при сохранении рабочего процесса, ориентированного на пользователя.
Обзор (машинный перевод)
shinymcp создает MCP Приложения в R. An MCP Приложение - это инструмент со страницей: клиент чата, который поддерживает приложения MCP расширение, такое как Claude, ChatGPT или VS Code, показывает страницу в Разговор, и человек может продолжать работать с ним. В Shinymcp Инструменты — это R-функции, а страница — Shiny UI. Модель может называться Инструменты сами по себе, в любом MCP-клиенте, и страница вызывает одни и те же инструменты Как человек его использует.
##Установка
##Приложение из инструмента
Имена соединяют две половины. Аргумент инструмента bins принимает его значение
Из этого списка, который он возвращает, заполняются выходы.
[Т1] и [Т2]. Когда человек перемещает слайдер, страница
Повторите вызов инструмента.
Модель называет один и тот же инструмент и читает, что он возвращает, независимо от того, Клиент может показать страницу:
Сюжет доходит до него и как образ. Каждый результат делится на три способа: текст и компактные структурированные данные для модели, и что рисует страница (HTML, изображения, данные виджета), которые клиенты переходят на страницу и сохраняют от модели. Результаты могут содержать текст, таблицы, графики, изображения, HTML и htmlwidgets.
preview_app(app) открывает приложение в вашем браузере так, как клиент чата
Эта страница переведена автоматически. Технические детали смотрите в оригинале.
README
Показан фрагмент оригинального README. Открыть оригинал.
shinymcp
shinymcp builds MCP Apps in R. An MCP App is a tool with a page: a chat client that supports the MCP Apps extension, such as Claude, ChatGPT, or VS Code, shows the page in the conversation, and the person can keep working with it. In shinymcp the tools are R functions and the page is Shiny UI. The model can call the tools on their own, in any MCP client, and the page calls the same tools as the person uses it.
Installation
# install.packages("pak")
pak::pak("JamesHWade/shinymcp")
An app from a tool
library(shiny)
library(shinymcp)
faithful_histogram <- ellmer::tool(
function(bins = 20) {
list(
histogram = mcp_result_plot(
function() hist(faithful$waiting, breaks = bins, main = NULL, xlab = "Minutes"),
text = "Histogram of waiting times between eruptions."
),
caption = sprintf("%d eruptions; median wait %d minutes.", nrow(faithful), median(faithful$waiting))
)
},
name = "faithful_histogram",
description = "Show a histogram of waiting times between Old Faithful eruptions.",
arguments = list(
bins = ellmer::type_integer("Number of bins, 5 to 50.", required = FALSE)
),
annotations = ellmer::tool_annotations(read_only_hint = TRUE)
)
app <- mcp_app(
ui = fluidPage(
sliderInput("bins", "Number of bins", min = 5, max = 50, value = 20),
plotOutput("histogram"),
textOutput("caption")
),
tools = list(faithful_histogram),
name = "faithful"
)
Names connect the two halves. The tool’s argument bins takes its value
from the input with that id, and the list it returns fills the outputs
histogram and caption. When the person moves the slider, the page
calls the tool again.
The model calls the same tool, and reads what it returns, whether or not its client can show the page:
result <- app$run_tool("faithful_histogram", list(bins = 30))
cat(result$content[[1]]$text)
#> histogram: Histogram of waiting times between eruptions.
#>
#> caption: 272 eruptions; median wait 76 minutes.
Установка
This server does not publish a one-line install command.
Open the repository installation guide Новичок в MCP? Начните с руководства на mcpskill.org →Конфигурация
{
"mcpServers": {
"faithful": {
"command": "Rscript",
"args": ["/path/to/app.R"]
}
}
}