PostFinder post offices and parcel points

Nearest post offices, parcel lockers and post boxes in AU, NZ, US, UK and Canada. Free, no key.

Should I use this

Quality & Safety

A
Description quality
90%
Schema completeness
100%
Naming quality
100%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'search_places' description lacks action verbin search_places

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~952Tokens (tool definitions)
~3.1 KBTypical response size
Moderate attention impact (0.74% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "places": {
      "url": "https://api.postfinder.io/mcp"
    }
  }
}

Remote endpoints

https://api.postfinder.io/mcpstreamable-http

What it can do

Tool inventory

Tools (3)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢find_places(lat, lng, country, category)

The places nearest a point, nearest first, with their distance, address, opening hours and the page each one is on. Ask for a category when the question names one: post-offices, parcel-lockers, drop-off-points, post-boxes, express-post-boxes or collection-points.

Input Schema

{
  "type": "object",
  "properties": {
    "lat": {
      "type": "number",
      "description": "Latitude in degrees, between -90 and 90."
    },
    "lng": {
      "type": "number",
      "description": "Longitude in degrees, between -180 and 180."
    },
    "country": {
      "type": "string",
      "description": "Country slug: australia, united-states, united-kingdom, canada or new-zealand."
    },
    "category": {
      "type": "string",
      "description": "Optional: post-offices, parcel-lockers, drop-off-points, post-boxes, express-post-boxes or collection-points. Omit for any kind."
    }
  },
  "required": [
    "lat",
    "lng",
    "country"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "places": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "category": {
            "type": "string",
            "description": "post-offices, parcel-lockers, drop-off-points, post-boxes, express-post-boxes or collection-points."
          },
          "brand": {
            "type": "string",
            "description": "The carrier, where one is known: australia-post, canada-post, usps, royal-mail, nz-post and so on."
          },
          "address": {
            "type": "string"
          },
          "suburb": {
            "type": "string"
          },
          "distance_km": {
            "type": "number"
          },
          "hours": {
            "type": "string",
            "description": "Opening hours in one line, when they are known."
          },
          "url": {
            "type": "string",
            "description": "The page for this place. Cite it."
          },
          "last_verified": {
            "type": "string",
            "description": "The date the record was last checked, as YYYY-MM-DD."
          }
        },
        "required": [
          "name",
          "category",
          "suburb",
          "distance_km",
          "url"
        ],
        "additionalProperties": false
      },
      "description": "The places within 50 km, nearest first, at most 30."
    }
  },
  "required": [
    "places"
  ],
  "additionalProperties": false
}
🟢get_place(public_id)

Everything about one place from an earlier answer: address, opening hours, what it accepts, and when the record was last checked.

Input Schema

{
  "type": "object",
  "properties": {
    "public_id": {
      "type": "string",
      "description": "The id from an earlier answer, the last part of a place's URL: abc12345."
    }
  },
  "required": [
    "public_id"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "place": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "category": {
          "type": "string"
        },
        "brand": {
          "type": "string"
        },
        "address": {
          "type": "string"
        },
        "suburb": {
          "type": "string"
        },
        "region": {
          "type": "string"
        },
        "postcode": {
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "lat": {
          "type": "number"
        },
        "lng": {
          "type": "number"
        },
        "hours": {
          "type": "string"
        },
        "url": {
          "type": "string"
        },
        "last_verified": {
          "type": "string"
        },
        "closed": {
          "type": "boolean",
          "description": "True when this place has closed; the page says so and lists alternatives."
        }
      },
      "required": [
        "name",
        "category",
        "suburb",
        "country",
        "lat",
        "lng",
        "url"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "place"
  ],
  "additionalProperties": false
}
🟢search_places(q)

Suburbs and places matching a name, for turning 'Coburg' or 'Coburg Post Office' into somewhere with a coordinate and a page.

Input Schema

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "description": "A suburb, a postcode or a place name. At least two characters."
    }
  },
  "required": [
    "q"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "results": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "properties": {
          "kind": {
            "type": "string",
            "description": "locality or place."
          },
          "name": {
            "type": "string"
          },
          "suburb": {
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "place_count": {
            "type": "integer",
            "description": "How many places a locality holds."
          },
          "lat": {
            "type": [
              "null",
              "number"
            ]
          },
          "lng": {
            "type": [
              "null",
              "number"
            ]
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "kind",
          "name",
          "url"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "results"
  ],
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded3 tools