Skip to main content
Glama
es3154

Turf-MCP

by es3154

measurement_pointOnFeature

Find the closest point on any GeoJSON feature using Turf.js. Input a GeoJSON object to return a GeoJSON Point feature representing the nearest location on that feature.

Instructions

在 GeoJSON 特征上找到最近的点。

该函数使用 Turf.js 库的 pointOnFeature 方法,在给定的 GeoJSON 特征上找到最近的点。

Args: geojson: GeoJSON 对象 - 类型: str (JSON 字符串格式的 GeoJSON) - 格式: 任何有效的 GeoJSON 对象 - 坐标系: WGS84 (经度在前,纬度在后) - 示例: '{"type": "Polygon", "coordinates": [[[-81, 41], [-88, 36], [-84, 31], [-80, 33], [-77, 39], [-81, 41]]]}'

Returns: str: JSON 字符串格式的 GeoJSON Point 特征 - 类型: GeoJSON Feature with Point geometry - 格式: {"type": "Feature", "geometry": {"type": "Point", "coordinates": [lng, lat]}} - 示例: '{"type": "Feature", "geometry": {"type": "Point", "coordinates": [-82.5, 35.5]}}'

Raises: Exception: 当 JavaScript 执行失败、超时或输入数据格式错误时抛出异常

Example: >>> import asyncio >>> polygon = '{"type": "Polygon", "coordinates": [[[-81, 41], [-88, 36], [-84, 31], [-80, 33], [-77, 39], [-81, 41]]]}' >>> result = asyncio.run(pointOnFeature(polygon)) >>> print(result) '{"type": "Feature", "geometry": {"type": "Point", "coordinates": [-82.5, 35.5]}}'

Notes: - 输入参数 geojson 必须是有效的 JSON 字符串 - 坐标顺序为 [经度, 纬度] (WGS84 坐标系) - 返回的特征上最近的点 - 依赖于 Turf.js 库和 Node.js 环境

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
geojsonYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes
Behavior4/5

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

With no annotations provided, the description carries the full burden and does well by disclosing key behavioral traits: it specifies the underlying library (Turf.js), coordinate system (WGS84), input format requirements (valid JSON string), output format, error conditions (JavaScript execution failures, timeouts, data format errors), and dependencies (Node.js environment). It doesn't mention performance characteristics like computational complexity.

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

Conciseness4/5

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

The description is well-structured with clear sections (Args, Returns, Raises, Example, Notes) and front-loads the core purpose. While comprehensive, some sections like the detailed example could be slightly condensed, but overall it's efficient with minimal waste.

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?

Given the tool's complexity (geospatial computation), no annotations, and 0% schema coverage, the description is remarkably complete. It covers purpose, parameters, return values (though output schema exists, it elaborates), error conditions, examples, dependencies, and technical constraints. For a single-parameter tool with rich geospatial context, this provides all necessary information.

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

Parameters5/5

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

With 0% schema description coverage (schema only says geojson is a string), the description fully compensates by providing rich parameter semantics: it specifies the parameter must be a JSON string in GeoJSON format, provides the coordinate system (WGS84 with longitude first), gives a detailed example, and explains format requirements. This adds substantial value beyond the bare schema.

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 description clearly states the tool's purpose with a specific verb ('找到最近的点' - find the nearest point) and resource ('在 GeoJSON 特征上' - on GeoJSON features). It distinguishes from siblings by specifying it finds the nearest point on a feature, unlike classification_nearestPoint which finds nearest points between features or misc_nearest_point_on_line which is line-specific.

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

Usage Guidelines3/5

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

The description implies usage context through the example and notes (e.g., '输入参数 geojson 必须是有效的 JSON 字符串'), but doesn't explicitly state when to use this tool versus alternatives like classification_nearestPoint or misc_nearest_point_on_line. The context is clear but lacks explicit comparison guidance.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/es3154/turf-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server