Skip to main content
Glama
README.md
# PlanWire MCP Server

Use UK planning application data inside Claude, Cursor, and any MCP client.

PlanWire exposes fresh, normalised UK planning application data through a public API. This MCP server wraps that API as agent tools so an assistant can search applications, inspect a specific record, look near a location, and list supported councils without you writing API calls by hand.

Get a free sandbox API key at https://planwire.io/?utm_source=npm&utm_medium=mcp_readme&utm_campaign=mcp.

## What MCP Is

Model Context Protocol (MCP) is a standard way for AI tools to call external services. You run this package locally through `npx`; it talks to PlanWire using your own API key and returns structured planning data to the MCP client.

This server uses stdio transport. It does not store credentials or run a hosted proxy.

## Install

You need Node.js 18+ and a PlanWire API key.

```bash
npx -y planwire-mcp
```

Use the package name exactly as shown: `planwire-mcp`. If an MCP directory shows an install command for `beshogun-planwire-mcp`, that directory has stale generated metadata and the install will fail.

The server expects `PLANWIRE_API_KEY` in the environment. Optional: set `PLANWIRE_API_BASE` to override the default `https://api.planwire.io`.

## Claude Desktop

Add this to `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "planwire": {
      "command": "npx",
      "args": ["-y", "planwire-mcp"],
      "env": {
        "PLANWIRE_API_KEY": "your_planwire_key_here"
      }
    }
  }
}
```

Restart Claude Desktop after saving the config.

## Claude Code

Add this to your project `.mcp.json`:

```json
{
  "mcpServers": {
    "planwire": {
      "command": "npx",
      "args": ["-y", "planwire-mcp"],
      "env": {
        "PLANWIRE_API_KEY": "your_planwire_key_here"
      }
    }
  }
}
```

## Cursor

Add the same server command in Cursor's MCP settings:

```json
{
  "mcpServers": {
    "planwire": {
      "command": "npx",
      "args": ["-y", "planwire-mcp"],
      "env": {
        "PLANWIRE_API_KEY": "your_planwire_key_here"
      }
    }
  }
}
```

## Tools

| Tool | What it does |
| --- | --- |
| `search_planning_applications` | Search by keyword, council, postcode, status, type, or date range. |
| `nearby_planning_applications` | Find applications near a latitude/longitude point. |
| `get_planning_application` | Fetch one application by PlanWire application id. |
| `list_councils` | List covered councils and their IDs. |

## Example Prompts

- "Search PlanWire for recent planning applications in Camden."
- "Find refused householder extensions in OX1 from the last year."
- "What planning applications are within 1km of 51.5074, -0.1278?"
- "List the councils PlanWire covers."
- "Find planning applications mentioning HMOs in Manchester."

## Limits And Pricing

Free sandbox keys are suitable for testing and are capped on daily calls and result size. Paid plans increase limits for production use.

Pricing: https://planwire.io/?utm_source=npm&utm_medium=mcp_readme&utm_campaign=mcp#pricing

## Troubleshooting

If the tool says `PLANWIRE_API_KEY is not set`, add your key to the MCP client config and restart the client.

If PlanWire returns `401`, check that the key is correct and active.

If PlanWire returns `429`, the key has reached its rate limit. Use fewer calls or upgrade at https://planwire.io/?utm_source=npm&utm_medium=mcp_readme&utm_campaign=mcp#pricing.

## Development

```bash
npm install
npm run build
npm start
```

MIT licensed. Built by PlanWire: https://planwire.io/?utm_source=npm&utm_medium=mcp_readme&utm_campaign=mcp

TDQS

A3.9/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: fetching by ID, listing councils, spatial search, and keyword search. No overlap in functionality.

Naming Consistency4/5

Most names follow a verb_noun pattern (get, list, search), but 'nearby_planning_applications' omits a verb, creating a slight inconsistency. Otherwise snake_case is used consistently.

Tool Count5/5

Four tools cover the core needs of the domain (search, detail retrieval, council reference) without excess or deficiency.

Completeness4/5

The set covers essential read operations: keyword search, spatial search, and detail retrieval. A minor gap is the lack of a tool to get an application by reference number, but most workflows are supported.

Maintenance

ActivityMaintained
ResponsivenessNo issues