Skip to content

Commit 5b37c11

Browse files
committed
init
1 parent f30adf1 commit 5b37c11

File tree

4 files changed

+272
-2
lines changed

4 files changed

+272
-2
lines changed

Makefile

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
target = cheatsheet
2+
3+
.PHONY: all clean
4+
5+
all: $(target)
6+
7+
$(target): $(target).tex
8+
pdflatex $(target).tex
9+
10+
clean:
11+
rm -f $(target).pdf $(target).aux $(target).log

README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
1-
# mcp-registry-cheatsheet
2-
MCP Registry Cheat Sheet
1+
# MCP Registry Cheat Sheet
2+
3+
MCP registry: https://github.com/modelcontextprotocol/registry

cheatsheet.pdf

219 KB
Binary file not shown.

cheatsheet.tex

Lines changed: 258 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,258 @@
1+
\documentclass[twocolumn]{article}
2+
\usepackage{geometry}
3+
\geometry{legalpaper, left=1cm, right=1cm, top=1cm, bottom=1cm, landscape}
4+
\setlength\columnseprule{1pt}
5+
\setlength\columnsep{2cm}
6+
\usepackage{tikz}
7+
\usetikzlibrary{calc}
8+
\usetikzlibrary{shapes.geometric}
9+
\usepackage[T1]{fontenc}
10+
\usepackage{lmodern}
11+
\usepackage{fontawesome5}
12+
\usepackage{listings}
13+
\lstset{basicstyle=\ttfamily, language=bash}
14+
\newcommand{\ICON}{\fontsize{28}{0}\selectfont}
15+
\usepackage{tabularray}
16+
\usepackage{threeparttable}
17+
\usepackage{hyperref}
18+
19+
% Figure position configuration
20+
\newcommand{\FigureCenterX}{7.5}
21+
\newcommand{\FigureCenterY}{-10.8}
22+
23+
\tikzset{
24+
every picture/.style={
25+
line width=1.5pt,
26+
},
27+
conn/.style = {
28+
shorten >=5pt,
29+
shorten <=5pt,
30+
->
31+
},
32+
connaux/.style = {
33+
shorten >=5pt,
34+
shorten <=5pt,
35+
dashed,
36+
->
37+
},
38+
}
39+
40+
\tikzset{
41+
pics/.cd,
42+
pic user/.style={code={
43+
\coordinate (head-center) at (0,0);
44+
\coordinate (top) at ([yshift=-2mm]head-center);
45+
\coordinate (left) at ([yshift=-10mm,xshift=-7mm]head-center);
46+
\coordinate (right) at ([yshift=-10mm,xshift=7mm]head-center);
47+
\draw [rounded corners=1.5mm]
48+
(top) to [out=-10,in=100]
49+
(right) to [bend left=15]
50+
(left) to [out=80,in=190]
51+
(top);
52+
\draw [fill=white,opacity=1] (head-center) circle (0.41);
53+
}},
54+
pic doc/.style={code={
55+
\node [draw, fill=white, minimum height=1.3cm, minimum width=1cm]
56+
(docpage) at (0,0) {};
57+
\draw [white, fill=white]
58+
($(docpage.north east)+(-3mm,0)$)
59+
--++ (3mm,0) --++ (0,-3mm) -- cycle;
60+
\fill [black]
61+
($(docpage.north east)+(0,-3mm)$)
62+
--++ (0,-1mm) --++ (-4mm,0) --++ (0,4mm) --++ (1mm,0) -- cycle;
63+
\node at (0, -0.15) {\LARGE \faServer};
64+
}},
65+
pic docs/.style={code={
66+
\pic at (0,0) {pic doc};
67+
\pic at (-0.5,-0.25) {pic doc};
68+
\pic at (-1,-0.5) {pic doc};
69+
}},
70+
pic randomdocs/.style={code={
71+
\pic at (0,0) {pic doc};
72+
\pic at (-0.5,-0.3) {pic doc};
73+
\pic at (0.4,-0.9) {pic doc};
74+
}},
75+
}
76+
77+
\begin{document}
78+
\pagestyle{empty}
79+
\sffamily
80+
81+
\begin{tikzpicture}[remember picture]
82+
% Title
83+
\node at (7.5,-0.8) {\Huge MCP Registry Cheat Sheet};
84+
\node at (7.5,-1.6) {\href{https://github.com/subbyte/mcp-registry-cheatsheet}{\faGithub \hspace{1mm} subbyte/mcp-registry-cheatsheet}};
85+
86+
% Registry
87+
\node (reg) [regular polygon,
88+
regular polygon sides = 6,
89+
inner sep = 1.3cm,
90+
shape border rotate=30,
91+
draw] at (\FigureCenterX, \FigureCenterY)
92+
{};
93+
\pic at ($ (reg) + (1,-0.3) $) {pic docs};
94+
\node at ($ (reg) + (0,1.1) $) {\Large Registry};
95+
96+
% Borders
97+
\draw [dotted] (reg) -- ++(0,8);
98+
\draw [dotted] (reg) -- ++(-7,-4);
99+
\draw [dotted] (reg) -- ++(7,-4);
100+
101+
% Server user
102+
\pic [local bounding box=serveruser]
103+
at ($ (reg) + (-5.5,5.5) $) {pic user};
104+
\node (serverusert) at ($ (serveruser) + (0,-1.1) $) {MCP Server User};
105+
\pic [local bounding box=userjson]
106+
at ($ (reg) + (-1.5,5.5) $) {pic doc};
107+
\pic [local bounding box=userjsons]
108+
at ($ (reg) + (-5.5,0.5) $) {pic randomdocs};
109+
\draw [conn] (serveruser) to[out=-10,in=115]
110+
node[midway, sloped, below] {Get} (reg);
111+
\draw [connaux] (reg) to[out=115,in=-90] (userjson);
112+
\draw [conn] (serverusert) to[out=-75,in=160]
113+
node[midway, sloped, above] {List/Search} (reg);
114+
\draw [connaux] (reg) to[out=160,in=30] (userjsons);
115+
116+
% Server developer
117+
\pic [local bounding box=serverdev]
118+
at ($ (reg) + (6.5,4) $) {pic user};
119+
\node (serverdevt) at ($ (serverdev) + (0,-1.1) $) {MCP Server Developer};
120+
\pic [local bounding box=serverjsondev]
121+
at ($ (reg) + (2.5,6.5) $) {pic doc};
122+
\node (devgithub)
123+
at ($ (reg) + (3.5,1.4) $) {\ICON \faGithub};
124+
\node (devdomain)
125+
at ($ (reg) + (5.8,-1.2) $) {\ICON \faGlobe};
126+
\draw [conn] (serverdev) to[out=70,in=50]
127+
node[midway, sloped, above] {Create} (serverjsondev);
128+
\draw [conn] (serverdev) to[out=110,in=10]
129+
node[midway, sloped, below] {Edit} (serverjsondev);
130+
\draw [connaux] (serverjsondev) to[out=-90,in=70] (reg);
131+
\draw [conn] (serverdev) to[out=170,in=70]
132+
node[midway, sloped, below] {Publish} (reg);
133+
\draw [conn] (serverdevt) to[out=-80,in=-10]
134+
node[midway, sloped, above] {Login} (reg);
135+
\draw [connaux] (devgithub) to[out=-90,in=-10] (reg);
136+
\draw [connaux] (serverdevt) to[out=-80,in=60]
137+
node[midway, sloped, below] {Public Key} (devdomain);
138+
\draw [connaux] (devdomain) to[out=190,in=-10] (reg);
139+
140+
% Registry admin
141+
\pic [local bounding box=regadmin]
142+
at ($ (reg) + (0,-6) $) {pic user};
143+
\node (regadmint) at ($ (regadmin) + (0,-1.1) $) {MCP Registry Admin};
144+
\node (admintoken)
145+
at ($ (reg) + (-1,-6.5) $) {\ICON \faTicket*};
146+
\pic [local bounding box=adminjson]
147+
at ($ (reg) + (3.8,-4) $) {pic doc};
148+
\draw [conn] (regadmin) to[out=150,in=-130]
149+
node[midway, sloped, above] {Auth} (reg);
150+
\draw [conn] (regadmin) to[out=115,in=-110]
151+
node[midway, sloped, above] {Setup} (reg);
152+
\draw [connaux] (reg) to[out=-130,in=160] (admintoken);
153+
\draw [conn] (regadmin) to[out=60,in=-70]
154+
node[midway, sloped, above] {Takedown} (reg);
155+
\draw [conn] (regadmin) to[out=30,in=-50]
156+
node[midway, sloped, above] {Update} (reg);
157+
\draw [connaux] (adminjson) to[out=160,in=-50] (reg);
158+
159+
% Not using overlay mode; no automatic bounding box drawing
160+
% This enanbles pic naming/reference
161+
\pgfresetboundingbox
162+
\end{tikzpicture}
163+
164+
\pagebreak
165+
166+
\begin{threeparttable}
167+
\vspace{3mm}
168+
\hspace{-3mm}
169+
\begin{tblr}{
170+
width=\linewidth,
171+
colspec={l l},
172+
}
173+
GitHub Repository & \href{https://github.com/modelcontextprotocol/registry}{https://github.com/modelcontextprotocol/registry} \\
174+
RESTful API Spec & \href{https://registry.modelcontextprotocol.io/docs}{https://registry.modelcontextprotocol.io/docs} \\
175+
\end{tblr}
176+
\end{threeparttable}
177+
178+
\section*{MCP Server User}
179+
180+
\begin{threeparttable}
181+
\begin{tblr}{
182+
width=\linewidth,
183+
hline{1,Z} = {1pt},
184+
hline{2} = {dashed},
185+
row{1} = {font=\bfseries},
186+
colspec={l l l l X[,l]},
187+
}
188+
Action & API & Endpoint & Arguments\tnote{1} & Description \\
189+
List/Search & GET & \texttt{/v0/servers} & search/limit/cursor & Searching for servers with pagination \\
190+
Get & GET & \texttt{/v0/servers/\{id\}} & server UUID & Retrieving spec for specified server \\
191+
\end{tblr}
192+
\begin{tablenotes}
193+
\item[1] Full argument list detailed in API specification
194+
\end{tablenotes}
195+
\end{threeparttable}
196+
197+
\section*{MCP Server Developer}
198+
199+
\begin{threeparttable}
200+
\begin{tblr}{
201+
width=\linewidth,
202+
hline{1,Z} = {1pt},
203+
hline{2} = {dashed},
204+
row{1} = {font=\bfseries},
205+
colspec={l l l X[,l]},
206+
}
207+
Action & API & Command\tnote{1} & Description \\
208+
Create & & \lstinline{mcp-publisher init} & Creating \lstinline{server.json}\tnote{2} file from template \\
209+
Login & POST & \lstinline{mcp-publisher login <method>} & Login through select authentication method\tnote{3} \\
210+
Publish & POST & \lstinline{mcp-publisher publish} & Publishing \lstinline{server.json} file to registry \\
211+
\end{tblr}
212+
\begin{tablenotes}
213+
\item[1] Installation: \lstinline{brew install mcp-publisher}
214+
\item[2] \lstinline{server.json} specification: \href{https://github.com/modelcontextprotocol/registry/blob/main/docs/reference/server-json/generic-server-json.md}{\{registry\_repo\}/docs/reference/server-json/generic-server-json.md}
215+
\item[3] JWT token of login session stored at \lstinline{$HOME/.mcp_publisher_token}
216+
\end{tablenotes}
217+
\end{threeparttable}
218+
219+
\vspace{3mm}
220+
\begin{threeparttable}
221+
\begin{tblr}{
222+
width=\linewidth,
223+
hline{1,Z} = {1pt},
224+
hline{2} = {dashed},
225+
row{1} = {font=\bfseries},
226+
colspec={l l l X[,l]},
227+
}
228+
Login Method & \SetCell[c=2]{l} Publishable MCP Server Namespaces & & Description \\
229+
github & \lstinline{io.github.<owner>/*} & \lstinline{io.github.<org>/*} & Repos at owner and owner's orgs \\
230+
github-oidc & \lstinline{io.github.<entity>/*} & & For GitHub Actions use \\
231+
dns & \lstinline{com.<company>/*} & \lstinline{com.<company>.*} & Domain and subdomains \\
232+
http & \lstinline{com.<company>/*} & & Domain (no subdomain) \\
233+
\end{tblr}
234+
\end{threeparttable}
235+
236+
\section*{MCP Registry Admin}
237+
238+
\begin{threeparttable}
239+
\begin{tblr}{
240+
width=\linewidth,
241+
hline{1,Z} = {1pt},
242+
hline{2} = {dashed},
243+
row{1} = {font=\bfseries},
244+
colspec={l l l X[,l]},
245+
}
246+
Action & API & Script\tnote{1} & Description \\
247+
Setup & & & Setup local/docker/k8s development or deployment\tnote{2} subregistry \\
248+
Auth & POST & \lstinline{auth.sh} & Exchanging OIDC token for registry admin JWT token \\
249+
Update & PUT & & Overwriting specified server specification in the registry \\
250+
Takedown & PUT & \lstinline{takedown.sh} & An update action assigning: \lstinline{server.status = "deleted"} \\
251+
\end{tblr}
252+
\begin{tablenotes}
253+
\item[1] \href{https://github.com/modelcontextprotocol/registry/tree/main/tools/admin}{\{registry\_repo\}/tools/admin/}
254+
\item[2] \href{https://github.com/modelcontextprotocol/registry/tree/main/deploy}{\{registry\_repo\}/deploy/}
255+
\end{tablenotes}
256+
\end{threeparttable}
257+
258+
\end{document}

0 commit comments

Comments
 (0)