@@ -153,101 +153,218 @@ Add to your Claude Desktop MCP configuration:
153153}
154154```
155155
156- ## 📚 Usage
156+ ## 📚 Usage Examples
157+
158+ ### Quick Start with Claude Desktop
159+
160+ Once RMCP is configured in Claude Desktop, you can immediately start asking for statistical analysis:
161+
162+ ** Business Analysis Example:**
163+ ```
164+ You: "I have sales data: month 1-12, sales [120, 135, 148, 165, 178, 185, 192, 210, 225, 240, 255, 270].
165+ Can you analyze the trend and predict next 3 months?"
166+
167+ Claude: "I'll analyze your sales trend using linear regression and forecasting."
168+ [Claude automatically calls linear_model and then arima_model]
169+
170+ Claude: "Analysis shows strong growth trend with 12.5 units/month increase (R²=0.99).
171+ Predicted sales for next 3 months: 285, 298, 311 units with 95% confidence intervals."
172+ ```
173+
174+ ** Scientific Research Example:**
175+ ```
176+ You: "I want to test if a new drug is effective. Control group: [2.1, 2.3, 2.0, 2.4, 2.2].
177+ Treatment group: [3.1, 3.4, 3.0, 3.3, 3.2]. Please run appropriate statistical test."
178+
179+ Claude: "I'll perform a two-sample t-test to compare the groups."
180+ [Claude calls t_test tool]
181+
182+ Claude: "Results: Treatment group mean (3.2) significantly higher than control (2.2),
183+ p-value = 0.0001, 95% CI: [0.8, 1.2]. Strong evidence of treatment effect."
184+ ```
157185
158186### Command Line Interface
159187
160188``` bash
161189# Start MCP server (stdio transport)
162190rmcp start
163191
164- # Check version
192+ # Check version and available tools
165193rmcp --version
166194
167- # Advanced server configuration
168- rmcp serve --log-level DEBUG --read-only
169-
170- # List available tools and capabilities
171- rmcp list-capabilities
195+ # Development server with debug logging
196+ rmcp start --log-level DEBUG
172197```
173198
174- ### Programmatic Usage
199+ ### Direct Tool Usage (Advanced)
200+
201+ For developers building MCP clients or testing tools directly:
175202
176203``` python
177- # RMCP is primarily designed as a CLI MCP server
178- # For programmatic R analysis, use the MCP protocol:
179-
180- import json
181- import subprocess
182-
183- # Send analysis request to RMCP server
184- request = {
185- " tool" : " linear_model" ,
186- " args" : {
187- " formula" : " y ~ x" ,
188- " data" : {" x" : [1 , 2 , 3 ], " y" : [2 , 4 , 6 ]}
189- }
190- }
204+ import asyncio
205+ from rmcp.core.server import create_server
206+ from rmcp.tools.regression import linear_model
207+
208+ # Create server and context
209+ server = create_server()
210+ context = server.create_context(" test-1" , " tools/call" )
191211
192- # Start server and send request via stdin
193- proc = subprocess.Popen([' rmcp' , ' start' ],
194- stdin = subprocess.PIPE ,
195- stdout = subprocess.PIPE ,
196- stderr = subprocess.PIPE ,
197- text = True )
198- result, _ = proc.communicate(json.dumps(request))
199- print (result)
212+ # Call tool directly
213+ result = await linear_model(context, {
214+ " data" : {
215+ " sales" : [100 , 120 , 140 , 160 , 180 ],
216+ " advertising" : [10 , 15 , 20 , 25 , 30 ]
217+ },
218+ " formula" : " sales ~ advertising"
219+ })
220+
221+ print (f " Advertising effectiveness: $ { result[' coefficients' ][' advertising' ]:.2f } per dollar " )
222+ print (f " Model explains { result[' r_squared' ]:.1% } of variance " )
200223```
201224
202- ### API Examples
225+ ### MCP Protocol Example
203226
204- #### Linear Regression
205- ``` python
227+ Testing with raw JSON-RPC messages:
228+
229+ ``` json
206230{
207- " tool" : " linear_model" ,
208- " args" : {
209- " formula" : " outcome ~ treatment + age + baseline" ,
210- " data" : {
211- " outcome" : [4.2 , 6.8 , 3.8 , 7.1 ],
212- " treatment" : [0 , 1 , 0 , 1 ],
213- " age" : [25 , 30 , 22 , 35 ],
214- " baseline" : [3.8 , 4.2 , 3.5 , 4.8 ]
231+ "jsonrpc" : " 2.0" ,
232+ "id" : 1 ,
233+ "method" : " tools/call" ,
234+ "params" : {
235+ "name" : " correlation_analysis" ,
236+ "arguments" : {
237+ "data" : {
238+ "sales" : [100 , 150 , 200 , 250 , 300 ],
239+ "marketing" : [10 , 20 , 30 , 40 , 50 ],
240+ "satisfaction" : [7.5 , 8.0 , 8.5 , 9.0 , 9.5 ]
241+ },
242+ "method" : " pearson"
243+ }
215244 }
216- }
217245}
218246```
219247
220- #### Correlation Analysis
221- ``` python
248+ ** Response: **
249+ ``` json
222250{
223- " tool" : " correlation_analysis" ,
224- " args" : {
225- " data" : {
226- " x" : [1 , 2 , 3 , 4 , 5 ],
227- " y" : [2 , 4 , 6 , 8 , 10 ]
228- },
229- " variables" : [" x" , " y" ],
230- " method" : " pearson"
231- }
251+ "jsonrpc" : " 2.0" ,
252+ "id" : 1 ,
253+ "result" : {
254+ "content" : [{
255+ "type" : " text" ,
256+ "text" : {
257+ "correlation_matrix" : {
258+ "sales" : {"marketing" : 1.0 , "satisfaction" : 0.996 },
259+ "marketing" : {"sales" : 1.0 , "satisfaction" : 0.996 },
260+ "satisfaction" : {"sales" : 0.996 , "marketing" : 0.996 }
261+ },
262+ "significance_tests" : {
263+ "sales_marketing" : 0.0 ,
264+ "sales_satisfaction" : 0.000056 ,
265+ "marketing_satisfaction" : 0.000056
266+ }
267+ }
268+ }]
269+ }
232270}
271+ ## 🔬 Advanced Usage Scenarios
272+
273+ ### Time Series Forecasting
274+
275+ **Business Scenario: Sales Forecasting**
233276```
277+ You: "I have monthly sales data for 2 years: [ 150, 162, 178, 195, 210, 225, 240, 255, 270, 285, 300, 315,
278+ 330, 345, 360, 375, 390, 405, 420, 435, 450, 465, 480, 495] . Can you forecast next 6 months?"
234279
235- #### Logistic Regression
236- ``` python
237- {
238- " tool" : " logistic_regression" ,
239- " args" : {
240- " formula" : " churn ~ tenure_months + monthly_charges" ,
241- " data" : {
242- " churn" : [0 , 1 , 0 , 1 ],
243- " tenure_months" : [24 , 6 , 36 , 3 ],
244- " monthly_charges" : [70 , 85 , 65 , 90 ]
245- },
246- " family" : " binomial" ,
247- " link" : " logit"
248- }
249- }
280+ Claude: "I'll analyze the time series and create forecasts using ARIMA modeling."
281+ [ Claude calls decompose_timeseries and arima_model]
282+
283+ Claude: "Strong upward trend detected. ARIMA(1,1,1) model selected.
284+ Forecasted sales: 510, 525, 540, 555, 570, 585 with confidence intervals."
285+ ```
286+
287+ ### Panel Data Analysis
288+
289+ **Economic Research: Income and Education**
290+ ```
291+ You: "I have panel data on income and education across countries and years.
292+ Can you analyze if education affects income while controlling for country differences?"
293+
294+ Claude: "I'll run a panel regression with fixed effects to control for country characteristics."
295+ [ Claude calls panel_regression]
296+
297+ Claude: "Results show each additional year of education increases income by $2,450 (p<0.001),
298+ controlling for unobserved country characteristics. R²=0.87 within countries."
299+ ```
300+
301+ ### Machine Learning Workflow
302+
303+ **Customer Segmentation Analysis**
304+ ```
305+ You: "Help me segment customers based on: age [ 25,35,45,30,40] ,
306+ spending [ 1200,2500,800,1800,3200] , frequency [ 12,25,8,15,30] .
307+ How many segments should I use?"
308+
309+ Claude: "I'll perform k-means clustering to identify customer segments."
310+ [ Claude calls kmeans_clustering with different k values]
311+
312+ Claude: "Optimal segmentation shows 3 distinct customer groups:
313+ - Young High-Value (age~ 30, spend~ $2650, freq~ 27)
314+ - Mature Moderate (age~ 40, spend~ $1500, freq~ 13)
315+ - Budget Conscious (age~ 45, spend~ $800, freq~ 8)"
316+ ```
317+
318+ ### Statistical Testing Workflow
319+
320+ **A/B Test Analysis**
250321```
322+ You: "I ran an A/B test. Control conversion: [ 0.12, 0.11, 0.13, 0.10, 0.14] .
323+ Treatment conversion: [ 0.18, 0.19, 0.17, 0.20, 0.16] . Is the difference significant?"
324+
325+ Claude: "I'll run appropriate tests to evaluate your A/B test results."
326+ [ Claude calls t_test and normality_test]
327+
328+ Claude: "Treatment significantly outperforms control:
329+ - Control: 12.0% conversion rate
330+ - Treatment: 18.0% conversion rate
331+ - Lift: +50% improvement (p=0.003, 95% CI: [ 2.8%, 9.2%] )
332+ - Power analysis: 89% power to detect this effect size"
333+ ```
334+
335+ ## 📋 Complete Tool Reference
336+
337+ ### Regression & Modeling
338+ | Tool | Purpose | Key Outputs |
339+ |------|---------|-------------|
340+ | `linear_model` | OLS regression | R², coefficients, p-values, diagnostics |
341+ | `logistic_regression` | Binary/categorical outcomes | Odds ratios, accuracy, ROC |
342+ | `panel_regression` | Longitudinal data | Fixed/random effects, within R² |
343+ | `instrumental_variables` | Causal inference | 2SLS estimates, endogeneity tests |
344+
345+ ### Time Series Analysis
346+ | Tool | Purpose | Key Outputs |
347+ |------|---------|-------------|
348+ | `arima_model` | Forecasting | Predictions, confidence intervals, AIC |
349+ | `decompose_timeseries` | Trend/seasonal analysis | Components, seasonality strength |
350+ | `stationarity_test` | Unit root testing | ADF, KPSS, PP test statistics |
351+ | `var_model` | Multivariate series | IRF, FEVD, Granger causality |
352+
353+ ### Statistical Testing
354+ | Tool | Purpose | Key Outputs |
355+ |------|---------|-------------|
356+ | `t_test` | Mean comparisons | t-statistic, p-value, confidence intervals |
357+ | `anova` | Group differences | F-statistic, effect sizes, post-hoc |
358+ | `chi_square_test` | Independence/goodness-of-fit | χ² statistic, Cramér's V |
359+ | `normality_test` | Distribution testing | Shapiro-Wilk, Jarque-Bera p-values |
360+
361+ ### Data Analysis
362+ | Tool | Purpose | Key Outputs |
363+ |------|---------|-------------|
364+ | `correlation_analysis` | Association strength | Correlation matrix, significance tests |
365+ | `summary_stats` | Descriptive statistics | Mean, median, SD, quartiles |
366+ | `outlier_detection` | Anomaly identification | Outlier indices, methods comparison |
367+ | `frequency_table` | Categorical analysis | Counts, percentages, sorted tables |
251368
252369## 🧪 Testing & Validation
253370
@@ -308,9 +425,43 @@ pytest tests/ # Unit tests (if any)
308425
309426MIT License - see [ LICENSE] ( LICENSE ) file for details.
310427
428+ ## 🛠️ Troubleshooting
429+
430+ ### Quick Fixes for Common Issues
431+
432+ ** R not found:**
433+ ``` bash
434+ # Check R installation
435+ R --version
436+
437+ # Install R if missing (macOS)
438+ brew install r
439+
440+ # Install R (Ubuntu)
441+ sudo apt-get install r-base
442+ ```
443+
444+ ** Missing R packages:**
445+ ``` r
446+ # In R console, install required packages
447+ install.packages(c(" jsonlite" , " plm" , " lmtest" , " sandwich" , " AER" ))
448+ ```
449+
450+ ** MCP connection issues:**
451+ ``` bash
452+ # Test server directly
453+ echo ' {"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | rmcp start
454+
455+ # Check Claude Desktop MCP configuration
456+ # Ensure rmcp is in PATH: which rmcp
457+ ```
458+
459+ ** For detailed troubleshooting:** See [ docs/troubleshooting.md] ( docs/troubleshooting.md )
460+
311461## 🙋 Support
312462
313463- 📖 ** Documentation** : See [ Quick Start Guide] ( examples/quick_start_guide.md ) for working examples
464+ - 🔧 ** Troubleshooting** : [ Comprehensive troubleshooting guide] ( docs/troubleshooting.md )
314465- 🐛 ** Issues** : [ GitHub Issues] ( https://github.com/gojiplus/rmcp/issues )
315466- 💬 ** Discussions** : [ GitHub Discussions] ( https://github.com/gojiplus/rmcp/discussions )
316467
0 commit comments