posit-dev / posit-dev/mcptools

Serving MCP Apps: gaps for embedding mcptools in other frameworks (tracking)

Open
#115 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
R
Stars
196
Forks
21
Avg merge
1h 14m
Merged PRs (30d)
1

Description

Shiny is growing experimental support for serving apps as MCP Apps (SEP-1865): an MCP endpoint mounted on the app's own httpuv server whose ui:// resource renders the live app in the host's sandboxed iframe.

The original plan was to build that endpoint on {mcptools}. That wasn't possible with v1.0.0 / current dev, so shiny currently carries a minimal internal JSON-RPC endpoint. This issue collects the gaps as sub-issues so the implementations can converge — ideally shiny (and other embedders like plumber) could eventually delegate protocol handling to {mcptools}.

Each sub-issue is independently useful; none is MCP-Apps-specific except the tool _meta one.

Shiny's internal implementation (a reference for what embedders need): R/mcp-server.R, R/mcp-tunnel.R, R/mcp-stdio.R on the schloerke/shiny-mcp-app-protocol branch.

Parts

  • #116 (resources/list + resources/read)
  • #117 (tool _meta in tools/list)
  • #118 (async tool handlers via promises)
  • #119 (embeddable JSON-RPC dispatch)
  • #120 (non-blocking stdio serving)

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the linked sub-issues #116–#120 and the reference implementation in R/mcp-server.R, R/mcp-tunnel.R, and R/mcp-stdio.R on the shiny-mcp-app-protocol branch. Pick one independently scoped protocol gap and trace the corresponding mcptools entry points. Done means the selected gap is implemented and its behavior is covered by the relevant tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
r
Domain
api, backend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.