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-lite/skills/configure-mcp-server" ~/.claude/skills/pjt222-agent-almanac-configure-mcp-server && rm -rf "$T"
i18n/caveman-lite/skills/configure-mcp-server/SKILL.mdConfigure MCP Server
Set up MCP server connections for Claude Code (WSL) and Claude Desktop (Windows).
When to Use
- Setting up Claude Code to connect to R via mcptools
- Configuring Claude Desktop with MCP servers
- Adding Hugging Face or other remote MCP servers
- Troubleshooting 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
Procedure
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 and loads in R without errors. mcp-remote is available globally via which mcp-remote or npm list -g mcp-remote.
If fail: For
mcptools, ensure remotes is installed first. If GitHub rate-limits the install, set a GITHUB_PAT in ~/.Renviron. For mcp-remote, verify Node.js and npm are 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 were added). claude mcp get r-mcptools displays the correct command and arguments.
If fail: If the server does not appear in the list, verify
~/.claude.json contains the correct entry. If the claude command is not found, add it 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: The JSON config file at
%APPDATA%\Claude\claude_desktop_config.json is valid JSON with the correct server entries. Claude Desktop shows MCP server indicators after restart.
If fail: Validate the JSON with a linter (e.g.,
jq . < config.json). Use 8.3 short paths (PROGRA~1) if Windows path spaces cause parsing errors. Ensure Claude Desktop is fully restarted (not merely minimized).
Step 4: Configure R Session for MCP
Add to project
.Rprofile:
if (requireNamespace("mcptools", quietly = TRUE)) { mcptools::mcp_session() }
This starts the MCP session automatically when opening the project in RStudio.
Got: The
.Rprofile file conditionally starts mcptools::mcp_session() when the project is opened in RStudio, making MCP tools available automatically.
If fail: If
mcptools is not found at session start, verify it is installed in the library that RStudio uses (check .libPaths()). If using renv, ensure mcptools is in the 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 and use MCP tools — they should appear in the tool list.
Test Claude Desktop:
Restart Claude Desktop after configuration changes. Check for MCP server indicators in the UI.
Got: Running Rscript with
mcptools::mcp_server() produces output without errors. MCP tools appear in the Claude Code tool list during an active session. Claude Desktop shows server status after restart.
If fail: If the Rscript command fails, check the full path is correct (
ls "/mnt/c/Program Files/R/" to verify R version). If tools don't appear in Claude Code, restart the session. For 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 and accessible simultaneously.
claude mcp list shows all servers. Each server's tools are available in the same Claude Code session.
If fail: If servers conflict, check that each has a unique name in the configuration. If one server blocks others, verify servers use non-blocking I/O (stdio transport handles this automatically).
Validation
-
shows all configured serversclaude mcp list - R MCP server responds to tool calls
- Hugging Face MCP server authenticates and responds
- Both Claude Code and Claude Desktop can connect (if both configured)
- MCP tools appear in the 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: These are 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 is up to date. It requires the
package as a dependency.ellmer
Related Skills
- creating your own MCP serverbuild-custom-mcp-server
- debugging connection issuestroubleshoot-mcp-connection
- WSL setup prerequisitesetup-wsl-dev-environment