> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vendo.run/llms.txt
> Use this file to discover all available pages before exploring further.

# E-MCP-006

> server.json is invalid JSON.

# E-MCP-006

<Warning>
  **what doctor prints** (broken)

  server.json is invalid JSON
</Warning>

The registry artifact at the repo root does not parse at all, before doctor
can even check its schema.

`check mcp/server-json` · `error_code E-MCP-006` · `doctor exits 1`

## What you're seeing

When your composition opens the MCP door, doctor reads `server.json` from the
repo root and calls `JSON.parse` on it. This check fires when that parse
throws: a stray comma, an unterminated string, a hand-edit that broke the
syntax. A project with no MCP door is never graded on a file of that name.

## Why

`server.json` is meant to be machine-generated and machine-read by MCP
registries. A syntax error anywhere in the file means no registry, and no
version of `vendo doctor`, can read any field out of it, not just the one you
were editing.

## The fix

Regenerate the file rather than hunting for the broken character:

```bash theme={null}
npx vendo mcp server-json --domain your-app.example.com \
  --url https://your-app.example.com/api/vendo/mcp \
  --force
```

Or repair the JSON syntax by hand if you have reason to keep manual edits,
then re-run doctor.

## Related errors

<CardGroup cols={2}>
  <Card title="E-MCP-004" href="/production/troubleshooting/e-mcp-004">server.json validation</Card>
  <Card title="E-MCP-005" href="/production/troubleshooting/e-mcp-005">server.json remote mismatch</Card>
  <Card title="E-MCP-003" href="/production/troubleshooting/e-mcp-003">server card</Card>
</CardGroup>
