loading…
Search for a command to run...
loading…
Provides comprehensive Australian planning property reports, including zoning, overlays, land size, and utility information for AI assistants. This high-perform
Provides comprehensive Australian planning property reports, including zoning, overlays, land size, and utility information for AI assistants. This high-performance MCP server is built for Cloudflare Workers and enables real-time property data retrieval through an HTTP-based interface.
Model Context Protocol (MCP) server for Australian Planning Property Reports - Cloudflare Workers Edition.
npm install -g wrangler)# Clone the project
cd planning-mcp
# Install dependencies
npm install
# Login to Cloudflare
wrangler login
# Create KV namespace for caching
wrangler kv:namespace create "CACHE"
# Copy the ID and add to wrangler.toml
# Start development server
npm run dev
wrangler.toml with your KV namespace IDwrangler secret put API_KEY
# Build the project
npm run build
# Deploy to Cloudflare Workers
npm run deploy
vic_planning_property_reportRetrieves comprehensive Victorian planning property reports. (Additional state tools coming soon.)
Input:
{
"address": "1 Spring Street, Melbourne VIC 3000",
"includePdfBase64": false,
"includeZoneHtml": false,
"includeOverlayHtml": false
}
Output:
{
"success": true,
"address": "1 SPRING STREET MELBOURNE VIC 3000",
"propertyPfi": "12345",
"propertyDetails": {
"address": "1 SPRING STREET MELBOURNE VIC 3000",
"councilName": "Melbourne City Council",
"landSize": 842,
"landSizeHectares": 0.0842,
"standardParcelIdentifier": "1\\PS123456",
"registeredAboriginalParty": "Bunurong Land Council",
...
},
"electorates": {
"federal": "Melbourne",
"legislativeAssembly": "Melbourne District",
"legislativeCouncil": "Southern Metropolitan Region"
},
"utilities": {
"powerDistributor": "AusNet Services",
"gas": "AusNet Services",
"melbourneWater": "Melbourne Water",
"melbourneWaterRetailer": "South East Water"
},
"zones": [...],
"overlays": [...]
}
Health Check:
GET /health
MCP Endpoint:
POST /mcp
Content-Type: application/json
{
"jsonrpc": "2.0",
"id": "1",
"method": "tools/call",
"params": {
"name": "vic_planning_property_report",
"arguments": {
"address": "1 Spring Street, Melbourne VIC 3000"
}
}
}
┌─────────────────────────────────────────┐
│ Cloudflare Edge Network │
│ ┌───────────────────────────────────┐ │
│ │ Worker (HTTP MCP Endpoint) │ │
│ │ - Hono.js Framework │ │
│ │ - Rate Limiting │ │
│ │ - Authentication │ │
│ │ - CORS │ │
│ └───────────────────────────────────┘ │
│ ↓ │
│ ┌───────────────────────────────────┐ │
│ │ Services Layer │ │
│ │ - Address Resolution │ │
│ │ - Property Data Fetching │ │
│ │ - Progress Reporting │ │
│ └───────────────────────────────────┘ │
│ ↓ │
│ ┌───────────────────────────────────┐ │
│ │ Workers KV (Caching) │ │
│ │ - 60%+ Cache Hit Rate │ │
│ │ - 24hr TTL for addresses │ │
│ └───────────────────────────────────┘ │
└─────────────────────────────────────────┘
planning-mcp/
├── src/
│ ├── index.ts # Main entry point
│ ├── types/ # TypeScript types
│ ├── services/ # Business logic
│ ├── middleware/ # HTTP middleware
│ ├── handlers/ # MCP handlers
│ ├── lib/ # Utilities
│ └── schemas/ # Validation schemas
├── test/ # Tests
├── wrangler.toml # Cloudflare config
├── tsconfig.json # TypeScript config
└── package.json # Dependencies
# Run tests
npm test
# Run tests with coverage
npm run test:coverage
# Type check
npm run type-check
Configure in wrangler.toml:
| Variable | Description | Default |
|---|---|---|
RATE_LIMIT_PER_MINUTE |
Rate limit per IP | 100 |
CACHE_TTL_HOURS |
Cache TTL in hours | 24 |
ENABLE_ANALYTICS |
Enable analytics | true |
ALLOWED_ORIGINS |
CORS origins | * |
Secrets (use wrangler secret put):
| Secret | Description | Required |
|---|---|---|
API_KEY |
Bearer token for auth | No |
All requests are logged in JSON format with correlation IDs:
{
"timestamp": "2024-01-30T10:00:00.000Z",
"level": "info",
"message": "Tool call started",
"requestId": "550e8400-e29b-41d4-a716-446655440000",
"tool": "vic_planning_property_report",
"metadata": {
"address": "1 Spring St"
}
}
Enable Cloudflare Analytics Engine for:
See Vercel deployment guide for migration instructions.
Traditional Node.js deployment - see v1.0 branch.
KV Namespace not found:
# Create namespace and update wrangler.toml
wrangler kv:namespace create "CACHE"
Rate limit errors:
# Increase limit in wrangler.toml
RATE_LIMIT_PER_MINUTE = "200"
Authentication failures:
# Check API key is set
wrangler secret list
wrangler secret put API_KEY
MIT
Built with ❤️ for Australian planning research
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"planning-mcp-server": {
"command": "npx",
"args": []
}
}
}