These functions implement R as an MCP client, so that ellmer chats can register functionality from third-party MCP servers such as those listed here: https://github.com/modelcontextprotocol/servers.
mcp_tools()
fetches tools from MCP servers configured in the mcptools
server config file and converts them to a list of
tools compatible with the $set_tools()
method of ellmer::Chat objects.
Value
mcp_tools()
returns a list of ellmer tools that can be passed directly to the$set_tools()
method of an ellmer::Chat object. If the file atconfig
doesn't exist, an error.
Configuration
mcptools uses the same .json configuration file format as Claude Desktop;
most MCP servers will define example .json to configure the server with
Claude Desktop in their README files. By default, mcptools will look to
file.path("~", ".config", "mcptools", "config.json")
; you can edit that
file with file.edit(file.path("~", ".config", "mcptools", "config.json"))
.
The mcptools config file should be valid .json with an entry mcpServers
.
That entry should contain named elements, each with at least a command
and args
entry.
For example, to configure mcp_tools()
with GitHub's official MCP Server
https://github.com/github/github-mcp-server, you could write the following
in that file:
See also
This function implements R as an MCP client. To use R as an MCP server,
i.e. to provide apps like Claude Desktop or Claude Code with access to
R-based tools, see mcp_server()
.