内容
# GeoFS MCP Server
一个用于GeoFS飞行模拟器的模型上下文协议(Model Context Protocol,MCP)服务器,允许AI模型控制和与GeoFS基于浏览器的飞行模拟器中的飞机进行交互。



## 特性
- 🛫 控制飞机飞行参数(油门、航向等)
- 📊 访问实时飞行数据(位置、速度、姿态)
- 🗺️ 在航路点和机场之间导航
- ✈️ 选择不同的飞机模型
- 🔄 执行飞行机动(起飞、着陆)
## 先决条件
- Node.js(v14或更高版本)
- npm或yarn
- 现代网页浏览器(推荐使用Chrome)
## 安装
1. 克隆此仓库:
```
git clone https://github.com/yourusername/geofs-mcp-server.git
cd geofs-mcp-server
```
2. 安装依赖:
```
npm install
```
3. 构建项目:
```
npm run build
```
## 使用
### 启动服务器
1. 启动MCP服务器:
```
npm start
```
2. 服务器将启动一个浏览器窗口并导航到GeoFS
- 如果需要,您可能需要登录GeoFS
- 服务器将在GeoFS完全加载后才会接受命令
3. MCP服务器将可在以下地址访问:
- HTTP: `http://localhost:3000`
- WebSocket: `ws://localhost:3000`
### 与AI模型一起使用
此MCP服务器可以与支持模型上下文协议的AI模型一起使用,使它们能够:
1. 控制模拟器中的飞机
2. 检索飞行数据和模拟器状态
3. 执行复杂的飞行机动
4. 规划和跟随飞行路线
### API端点
- `GET /mcp` - 获取服务器能力和可用端点
- `GET /mcp/aircraft` - 获取当前飞机数据
- `POST /mcp/aircraft` - 控制飞机参数
- `GET /mcp/flight-data` - 获取全面的飞行数据
- `POST /mcp/navigation` - 设置导航参数
- `GET /mcp/simulation` - 获取模拟状态
- `POST /mcp/simulation` - 控制模拟参数
### WebSocket命令
服务器还支持WebSocket进行实时通信:
```javascript
// 示例WebSocket消息
{
"id": 1,
"type": "command",
"command": "setThrottle",
"params": {
"value": 0.75
}
}
```
可用命令:
- `setThrottle` - 设置引擎油门(0-1)
- `setHeading` - 设置目标航向(以度为单位)
- `getPosition` - 获取当前飞机位置
- `selectAircraft` - 更换为不同的飞机
- `takeOff` - 执行起飞程序
- `land` - 执行着陆程序
- `getFlightData` - 获取全面的飞行数据
## 示例客户端
请查看`examples/simple-client.js`文件,了解如何连接和使用GeoFS MCP服务器的基本示例。
运行示例:
```
node examples/simple-client.js
```
## 工作原理
GeoFS MCP服务器使用Puppeteer控制运行GeoFS的浏览器实例。它提供了一个标准化的MCP接口,使AI模型能够通过HTTP和WebSocket API与飞行模拟器进行交互。
## 贡献
欢迎贡献!请随时提交Pull Request。
## 许可证
本项目根据MIT许可证授权 - 详细信息请参见LICENSE文件。
## 致谢
- [GeoFS](https://www.geo-fs.com/) - 基于浏览器的飞行模拟器
- [Model Context Protocol](https://github.com/modelcontextprotocol/mcp) - AI模型上下文的协议规范