地理空间数据服务接口

SkyFi MCP Server是一个为AI代理提供标准化接口的服务,用于无缝交互地理空间卫星图像数据,包括搜索、订购、监控和历史访问等功能。

  • by TylerPohn
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 TylerPohn/skyfi-mcp

使用说明

SkyFi MCP服务器

模型上下文协议(MCP)服务器实现,使AI代理能够与SkyFi的地理空间数据服务无缝交互。

概述

SkyFi MCP服务器为AI代理提供了一个标准化的接口,用于:

  • 探索和搜索地理空间卫星图像数据
  • 使用价格确认工作流下订单
  • 使用webhooks设置关注区域(AOI)监控
  • 访问以前的订单和任务历史记录
  • 与各种AI框架(Claude Code、LangChain、AI SDK)集成

特性

  • 会话工作流程:用于复杂地理空间任务的自然语言交互
  • 价格确认:多步下单,定价透明
  • AOI监测:自动通知感兴趣领域的新数据
  • 多框架支持:支持Claude Code、LangChain、Vercel AI SDK等
  • 类型安全:使用TypeScript 5+构建,启用严格模式
  • 生产准备就绪:全面的日志记录、错误处理和测试

先决条件

  • Node.js 18.0.0或更高版本
  • npm或pnpm包管理器
  • SkyFi API密钥(在这里买一个)

安装

本地设置

  1. 克隆存储库:
git clone https://github.com/skyfi/skyfi-mcp-server.git
cd skyfi-mcp-server
  1. 安装依赖项:
npm install
  1. 配置环境变量:
cp .env.example .env
# Edit .env and add your SKYFI_API_KEY
  1. 构建项目:
npm run build
  1. 启动服务器:
npm start

发展模式

在热重载的开发模式下运行服务器:

npm run dev

配置

可以使用环境变量配置服务器。复制 .env.example 到 .env 并配置:

# Required
SKYFI_API_KEY=your_api_key_here

# Optional
NODE_ENV=development
LOG_LEVEL=info
SKYFI_API_BASE_URL=https://api.skyfi.com/v1

用法

使用克劳德代码

通过添加到MCP配置中,配置Claude Code以使用SkyFi MCP服务器:

{
  "mcpServers": {
    "skyfi": {
      "url": "http://localhost:3000",
      "apiKey": "${SKYFI_API_KEY}"
    }
  }
}

与LangChain合作

from skyfi_mcp_client import SkyFiMCPClient

client = SkyFiMCPClient(server_url="http://localhost:3000")

使用AI SDK(Vercel)

import { SkyFiMCPClient } from '@skyfi/mcp-client';

const client = new SkyFiMCPClient({
  serverUrl: 'http://localhost:3000'
});

可用工具

MCP服务器公开了以下工具:

  • search_geospatial_data:搜索卫星图像和地理空间数据
  • check_order_feasibility:验证订单可行性并获取定价
  • place_order:订购地理空间数据
  • setup_monitoring:使用webhooks配置AOI监控
  • get_previous_orders:检索订单历史记录

看 API 文档 了解详细的工具规格。

发展

项目结构

skyfi-mcp/
├── src/
│   ├── server/          # Server configuration and setup
│   ├── tools/           # MCP tool handlers
│   ├── api/             # SkyFi API client
│   ├── types/           # TypeScript type definitions
│   └── index.ts         # Main entry point
├── tests/               # Test files
├── docs/                # Documentation
└── dist/                # Compiled output

可用脚本

  • npm run dev -使用热重新加载启动开发服务器
  • npm run build -为生产而建
  • npm start -启动生产服务器
  • npm test -运行测试套件
  • npm run lint -运行ESLint
  • npm run format -使用Prettier格式化代码
  • npm run typecheck -运行TypeScript类型检查

测试

运行测试套件:

npm test

在监视模式下运行测试:

npm run test:watch

生成覆盖率报告:

npm run test:coverage

代码质量

本项目使用:

  • TypeScript 具有严格的型号安全模式
  • ESLint 用于代码过滤
  • 更漂亮 用于代码格式化
  • 哈士奇 用于预提交挂钩
  • 玩笑 用于测试

代码质量检查在提交时通过预提交挂钩自动运行。

建筑

看 架构文档 详细的系统设计、组件架构和集成模式。

贡献

我们欢迎捐款!请看 贡献.md 作为指导方针。

开发工作流程

  1. 分叉存储库
  2. 创建要素分支(git checkout -b feature/amazing-feature)
  3. 进行更改
  4. 运行测试和梳理(npm test && npm run lint)
  5. 提交您的更改(git commit -m 'Add amazing feature')
  6. 推到您的分支(git push origin feature/amazing-feature)
  7. 打开拉取请求

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

支持

致谢


状态:该项目正在积极开发中。看 项目路线图 对于即将推出的功能。