算法艺术创作
algorithmic-art
通过代码和可调参数创作生成艺术与交互式视觉效果。
configure-putior-mcp【设计与创意】Configure the putior MCP server to expose 16 workflow visualization tools to AI assistants. Covers Claude Code and Claude Desktop setup, dependency installation (mcptools, ellmer), tool verification, and optional ACP server configuration for agent-to-agent communication. Use when enabling AI assistants to annotate and visualize workflows interactivel…
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Set up putior MCP server → AI assistants (Claude Code, Claude Desktop) can directly call workflow annotation + diagram gen tools.
install-putior)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.
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/".
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.
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):
put — Scan files for PUT annotations (supports exclude param for regex-based file filtering)put_diagram — Generate Mermaid diagramsput_auto — Auto-detect workflow from code (supports exclude param)put_generate — Gen annotation suggestions (supports exclude param)put_merge — Merge manual + auto annotations (supports exclude param)Reference/Discovery (7):
get_comment_prefix — Get comment prefix for extensionget_supported_extensions — List supported extensionslist_supported_languages — List supported languagesget_detection_patterns — Get auto-detection patternsget_diagram_themes — List available themesputior_guide — AI assistant docsputior_help — Quick reference helpUtilities (3):
is_valid_put_annotation — Valid. annotation syntaxsplit_file_list — Parse file listsext_to_language — Extension to language nameConfiguration (1):
set_putior_log_level — Configure logging verbosityImportant: Custom palettes can't be used through MCP.
paletteparam onput_diagramacceptsputior_themeR object created byput_theme(). MCP comms via JSON → R objects likeputior_themecan't be serialized across MCP boundary. Callingput_diagramthrough MCP → use string-basedthemeparam (e.g.,theme = "viridis") instead. Custom palettes → callput_theme()+put_diagram(palette = ...)directly in R session.
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").
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.
putior::putior_mcp_tools() exposes core tools (put, put_diagram, put_auto, put_generate, put_merge) + returns ~16 tools for current verclaude mcp list shows putior configuredputior_help tool returns help text when invokedput, put_diagram, put_auto) execute w/o errscurl http://localhost:8080/agentsmcptools (from GitHub) + ellmer (from CRAN). Both must be installed. putior checks + provides helpful msgs if missing.\\). Use 8.3 short names to avoid spaces: C:\\PROGRA~1\\R\\R-45~1.0\\bin\\x64\\Rscript.exe.mcptools + ellmer installed in global library or configure renv activation in MCP server cmd.lsof -i :8080 or netstat -tlnp | grep 8080 before starting.putior_mcp_tools(include = c("put", "put_diagram")) when building custom MCP server wrappers.palette param on put_diagram requires putior_theme R object (created by put_theme()), can't be serialized through MCP's JSON interface. Use built-in theme param string for MCP calls. Custom palettes → use R directly.install-putior — prerequisite: putior + optional deps must be installedconfigure-mcp-server — general MCP server config for Claude Code/Desktoptroubleshoot-mcp-connection — diagnose connection issues if tools don't appearbuild-custom-mcp-server — build custom MCP servers wrapping putior toolsanalyze-codebase-workflow — use MCP tools interactively for codebase analysis