Wolfram Language Paclet Repository

Community-contributed installable additions to the Wolfram Language

Primary Navigation

    • Cloud & Deployment
    • Core Language & Structure
    • Data Manipulation & Analysis
    • Engineering Data & Computation
    • External Interfaces & Connections
    • Financial Data & Computation
    • Geographic Data & Computation
    • Geometry
    • Graphs & Networks
    • Higher Mathematical Computation
    • Images
    • Knowledge Representation & Natural Language
    • Machine Learning
    • Notebook Documents & Presentation
    • Scientific and Medical Data & Computation
    • Social, Cultural & Linguistic Data
    • Strings & Text
    • Symbolic & Numeric Computation
    • System Operation & Setup
    • Time-Related Computation
    • User Interface Construction
    • Visualization & Graphics
    • Random Paclet
    • Alphabetical List
  • Using Paclets
    • Get Started
    • Download Definition Notebook
  • Learn More about Wolfram Language

MCPClient

Guides

  • Thin MCP Client

Tech Notes

  • Client for a Python-made MCP server
  • Client for Docker MCP Toolkit

Symbols

  • MCPInitialize
  • MCPKill
  • MCPListTools
  • MCPStart
  • MCPToLLMTool
Client for Docker MCP Toolkit
Introduction
LLM invocations
MCP Setup and initialization
Stopping the MCP server process
Tools discovery and creation
​
Introduction
This notebook has a complete usage example of a thin Model Context Protocol (MCP) client of the Wolfram Language paclet
MCPClient
.
The MCP server run in Docker -- see
Docker MCP Toolkit
.
"MCPClient" provides a set of functions for using MCP server's methods by converting them to
LLMTool
objects. Those objects can be used with Wolfram Language's Large Language Model (LLM) framework. (
LLMSynthesize
,
LLMFunction
,
LLMConfiguration
.)
Install the paclet and load it
In[4]:=
PacletInstall["AntonAntonov/MCPClient"];​​Needs["AntonAntonov`MCPClient`"];
MCP Setup and initialization
Get a Docker profile file
In[6]:=
profileFile=FileNameJoin[{PacletFind["AntonAntonov/MCPClient"]〚1〛["Location"],"Resources","default_docker_profile.json"}];
Import the profile
In[10]:=
RunProcess[{"/usr/local/bin/docker","mcp","profile","import",profileFile}]
Out[10]=
ExitCode0,StandardOutputImported profile default-docker-profile,StandardError
Set the PATH variable (MacOSX in this example)
In[11]:=
SetEnvironment["PATH""/usr/local/bin:/usr/local/share/bin:/usr/local/sbin:"<>("PATH"/.GetEnvironment[])];​​"PATH"/.GetEnvironment[]
Out[12]=
/usr/local/bin:/usr/local/share/bin:/usr/local/sbin:/usr/local/bin:/usr/local/share/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin
Setup MCP server process creation command elements
In[13]:=
cmd={"/usr/local/bin/docker","mcp","gateway","run","--profile","default-docker-profile"};
Create the MCP client object
In[14]:=
client=
MCPStart
[cmd,ProcessEnvironmentGetEnvironment[]];​​
Function[
][
]
Out[15]=
Initialize the client
In[16]:=
r=
MCPInitialize
[client,"Pause"10];​​
Function[
][
]
Out[17]=
Remark: The JSON file of MCP servers profile ingested and loaded in this section is an export of the manually made (defatult) profile using Docker's dashboard.
MCP default profile in Docker's dashboard
In[1]:=
Tools discovery and creation
Get the MCP server tools list
In[18]:=
mcpTools=
MCPListTools
[client,"Pause"8];​​Length[mcpTools]
Out[19]=
75
Make a table of the tool records (only using names and descriptions)
In[20]:=
tblTools=mcpTools//​​Map[KeyTake[#,{"name","description"}]&,#]&//​​Tabular;​​Dimensions[tblTools]​​RandomSample[tblTools,5]//SortBy[#,#name&]&//​​ResourceFunction["GridTableForm"]
Out[21]=
{75,2}
Out[22]=
#
name
description
1
add_comment_to_pending_review
Add review comment to the requester's latest pending pull request review. A pending review needs to already exist to call this (check with the user if not sure).
2
add_issue_comment
Add a comment to a specific issue in a GitHub repository. Use this tool to add comments to pull requests as well (in this case pass pull request number as issue_number), but only if user is not asking specifically to add review comments.
3
add_reply_to_pull_request_comment
Add a reply to an existing pull request comment. This creates a new comment that is linked as a reply to the specified comment.
4
browser_console_messages
Returns all console messages
5
list_issue_types
List supported issue types for repository owner (organization).
Show tools of the official GitHub MCP server
In[23]:=
Select[tblTools,StringContainsQ[#description,"GitHub"]&]//​​ResourceFunction["GridTableForm"]
Out[23]=
#
name
description
1
add_issue_comment
Add a comment to a specific issue in a GitHub repository. Use this tool to add comments to pull requests as well (in this case pass pull request number as issue_number), but only if user is not asking specifically to add review comments.
2
assign_copilot_to_issue
Assign Copilot to a specific issue in a GitHub repository.​This tool can help with the following outcomes:- a Pull Request created with source code changes to resolve the issue​​More information can be found at:- https://docs.github.com/en/copilot/using-github-copilot/using-copilot-coding-agent-to-work-on-tasks/about-assigning-tasks-to-copilot
3
create_branch
Create a new branch in a GitHub repository
4
create_or_update_file
Create or update a single file in a GitHub repository. If updating, you should provide the SHA of the file you want to update. Use this tool to create or update a file in a GitHub repository remotely; do not use it for local file operations.​In order to obtain the SHA of original file version before updating, use the following git command:git rev-parse <branch>:<path to file>​SHA MUST be provided for existing file updates.
5
create_pull_request
Create a new pull request in a GitHub repository.
6
create_repository
Create a new GitHub repository in your account or specified organization
7
delete_file
Delete a file from a GitHub repository
8
fork_repository
Fork a GitHub repository to your account or specified organization
9
get_commit
Get details for a commit from a GitHub repository
10
get_file_contents
Get the contents of a file or directory from a GitHub repository
11
get_latest_release
Get the latest release in a GitHub repository
12
get_me
Get details of the authenticated GitHub user. Use this when a request is about the user's own profile for GitHub. Or when information is missing to build other tool calls.
13
get_release_by_tag
Get a specific release by its tag name in a GitHub repository
14
get_tag
Get details about a specific git tag in a GitHub repository
15
issue_read
Get information about a specific issue in a GitHub repository.
16
issue_write
Create a new or update an existing issue in a GitHub repository.
17
list_branches
List branches in a GitHub repository
18
list_commits
Get list of commits of a branch in a GitHub repository. Returns at least 30 results per page by default, but can return more if specified using the perPage parameter (up to 100).
19
list_issues
List issues in a GitHub repository. For pagination, use the 'endCursor' from the previous response's 'pageInfo' in the 'after' parameter.
20
list_pull_requests
List pull requests in a GitHub repository. If the user specifies an author, then DO NOT use this tool and use the search_pull_requests tool instead.
21
list_releases
List releases in a GitHub repository
22
list_tags
List git tags in a GitHub repository
23
merge_pull_request
Merge a pull request in a GitHub repository.
24
pull_request_read
Get information on a specific pull request in GitHub repository.
25
push_files
Push multiple files to a GitHub repository in a single commit
26
request_copilot_review
Request a GitHub Copilot code review for a pull request. Use this for automated feedback on pull requests, usually before requesting a human reviewer.
27
search_code
Fast and precise code search across ALL GitHub repositories using GitHub's native search engine. Best for finding exact symbols, functions, classes, or specific code patterns.
28
search_issues
Search for issues in GitHub repositories using issues search syntax already scoped to is:issue
29
search_pull_requests
Search for pull requests in GitHub repositories using issues search syntax already scoped to is:pr
30
search_repositories
Find GitHub repositories by name, description, readme, topics, or other metadata. Perfect for discovering projects, finding examples, or locating specific repositories across GitHub.
31
search_users
Find GitHub users by username, real name, or other profile information. Useful for locating developers, contributors, or team members.
32
sub_issue_write
Add a sub-issue to a parent issue in a GitHub repository.
33
update_pull_request
Update an existing pull request in a GitHub repository.
Make LLMTool objects
Make a configuration with the tools
LLM invocations
Find the unaccepted GitHub Pull Requests (PRs) -- using the tool "search_pull_requests"
Create an LLM function that is assumed to invoke the GitHub MCP server tool "list_branches"
Get branches data of a repository
Process the result and make a corresponding graph
Stopping the MCP server process
Kill the MCP client process
In[102]:=
MCPKill[client]

© 2026 Wolfram. All rights reserved.

  • Legal & Privacy Policy
  • Contact Us
  • WolframAlpha.com
  • WolframCloud.com