Wolfram Language
Paclet Repository
Community-contributed installable additions to the Wolfram Language
Primary Navigation
Categories
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
Create a Paclet
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
I
n
t
r
o
d
u
c
t
i
o
n
L
L
M
i
n
v
o
c
a
t
i
o
n
s
M
C
P
S
e
t
u
p
a
n
d
i
n
i
t
i
a
l
i
z
a
t
i
o
n
S
t
o
p
p
i
n
g
t
h
e
M
C
P
s
e
r
v
e
r
p
r
o
c
e
s
s
T
o
o
l
s
d
i
s
c
o
v
e
r
y
a
n
d
c
r
e
a
t
i
o
n
Introduction
This notebook has a complete usage example of a
thin
Model Context Protocol (MCP) client of the Raku paclet "MCPClient".
The MCP server run in Docker -- see
D
o
c
k
e
r
M
C
P
T
o
o
l
k
i
t
.
"MCPClient" provides a set of functions for using MCP server's methods by converting them to
L
L
M
T
o
o
l
objects. Those objects can be used with Wolfram Language's Large Language Model (LLM) framework. (
L
L
M
S
y
n
t
h
e
s
i
z
e
,
L
L
M
F
u
n
c
t
i
o
n
,
L
L
M
C
o
n
f
i
g
u
r
a
t
i
o
n
.)
MCP default profile in Docker's dashboard
I
n
[
1
]
:
=
Install the paclet and load it
I
n
[
5
]
:
=
P
a
c
l
e
t
I
n
s
t
a
l
l
[
"
A
n
t
o
n
A
n
t
o
n
o
v
/
M
C
P
C
l
i
e
n
t
"
]
;
N
e
e
d
s
[
"
A
n
t
o
n
A
n
t
o
n
o
v
`
M
C
P
C
l
i
e
n
t
`
"
]
;
MCP Setup and initialization
Get a Docker profile file
I
n
[
7
]
:
=
p
r
o
f
i
l
e
F
i
l
e
=
F
i
l
e
N
a
m
e
J
o
i
n
[
{
P
a
c
l
e
t
F
i
n
d
[
"
A
n
t
o
n
A
n
t
o
n
o
v
/
M
C
P
C
l
i
e
n
t
"
]
〚
1
〛
[
"
L
o
c
a
t
i
o
n
"
]
,
"
R
e
s
o
u
r
c
e
s
"
,
"
d
e
f
a
u
l
t
_
d
o
c
k
e
r
_
p
r
o
f
i
l
e
.
j
s
o
n
"
}
]
;
Import the profile
I
n
[
8
]
:
=
R
u
n
P
r
o
c
e
s
s
[
{
"
/
u
s
r
/
l
o
c
a
l
/
b
i
n
/
d
o
c
k
e
r
"
,
"
m
c
p
"
,
"
p
r
o
f
i
l
e
"
,
"
i
m
p
o
r
t
"
,
p
r
o
f
i
l
e
F
i
l
e
}
]
O
u
t
[
8
]
=
E
x
i
t
C
o
d
e
0
,
S
t
a
n
d
a
r
d
O
u
t
p
u
t
I
m
p
o
r
t
e
d
p
r
o
f
i
l
e
d
e
f
a
u
l
t
-
d
o
c
k
e
r
-
p
r
o
f
i
l
e
,
S
t
a
n
d
a
r
d
E
r
r
o
r
Set the PATH variable (MacOSX in this example)
I
n
[
1
0
]
:
=
S
e
t
E
n
v
i
r
o
n
m
e
n
t
[
"
P
A
T
H
"
"
/
u
s
r
/
l
o
c
a
l
/
b
i
n
:
/
u
s
r
/
l
o
c
a
l
/
s
h
a
r
e
/
b
i
n
:
/
u
s
r
/
l
o
c
a
l
/
s
b
i
n
:
"
<
>
(
"
P
A
T
H
"
/
.
G
e
t
E
n
v
i
r
o
n
m
e
n
t
[
]
)
]
;
"
P
A
T
H
"
/
.
G
e
t
E
n
v
i
r
o
n
m
e
n
t
[
]
O
u
t
[
1
1
]
=
/
u
s
r
/
l
o
c
a
l
/
b
i
n
:
/
u
s
r
/
l
o
c
a
l
/
s
h
a
r
e
/
b
i
n
:
/
u
s
r
/
l
o
c
a
l
/
s
b
i
n
:
/
u
s
r
/
b
i
n
:
/
b
i
n
:
/
u
s
r
/
s
b
i
n
:
/
s
b
i
n
Setup MCP server process creation command elements
I
n
[
9
]
:
=
c
m
d
=
{
"
/
u
s
r
/
l
o
c
a
l
/
b
i
n
/
d
o
c
k
e
r
"
,
"
m
c
p
"
,
"
g
a
t
e
w
a
y
"
,
"
r
u
n
"
,
"
-
-
p
r
o
f
i
l
e
"
,
"
d
e
f
a
u
l
t
-
d
o
c
k
e
r
-
p
r
o
f
i
l
e
"
}
;
Create the MCP client object
I
n
[
1
2
]
:
=
c
l
i
e
n
t
=
M
C
P
S
t
a
r
t
[
c
m
d
,
P
r
o
c
e
s
s
E
n
v
i
r
o
n
m
e
n
t
G
e
t
E
n
v
i
r
o
n
m
e
n
t
[
]
]
;
F
u
n
c
t
i
o
n
[
]
[
]
O
u
t
[
1
3
]
=
Initialize the client
I
n
[
1
4
]
:
=
r
=
M
C
P
I
n
i
t
i
a
l
i
z
e
[
c
l
i
e
n
t
,
"
P
a
u
s
e
"
1
0
]
;
F
u
n
c
t
i
o
n
[
]
[
]
O
u
t
[
1
5
]
=
Tools discovery and creation
Get the MCP server tools list
I
n
[
2
3
]
:
=
m
c
p
T
o
o
l
s
=
M
C
P
L
i
s
t
T
o
o
l
s
[
c
l
i
e
n
t
,
"
P
a
u
s
e
"
8
]
;
L
e
n
g
t
h
[
m
c
p
T
o
o
l
s
]
O
u
t
[
2
4
]
=
7
5
Make a table of the tool records (only using names and descriptions)
I
n
[
4
0
]
:
=
t
b
l
T
o
o
l
s
=
m
c
p
T
o
o
l
s
/
/
M
a
p
[
K
e
y
T
a
k
e
[
#
,
{
"
n
a
m
e
"
,
"
d
e
s
c
r
i
p
t
i
o
n
"
}
]
&
,
#
]
&
/
/
T
a
b
u
l
a
r
;
D
i
m
e
n
s
i
o
n
s
[
t
b
l
T
o
o
l
s
]
R
a
n
d
o
m
S
a
m
p
l
e
[
t
b
l
T
o
o
l
s
,
5
]
/
/
S
o
r
t
B
y
[
#
,
#
n
a
m
e
&
]
&
O
u
t
[
4
1
]
=
{
7
5
,
2
}
O
u
t
[
4
2
]
=
T
a
b
u
l
a
r
R
o
w
c
o
u
n
t
:
5
C
o
l
u
m
n
c
o
u
n
t
:
2
Show tools for official GitHub MCP server
I
n
[
4
3
]
:
=
S
e
l
e
c
t
[
t
b
l
T
o
o
l
s
,
S
t
r
i
n
g
C
o
n
t
a
i
n
s
Q
[
#
d
e
s
c
r
i
p
t
i
o
n
,
"
G
i
t
H
u
b
"
]
&
]
O
u
t
[
4
3
]
=
T
a
b
u
l
a
r
R
o
w
c
o
u
n
t
:
3
3
C
o
l
u
m
n
c
o
u
n
t
:
2
Make
LLMTool
objects
I
n
[
4
4
]
:
=
t
o
o
l
s
=
M
C
P
T
o
L
L
M
T
o
o
l
[
c
l
i
e
n
t
,
m
c
p
T
o
o
l
s
]
;
S
h
o
r
t
@
t
o
o
l
s
O
u
t
[
4
5
]
/
/
S
h
o
r
t
=
Make a configuration with the tools
I
n
[
4
6
]
:
=
c
o
n
f
=
L
L
M
C
o
n
f
i
g
u
r
a
t
i
o
n
[
"
M
o
d
e
l
"
{
"
O
p
e
n
A
I
"
,
"
g
p
t
-
5
.
3
-
c
h
a
t
-
l
a
t
e
s
t
"
}
,
"
M
a
x
T
o
k
e
n
s
"
8
1
9
2
,
"
T
o
o
l
s
"
t
o
o
l
s
]
;
I
n
[
5
7
]
:
=
c
o
n
f
=
L
L
M
C
o
n
f
i
g
u
r
a
t
i
o
n
[
"
M
o
d
e
l
"
{
"
O
p
e
n
A
I
"
,
"
g
p
t
-
5
.
4
-
m
i
n
i
"
}
,
"
M
a
x
T
o
k
e
n
s
"
8
1
9
2
,
"
T
o
o
l
s
"
t
o
o
l
s
]
;
LLM invocations
Find the unaccepted GitHub Pull Requests (PRs) -- using the tool "list_pull_requests"
I
n
[
4
7
]
:
=
L
L
M
S
y
n
t
h
e
s
i
z
e
[
"
W
h
i
c
h
o
f
m
y
-
-
a
n
t
o
n
o
n
c
u
b
e
-
-
G
i
t
H
u
b
p
u
l
l
r
e
q
u
e
s
t
s
a
r
e
p
e
n
d
i
n
g
?
"
,
L
L
M
E
v
a
l
u
a
t
o
r
c
o
n
f
]
O
u
t
[
4
7
]
=
Y
o
u
c
u
r
r
e
n
t
l
y
h
a
v
e
*
*
1
o
p
e
n
(
p
e
n
d
i
n
g
)
p
u
l
l
r
e
q
u
e
s
t
*
*
o
n
G
i
t
H
u
b
:
-
R
e
p
o
:
o
l
l
a
m
a
/
o
l
l
a
m
a
P
R
#
1
3
7
7
8
—
“
R
e
q
u
e
s
t
t
o
a
d
d
c
o
m
m
u
n
i
t
y
i
n
t
e
g
r
a
t
i
o
n
:
R
a
k
u
'
s
‘
W
W
W
:
:
O
l
l
a
m
a
’
”
C
r
e
a
t
e
d
:
2
0
2
6
-
0
1
-
1
9
L
i
n
k
:
h
t
t
p
s
:
/
/
g
i
t
h
u
b
.
c
o
m
/
o
l
l
a
m
a
/
o
l
l
a
m
a
/
p
u
l
l
/
1
3
7
7
8
T
h
a
t
’
s
t
h
e
o
n
l
y
o
p
e
n
P
R
u
n
d
e
r
y
o
u
r
u
s
e
r
n
a
m
e
r
i
g
h
t
n
o
w
.
I
f
y
o
u
e
x
p
e
c
t
e
d
m
o
r
e
,
t
h
e
y
’
r
e
l
i
k
e
l
y
a
l
r
e
a
d
y
m
e
r
g
e
d
,
c
l
o
s
e
d
,
o
r
o
p
e
n
e
d
u
n
d
e
r
a
d
i
f
f
e
r
e
n
t
a
c
c
o
u
n
t
/
o
r
g
.
Create an LLM function that is assumed to invoke the GitHub MCP server tool "list_branches"
I
n
[
1
0
1
]
:
=
f
G
H
B
=
L
L
M
F
u
n
c
t
i
o
n
[
{
"
G
i
v
e
t
h
e
b
r
a
n
c
h
e
s
o
f
t
h
e
R
e
p
o
:
`
1
`
.
"
,
"
S
e
p
a
r
a
t
e
f
e
a
t
u
r
e
f
r
o
m
b
u
g
f
i
x
b
r
a
n
c
h
e
s
.
"
,
L
L
M
P
r
o
m
p
t
[
"
N
o
t
h
i
n
g
E
l
s
e
"
]
[
"
J
S
O
N
"
]
}
,
"
J
S
O
N
"
,
L
L
M
E
v
a
l
u
a
t
o
r
c
o
n
f
]
;
Get branches data of a repository
Process the result and make a corresponding graph
Stopping the MCP server process
Kill the MCP client process
I
n
[
1
0
2
]
:
=
MCPKill[client]