内容
# 船舶API MCP服务器
[](https://github.com/vessel-api/vesselapi-mcp/actions/workflows/ci.yml)
[](https://www.npmjs.com/package/vesselapi-mcp)
[](https://www.npmjs.com/package/vesselapi-mcp)
[](LICENSE)
<a href="https://glama.ai/mcp/servers/@vessel-api/vessel-api-mcp-server">
<img width="380" height="200" src="https://glama.ai/mcp/servers/@vessel-api/vessel-api-mcp-server/badge" />
</a>
一个MCP(模型上下文协议)服务器,暴露来自[VesselAPI](https://vesselapi.com)的船舶数据,供Claude Desktop、Cursor、Windsurf和Claude Code等AI助手使用。
## 前置条件
1. 在[dashboard.vesselapi.com](https://dashboard.vesselapi.com)注册
2. 在仪表板中创建API令牌
3. 在下面的配置中使用令牌作为`VESSELAPI_API_KEY`
**资源**: [文档](https://vesselapi.com/docs) | [API浏览器](https://vesselapi.com/api-reference) | [仪表板](https://dashboard.vesselapi.com) | [联系支持](mailto:support@vesselapi.com)
## 功能
- **23种工具**,涵盖船舶、港口、位置搜索、排放和航海安全
- 船舶搜索、位置(单个和批量)、预计到达时间、分类、所有权、排放、检查和事故
- 港口搜索、详细信息、港口事件(到达/离开)和全球港口事件搜索
- 地理船舶搜索(边界框和半径)
- NAVTEX航海安全信息
- 手动分页控制API配额使用
## 主机部署
在[Fronteir AI](https://fronteir.ai/mcp/vessel-api-vesselapi-mcp)上提供托管部署。
## 快速开始
无需安装 — 只需使用`npx`配置您的AI客户端:
```json
{
"mcpServers": {
"vesselapi": {
"command": "npx",
"args": ["-y", "vesselapi-mcp"],
"env": {
"VESSELAPI_API_KEY": "您的API密钥"
}
}
}
}
```
## 配置
将上面的JSON添加到您的客户端配置文件中:
| 客户端 | 配置文件 |
|---|---|
| Claude Desktop | `~/Library/Application Support/Claude/claude_desktop_config.json`(macOS)或 `%APPDATA%\Claude\claude_desktop_config.json`(Windows) |
| Cursor | `.cursor/mcp.json` 或 `~/.cursor/mcp.json` |
| Claude Code | `.claude/settings.json` 或 `~/.claude/settings.json` |
| Windsurf | `~/.codeium/windsurf/mcp_config.json` |
## 工具
### 船舶工具
| 工具 | 描述 |
|---|---|
| `search_vessels` | 按名称、IMO、MMSI、旗帜、类型、呼号、建造年份、船级社或所有者搜索船舶 |
| `get_vessel` | 获取详细的船舶信息 |
| `get_vessel_position` | 获取当前的船舶位置(纬度/经度、速度、航向) |
| `get_vessel_eta` | 获取船舶的预计到达时间 |
| `get_vessel_classification` | 获取分类详细信息(船级社、调查、船体) |
| `get_vessel_ownership` | 获取所有权详细信息(所有者、经理、运营商) |
| `get_vessel_emissions` | 获取排放数据(CO2、燃料消耗) |
| `get_vessel_inspections` | 获取港口国控制检查 |
| `get_vessel_casualties` | 获取船舶事故记录 |
| `get_vessel_inspection_detail` | 获取特定检查的详细信息 |
| `get_vessel_positions_batch` | 获取多个船舶的位置(可选时间范围) |
### 港口工具
| 工具 | 描述 |
|---|---|
| `search_ports` | 按名称、国家、类型、规模、地区、海港规模或海港用途搜索港口 |
| `get_port` | 按UN/LOCODE获取港口详细信息 |
| `get_port_events` | 获取港口的到达/离开事件 |
| `get_port_events_by_vessel` | 获取船舶的港口事件 |
| `list_port_events` | 列出全球港口事件,过滤时间、国家、港口、船舶或事件类型 |
| `search_port_events_by_port` | 按港口名称搜索港口事件 |
| `search_port_events_by_vessel` | 按船舶名称搜索港口事件 |
| `get_vessel_last_port_event` | 获取船舶最近的港口事件 |
### 排放工具
| 工具 | 描述 |
|---|---|
| `list_emissions` | 列出全球船舶排放数据,可选年份过滤 |
### 位置工具
| 工具 | 描述 |
|---|---|
| `get_vessels_in_area` | 在边界框(可选时间范围)中找到船舶 |
| `get_vessels_in_radius` | 在某个点的半径范围内找到船舶(可选时间范围) |
### 安全工具
| 工具 | 描述 |
|---|---|
| `get_navtex_messages` | 获取NAVTEX航海安全信息 |
## 分页
所有列表端点都支持`limit`和`nextToken`参数进行手动分页。当存在更多结果时,响应中包含`nextToken` — 在下一次调用中传递它以获取下一页。
## 开发
```bash
git clone https://github.com/vessel-api/vesselapi-mcp.git
cd vesselapi-mcp
npm install
npm run build
```
```bash
npm run build # 构建服务器
npm run typecheck # 类型检查不产生输出
npm run clean # 删除构建产物
```
### 使用MCP检查器测试
```bash
VESSELAPI_API_KEY=您的密钥 npx @modelcontextprotocol/inspector node dist/index.js
```
## 许可证
MIT