Agent-almanac configure-mcp-server
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/skills/configure-mcp-server" ~/.claude/skills/pjt222-agent-almanac-configure-mcp-server-df92c8 && rm -rf "$T"
i18n/caveman/skills/configure-mcp-server/SKILL.mdConfigure MCP Server
Set up MCP server connections for Claude Code (WSL) and Claude Desktop (Windows).
When Use
- Set up Claude Code to connect to R via mcptools
- Configure Claude Desktop with MCP servers
- Add Hugging Face or other remote MCP servers
- Troubleshoot MCP connectivity between tools
Inputs
- Required: MCP server type (mcptools, Hugging Face, custom)
- Required: Client (Claude Code, Claude Desktop, or both)
- Optional: Authentication tokens
- Optional: Custom server implementation
Steps
Step 1: Install MCP Server Packages
For R (mcptools):
install.packages("remotes") remotes::install_github("posit-dev/mcptools")
For Hugging Face:
npm install -g mcp-remote
Got:
mcptools installs from GitHub, loads in R without errors. mcp-remote available globally via which mcp-remote or npm list -g mcp-remote.
If fail: For
mcptools, ensure remotes installed first. GitHub rate-limits install? Set GITHUB_PAT in ~/.Renviron. For mcp-remote, verify Node.js, npm installed and on PATH.
Step 2: Configure Claude Code (WSL)
R mcptools server:
claude mcp add r-mcptools stdio \ "/mnt/c/Program Files/R/R-4.5.0/bin/Rscript.exe" \ -- -e "mcptools::mcp_server()"
Hugging Face server:
claude mcp add hf-mcp-server \ -e HF_TOKEN=your_token_here \ -- mcp-remote https://huggingface.co/mcp
Verify configuration:
claude mcp list claude mcp get r-mcptools
Got:
claude mcp list shows both r-mcptools and hf-mcp-server (or whichever servers added). claude mcp get r-mcptools displays correct command, arguments.
If fail: Server not appearing in list? Verify
~/.claude.json contains correct entry. claude command not found? Add to PATH: export PATH="$HOME/.claude/local/node_modules/.bin:$PATH".
Step 3: Configure Claude Desktop (Windows)
Edit
%APPDATA%\Claude\claude_desktop_config.json:
{ "mcpServers": { "r-mcptools": { "command": "C:\\PROGRA~1\\R\\R-45~1.0\\bin\\x64\\Rscript.exe", "args": ["-e", "mcptools::mcp_server()"] }, "hf-mcp-server": { "command": "mcp-remote", "args": ["https://huggingface.co/mcp"], "env": { "HF_TOKEN": "your_token_here" } } } }
Important: Use 8.3 short paths for Windows directories with spaces (
PROGRA~1 not Program Files). Use environment variables for tokens, not --header arguments.
Got: JSON config file at
%APPDATA%\Claude\claude_desktop_config.json is valid JSON with correct server entries. Claude Desktop shows MCP server indicators after restart.
If fail: Validate JSON with linter (e.g.,
jq . < config.json). Use 8.3 short paths (PROGRA~1) if Windows path spaces cause parsing errors. Ensure Claude Desktop fully restarted (not minimized).
Step 4: Configure R Session for MCP
Add to project
.Rprofile:
if (requireNamespace("mcptools", quietly = TRUE)) { mcptools::mcp_session() }
Starts MCP session automatically when opening project in RStudio.
Got:
.Rprofile conditionally starts mcptools::mcp_session() when project opened in RStudio. MCP tools available automatically.
If fail:
mcptools not found at session start? Verify installed in library RStudio uses (check .libPaths()). Using renv? Ensure mcptools in renv library.
Step 5: Verify Connections
Test R MCP from WSL:
"/mnt/c/Program Files/R/R-4.5.0/bin/Rscript.exe" -e "mcptools::mcp_server()"
Test from within Claude Code:
Start Claude Code, use MCP tools — should appear in tool list.
Test Claude Desktop:
Restart Claude Desktop after configuration changes. Check for MCP server indicators in UI.
Got: Running Rscript with
mcptools::mcp_server() produces output without errors. MCP tools appear in Claude Code tool list during active session. Claude Desktop shows server status after restart.
If fail: Rscript command fails? Check full path correct (
ls "/mnt/c/Program Files/R/" to verify R version). Tools don't appear in Claude Code? Restart session. Claude Desktop? Check firewall settings.
Step 6: Multi-Server Configuration
Both Claude Code and Claude Desktop support multiple MCP servers simultaneously:
# Claude Code: add multiple servers claude mcp add r-mcptools stdio "/path/to/Rscript.exe" -- -e "mcptools::mcp_server()" claude mcp add hf-mcp-server -e HF_TOKEN=token -- mcp-remote https://huggingface.co/mcp claude mcp add custom-server stdio "/path/to/server" -- --port 3001
Got: Multiple MCP servers configured, accessible simultaneously.
claude mcp list shows all servers. Each server's tools available in same Claude Code session.
If fail: Servers conflict? Check each has unique name in configuration. One server blocks others? Verify servers use non-blocking I/O (stdio transport handles this automatically).
Checks
-
shows all configured serversclaude mcp list - R MCP server responds to tool calls
- Hugging Face MCP server authenticates, responds
- Both Claude Code and Claude Desktop can connect (if both configured)
- MCP tools appear in tool list during sessions
Pitfalls
- Windows path spaces: Use 8.3 short names or quote paths correctly. Different tools parse paths differently.
- Token in command args: On Windows,
fails due to parsing. Use environment variables instead.--header "Authorization: Bearer token" - Confusing Claude Code and Claude Desktop configs: Separate tools with separate config files (
vs~/.claude.json
)%APPDATA%\Claude\ - npx vs global install:
may fail in Claude Desktop context. Install globally withnpx mcp-remote
.npm install -g mcp-remote - mcptools version: Ensure mcptools up to date. Requires
package as dependency.ellmer
See Also
- creating own MCP serverbuild-custom-mcp-server
- debugging connection issuestroubleshoot-mcp-connection
- WSL setup prerequisitesetup-wsl-dev-environment