Add UV as a new server type for Python extensions that use UV runtime
for dependency management instead of bundling dependencies.
Schema changes (v0.4):
- Add "uv" to server.type enum
- Make mcp_config optional (not needed for UV type)
- UV extensions rely on pyproject.toml for dependencies
Documentation:
- Add UV runtime section to MANIFEST.md explaining benefits and usage
- Update README.md to recommend UV runtime for Python
- Add complete hello-world-uv example
Benefits of UV runtime:
- Cross-platform support (Windows/macOS/Linux, Intel/ARM)
- Small bundle size (~100 KB vs 5-10 MB)
- Handles compiled dependencies portably
- No user Python installation required
Example manifest:
{
"manifest_version": "0.4",
"server": {
"type": "uv",
"entry_point": "src/server.py"
}
}
Co-authored-by: Joan <joan@anthropic.com>
376 lines
No EOL
7.7 KiB
JSON
376 lines
No EOL
7.7 KiB
JSON
{
|
|
"type": "object",
|
|
"properties": {
|
|
"$schema": {
|
|
"type": "string"
|
|
},
|
|
"dxt_version": {
|
|
"type": "string",
|
|
"const": "0.4",
|
|
"description": "@deprecated Use manifest_version instead"
|
|
},
|
|
"manifest_version": {
|
|
"type": "string",
|
|
"const": "0.4"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"display_name": {
|
|
"type": "string"
|
|
},
|
|
"version": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"long_description": {
|
|
"type": "string"
|
|
},
|
|
"author": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"email": {
|
|
"type": "string",
|
|
"format": "email"
|
|
},
|
|
"url": {
|
|
"type": "string",
|
|
"format": "uri"
|
|
}
|
|
},
|
|
"required": [
|
|
"name"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"repository": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string"
|
|
},
|
|
"url": {
|
|
"type": "string",
|
|
"format": "uri"
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"url"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"homepage": {
|
|
"type": "string",
|
|
"format": "uri"
|
|
},
|
|
"documentation": {
|
|
"type": "string",
|
|
"format": "uri"
|
|
},
|
|
"support": {
|
|
"type": "string",
|
|
"format": "uri"
|
|
},
|
|
"icon": {
|
|
"type": "string"
|
|
},
|
|
"icons": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"src": {
|
|
"type": "string"
|
|
},
|
|
"size": {
|
|
"type": "string",
|
|
"pattern": "^\\d+x\\d+$"
|
|
},
|
|
"theme": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
}
|
|
},
|
|
"required": [
|
|
"src",
|
|
"size"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"screenshots": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"localization": {
|
|
"type": "object",
|
|
"properties": {
|
|
"resources": {
|
|
"type": "string",
|
|
"pattern": "\\$\\{locale\\}"
|
|
},
|
|
"default_locale": {
|
|
"type": "string",
|
|
"pattern": "^[A-Za-z0-9]{2,8}(?:-[A-Za-z0-9]{1,8})*$"
|
|
}
|
|
},
|
|
"required": [
|
|
"resources",
|
|
"default_locale"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"server": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"python",
|
|
"node",
|
|
"binary",
|
|
"uv"
|
|
]
|
|
},
|
|
"entry_point": {
|
|
"type": "string"
|
|
},
|
|
"mcp_config": {
|
|
"type": "object",
|
|
"properties": {
|
|
"command": {
|
|
"type": "string"
|
|
},
|
|
"args": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"env": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"platform_overrides": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "object",
|
|
"properties": {
|
|
"command": {
|
|
"$ref": "#/properties/server/properties/mcp_config/properties/command"
|
|
},
|
|
"args": {
|
|
"$ref": "#/properties/server/properties/mcp_config/properties/args"
|
|
},
|
|
"env": {
|
|
"$ref": "#/properties/server/properties/mcp_config/properties/env"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"command"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"entry_point"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"tools": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"name"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"tools_generated": {
|
|
"type": "boolean"
|
|
},
|
|
"prompts": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"arguments": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"text"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"prompts_generated": {
|
|
"type": "boolean"
|
|
},
|
|
"keywords": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"license": {
|
|
"type": "string"
|
|
},
|
|
"privacy_policies": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "uri"
|
|
}
|
|
},
|
|
"compatibility": {
|
|
"type": "object",
|
|
"properties": {
|
|
"claude_desktop": {
|
|
"type": "string"
|
|
},
|
|
"platforms": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": [
|
|
"darwin",
|
|
"win32",
|
|
"linux"
|
|
]
|
|
}
|
|
},
|
|
"runtimes": {
|
|
"type": "object",
|
|
"properties": {
|
|
"python": {
|
|
"type": "string"
|
|
},
|
|
"node": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"user_config": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"string",
|
|
"number",
|
|
"boolean",
|
|
"directory",
|
|
"file"
|
|
]
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"required": {
|
|
"type": "boolean"
|
|
},
|
|
"default": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"multiple": {
|
|
"type": "boolean"
|
|
},
|
|
"sensitive": {
|
|
"type": "boolean"
|
|
},
|
|
"min": {
|
|
"type": "number"
|
|
},
|
|
"max": {
|
|
"type": "number"
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"title",
|
|
"description"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"_meta": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "object",
|
|
"additionalProperties": {}
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"version",
|
|
"description",
|
|
"author",
|
|
"server"
|
|
],
|
|
"additionalProperties": false,
|
|
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
} |