Skip to main content
Glama
es3154

Turf-MCP

by es3154

measurement_polygonTangents

Calculate tangent points from a given location to a polygon boundary using Turf.js geospatial analysis. This tool identifies two points where lines from the point touch the polygon without crossing it.

Instructions

计算多边形上的切线点。

该函数使用 Turf.js 库的 polygonTangents 方法,计算从给定点到多边形(或多边形集合)的两个切线点。

Args: point: 点 GeoJSON 特征或几何图形 - 类型: str (JSON 字符串格式的 GeoJSON) - 格式: 必须符合 GeoJSON Point 规范 - 坐标系: WGS84 (经度在前,纬度在后) - 示例: '{"type": "Point", "coordinates": [61, 5]}'

polygon: 多边形 GeoJSON 特征或几何图形
    - 类型: str (JSON 字符串格式的 GeoJSON)
    - 格式: 必须符合 GeoJSON Polygon 或 MultiPolygon 规范
    - 坐标系: WGS84 (经度在前,纬度在后)
    - 示例: '{"type": "Polygon", "coordinates": [[[11, 0], [22, 4], [31, 0], [31, 11], [21, 15], [11, 11], [11, 0]]]}'

Returns: str: JSON 字符串格式的 GeoJSON FeatureCollection - 类型: GeoJSON FeatureCollection with Point features - 格式: {"type": "FeatureCollection", "features": [{"type": "Feature", "geometry": {"type": "Point", "coordinates": [lng1, lat1]}}, {"type": "Feature", "geometry": {"type": "Point", "coordinates": [lng2, lat2]}}]} - 示例: '{"type": "FeatureCollection", "features": [{"type": "Feature", "geometry": {"type": "Point", "coordinates": [15, 8]}}, {"type": "Feature", "geometry": {"type": "Point", "coordinates": [25, 3]}}]}'

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

Example: >>> import asyncio >>> point = '{"type": "Point", "coordinates": [61, 5]}' >>> polygon = '{"type": "Polygon", "coordinates": [[[11, 0], [22, 4], [31, 0], [31, 11], [21, 15], [11, 11], [11, 0]]]}' >>> result = asyncio.run(polygonTangents(point, polygon)) >>> print(result) '{"type": "FeatureCollection", "features": [{"type": "Feature", "geometry": {"type": "Point", "coordinates": [15, 8]}}, {"type": "Feature", "geometry": {"type": "Point", "coordinates": [25, 3]}}]}'

Notes: - 输入参数 point 和 polygon 必须是有效的 JSON 字符串 - 坐标顺序为 [经度, 纬度] (WGS84 坐标系) - 返回两个切线点,分别对应多边形的两个切线 - 依赖于 Turf.js 库和 Node.js 环境

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pointYes
polygonYes

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 of behavioral disclosure. It effectively describes key behaviors: the tool returns two tangent points as a FeatureCollection, specifies coordinate system requirements (WGS84 with longitude-first), mentions dependency on Turf.js and Node.js, and documents error conditions (exceptions for execution failure, timeout, or invalid input). It doesn't cover performance characteristics like computational complexity or rate limits, but provides substantial operational context.

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 somewhat lengthy due to detailed parameter documentation, every section serves a clear purpose. The example is particularly helpful for understanding usage.

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 (geometric calculation with specific format requirements), no annotations, and 0% schema coverage, the description provides excellent completeness. It covers purpose, parameters, return format, error conditions, dependencies, and includes a working example. The output schema exists but the description still usefully explains the return value structure.

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 declares parameters as strings), the description fully compensates by providing comprehensive parameter documentation. It specifies exact GeoJSON types required (Point for 'point', Polygon/MultiPolygon for 'polygon'), coordinate format, coordinate system, and provides clear examples. This adds significant value beyond the minimal 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: '计算多边形上的切线点' (calculate tangent points on a polygon). It specifies the exact mathematical operation (tangent calculation), the inputs (point and polygon), and distinguishes it from sibling tools by focusing on this specific geometric measurement rather than boolean operations, transformations, or other measurements.

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 provides clear context for when to use this tool: for calculating tangent points from a point to a polygon using Turf.js. It doesn't explicitly mention when not to use it or name alternatives, but the specificity of the operation (tangent calculation vs. distance, bearing, etc.) implies appropriate usage scenarios among the many sibling measurement tools.

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