Skip to main content
Glama

VineVerse — Bible Knowledge Graph

Find places near a location

find_places_near
Read-onlyIdempotent

Biblical places within a radius, nearest first, with the distance in kilometres. Anchor it on a place already in the knowledge base, or on a bare latitude and longitude when you are asking about a modern location that has no document here.

~1,300 places carry coordinates. Many sites are identified only tentatively — check contested and identifications on the place document before treating a position as settled.

total counts everything inside the radius, which a wide one puts well beyond a single page — walk the rest with offset, not by raising the radius.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
latNoAnchor latitude, if no place is given.
lonNoLongitude in decimal degrees. Must be given together with `lat`, and instead of `place`.
limitNoHow many places to return, nearest first. Defaults to 25, capped at 200.
placeNoAnchor place path, e.g. "places/jerusalem"
offsetNoFor paging; compare with `total` in the response. A wide radius holds far more than one page.
radiusNoKilometres. 50 by default.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
noteNo
countYes
totalYes
centreYes
offsetYes
originNo
licenceNo
resultsYes
radiusKmYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedInput schema / properties / offset
      Added value: +{
      +  "description": "For paging; compare with `total` in the response. A wide radius holds far more than one page.",
      +  "maximum": 9007199254740991,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedOutput schema / properties / offset
      Added value: +{
      +  "type": "number"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "centre",
      -  "radiusKm",
      -  "total",
      -  "count",
      -  "results"
      -]New value: +[
      +  "centre",
      +  "radiusKm",
      +  "total",
      +  "offset",
      +  "count",
      +  "results"
      +]
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "https://json-schema.org/draft/2020-12/schema",
      +  "additionalProperties": {},
      +  "properties": {
      +    "centre": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "lat": {
      +          "type": "number"
      +        },
      +        "lon": {
      +          "type": "number"
      +        }
      +      },
      +      "required": [
      +        "lat",
      +        "lon"
      +      ],
      +      "type": "object"
      +    },
      +    "count": {
      +      "type": "number"
      +    },
      +    "licence": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "attribution": {
      +          "type": "string"
      +        },
      +        "data": {
      +          "type": "string"
      +        },
      +        "shareAlike": {
      +          "type": "string"
      +        },
      +        "text": {
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "note": {
      +      "type": "string"
      +    },
      +    "origin": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "degree": {
      +          "type": "number"
      +        },
      +        "description": {
      +          "type": "string"
      +        },
      +        "id": {
      +          "type": "string"
      +        },
      +        "lat": {
      +          "type": "number"
      +        },
      +        "lon": {
      +          "type": "number"
      +        },
      +        "osis": {
      +          "type": "string"
      +        },
      +        "shareAlike": {
      +          "type": "boolean"
      +        },
      +        "strongs": {
      +          "type": "string"
      +        },
      +        "title": {
      +          "type": "string"
      +        },
      +        "type": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "id",
      +        "title",
      +        "type"
      +      ],
      +      "type": "object"
      +    },
      +    "radiusKm": {
      +      "type": "number"
      +    },
      +    "results": {
      +      "items": {
      +        "additionalProperties": {},
      +        "properties": {
      +          "degree": {
      +            "type": "number"
      +          },
      +          "description": {
      +            "type": "string"
      +          },
      +          "distanceKm": {
      +            "type": "number"
      +          },
      +          "id": {
      +            "type": "string"
      +          },
      +          "lat": {
      +            "type": "number"
      +          },
      +          "lon": {
      +            "type": "number"
      +          },
      +          "osis": {
      +            "type": "string"
      +          },
      +          "shareAlike": {
      +            "type": "boolean"
      +          },
      +          "strongs": {
      +            "type": "string"
      +          },
      +          "title": {
      +            "type": "string"
      +          },
      +          "type": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "title",
      +          "type",
      +          "distanceKm"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "total": {
      +      "type": "number"
      +    }
      +  },
      +  "required": [
      +    "centre",
      +    "radiusKm",
      +    "total",
      +    "count",
      +    "results"
      +  ],
      +  "type": "object"
      +}
  3. First observed

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Read-only annotations already cover safety, but the description adds important non-obvious behavior: many place coordinates are tentative, so agents should inspect `contested` and `identifications` before trusting positions. It also transparently explains that `total` may exceed one page and that `offset`, not an enlarged radius, is the correct way to page.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact, front-loaded, and free of filler. Each paragraph serves a distinct purpose: core behavior, data-quality caveats, and pagination guidance. Every sentence contributes to safe and effective use.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a rich input schema, an output schema, and read-only annotations, the only missing pieces are behavioral context and procedural cautions. The description supplies those thoroughly: result ordering, distance units, tentative-identification caution, and offset-based paging. The tool is fully actionable as written.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents all six parameters at 100% coverage, so the baseline is high. The description adds contextual value beyond the schema by explaining that lat/lon is for modern locations lacking a place document and that a wide radius makes pagination behavior important.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence states the exact action: return biblical places within a radius, sorted nearest first, with distance in kilometres. This is a specific verb+resource+scope and clearly separates it from the sibling tools, none of which do geospatial radius queries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly tells when to use a known place anchor versus a bare lat/lon, i.e., for modern locations not present in the knowledge base. It does not name alternative sibling tools, but no sibling appears to cover the same capability, so the guidance is clear and sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources