Ambient数据获取服务

一个MCP(模型上下文协议)服务器,用于从Ambient平台获取最新数据或指定时间范围内的数据。

  • by hrfmtzk
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 hrfmtzk/ambient-mcp

使用说明

环境mcp

英语| 日本语

这是一个 MCP(模型上下文协议)服务器 用于从以下位置检索数据 环境. 您可以致电 get_data 从MCP客户端获取时间范围内的最新值或数据的工具。

注意:此服务器使用环境API v2。

快速开始

该包尚未在PyPI上发布,因此请通过以下方式运行它 uvx 使用Git存储库。

uvx git+https://github.com/hrfmtzk/ambient-mcp

传输配置

有三种传输协议可用。使用 --transport (或 MCP_TRANSPORT 环境变量)以选择一个。

运输 描述 默认
stdio 标准I/O--用于将服务器作为子进程生成的MCP客户端 ✅
streamable-http 流式HTTP——建议用于网络可访问的服务器
sse 服务器发送事件--旧HTTP传输

对于 sse 和 streamable-http,您还可以配置 --host (环境: MCP_HOST,默认值: 127.0.0.1)以及 --port (环境: MCP_PORT,默认值: 8000).

# Start with streamable-http, bind to all interfaces
ambient-mcp --transport streamable-http --host 0.0.0.0 --port 8000

# Same using environment variables
MCP_TRANSPORT=streamable-http MCP_HOST=0.0.0.0 MCP_PORT=8000 ambient-mcp

MCP客户端配置示例

stdio(子进程)

使用 uvx 作为命令并传递Git存储库 args.

{
  "mcpServers": {
    "ambient": {
      "command": "uvx",
      "args": ["git+https://github.com/hrfmtzk/ambient-mcp"]
    }
  }
}

可流式传输的http(网络)

单独启动服务器,然后将MCP客户端指向其URL。

{
  "mcpServers": {
    "ambient": {
      "type": "streamable-http",
      "url": "http://127.0.0.1:8000/mcp"
    }
  }
}

sse(网络,传统)

{
  "mcpServers": {
    "ambient": {
      "type": "sse",
      "url": "http://127.0.0.1:8000/sse"
    }
  }
}

先决条件

从Ambient准备以下信息:

  • 频道ID
  • 读取密钥

工具

get_data

使用以下方法之一获取环境项:

  • 时间范围: from 和 to
  • 最新项目: n 和 skip (skip 是可选的)

输入参数

名称 类型 必填 描述
read_key string ✅ 环境读取键
channel_id 编号 ✅ 目标通道ID
from string(RFC 3339) 条件 开始时间(与 to)
to string(RFC 3339) 条件 结束时间(与 from)
n number 条件 要获取的最新项目数(1–1095000)
skip number 可选 要跳过的项目(必需 n)
fields string[] 可选 要检索的字段名(如果省略,则为所有字段)

您不能合并 from/to 随着 n/skip.

示例:时间范围

{
  "read_key": "YOUR_READ_KEY",
  "channel_id": 12345,
  "from": "2024-01-01T00:00:00Z",
  "to": "2024-01-02T00:00:00Z"
}

示例:最新N个项目

{
  "read_key": "YOUR_READ_KEY",
  "channel_id": 12345,
  "n": 10,
  "skip": 0
}

输出

成功后,工具返回 field_labels 和 items.

{
  "field_labels": {
    "d1": "Temperature",
    "d2": "Humidity"
  },
  "items": [
    {
      "created": "2024-01-01T00:00:00Z",
      "d1": 23.4,
      "d2": 45.1
    }
  ]
}

错误

如果失败,工具将返回:

{
  "category": "validation",
  "message": "Human-readable error message"
}

可能的 category 值:

  • validation
  • forbidden
  • not_found
  • rate_limited
  • upstream

开发者笔记

设置

uv sync

测试

uv run pytest

棉绒/格式

uv run ruff check src tests
uv run ruff format src tests
uv run mypy src tests