Skip to main content
Glama

overspan-mcp

Overspan용 MCP(Model Context Protocol) 서버로, 호스팅된 Overpass API입니다. Claude, Cursor 및 기타 모든 MCP 클라이언트에 전체 행성 OpenStreetMap 데이터에 대한 직접적이고 계량된 액세스를 제공합니다: 원시 Overpass QL과 근처 검색, 경계 상자 검색, 카운팅 및 사용량 확인을 위한 헬퍼 도구가 포함됩니다.

Overspan API 키가 필요합니다. 요금제는 overspan.dev에서 월 $19부터 시작합니다. 결제 후 이메일로 키가 도착하며, 계정은 필요 없습니다.

빠른 시작

Claude Code

claude mcp add overspan --env OVERSPAN_API_KEY=YOUR_KEY -- npx -y overspan-mcp

Claude Desktop, Cursor 및 기타 JSON 구성 클라이언트

{
  "mcpServers": {
    "overspan": {
      "command": "npx",
      "args": ["-y", "overspan-mcp"],
      "env": {
        "OVERSPAN_API_KEY": "YOUR_KEY"
      }
    }
  }
}

키는 서버의 env 블록에 있어야 합니다. MCP 클라이언트는 자체 환경으로 서버를 시작하므로 셸 프로필에서 내보낸 변수는 서버에 도달하지 않습니다. 키가 포함된 구성 파일은 비밀로 취급하세요. Claude Code의 .mcp.json에서는 "OVERSPAN_API_KEY": "${OVERSPAN_KEY}"로 작성하여 키를 환경에 유지하고 파일에서 제외할 수 있습니다.

Related MCP server: OpenStreetMap MCP Server

도구

도구

기능

overpass_query

원시 Overpass QL 쿼리를 실행합니다. 헬퍼가 너무 좁을 때 사용하는 탈출구입니다.

find_nearby

지점 반경 내에서 태그 필터와 일치하는 피처를 찾습니다.

features_in_bbox

경계 상자 내에서 태그 필터와 일치하는 피처를 찾습니다.

count_features

영역 내 일치 항목을 반환하지 않고 계산합니다. 저렴합니다. 데이터를 가져오기 전에 사용하세요.

get_usage

키의 등급, 한도, 월간 사용량 및 최근 요청을 확인합니다. 할당량을 소비하지 않습니다.

서버는 또한 모델이 읽을 수 있는 두 가지 리소스(overspan://overpass-ql, QL 치트 시트, overspan://differences, Overspan이 공개 서버와 다른 점)와 하나의 프롬프트(write-bounded-overpass-query)를 노출합니다.

알아두면 좋은 동작

  • 키는 Authorization: Bearer 헤더로 전송되며, URL에는 절대 포함되지 않습니다.

  • 모든 성공적인 도구 결과에는 할당량 줄([quota] 49998 of 50000 monthly requests remaining)이 포함되어 에이전트가 속도를 조절할 수 있습니다. get_usage는 전체 그림을 제공하며 호출 비용이 없습니다.

  • 오류는 게이트웨이의 오류 코드, 의미, 재시도 여부와 함께 평이한 언어로 반환됩니다. 거부된 요청은 할당량을 소비하지 않으며, 폭주 루프는 키 자체의 속도 및 동시성 제한에 의해 제한되며 더 큰 청구서로 제한되지 않습니다.

  • 과도하게 큰 응답은 모델의 컨텍스트에 맞게 잘립니다: Overpass JSON의 경우 요소 목록이 잘리고 결과에 얼마나 많은 요소가 삭제되었는지 표시됩니다. 더 많은 데이터를 원하면 OVERSPAN_MAX_RESPONSE_CHARS로 상한을 높이세요.

  • [timeout:]이 없는 쿼리는 25초를 받습니다. 무거운 쿼리의 경우 등급의 상한까지 명시적으로 설정하세요.

환경 변수

변수

필수

기본값

목적

OVERSPAN_API_KEY

Overspan API 키

OVERSPAN_API_URL

아니요

https://api.overspan.dev

API 엔드포인트 재정의

OVERSPAN_MAX_RESPONSE_CHARS

아니요

48000

도구 결과의 잘림 임계값

데이터 라이선스

결과는 Open Database License에 따라 라이선스가 부여된 OpenStreetMap 데이터입니다. 이 데이터를 표시하거나 파생하는 모든 게시물에는 openstreetmap.org/copyright에 도달하는 눈에 띄는 크레딧이 필요합니다. Overspan 구독은 데이터가 아닌 호스팅 및 액세스 비용을 지불하며, 이러한 의무를 변경하지 않습니다.

개발

npm install
npm run build
npm test

테스트 스위트는 쿼리 빌더, 응답 형성, 오류 매핑 및 전체 인메모리 MCP 클라이언트 왕복을 다룹니다.

링크

Overspan은 독립 서비스이며 OpenStreetMap 재단 또는 Overpass API 프로젝트와 제휴하지 않습니다.

MIT 라이선스.

Available Tools

5 tools
count_featuresCount matching featuresA
Read-only

Count OpenStreetMap features matching tag filters in an area without returning them. Cheap. Use this before pulling data when the result size is unknown. Give either a point (lat, lon, radius_m) or a bounding box (south, west, north, east).

ParametersJSON Schema
NameRequiredDescriptionDefault
latNo
lonNo
eastNo
tagsYesOpenStreetMap tag filters, all must match. Use "*" as the value to match any value, e.g. {"amenity": "cafe"} or {"opening_hours": "*"}.
westNo
northNo
southNo
radius_mNoRadius in metres, used with lat/lon (default 500)

TDQS

A4.4/5.0
Behavior4/5

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

Adds useful behavior beyond the readOnlyHint: it is 'Cheap' and intentionally does not return features. This helps the agent understand cost and results without contradicting the annotations.

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?

Three concise sentences, each earning its place: purpose first, then cost/use-case, then input options. No redundant or filler content.

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

Completeness4/5

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

For a simple count operation, the description covers the key invocation decisions and area semantics. Since there is no output schema, it could mention the exact return type, but the count semantics are clear enough from the name and description.

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?

Schema coverage is only 25%, but the description compensates by explaining the two complementary input forms: point (lat, lon, radius_m) versus bounding box (south, west, north, east). This adds grouping and mutual-exclusivity semantics not present in the 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?

States a specific action ('Count'), resource ('OpenStreetMap features'), and scope ('matching tag filters in an area'). Adding 'without returning them' clearly distinguishes it from sibling tools that fetch features.

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?

Provides explicit guidance: 'Use this before pulling data when the result size is unknown.' This gives a concrete adoption context, though it does not explicitly name sibling alternatives or state when not to use it beyond what is implied.

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

features_in_bboxFind features in a bounding boxA
Read-only

Find OpenStreetMap features matching tag filters inside a bounding box (south, west, north, east in decimal degrees). Returns up to 'limit' elements with their tags and a centre coordinate. Keep boxes small; for city-sized areas call count_features first.

ParametersJSON Schema
NameRequiredDescriptionDefault
eastYes
tagsYesOpenStreetMap tag filters, all must match. Use "*" as the value to match any value, e.g. {"amenity": "cafe"} or {"opening_hours": "*"}.
westYes
limitNoMaximum elements to return (default 25)
northYes
southYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover safety via readOnlyHint and openWorldHint. The description adds useful behavioral context by stating it returns up to 'limit' elements with tags and a centre coordinate, and it warns about performance with large boxes. This goes beyond the annotations without contradicting them.

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 three concise sentences with no filler. The first sentence states the core operation, the second describes the return value, and the third provides necessary operational guidance. Every sentence contributes value.

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

Completeness4/5

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

With no output schema, the description still explains the result shape (elements with tags and a centre coordinate) and the limit behavior. It also includes a practical scale warning. It lacks details like error behavior or exact response format, but an agent has enough to call the tool correctly.

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?

Schema description coverage is only 33%, so the description must help compensate. It adds the coordinate order and units ('south, west, north, east in decimal degrees') for the four bbox parameters, which is important semantic information not present in their schema entries. The tags and limit parameters are already well described in the schema.

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

Purpose4/5

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

The description clearly identifies the action: find OpenStreetMap features matching tag filters within a bounding box, and describes the output shape. It is specific about the resource and inputs, but it does not explicitly distinguish itself from siblings like overpass_query or find_nearby, beyond one reference to count_features.

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 gives concrete operational guidance: keep boxes small and call count_features first for city-sized areas. This clearly states when this tool is appropriate versus count_features, though it does not explain when overpass_query or find_nearby would be better alternatives.

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

find_nearbyFind features near a pointA
Read-only

Find OpenStreetMap features matching tag filters within a radius of a point. Returns up to 'limit' elements with their tags and a centre coordinate. Good first tool for questions like 'what cafes are near X'. For larger or unknown result sets, call count_features first.

ParametersJSON Schema
NameRequiredDescriptionDefault
latYesLatitude of the centre point
lonYesLongitude of the centre point
tagsYesOpenStreetMap tag filters, all must match. Use "*" as the value to match any value, e.g. {"amenity": "cafe"} or {"opening_hours": "*"}.
limitNoMaximum elements to return (default 25)
radius_mNoSearch radius in metres (default 500)

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, covering the safety profile. The description adds that it returns up to 'limit' elements with tags and a centre coordinate, giving a basic idea of the response shape. It lacks details on ordering, distance fields, or other response metadata, which is a moderate gap given no output schema is present. This is adequate but not rich.

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 three concise sentences with zero waste. The first sentence states the core function, the second gives the return shape, and the third provides a usage routing hint. It is front-loaded with the essential information and well-structured.

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

Completeness4/5

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

Given the tool has no output schema and a nested tags object, the description provides the essential purpose, return shape, and a usage hint. It is mostly complete for calling the tool, though the phrase 'centre coordinate' is slightly ambiguous and it does not mention result ordering. Overall, it is adequate for a simple proximity query tool.

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

Parameters3/5

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

Schema description coverage is 100%, so the input schema fully documents all five parameters including their types, ranges, and defaults. The description mentions tag filters and the limit but does not add new syntax or format details beyond what the schema already provides. Baseline 3 is therefore appropriate.

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

Purpose4/5

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

The description clearly states the verb 'Find', the resource 'OpenStreetMap features', and the constraints 'matching tag filters within a radius of a point'. It also mentions the return of up to 'limit' elements with tags and a centre coordinate. While it positions itself as a good first tool for proximity queries, it does not explicitly differentiate from sibling tools like overpass_query or features_in_bbox, so it falls slightly short of the top score.

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 explicit routing to count_features for larger or unknown result sets, which is a clear when-not and alternative. It also gives a concrete example use case ('what cafes are near X'). However, it does not discuss when to choose overpass_query or features_in_bbox, so the guidance is partial rather than comprehensive.

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

get_usageCheck Overspan usage and limitsA
Read-only

Check this API key's tier, its limits, month-to-date quota, and recent request history. Does not consume query quota. Use it to pace yourself when running many queries.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

The annotation readOnlyHint=true already signals no mutation, and the description adds the valuable detail that the call does not consume query quota. This is meaningful behavioral context beyond what annotations alone provide.

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?

Two tight sentences, every clause earns its place. The main purpose is front-loaded, and the critical non-consumption fact plus usage guidance follow without bloat.

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?

For a zero-parameter read-only tool, the description fully covers what the agent needs: what it returns, that it has no quota cost, and when to invoke it. No output schema is required to make this callable.

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?

There are zero parameters, so there is nothing for the description to document. The description instead clarifies what information the tool reports, which covers the semantic gap completely.

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 names a specific resource ('this API key') and exactly what gets checked: tier, limits, month-to-date quota, and request history. This clearly distinguishes it from sibling query tools like overpass_query or find_nearby.

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?

It explicitly says to use it to pace yourself when running many queries. It doesn't state exclusions or alternatives, but the use case is clear and no sibling competes for this role.

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

overpass_queryRun raw Overpass QLA
Read-only

Run a raw Overpass QL query against the Overspan hosted Overpass API (full-planet OpenStreetMap data, minutes behind live). Use this when the helper tools are too narrow. Always bound the query to an area and cap the output (for example: out center 25;). Start with [out:json]. Queries without [timeout:] get 25 seconds. Read the overspan://overpass-ql resource for syntax and the overspan://differences resource for how this server differs from the public ones.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesA complete Overpass QL query, e.g. [out:json][timeout:25];nwr[amenity=cafe](around:500,-36.85,174.76);out center 25;

TDQS

A4.9/5.0
Behavior5/5

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

Beyond the readOnlyHint/openWorldHint annotations, it discloses that data is full-planet OSM 'minutes behind live,' that queries default to 25 seconds without [timeout:], and where to learn syntax and server differences. These details materially shape safe invocation.

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?

Four dense sentences carry high-value information with no filler. The most identifying action is front-loaded, followed by routing guidance and then concrete query construction rules.

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 one parameter, read-only semantics, and no output schema, the description covers what an agent needs to call the tool successfully: how to format the query, what the timeout behavior is, and pointers to authoritative references for syntax and server-specific differences.

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 single query parameter is already fully described in the schema with an example. The description adds extra meaning by emphasizing output caps, area bounding, and the [out:json] convention, which helps the agent construct valid queries rather than just knowing the parameter type.

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 opens with a specific verb and resource: 'Run a raw Overpass QL query against the Overspan hosted Overpass API.' It also distinguishes itself from the sibling helpers by saying to use it when 'the helper tools are too narrow,' making the tool's role clear.

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

Usage Guidelines5/5

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

It gives explicit when-to-use guidance ('Use this when the helper tools are too narrow') and concrete procedural requirements: bound the query to an area, cap output, start with [out:json], and be aware of the 25-second timeout default. This is unusually actionable.

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

TDQS

A4.2/5.0
Disambiguation4/5

find_nearby and features_in_bbox both fetch OSM features by location, but their radius-vs-bounding-box distinction is clearly explained and they cover different query shapes. overpass_query, count_features, and get_usage are each clearly separate from the helpers and from each other.

Naming Consistency3/5

Most names use lowercase snake_case, but the conventions vary: overpass_query and features_in_bbox are noun-like, while find_nearby, count_features, and get_usage are verb-led. None are confusing, but there is no single predictable verb_noun pattern across the set.

Tool Count5/5

Five tools is well-scoped for an Overpass API server: one raw query escape hatch, two standard spatial search helpers, a counting tool for sizing result sets, and a usage-monitoring tool. Each tool has a distinct role and none feel redundant.

Completeness5/5

The tool surface covers the core workflow well: count before pulling data, query by point or bounding box, and fall back to a raw Overpass query when helpers are too narrow. get_usage also covers the operational side of the hosted API, so there are no obvious dead ends.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

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/julesmaxxx/overspan-mcp'

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