mcplite exposes R functions as Model Context Protocol (MCP)
tools through a lightweight standard-input/standard-output (stdio)
server. Use it when a local MCP client needs to call R code for data
lookups, calculations, report helpers, or automation.
Install the released version from CRAN:
install.packages("mcplite")Install the development version from GitHub:
pak::pak("tosidata/mcplite")Save a complete server definition as server.R:
library(mcplite)
add_numbers <- tool(
function(x, y) {
x + y
},
name = "add_numbers",
description = "Add two numbers and return the result.",
arguments = list(
x = type_number("First number."),
y = type_number("Second number.")
)
)
mcp_server(list(add_numbers))Configure your MCP client to launch the script. The
command must resolve to the Rscript
executable. If Rscript is not discoverable, run
Sys.which("Rscript") in R and use the returned path as the
client’s command. Keep the server script path absolute too.
A Claude Desktop-style configuration looks like this:
{
"mcpServers": {
"r-tools": {
"command": "Rscript",
"args": [
"--vanilla",
"/absolute/path/to/server.R"
]
}
}
}Restart the client and check that it discovers
add_numbers. As a first call, ask it to run
add_numbers with x = 2 and y = 3;
the result should be 5.
mcp_server() starts serving immediately and runs until
standard input closes, so launch it through the MCP client rather than
from an interactive R console.
mcplite is a tools-only, stdio-only MCP server. It
supports modern MCP 2026-07-28 and legacy MCP
2024-11-05, 2025-06-18, and
2025-11-25. The same server definition works with modern
and legacy clients.
Tools can return ordinary R values, rich MCP content, structured
results, and tool-level errors. Compatible ellmer::tool()
definitions can also be supplied directly.
The package focuses on local, client-launched tools. It does not provide an HTTP transport, prompt or resource endpoints, or multi-round-trip MCP feature families. Tools can still include supported embedded resources and resource links in their results.
Choose the next task:
For installed help, start with ?mcplite. See
?tool and
help("tool-types", package = "mcplite") for definitions and
schemas, help("mcplite-results", package = "mcplite") for
exact return-value mappings and payload options, and
?mcp_server for server use, compatibility, and tracing.