Agent-almanac configure-putior-mcp
git clone https://github.com/pjt222/agent-almanac
T=$(mktemp -d) && git clone --depth=1 https://github.com/pjt222/agent-almanac "$T" && mkdir -p ~/.claude/skills && cp -r "$T/i18n/caveman-ultra/skills/configure-putior-mcp" ~/.claude/skills/pjt222-agent-almanac-configure-putior-mcp-b302a3 && rm -rf "$T"
i18n/caveman-ultra/skills/configure-putior-mcp/SKILL.mdConfigure putior MCP Server
Set up putior MCP server → AI assistants (Claude Code, Claude Desktop) can directly call workflow annotation + diagram gen tools.
Use When
- Enable AI assistants to interactively annotate + visualize workflows
- Set up new dev env w/ putior MCP integration
- Post-install putior → want AI-assisted workflow docs
- Configure agent-to-agent comm via ACP for automated pipelines
In
- Required: putior installed (see
)install-putior - Required: Target client: Claude Code, Claude Desktop, or both
- Optional: Configure ACP server too (default: no)
- Optional: Custom host/port for ACP server (default: localhost:8080)
Do
Step 1: Install MCP Dependencies
Install req'd pkgs for MCP server functionality.
# Required: MCP framework remotes::install_github("posit-dev/mcptools") # Required: Tool definition framework install.packages("ellmer") # Verify both load library(mcptools) library(ellmer)
→ Both pkgs install + load w/o errs.
If err:
mcptools requires remotes pkg. Install first: install.packages("remotes"). GitHub rate-limits → configure GITHUB_PAT in ~/.Renviron (add line GITHUB_PAT=your_token_here + restart R). Do NOT paste tokens into shell cmds or commit to version control.
Step 2: Configure Claude Code (WSL/Linux/macOS)
Add putior MCP server to Claude Code's config.
# One-line setup claude mcp add putior -- Rscript -e "putior::putior_mcp_server()"
For WSL w/ Windows R:
claude mcp add putior -- "/mnt/c/Program Files/R/R-4.5.2/bin/Rscript.exe" -e "putior::putior_mcp_server()"
Verify config:
claude mcp list claude mcp get putior
→
putior appears in MCP server list w/ status "configured".
If err: Claude Code not in PATH → add:
export PATH="$HOME/.claude/local/node_modules/.bin:$PATH". Rscript path wrong → locate R w/ which Rscript or ls "/mnt/c/Program Files/R/".
Step 3: Configure Claude Desktop (Windows)
Add putior to Claude Desktop's MCP config file.
Edit
%APPDATA%\Claude\claude_desktop_config.json:
{ "mcpServers": { "putior": { "command": "C:\\PROGRA~1\\R\\R-45~1.0\\bin\\x64\\Rscript.exe", "args": ["-e", "putior::putior_mcp_server()"] } } }
Or w/ full path:
{ "mcpServers": { "putior": { "command": "C:\\Program Files\\R\\R-4.5.2\\bin\\x64\\Rscript.exe", "args": ["-e", "putior::putior_mcp_server()"] } } }
Restart Claude Desktop post-edit.
→ Claude Desktop shows putior in MCP server list. Tools become avail in conversation.
If err: Valid. JSON syntax w/ JSON linter. Check R path exists. Use 8.3 short names (
PROGRA~1, R-45~1.0) if spaces in paths cause issues.
Step 4: Verify All 16 Tools
Test all MCP tools accessible + functional.
# Get tool definitions tools <- putior::putior_mcp_tools() cat(sprintf("Total tools: %d\n", length(tools))) # List tool names vapply(tools, function(t) t$name, character(1))
16 tools organized by category:
Core Workflow (5):
— Scan files for PUT annotations (supportsput
param for regex-based file filtering)exclude
— Generate Mermaid diagramsput_diagram
— Auto-detect workflow from code (supportsput_auto
param)exclude
— Gen annotation suggestions (supportsput_generate
param)exclude
— Merge manual + auto annotations (supportsput_merge
param)exclude
Reference/Discovery (7):
— Get comment prefix for extensionget_comment_prefix
— List supported extensionsget_supported_extensions
— List supported languageslist_supported_languages
— Get auto-detection patternsget_detection_patterns
— List available themesget_diagram_themes
— AI assistant docsputior_guide
— Quick reference helpputior_help
Utilities (3):
— Valid. annotation syntaxis_valid_put_annotation
— Parse file listssplit_file_list
— Extension to language nameext_to_language
Configuration (1):
— Configure logging verbosityset_putior_log_level
Important: Custom palettes can't be used through MCP.
param onpaletteacceptsput_diagramR object created byputior_theme. MCP comms via JSON → R objects likeput_theme()can't be serialized across MCP boundary. Callingputior_themethrough MCP → use string-basedput_diagramparam (e.g.,theme) instead. Custom palettes → calltheme = "viridis"+put_theme()directly in R session.put_diagram(palette = ...)
Test core tools from Claude Code:
Use the putior_help tool to see available commands Use the put tool to scan ./R/ for annotations Use the put_diagram tool to generate a diagram
→ All 16 tools listed. Core tools return expected results when called w/ valid in.
If err: Tools missing → check putior ver current:
packageVersion("putior"). Older vers may have fewer tools. Update w/ remotes::install_github("pjt222/putior").
Step 5: Configure ACP Server (Optional)
Set up ACP (Agent Comm Protocol) server for agent-to-agent comm.
# Install ACP dependency install.packages("plumber2") # Start ACP server (blocks — run in a separate R session or background) putior::putior_acp_server() # Custom host/port putior::putior_acp_server(host = "0.0.0.0", port = 9000)
Test ACP endpoints:
# Discover agent curl http://localhost:8080/agents # Execute a scan curl -X POST http://localhost:8080/runs \ -H "Content-Type: application/json" \ -d '{"input": [{"role": "user", "parts": [{"content": "scan ./R/"}]}]}' # Generate diagram curl -X POST http://localhost:8080/runs \ -H "Content-Type: application/json" \ -d '{"input": [{"role": "user", "parts": [{"content": "generate diagram for ./R/"}]}]}'
→ ACP server starts on config'd port.
/agents returns putior agent manifest. /runs accepts natural language reqs + returns workflow results.
If err: Port 8080 in use → specify diff port.
plumber2 not installed → server fn will print helpful err msg suggesting install.
Check
-
exposes core tools (putior::putior_mcp_tools()
,put
,put_diagram
,put_auto
,put_generate
) + returns ~16 tools for current verput_merge - Claude Code:
showsclaude mcp list
configuredputior - Claude Code:
tool returns help text when invokedputior_help - Claude Desktop: putior appears in MCP server list post-restart
- Core tools (
,put
,put_diagram
) execute w/o errsput_auto - (Optional) ACP server responds to
curl http://localhost:8080/agents
Traps
- mcptools not installed: MCP server requires
(from GitHub) +mcptools
(from CRAN). Both must be installed. putior checks + provides helpful msgs if missing.ellmer - Wrong R path in Claude Desktop: Windows paths need escaping in JSON (
). Use 8.3 short names to avoid spaces:\\
.C:\\PROGRA~1\\R\\R-45~1.0\\bin\\x64\\Rscript.exe - Forget to restart: Claude Desktop must be restarted post-config edit. Claude Code picks up changes on next session start.
- renv isolation: putior installed in renv library but Claude Code/Desktop launches R w/o renv → pkgs not found. Ensure
+mcptools
installed in global library or configure renv activation in MCP server cmd.ellmer - Port conflicts for ACP: Default ACP port (8080) commonly used. Check w/
orlsof -i :8080
before starting.netstat -tlnp | grep 8080 - Include only specific tools: Expose subset of tools → use
when building custom MCP server wrappers.putior_mcp_tools(include = c("put", "put_diagram")) - Custom palettes via MCP:
param onpalette
requiresput_diagram
R object (created byputior_theme
), can't be serialized through MCP's JSON interface. Use built-input_theme()
param string for MCP calls. Custom palettes → use R directly.theme
→
— prerequisite: putior + optional deps must be installedinstall-putior
— general MCP server config for Claude Code/Desktopconfigure-mcp-server
— diagnose connection issues if tools don't appeartroubleshoot-mcp-connection
— build custom MCP servers wrapping putior toolsbuild-custom-mcp-server
— use MCP tools interactively for codebase analysisanalyze-codebase-workflow