logikonline ce21254f7b feat(types): add icon, options, and options_from to Python models
Add icon field to McpManifestServer. Add options and options_from fields to McpManifestConfig. Add McpManifestOptionsFrom dataclass with file and path fields for JSONPath-based dynamic options. Update from_dict parsing to handle new fields
2026-04-04 18:57:42 -04:00

MCP Manifest

mcp-manifest

Python SDK for the mcp-manifest.dev spec. Discover, parse, and validate MCP server manifests with zero runtime dependencies.

Install

pip install mcp-manifest

Usage

Parse a local manifest

from mcp_manifest import McpManifest

manifest = McpManifest.from_file("mcp-manifest.json")
print(manifest.server.display_name)

Discover a manifest from a domain

import asyncio
from mcp_manifest import discover

result = asyncio.run(discover("ironlicensing.com"))
if result.manifest:
    print(f"Found via {result.source}")
    print(result.manifest.server.description)
else:
    print("Discovery failed:", result.errors)

Validate a manifest

from mcp_manifest import McpManifest, validate

manifest = McpManifest.from_file("mcp-manifest.json")
result = validate(manifest)
if result.valid:
    print("Manifest is valid")
else:
    for error in result.errors:
        print(f"  - {error}")

Check if a command is installed

from mcp_manifest import check_command

if check_command("ironlicensing-mcp"):
    print("Ready to use")

Async discovery

import asyncio
from mcp_manifest import discover

async def main():
    result = await discover("ironlicensing.com")
    if result.manifest:
        for install in result.manifest.install:
            print(f"{install.method}: {install.package}")

asyncio.run(main())

License

CC0 1.0 -- Public domain.

Description
Discover, parse, and validate MCP server manifests with zero runtime dependencies.
http://www.mcp-manifest.dev
Readme 35 KiB
Languages
Python 100%