Skip to content

Commit c7984e2

Browse files
authored
Check if schemas can live in "public" dir (#1594)
1 parent e3f8291 commit c7984e2

File tree

2 files changed

+722
-0
lines changed

2 files changed

+722
-0
lines changed
Lines changed: 361 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,361 @@
1+
{
2+
"$defs": {
3+
"DeploymentConfig": {
4+
"description": "Configuration for server deployment and runtime settings.",
5+
"properties": {
6+
"transport": {
7+
"anyOf": [
8+
{
9+
"enum": [
10+
"stdio",
11+
"http",
12+
"sse"
13+
],
14+
"type": "string"
15+
},
16+
{
17+
"type": "null"
18+
}
19+
],
20+
"default": null,
21+
"description": "Transport protocol to use",
22+
"title": "Transport"
23+
},
24+
"host": {
25+
"anyOf": [
26+
{
27+
"type": "string"
28+
},
29+
{
30+
"type": "null"
31+
}
32+
],
33+
"default": null,
34+
"description": "Host to bind to when using HTTP transport",
35+
"examples": [
36+
"127.0.0.1",
37+
"0.0.0.0",
38+
"localhost"
39+
],
40+
"title": "Host"
41+
},
42+
"port": {
43+
"anyOf": [
44+
{
45+
"type": "integer"
46+
},
47+
{
48+
"type": "null"
49+
}
50+
],
51+
"default": null,
52+
"description": "Port to bind to when using HTTP transport",
53+
"examples": [
54+
8000,
55+
3000,
56+
5000
57+
],
58+
"title": "Port"
59+
},
60+
"path": {
61+
"anyOf": [
62+
{
63+
"type": "string"
64+
},
65+
{
66+
"type": "null"
67+
}
68+
],
69+
"default": null,
70+
"description": "URL path for the server endpoint",
71+
"examples": [
72+
"/mcp/",
73+
"/api/mcp/",
74+
"/sse/"
75+
],
76+
"title": "Path"
77+
},
78+
"log_level": {
79+
"anyOf": [
80+
{
81+
"enum": [
82+
"DEBUG",
83+
"INFO",
84+
"WARNING",
85+
"ERROR",
86+
"CRITICAL"
87+
],
88+
"type": "string"
89+
},
90+
{
91+
"type": "null"
92+
}
93+
],
94+
"default": null,
95+
"description": "Log level for the server",
96+
"title": "Log Level"
97+
},
98+
"cwd": {
99+
"anyOf": [
100+
{
101+
"type": "string"
102+
},
103+
{
104+
"type": "null"
105+
}
106+
],
107+
"default": null,
108+
"description": "Working directory for the server process",
109+
"examples": [
110+
".",
111+
"./src",
112+
"/app"
113+
],
114+
"title": "Cwd"
115+
},
116+
"env": {
117+
"anyOf": [
118+
{
119+
"additionalProperties": {
120+
"type": "string"
121+
},
122+
"type": "object"
123+
},
124+
{
125+
"type": "null"
126+
}
127+
],
128+
"default": null,
129+
"description": "Environment variables to set when running the server",
130+
"examples": [
131+
{
132+
"API_KEY": "secret",
133+
"DEBUG": "true"
134+
}
135+
],
136+
"title": "Env"
137+
},
138+
"args": {
139+
"anyOf": [
140+
{
141+
"items": {
142+
"type": "string"
143+
},
144+
"type": "array"
145+
},
146+
{
147+
"type": "null"
148+
}
149+
],
150+
"default": null,
151+
"description": "Arguments to pass to the server (after --)",
152+
"examples": [
153+
[
154+
"--config",
155+
"config.json",
156+
"--debug"
157+
]
158+
],
159+
"title": "Args"
160+
}
161+
},
162+
"title": "DeploymentConfig",
163+
"type": "object"
164+
},
165+
"EntrypointConfig": {
166+
"description": "Configuration for server entrypoint when using object format.",
167+
"properties": {
168+
"file": {
169+
"description": "Path to Python file containing the server",
170+
"examples": [
171+
"server.py",
172+
"src/server.py",
173+
"app/main.py"
174+
],
175+
"title": "File",
176+
"type": "string"
177+
},
178+
"object": {
179+
"anyOf": [
180+
{
181+
"type": "string"
182+
},
183+
{
184+
"type": "null"
185+
}
186+
],
187+
"default": null,
188+
"description": "Name of the server object in the file (defaults to searching for mcp/server/app)",
189+
"examples": [
190+
"app",
191+
"mcp",
192+
"server"
193+
],
194+
"title": "Object"
195+
},
196+
"repo": {
197+
"anyOf": [
198+
{
199+
"type": "string"
200+
},
201+
{
202+
"type": "null"
203+
}
204+
],
205+
"default": null,
206+
"description": "Git repository URL",
207+
"examples": [
208+
"https://github.com/user/repo"
209+
],
210+
"title": "Repo"
211+
}
212+
},
213+
"required": [
214+
"file"
215+
],
216+
"title": "EntrypointConfig",
217+
"type": "object"
218+
},
219+
"EnvironmentConfig": {
220+
"description": "Configuration for Python environment setup.",
221+
"properties": {
222+
"python": {
223+
"anyOf": [
224+
{
225+
"type": "string"
226+
},
227+
{
228+
"type": "null"
229+
}
230+
],
231+
"default": null,
232+
"description": "Python version constraint",
233+
"examples": [
234+
"3.10",
235+
"3.11",
236+
"3.12"
237+
],
238+
"title": "Python"
239+
},
240+
"dependencies": {
241+
"anyOf": [
242+
{
243+
"items": {
244+
"type": "string"
245+
},
246+
"type": "array"
247+
},
248+
{
249+
"type": "null"
250+
}
251+
],
252+
"default": null,
253+
"description": "Python packages to install with PEP 508 specifiers",
254+
"examples": [
255+
[
256+
"fastmcp>=2.0,<3",
257+
"httpx",
258+
"pandas>=2.0"
259+
]
260+
],
261+
"title": "Dependencies"
262+
},
263+
"requirements": {
264+
"anyOf": [
265+
{
266+
"type": "string"
267+
},
268+
{
269+
"type": "null"
270+
}
271+
],
272+
"default": null,
273+
"description": "Path to requirements.txt file",
274+
"examples": [
275+
"requirements.txt",
276+
"../requirements/prod.txt"
277+
],
278+
"title": "Requirements"
279+
},
280+
"project": {
281+
"anyOf": [
282+
{
283+
"type": "string"
284+
},
285+
{
286+
"type": "null"
287+
}
288+
],
289+
"default": null,
290+
"description": "Path to project directory containing pyproject.toml",
291+
"examples": [
292+
".",
293+
"../my-project"
294+
],
295+
"title": "Project"
296+
},
297+
"editable": {
298+
"anyOf": [
299+
{
300+
"type": "string"
301+
},
302+
{
303+
"type": "null"
304+
}
305+
],
306+
"default": null,
307+
"description": "Directory to install in editable mode",
308+
"examples": [
309+
".",
310+
"../my-package"
311+
],
312+
"title": "Editable"
313+
}
314+
},
315+
"title": "EnvironmentConfig",
316+
"type": "object"
317+
}
318+
},
319+
"description": "Configuration file for FastMCP servers",
320+
"properties": {
321+
"$schema": {
322+
"anyOf": [
323+
{
324+
"type": "string"
325+
},
326+
{
327+
"type": "null"
328+
}
329+
],
330+
"default": "https://gofastmcp.com/schemas/fastmcp_config/v1.json",
331+
"description": "JSON schema for IDE support and validation",
332+
"title": "$Schema"
333+
},
334+
"entrypoint": {
335+
"$ref": "#/$defs/EntrypointConfig",
336+
"description": "Server entrypoint as a string (file or file:object) or object with file/object/repo",
337+
"examples": [
338+
"server.py",
339+
"server.py:app",
340+
{
341+
"file": "src/server.py",
342+
"object": "app"
343+
}
344+
]
345+
},
346+
"environment": {
347+
"$ref": "#/$defs/EnvironmentConfig",
348+
"description": "Python environment setup configuration"
349+
},
350+
"deployment": {
351+
"$ref": "#/$defs/DeploymentConfig",
352+
"description": "Server deployment and runtime settings"
353+
}
354+
},
355+
"required": [
356+
"entrypoint"
357+
],
358+
"title": "FastMCP Configuration",
359+
"type": "object",
360+
"$id": "https://gofastmcp.com/schemas/fastmcp_config/v1.json"
361+
}

0 commit comments

Comments
 (0)