
jameshwade/shinymcp
Developer toolsこのページは AI により自動翻訳されています。技術的な詳細は原文をご確認ください。 原文を見る
光沢のあるアプリをMCPアプリに変換する
概要
ライブ・シャイワークフローをMCPアプリに切り替えます。 shinymcp は、Sony インターフェイスと R の計算を MCP アプリに変換します。チャット クライアント、Shiny ホスト、および shinychat 会話で実行できるインタラクティブなカードです。 始める 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用事例 利用 ui:// リソース MCP ホストの HTML アプリケーション表面を宣言します。 postMessageブリッジ 入力、ツール呼び出し、結果の同期を維持します。 Shiny ホスティング Embed MCP アプリをフルスクリーン対応の Shiny カードとして。 Shiny または bslib 入力を使用して、MCP 出力対象を追加し、それらを R ツールにバインドします。 ユーザーが直面するワークフローを維持しながら、ツール機能に反してグループを平らにします.
概要(AI 翻訳)
mCP ビルド R.MCPのアプリ App は、MCP アプリをサポートするチャット クライアントのページを持つツールです。 Claude、ChatGPT、VSコードなどの拡張子は、ページを表示します。 会話、そして、その人が一緒に仕事をし続けることができます。 シニームクプで ツールは R 関数であり、ページは Shiny UI です。 モデルは呼び出すことができます 独自のMCPクライアントで、ページは同じツールを呼び出します。 人が使うように。
インストール
ツールからのアプリ
名前は2つの半分を接続します。 ツールの引数binsは値を取ります
その ID の入力から、返すリストは出力を埋めます
[histogramと[caption]。 人がスライダーを動かすとき、ページ
ツールを再度呼び出します。
モデルは同じツールを呼び出し、それが返すものを読みます。 クライアントは、ページを表示することができます。
プロットはイメージにもなります。 各結果は3つの方法で分割されます。 モデルのテキストとコンパクトな構造データ、ページが描くもの (HTML、画像、ウィジェットデータ)、クライアントがページに渡し、続ける モデルから。 結果はテキスト、テーブル、プロット、画像、HTML、および htmlウィジェット
[[preview_app(app)] は、チャットクライアントの方法で、ブラウザでアプリを開きます
このページは AI により自動翻訳されています。技術的な詳細は原文をご確認ください。
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"]
}
}
}