Skip to main content

manifest.json Reference

The manifest.json at the repo root describes MCP for Unity as a package — independent of Unity's UPM package.json (which lives at MCPForUnity/package.json). It's used by MCP marketplaces and aggregators to surface the project's metadata, server invocation, and tool catalog.

If you're adding a new MCP tool, update the tool registry and let CI's drift check fail any stale entry — the generator keeps the docs in sync. The tools block in manifest.json is edited by hand, but Server/tests/test_manifest_tools.py fails unless it lists exactly the registered tools (see tools below).

Top-level fields​

FieldTypeDescription
manifest_versionstringSchema version for this manifest (currently "0.3")
namestringDisplay name shown by aggregators
versionstringSemver of the current release
descriptionstringOne-line product description
author.namestringMaintainer's display name
author.urlstringMaintainer's website
repository.typestring"git"
repository.urlstringCanonical repo URL
homepagestringProject homepage
documentationstringDocs landing URL
supportstringWhere to file issues
iconstringPath to a square icon, relative to the manifest

server​

Tells aggregators how to launch the Python server.

"server": {
"type": "python",
"entry_point": "Server/src/main.py",
"mcp_config": {
"command": "uvx",
"args": ["--from", "mcpforunityserver", "mcp-for-unity"],
"env": {}
}
}
  • type — runtime family. Currently always "python".
  • entry_point — file an aggregator would point a Python interpreter at if it weren't using uvx.
  • mcp_config.command — recommended launch command. uvx keeps the dependency tree managed without a global install.
  • mcp_config.args — invocation arguments. Default transport is http; pass --transport stdio to switch.
  • mcp_config.env — environment variables to set before launching (telemetry opt-outs, log levels, etc.).

tools​

A flat array of { name, description } entries listing every MCP tool the server exposes. Aggregators use it for search and category surfaces without having to introspect the live registry.

The entries are written by hand, but Server/tests/test_manifest_tools.py keeps the list equal to the Python tool registry: it fails when a registered tool is missing, when an entry names a tool that is not registered, or when a name appears twice. It compares names only, not descriptions. See the Tool reference for the generated catalog with full parameter docs.

Notes​

  • manifest.json is NOT the Unity UPM manifest. That's MCPForUnity/package.json (name: com.coplaydev.unity-mcp).
  • The Python PyPI package metadata lives in Server/pyproject.toml (name: mcpforunityserver).
  • All three — manifest.json, package.json, pyproject.toml — are independent surfaces with overlapping but non-identical fields. A rename touches all three.
  • An MCPB bundle is produced from manifest.json via tools/generate_mcpb.py.

Where it ships​

The current manifest.json is at the repo root: manifest.json.