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
Servidores relacionados
Alpha Vantage MCP Server
patrocinadorAccess financial market data: realtime & historical stock, ETF, options, forex, crypto, commodities, fundamentals, technical indicators, & more
CodeGraph
Generates and queries a graph representation of a codebase.
Ghidra MCP Server
Exposes binary analysis data from Ghidra, including functions and pseudocode, to LLMs.
AST2LLM for Go
A local AST-powered context enhancement tool for LLMs that analyzes Go project structure for faster context resolution.
Elementor WordPress MCP Server
An MCP server for WordPress and Elementor, enabling AI assistants to manage content and build pages.
Kubernetes Interactive
Run and interpret Kubernetes commands interactively with a provided kubeconfig.
MCPCLIHost
A CLI host that allows Large Language Models (LLMs) to interact with external tools using the Model Context Protocol (MCP).
XcodeBuildMCP
A Model Context Protocol (MCP) server and CLI that provides tools for agent use when working on iOS and macOS projects.
Script Generator Server
A simple note storage system with tools for adding notes and generating scripts from them.
llm-context
Share code context with LLMs via Model Context Protocol or clipboard.
Unison MCP Server
An MCP server for the Unison language, allowing AI assistants to interact with the Unison Codebase Manager (UCM).