CityJSON Specification MCP Server
Provides AI assistants with structured access to the CityJSON specification, enabling on-demand fetching of specific chapters.
README
CityJSON Specification MCP Server
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
<details> <summary>Cursor</summary>
Add to ~/.cursor/mcp.json:
{
"mcpServers": {
"cityjson-spec": {
"command": "npx",
"args": ["-y", "@cityjson/cj-mcp@latest"]
}
}
}
</details>
<details> <summary>Claude Desktop</summary>
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"]
}
}
}
</details>
<details> <summary>VS Code</summary>
Add to your VS Code settings:
{
"mcp": {
"servers": {
"cityjson-spec": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@cityjson/cj-mcp@latest"]
}
}
}
}
</details>
<details> <summary>Windsurf</summary>
Add to your Windsurf MCP config:
{
"mcpServers": {
"cityjson-spec": {
"command": "npx",
"args": ["-y", "@cityjson/cj-mcp@latest"]
}
}
}
</details>
šØ 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
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.