MCPR
Expose R functions through the Model Context Protocol (MCP) for seamless integration with AI assistants.
mcpr
mcpr exposes R functions through the Model Context Protocol (MCP), enabling seamless integration with AI assistants like Claude Desktop.
Installation
# install.packages("devtools")
devtools::install_github("chi2labs/mcpr")
Quick Start
Basic Server
library(mcpr)
# Create and configure server
server <- mcp_http("My R Analysis Server", "1.0.0", port = 8080)
# Add tools
server$mcp_tool(
name = "calculate_mean",
fn = function(numbers) mean(numbers),
description = "Calculate the mean of a numeric vector"
)
# Run server
server$mcp_run()
Using Decorators
Create a file with decorated functions:
# analysis-tools.R
#* @mcp_tool
#* @description Calculate summary statistics for a numeric vector
#* @param x numeric vector to analyze
#* @param na.rm logical whether to remove NA values (default: TRUE)
calculate_stats <- function(x, na.rm = TRUE) {
list(
mean = mean(x, na.rm = na.rm),
median = median(x, na.rm = na.rm),
sd = sd(x, na.rm = na.rm),
min = min(x, na.rm = na.rm),
max = max(x, na.rm = na.rm)
)
}
Load and run:
server <- mcp("Analysis Server", "1.0.0")
server$mcp_source("analysis-tools.R")
server$mcp_run(transport = "http", port = 8080)
Configure Claude Desktop
Add to Claude Desktop's configuration:
{
"mcpServers": {
"r-analysis": {
"url": "http://localhost:8080/mcp"
}
}
}
Advanced Usage
Register Existing Functions
server <- mcp_http("Stats Server", "1.0.0")
server$mcp_tool(
name = "t_test",
fn = t.test,
description = "Perform t-test"
)
server$mcp_tool(
name = "cor_test",
fn = cor.test,
description = "Correlation test"
)
Production Deployment
server <- mcp_http(
name = "Production Server",
version = "1.0.0",
host = "0.0.0.0", # Listen on all interfaces
port = 8080,
log_file = "mcp-server.log",
log_level = "info"
)
Docker Deployment
FROM rocker/r-ver:4.3.0
RUN install.packages(c("mcpr", "plumber", "jsonlite"))
COPY server.R /app/
WORKDIR /app
EXPOSE 8080
CMD ["Rscript", "server.R"]
Examples
Complete examples in inst/examples/:
basic-server.R- Simple server with basic toolsstats-server.R- Statistical analysis toolsdata-server.R- Data manipulation and visualization
License
MIT + file LICENSE
Related Servers
Scout Monitoring MCP
sponsorPut performance and error data directly in the hands of your AI assistant.
Alpha Vantage MCP Server
sponsorAccess financial market data: realtime & historical stock, ETF, options, forex, crypto, commodities, fundamentals, technical indicators, & more
MCPfinder
A Node.js server for AI agents to discover, install, and manage new capabilities on demand via the MCP protocol.
MCP Documentation Server
Integrates LLM applications with documentation sources using the Model Context Protocol.
SuzieQ
Interact with the SuzieQ network observability platform via its REST API.
Notifly MCP Server
Notifly MCP Server - enabling AI agents to provide real-time, trusted Notifly documentation and SDK code examples for seamless integrations.
APIWeaver
Dynamically creates MCP servers from web API configurations, integrating any REST API, GraphQL endpoint, or web service into MCP-compatible tools.
Prompts MCP Server
An MCP server for managing and serving prompts from markdown files with YAML frontmatter support.
Tinyman MCP
An MCP server for the Tinyman protocol on the Algorand blockchain, offering tools for swaps, liquidity provision, and pool management.
Mobile Next
A platform-agnostic server for scalable mobile automation and development across iOS, Android, simulators, and emulators.
Remote DCInside MCP Server (Authless)
An example of a remote MCP server without authentication, deployable on Cloudflare Workers.
DevRev MCP server
Search and retrieve information from DevRev using its APIs.