Command Palette

Search for a command to run...

UnylyUnyly
Browse all

CityJSON Specification Server

FreeNot checked

Provides AI assistants with structured access to the CityJSON specification, enabling on-demand fetching of specific chapters.

GitHubEmbed

About

Provides AI assistants with structured access to the CityJSON specification, enabling on-demand fetching of specific chapters.

README

An MCP (Model Context Protocol) server that provides AI assistants with structured access to the CityJSON specification. Instead of feeding entire specifications to LLMs, this server enables AI to fetch specific chapters on demand.

📺 Demo

https://github.com/user-attachments/assets/91f0bd61-a313-441c-8def-4e07b8d125be

🚀 Quick Start

Remote Server (Recommended)

Connect directly to the hosted server - no installation required:

https://your-cloud-run-url.run.app/mcp

Alternatively, use the community-hosted instance (subject to availability and resource constraints):

https://cj-mcp-264879243442.europe-west4.run.app/mcp

Local Installation

Run locally using npx:

npx @cityjson/cj-mcp@latest

Or install globally:

npm install -g @cityjson/cj-mcp@latest
cityjson-spec-mcp

🛠️ Installation

Cursor

Add to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "cityjson-spec": {
      "command": "npx",
      "args": ["-y", "@cityjson/cj-mcp@latest"]
    }
  }
}
Claude Desktop

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "cityjson-spec": {
      "command": "npx",
      "args": ["-y", "@cityjson/cj-mcp@latest"]
    }
  }
}
VS Code

Add to your VS Code settings:

{
  "mcp": {
    "servers": {
      "cityjson-spec": {
        "type": "stdio",
        "command": "npx",
        "args": ["-y", "@cityjson/cj-mcp@latest"]
      }
    }
  }
}
Windsurf

Add to your Windsurf MCP config:

{
  "mcpServers": {
    "cityjson-spec": {
      "command": "npx",
      "args": ["-y", "@cityjson/cj-mcp@latest"]
    }
  }
}

🔨 Available Tools

cityjson_read_spec_outline

Returns the specification outline with all chapters and sections.

Parameters:

  • include_sections (boolean, optional): Include section headings within each chapter. Default: true

Example Response:

{
  "version": "2.0.1",
  "total_chapters": 12,
  "chapters": [
    {
      "id": "introduction",
      "title": "Introduction",
      "order": 1,
      "sections": ["overview", "design-goals", "file-extension"]
    }
  ]
}

cityjson_read_spec_chapter

Returns the full Markdown content for a specific chapter.

Parameters:

  • chapter (string, required): Chapter identifier (e.g., "metadata", "city-objects")

Example:

{
  "chapter": "metadata"
}

💻 Development

# Clone with submodules
git clone --recurse-submodules https://github.com/cityjson/cityjson-spec-mcp.git
cd cityjson-spec-mcp

# Install dependencies
pnpm install

# Build all packages
pnpm build

# Convert specification (requires uv/bikeshed)
pnpm convert-spec

# Start MCP server (stdio mode)
pnpm start:stdio

# Start MCP server (HTTP mode)
pnpm start:http

# Lint and format
pnpm lint
pnpm lint:fix

📦 Project Structure

cityjson-spec-mcp/
├── packages/
│   ├── spec-converter/     # Bikeshed → Markdown converter
│   └── mcp-server/         # MCP server implementation
├── specs/                  # Generated specification files
│   ├── index.json          # Chapter metadata index
│   └── chapters/           # Individual chapter Markdown files
├── vendor/
│   └── cityjson-specs/     # Git submodule (CityJSON spec repo)
└── Dockerfile              # Container for Cloud Run deployment

📄 License

MIT

🔗 Resources

from github.com/cityjson/cj-mcp

Installing CityJSON Specification Server

This server has no published package — it is built from source. Open the repository and follow its README.

▸ github.com/cityjson/cj-mcp

FAQ

Is CityJSON Specification Server MCP free?

Yes, CityJSON Specification Server MCP is free — one-click install via Unyly at no cost.

Does CityJSON Specification Server need an API key?

No, CityJSON Specification Server runs without API keys or environment variables.

Is CityJSON Specification Server hosted or self-hosted?

Self-hosted: the server runs locally on your machine via the install command above.

How do I install CityJSON Specification Server in Claude Desktop, Claude Code or Cursor?

Open CityJSON Specification Server on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare CityJSON Specification Server with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All ai MCPs