Token导航 LogoToken导航

MCP Server · 地图位置

Curvature MCP

一个MCP服务器,将道路曲率分析项目作为工具提供给Claude等LLM,用于搜索最适合摩托车手和驾驶爱好者的弯曲道路。

stdio官方级别未说明来源级核验工具 4
PythonClaude位置天气

快速开始

作者 / 组织
GeorgeSmith-Sweeper
提供方
GeorgeSmith-Sweeper
运行时
Python

工具数量

4

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

1

仓库热度

收录来源

1 个

MCP World

选型结论

Curvature MCP 属于地图位置类 MCP Server,公开资料标注 4 个工具,通过stdio 本地进程接入,适配 Claude,有可以直接复制的安装命令;接入前先确认权限范围。

分类

地图位置

传输方式

stdio

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

安装命令

python3 -m venv mcp_server/venv

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Python,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 4 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

Curvature MCP服务器

暴露的MCP服务器 曲率 道路分析作为LLM的工具

MCP(模型上下文协议)服务器,使曲率道路分析项目可作为Claude等LLM的工具。使用自然语言为摩托车手和驾驶爱好者搜索最弯曲、最曲折的道路。

🏍️ 这是什么?

此MCP服务器允许Claude和其他LLM分析OpenStreetMap中的道路曲率数据。问以下问题:

  • *“找出佛蒙特州长度至少为15公里的十大最弯曲的道路”*
  • *“搜索曲率在500到1000之间的铺砌山路”*
  • *“获取佛蒙特州100号公路的详细信息”*

Claude将使用MCP工具加载数据、搜索道路并提供详细分析。

🎯 特性

  • 加载曲率数据 从已处理的msgpack文件
  • 搜索道路 按曲率分数、长度、曲面类型和名称
  • 获取详细的道路信息 包括分段、坐标和度量
  • 列出加载的数据集 跟踪可用的数据
  • 完全异步支持 通过适当的错误处理
  • 易于集成 使用Claude Code和Claude API

🚀 快速开始

先决条件

  • Python 3.8+
  • 曲率 OSM数据处理库
  • Claude Code CLI或Claude API访问

安装

  1. 克隆此存储库:
cd ~/Documents/Programming
git clone https://github.com/GeorgeSmith-Sweeper/curvature-mcp.git
cd curvature-mcp
  1. 设置虚拟环境并安装依赖项:
python3 -m venv mcp_server/venv
mcp_server/venv/bin/pip install -r mcp_server/requirements.txt
mcp_server/venv/bin/pip install osmium  # For processing OSM data
  1. 安装曲率库(用于数据处理):
cd ~/Documents/Programming
git clone https://github.com/adamfranco/curvature.git
cd curvature
pip install -e .

准备数据

下载并处理您所在地区的OpenStreetMap数据:

# Download OSM data (example: Vermont)
curl -L -o /tmp/vermont-latest.osm.pbf \
  https://download.geofabrik.de/north-america/us/vermont-latest.osm.pbf

# Process through curvature pipeline (requires curvature library)
cd ~/Documents/Programming/curvature
python bin/curvature-collect /tmp/vermont-latest.osm.pbf | \
  python bin/curvature-pp add_segments | \
  python bin/curvature-pp add_segment_length_and_radius | \
  python bin/curvature-pp add_segment_curvature | \
  python bin/curvature-pp roll_up_curvature | \
  python bin/curvature-pp roll_up_length > /tmp/vermont-latest.msgpack

其他数据来源:

  • 美国各州: https://download.geofabrik.de/north-america/us.html
  • 全球: https://download.geofabrik.de/

使用Claude代码

服务器已在中预先配置 .claude/mcp.json.简单地说:

  1. 在Claude Code中打开此项目
  2. MCP服务器将自动加载
  3. 让克劳德使用曲率工具!

示例提示:

Load the Vermont curvature data from /tmp/vermont-latest.msgpack

Find the top 10 curviest roads in Vermont

Search for roads with curvature over 500 and at least 20km long

Get details about Vermont Route 100

与Claude API一起使用

在您的Claude API代码中配置MCP服务器:

import anthropic

client = anthropic.Anthropic()

response = client.beta.messages.create(
    model="claude-opus-4-5",
    max_tokens=2000,
    messages=[{
        "role": "user",
        "content": "Find the curviest roads in Vermont over 15km long"
    }],
    mcp_servers=[{
        "type": "stdio",
        "command": "mcp_server/venv/bin/python",
        "args": ["-m", "mcp_server.server"],
        "env": {"PYTHONPATH": "."}
    }],
    tools=[{
        "type": "mcp_toolset",
        "mcp_server_name": "curvature"
    }],
    betas=["mcp-client-2025-11-20"]
)

🛠️ 可用工具

load_curvature_data

从msgpack文件加载已处理的曲率数据。

参数:

  • file_path (必需):.msgpack文件的绝对路径
  • data_id (可选):此数据集的标识符(默认值:“default”)

search_roads

搜索符合特定条件的道路。

参数:

  • data_id (可选):要搜索的数据集(默认值:“默认”)
  • min_curvature (可选):最小曲率分数
  • max_curvature (可选):最大曲率分数
  • min_length_km (可选):最小道路长度(km)
  • surface (可选):按表面类型过滤(例如“铺砌”、“沥青”)
  • name_contains (可选):按名称筛选(不区分大小写)
  • limit (可选):要返回的最大结果(默认值:20)

get_road_details

获取特定道路的详细信息。

参数:

  • data_id (可选):要搜索的数据集
  • road_id (可选):道路收集ID
  • name (可选):道路名称(可替代Road_id)

list_loaded_datasets

列出当前加载的所有曲率数据集及其统计信息。

📊 输出示例

正在加载数据:

{
  "status": "success",
  "data_id": "vermont",
  "collections_loaded": 134850,
  "statistics": {
    "total_collections": 134850,
    "average_curvature": 198.8,
    "max_curvature": 107938.1
  }
}

寻找弯曲的道路:

{
  "status": "success",
  "total_matches": 1021,
  "results": [
    {
      "name": "Vermont Route 100",
      "curvature": 8944.52,
      "length_km": 25.02,
      "length_mi": 15.55,
      "surface": "asphalt",
      "ways_count": 42
    }
  ]
}

🧪 测试

在没有MCP的情况下在本地测试工具:

# Test with data
PYTHONPATH=. mcp_server/venv/bin/python mcp_server/test_tools.py /tmp/vermont-latest.msgpack

# Test without data (basic functionality)
PYTHONPATH=. mcp_server/venv/bin/python mcp_server/test_tools.py

📁 项目结构

curvature-mcp/
├── .claude/
│   └── mcp.json           # Claude Code configuration
├── mcp_server/
│   ├── __init__.py        # Package init
│   ├── server.py          # Main MCP server (stdio transport)
│   ├── tools.py           # Tool definitions and implementations
│   ├── test_tools.py      # Local testing script
│   ├── requirements.txt   # Python dependencies
│   ├── venv/             # Virtual environment (gitignored)
│   └── README.md         # Detailed MCP server docs
├── README.md             # This file
├── .gitignore            # Git ignore rules
└── LICENSE               # License file

🔧 发展

添加新工具

  1. 在中创建新的工具类 mcp_server/tools.py:
class MyNewTool(CurvatureTool):
    def __init__(self):
        super().__init__(
            name="my_tool",
            description="What this tool does",
            input_schema={
                "type": "object",
                "properties": {
                    "param1": {"type": "string", "description": "..."}
                },
                "required": ["param1"]
            }
        )

    def _execute_sync(self, arguments: Dict[str, Any]) -> Dict[str, Any]:
        # Your implementation
        return {"status": "success", "result": "..."}
  1. 添加 ALL_TOOLS 列表
  2. 测试用 test_tools.py

业绩说明

  • 正在加载数据:快速(佛蒙特州317MB加载在几秒钟内)
  • 搜索:非常快(在内存中过滤134K+个集合)
  • 记忆:随数据集大小缩放(佛蒙特州约500MB RAM)

🤝 贡献

欢迎投稿!拜托:

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 彻底测试
  5. 提交拉取请求

📝 许可证

此项目遵循与 曲率 项目。

🙏 积分

🔗 链接

  • Curvature项目: https://github.com/adamfranco/curvature
  • MCP文件: https://modelcontextprotocol.io/
  • OpenStreetMap数据: https://download.geofabrik.de/
  • 克劳德代码: https://claude.com/claude-code

📧 支持

对于问题和疑问:

______________________________________________________________________

制作❤️ 适合摩托车手和驾驶爱好者

🤖 *生成于 克劳德代码*

工具与能力

工具数量

4

资源数量

0

提示词数量

0

能力标签

道路分析Python本地部署LLM工具OpenStreetMap摩托车路线驾驶路线

支持客户端

Claude

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

地址与坐标转换

把地址转成经纬度,或按坐标反查位置。

路线与距离

算行程时间、规划多点路线。

天气与出行

查天气和预警,按条件安排行程。

选择建议

值得选的地方

  • 只提供 4 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 Python,换机器要重新装一遍。
  • 公开摘要偏短,具体能力和限制要回到仓库确认。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在地图位置场景里让模型直接调用外部能力的人。
  • 已经在用 Claude 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Curvature MCP

MCP World · 本页

4stdio有1 个2026-05-17
Baidu Maps

MCP World

10stdio有1 个2026-05-17
MCP Server C2f246e3

MCP World

20stdio有1 个2026-05-17
OpenStreetMap MCP Server

MCP.so

12stdio有3 个2026-05-17
Google Maps (google-maps-aa2563d3)

MCP World

7未说明未标注1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Curvature MCP 怎么安装?

公开资料给出的安装命令是 python3 -m venv mcp_server/venv,运行环境为 Python。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Curvature MCP 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Python;保存后完全退出客户端再打开,配置才会生效。

Curvature MCP 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Curvature MCP 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

Curvature MCP 支持哪些客户端?

公开资料标注支持 Claude;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP