MCPR
Exponer funciones de R a través del Model Context Protocol (MCP) para una integración fluida con asistentes de IA.
GitHubPrueba este MCPPatrocinado
Documentación
mcpr
mcpr expone funciones de R a través del Protocolo de Contexto de Modelos (MCP), lo que permite una integración fluida con asistentes de IA como Claude Desktop.
Instalación
# install.packages("devtools")
devtools::install_github("chi2labs/mcpr")
Inicio Rápido
Servidor Básico
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()
Uso de Decoradores
Crea un archivo con funciones decoradas:
# 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)
)
}
Carga y ejecuta:
server <- mcp("Analysis Server", "1.0.0")
server$mcp_source("analysis-tools.R")
server$mcp_run(transport = "http", port = 8080)
Configurar Claude Desktop
Agrega a la configuración de Claude Desktop:
{
"mcpServers": {
"r-analysis": {
"url": "http://localhost:8080/mcp"
}
}
}
Uso Avanzado
Registrar Funciones Existentes
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"
)
Despliegue en Producción
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"
)
Despliegue con Docker
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"]
Ejemplos
Ejemplos completos en inst/examples/:
basic-server.R- Servidor simple con herramientas básicasstats-server.R- Herramientas de análisis estadísticodata-server.R- Manipulación de datos y visualización
Licencia
MIT + archivo LICENSE