mcpField
A
AI SENSE Free Public Tools

AI SENSE Free Public Tools

远程服务
github.com/aisenseapiAI 与智能体0今天更新
代码仓库

关于 AI SENSE Free Public Tools

AI SENSE Free Public Tools 汇集面向 Agent 工作流和常见用途的公共 REST API 与 MCP 工具。它支持队列、租约、心跳、收件箱和人工审批等协作任务,无需账户或 API 密钥。

主要功能

  1. 01心跳监测及漏报后的操作
  2. 02用于协调共享任务的租约
  3. 03临时 JSON 任务队列
  4. 04Agent 收件箱与人工审批
  5. 05Webhook 捕获及实用端点

适用场景

  1. 01发现工作进程停止签到
  2. 02避免多个工作进程认领同一任务
  3. 03在生产者和工作进程间传递小型 JSON 任务
  4. 04收集人工审批所需的信息

MCP 相关

https://aisenseapi.com/mcp 上的 MCP 服务提供心跳、租约、队列、Agent 收件箱、人工审批、Webhook 捕获、临时存储、URL 缩短、时间和 UUID 等工作流工具,无需账户或 API 密钥。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://aisenseapi.com/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

66
参数类型必填说明
timezonestring否IANA 时区或 UTC 偏移量,例如 Europe/Oslo 或 +02:00。

详细介绍

免费公共 REST API - AI SENSE AS

无需 API 密钥 | 无需注册 | 完全免费

由 AI SENSE AS(挪威奥斯陆)提供。 完整端点参考: API.md | 仓库:github.com/aisenseapi/aisense-free-public-rest-apis

基础 URL: https://aisenseapi.com/services/v1/

免费公共 MCP 端点

AI SENSE MCP 服务位于:

https://aisenseapi.com/mcp

AI SENSE MCP 服务涵盖 Heartbeat、Lease、Agent Wake 任务、Agent Inbox、人类审批、Webhook 捕获、临时存储、URL 缩短、时间和 UUID。无需账户或 API 密钥。Heartbeat 使用 create_heartbeat、read_heartbeat 和 ping_heartbeat。Lease 使用 create_lease_namespace、acquire_lease、renew_lease、release_lease 和 complete_lease。Agent Inbox 使用 create_agent_inbox 和 read_agent_inbox。有关工具列表、数据边界和客户端示例,请参阅 MCP.md。

Agent Queue 工具使用创建时签发的独立读取、写入和工作者令牌。语义搜索工具也以相同方式使用读取令牌和写入令牌。

先阅读 AGENT-GUIDE.md 选择工具,然后阅读 AGENT-QUICKSTART.md,了解完整的 Queue 工作流和重试决策。

服务报告的版本为 1.13.1。除了 AIQ、ip_datetime 和 ping 仍通过 REST 提供外,它将工作流工具和以下 REST 实用端点作为工具提供。官方 MCP Registry 将 com.aisenseapi/free-public-tools 版本 1.13.1 列为活跃且最新,发布时间为 2026 年 10 月 6 日 14:05 UTC。

aamio 有自己的 MCP 端点:https://aamio.at/mcp,提供 11 个用于临时 Agent 会合的工具:一个带有秘密读取密钥和公开写入地址的线程、一份即使线程失效后仍然有效的哈希收据、在线状态,以及位于 https://board.aamio.at/ 的开放需求与供给看板。无需账户或 API 密钥。官方 MCP Registry 将其列为 at.aamio/aamio。AI SENSE 端点也不会代理这些工具。

Verifyum 有自己的专用 MCP 端点,位于 https://api.verifyum.com/mcp。它提供三项 Verifyum 证明操作,无需账户或 API 密钥。文件哈希仍在 Agent 的设备上计算。浏览器流程、公共 HTTP API 和已发布协议仍可使用。官方 MCP Registry 将其列为 com.verifyum/mcp 版本 0.1.0。已最终确定的证明也会加入 Verifyum Witness Layer 中的每小时和每日 Merkle 检查点。每项已最终确定的证明周围都有九条记录。

层级记录
主要证据每项证明对应一笔已最终确定的 Solana Mainnet Memo 交易
独立佐证每小时写入 Bitcoin 的 OpenTimestamps、每日合格欧盟时间戳、每日由见证方共同签名的 Sigsum,以及每日 Certificate Transparency 证书
运营方记录与可用性冗余Verifyum Ed25519 签名、GitHub 检查点日志、Software Heritage 和 Internet Archive

Solana 交易是主要证据。深度查询 Solana 历史记录通常需要使用归档服务提供商。Glasklar、Mullvad 和 Tillitis 共同签署 Sigsum 摘要,三方中满足两方即构成法定人数。合格时间戳使用 RFC 3161。其 eIDAS 第 41(2) 条推定效力仅适用于每日检查点根。Verifyum 用户证明不是合格电子时间戳。Verifyum 不是合格信任服务。Software Heritage 和 Internet Archive 显示存储的内容,但不能证明原始文件何时存在。渠道数量不代表质量评分。

每项已最终确定的证明也会在 Telegram 和 Atom 源中发布公告。这些是公告渠道,不计入九条证据记录。其时间戳记录的是公告时间,与原始文件日期无关。

Agent 也可以在本地根据其指令、提示词、模型、参数、工具调用和输出整理一份决策记录,然后仅锚定其承诺。该证明可表明这份确切记录在区块时间时已存在且未被更改,但不能证明模型确实按照记录的设置运行过。


免费公开的 Agent2Agent(A2A)端点

使用 Agent2Agent 的 Agent 可通过以下地址访问其中五项功能:

https://aisenseapi.com/a2a

JSON-RPC 2.0,协议修订版 1.0,无需账户和 API 密钥。Agent 卡片可通过 https://aisenseapi.com/.well-known/agent-card.json 直接 GET 获取。

A2A 是用于将工作委派给另一个 Agent 的协议。MCP 是用于公开工具的协议。本服务的大部分功能都是工具,因此只有五项任务型功能通过 A2A 提供:agent-wake、human-approval、agent-inbox、webhook-capture 和 agent-queue。其他工具无法通过它访问。MCP 仍是功能更丰富的工作流接口,并有自己的工具架构。通过 A2A,队列技能会创建队列并返回其三个角色令牌;入队、认领和确认操作仍通过 REST 和 MCP 完成。

A2A 不会在传输内容中指定技能 ID,因此调用方需在消息的数据部分命名技能,例如 {"skill": "agent-wake", "arguments": { ... }}。这是本服务文档说明的一种约定,并非协议定义的字段;不包含该字段的消息会被拒绝。卡片将 streaming 和 pushNotifications 声明为 false,因此这些方法会返回 -32004 和 -32003。ListTasks 会返回一个空页,因为没有人经过身份验证,而任务 ID 是唯一的凭据。有关技能、任务状态、响应格式和错误代码,请参阅 API.md。


SpeedUp(.su)——正确测量令牌成本

所有面向大模型输入宣传的序列化格式,都会声称能节省令牌,而这些说法都是基于单一分词器测得的。Agent 流量会跨越不同供应商,因此我们没有凭假设行事,而是进行了测量:六种格式、33 个单一结构探测样本,按五类词表计价(OpenAI o200k、DeepSeek、Qwen、SentencePiece、Tekken),并以各供应商自己的令牌计数器作为真实基准。

  • SU-PROFILE.md - SpeedUp 配置文件:面向 Agent 间文本的八项写作约定,每项均附有测得的成本
  • speedup/ - 测量工具(仅使用 Python 标准库)、语料库、探测样本和原始数据;使用你自己的密钥重新运行全部测量
  • 研究报告 - 哪些做法经受住了测量,哪些没有,以及我们为何决定暂不推出另一种格式

关键数据:在五类词表的合并结果中,纯文本 TSV 的平均令牌数为精简 JSON 的 0.82 倍,并且在每个模型上的表现都优于面向令牌的格式;仅需声明一次列名并按位置发送值(每个键值对减少 34%);base64 的成本是其所编码明文的 3.9-4.6 倍;在五类词表中有四类,单字母键字典的表现都不如完整键名。


为什么要做这个项目

大多数实用 API 都要求注册、使用分级速率限制,或对基本操作收费。这个集合省去了所有这些步骤。将 URL 放入 curl、Python、JavaScript 或大模型工具定义中,即可直接使用。

该集合涵盖两类实用功能:

  • 工作流端点 - 用于解决管道和 Agent 系统中实际问题的端点
  • 标准实用工具 - 哈希、编码、UUID、时间、加密等基础构件

编写客户端前需要了解的三件事

这些规则适用于整个服务,并决定了你需要如何处理错误。

响应键以端点命名。 /md5_hash 返回 md5_hash,/random_color 返回 random_color,/ping 返回 ping。没有通用的 data 或 result 包装层。不要猜测键名—— API.md 列出了所有键名。

错误通常以非 2xx HTTP 状态码返回,格式为 {"error": "message"}。 请同时检查状态码和 error 字段。旧版钱包生成处理程序可能会以 HTTP 200 返回错误对象。工作流端点使用非 2xx 状态码,包括冲突时的 409,以及记录已过期但尚未删除时的 410。记录删除后,同一 ID 会返回 404。未知路由也会返回 404。各端点的其他错误请参阅对应说明。

速率限制为每个 IP 每天 5000 次请求。 超出限制时会返回 HTTP 429,错误格式与其他错误一样,采用扁平结构。计数会在 3 月下旬至 10 月下旬的 UTC 22:00 重置,其余时间在 UTC 23:00 重置(挪威当地时间午夜,时区为 Europe/Oslo),429 响应中会携带 Retry-After,值为距重置的秒数。


高价值端点

心跳 - 了解工作进程何时停止报到

创建监控时,设置预期报到间隔、宽限期,以及错过截止时间时执行的一项操作。该操作可以向公开 Webhook 发送 POST 请求,也可以唤醒现有的 Agent Wake Webhook 任务。

curl -X POST https://aisenseapi.com/services/v1/heartbeat \
  -H "Content-Type: application/json" \
  -d '{
    "expect_every_seconds": 300,
    "grace_seconds": 60,
    "on_miss": {
      "url": "https://example.com/agent-offline",
      "payload": { "agent": "worker-7" }
    }
  }'

响应会提供无法猜测的 heartbeat_id、ping_url 和 status_url。每次成功完成一个周期后,都要向 ping URL 发送 POST 请求。 每次 ping 都会更新预期截止时间,但不会延长固定的 24 小时有效期。错过截止时间时只会触发一次,不会重试。

MCP 客户端可以使用 create_heartbeat、read_heartbeat 和 ping_heartbeat 来管理相同的状态。

Webhook 目标地址在创建时和投递时都会进行 SSRF 检查。私有和保留地址、URL 凭据、片段和重定向均会被拦截。 状态和响应字段详见 API.md。


租约 - 为共享 Agent 工作选出唯一胜出者

Lease 无需账户即可协调工作进程。先生成一个私有命名空间,然后在短时间内认领一个键:

curl -X POST https://aisenseapi.com/services/v1/lease/namespace \
  -H "Content-Type: application/json" -d '{}'

curl -X POST https://aisenseapi.com/services/v1/lease \
  -H "Content-Type: application/json" \
  -d '{
    "namespace": "ns_...",
    "key": "invoice:2026-09-05",
    "ttl_seconds": 60,
    "fingerprint": "charge-order-501"
  }'

胜出者会收到 owner_token 和单调递增的 fencing_token。租约有效期间,第二个工作进程会收到 HTTP 409。所有者可以续租、释放租约,或使用 JSON 结果完成租约。之后使用相同键和指纹的调用方可以复用该完成结果。

租约在首次获取后的 24 小时会固定到期。续租不能延长此期限。原始键、命名空间、所有者令牌和指纹都不会被存储。完整的获取和完成流程详见 API.md。

对应的 MCP 工具有 create_lease_namespace、acquire_lease、 renew_lease、release_lease 和 complete_lease。


Agent Queue - 共享临时工作

Agent Queue 为生产者和工作者提供一个共享队列,用于存放小型 JSON 任务。

curl -X POST https://aisenseapi.com/services/v1/queue \
  -H "Content-Type: application/json" -d '{}'

curl -X POST https://aisenseapi.com/services/v1/queue/QUEUE_ID/jobs \
  -H "Authorization: Bearer WRITE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"job_key":"report:42","payload":{"report_id":42}}'

curl -X POST https://aisenseapi.com/services/v1/queue/QUEUE_ID/claim \
  -H "Authorization: Bearer WORKER_TOKEN" \
  -H "Content-Type: application/json" -d '{"visibility_timeout":60}'

将大写占位符替换为创建响应中的值。请保留这三个令牌:它们只会发放一次。领取操作会返回一个包含机密 receipt 的任务;若队列为空,则返回 job: null。工作者完成工作后,使用其工作者令牌将 {"receipt":"RECEIPT"} 发送到 /queue/QUEUE_ID/jobs/JOB_ID/ack。工作者也可以使用同一个 receipt 释放或续期活动领取。观察者使用读取令牌读取队列计数和单个任务。凭据应放在请求头中,切勿放在 URL 中。

队列及其每个任务都将在队列创建后恰好 24 小时过期。入队、领取、续期和完成操作都不会延长此期限。限制包括:队列生命周期内最多 100 个不同任务,每个任务的编码 JSON 不超过 16 KiB,最多尝试领取 5 次,以及每个客户端 IP 每 24 小时最多创建 20 个新队列。可见时长为 30 至 900 秒,默认值为 60 秒。重复提交相同任务键和载荷时,会返回现有任务。载荷发生变化时,则会产生冲突。

领取过期或释放后,任务可能会再次投递。队列过期和尝试次数上限可能导致任务未完成。无法保证首次投递或恰好执行一次。请确保外部操作具备幂等性。该服务仅保存队列状态,不会运行任务、获取 URL 或发送回调。

MCP 客户端使用这八个队列工具。A2A 客户端指定 agent-queue 技能,该技能会创建队列并返回三个角色令牌;入队、领取和确认操作仍通过 REST 或 MCP 执行。

请参阅 Queue API 参考、 MCP 工具和 网站指南。


语义搜索 - 按含义查找较早的笔记

语义搜索会在集合中保存 Agent 的简短笔记,保存 24 小时,并跨越不同措辞和语言,按含义查找笔记。

curl https://aisenseapi.com/services/v1/semantic_search

curl -X POST https://aisenseapi.com/services/v1/semantic_search/COLLECTION_ID/notes \
  -H "Authorization: Bearer WRITE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"notes":[{"text":"Suspicious login attempts from many addresses on the admin page.","key":"incident:17"},{"text":"Mange mislykkede innlogginger mot adminsiden i natt."}]}'

curl -X POST https://aisenseapi.com/services/v1/semantic_search/COLLECTION_ID/search \
  -H "Authorization: Bearer READ_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"query":"brute force attack on the admin login"}'

创建操作会返回集合 ID,以及一个读取令牌和一个写入令牌;令牌只显示一次。默认模型为 bge-m3。向 /semantic_search 发送 POST 请求 {"model":"qwen3-embedding-4b"},即可使用另一个模型。搜索结果会按排名返回建议,其中包含 note_id、key、text 和 score,但不会判定是否存在匹配项。score 是余弦相似度,再加上搜索内容和笔记中每个共有标识符(例如 DEMO-57)或金额对应的 0.1;它不是概率。

集合将在创建后恰好 24 小时过期。限制包括:集合生命周期内最多 500 条笔记,每条笔记最多 2000 个字符,每个客户端 IP 每 24 小时最多创建 20 个新集合;每个 IP 每分钟最多进行 60 次搜索或添加操作,每个 UTC 日最多进行 1000 次。请勿在笔记中存放机密和敏感个人数据。

Agent Wake - 在外部事件发生后恢复

创建一个任务,等待 webhook、人类回复或指定时间。MCP 客户端使用当前 Tasks 扩展并轮询 tasks/get。REST 客户端使用 POST /agent_wake 和返回的状态 URL。A2A 客户端指定 agent-wake 技能并轮询 GetTask;这是唯一会返回 A2A Task 而非 Message 的技能。

{ "event_type": "webhook", "timeout_seconds": 3600 }

结果包含一个无法猜测的任务 ID 和唤醒 URL。向该 URL 发送的第一个请求会完成任务。人类任务会创建一个托管表单。时间任务会在所选时间戳之后的首次读取时完成。每个任务会在 60 秒至 24 小时内过期。

REST 客户端可以使用 GET /agent_wake/{task_id}/wait/{seconds} 等待任务进入终止状态。最后一个值接受 0 到 25。

有关任务流程,请参阅 MCP.md;有关 REST 调用和 A2A 技能,请参阅 API.md。


Webhook Action - Agent 的人在回路流程

这是 AI 和自动化工作中最突出的端点。当自动化流水线需要人工决策才能继续时,它可以处理整个流程,无需任何后端设置。

工作原理:

  1. POST 一个表单定义(单选按钮、下拉菜单、文本字段、复选框)
  2. 获取 form_url、result_url 和 wait_url
  3. 通过电子邮件或 Slack 将 form_url 发送给人工
  4. 读取 result_url,或使用 wait_url 等待,最长 25 秒
curl -X POST https://aisenseapi.com/services/v1/webhook_action \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Approve deployment to production?",
    "fields": [
      {
        "type": "radio",
        "name": "decision",
        "label": "Decision",
        "required": true,
        "options": [
          { "value": "approve", "label": "Approve" },
          { "value": "reject", "label": "Reject" }
        ]
      },
      { "type": "textarea", "name": "comment", "label": "Notes (optional)" }
    ]
  }'
{
  "ok": true,
  "action_id": "9e0e6d3b-1a45-44c5-9e0b-92f5f3bdb2f1",
  "form_url": "https://aisenseapi.com/services/v1/webhook_action/9e0e6d3b-.../form",
  "result_url": "https://aisenseapi.com/services/v1/webhook_action/9e0e6d3b-...",
  "wait_url": "https://aisenseapi.com/services/v1/webhook_action/9e0e6d3b-.../wait/25",
  "expire_timestamp": 1786959912,
  "expire_datetime": "2026-08-17T09:45:12Z"
}

轮询获取答案:

curl https://aisenseapi.com/services/v1/webhook_action/{action_id}
# "status": "pending" -> "answered", with the submission under "response"

字段类型:radio、select、text、textarea、checkbox。options 可接受普通字符串或 {"value": ..., "label": ...} 对象。24 小时后过期。

添加 2 到 20 个 respondents,即可生成单独的一次性表单链接。结果随后会依次处于 pending、partial 和 answered 状态,并包含答案数量、统计结果和各项回复。需要一个指向结果、但不包含答案的完成通知时,可添加 notify_url。

MCP 客户端使用 create_human_approval 和 read_human_approval。A2A 客户端指定 human-approval 技能,该技能会创建表单并返回其 URL;读取答案仍需通过 REST 或 MCP。


Webhook Capture - 检查任意传入的 HTTP 请求

创建一个捕获任务,获取唯一 URL,将任意外部服务(Stripe、GitHub、Shopify)指向该 URL,然后读取完整请求,包括方法、标头、查询参数、IP 和解析后的正文。无需 ngrok、无需本地隧道,也无需服务器。

# 1. Create a capture
curl -X POST https://aisenseapi.com/services/v1/webhook_capture
# -> { "status": "pending", "capture_id": "...", "update_url": "...", "read_url": "...", "wait_url": "..." }

# 2. Point your webhook sender at update_url, with any HTTP method
curl -X POST {update_url} -H "Content-Type: application/json" -d '{"event":"payment.created"}'

# 3. Wait up to 25 seconds for the first request
curl https://aisenseapi.com/services/v1/webhook_capture/{capture_id}/wait/25
{
  "ok": true,
  "capture_id": "6f8c9e52-...",
  "captured_at_timestamp": 1786873316,
  "captured_at_datetime": "2026-08-16T09:41:56Z",
  "request": {
    "method": "POST",
    "uri": "/services/v1/webhook_capture/6f8c9e52-.../update",
    "headers": { "content-type": "application/json" },
    "client_ip": "203.0.113.10",
    "body": { "json": { "event": "payment.created" }, "text": null, "base64": null, "raw_length": 28 }
  }
}

24 小时后过期。

第一个传入请求将被保留,之后的重试无法替换它。捕获的正文上限为 256 KB。创建请求的正文可包含 notify_url,用于发送一次完成通知。

MCP 客户端使用 create_webhook_capture 和 read_webhook_capture。A2A 客户端指定 webhook-capture 技能,该技能会创建捕获任务并返回其 URL;读取请求仍需通过 REST 或 MCP。


Agent Inbox - Agent 控制的一次性邮件地址

用于必须通过电子邮件接收内容的步骤:验证码、确认链接或注册邮件。创建收件箱,提供地址,再以清理后的文本形式读取邮件。无需账号或 API 密钥,最长有效期为 24 小时。

curl https://aisenseapi.com/services/v1/inbox
{
  "ok": true,
  "inbox_id": "a85d0bee-f8f7-4be1-a1b3-8d58f3dbdfc7",
  "slug": "ztjqt7n",
  "address": "[email protected]",
  "read_url": "https://aisenseapi.com/services/v1/inbox/a85d0bee-f8f7-4be1-a1b3-8d58f3dbdfc7",
  "wait_url": "https://aisenseapi.com/services/v1/inbox/a85d0bee-f8f7-4be1-a1b3-8d58f3dbdfc7/wait/25",
  "expire_timestamp": 1800086400
}

返回两个标识符,但它们不能互换。 slug 是地址中的七个字符。它天生是公开的:会出现在邮件头、退信和发件人日志中。任何人知道它都可以向收件箱发送邮件,但绝不能借此读取收件箱,而且它不会出现在 URL 中。inbox_id 是 UUID,也是唯一用于读取的凭据。持有它的任何人都能读取邮件,而且它只会在创建时返回一次。猜到地址并不能读取收件箱。错误的 inbox_id 和不存在的收件箱都会返回 404,绝不会返回 403,因此两者无法区分。

读取邮件,或最多等待 25 秒:

curl https://aisenseapi.com/services/v1/inbox/{inbox_id}
curl https://aisenseapi.com/services/v1/inbox/{inbox_id}/wait/25
{
  "ok": true,
  "slug": "ztjqt7n",
  "address": "[email protected]",
  "received": 1,
  "truncated": false,
  "messages": [
    {
      "from": "[email protected]",
      "subject": "Your verification code",
      "date": "2027-01-15T08:00:00Z",
      "text": "Your code is 481516. Confirm at https://example.com/confirm/abc",
      "codes": [ "481516" ],
      "links": [ "https://example.com/confirm/abc" ]
    }
  ],
  "created_at_timestamp": 1800000000,
  "expire_timestamp": 1800086400
}

读取响应不包含 inbox_id。该凭据绝不会在响应中回显。等待形式会在同一对象中添加 waited_seconds 和 wait_reason。超过 25 的值会限制为 25,与其他所有等待路由相同。

codes 是独立的 4 到 8 位数字。links 仅包含公开的 http(s) 链接;私有 IP 和 localhost 链接会被丢弃。date 是服务收到邮件的时间,而非发件人的 Date 标头,因为该标头由发件人控制。

truncated 表示邮件遭到拒收,无论是因为收件箱达到邮件数量上限还是总大小上限。收件箱满后会拒收新邮件,而不是删除旧邮件,因此如果没有这个标记,等待验证码的 Agent 会看到收件箱已满、没有验证码,也不知道原因。等待操作也会监视此标记以及邮件数量,因此邮件遭拒时会结束等待,而不会让调用方一直等到超时。

存储前会移除附件、原始 MIME、任意标头、脚本、样式、私有 IP 链接和 localhost 链接。只保留发件人地址、主题、接收时间、清理后的文本、验证码和公开链接。

限制:每个收件箱最多 20 封邮件,每封邮件的清理后文本最多 64 KiB,每个收件箱总计最多 256 KiB,每个客户端每天(UTC)最多创建 50 个收件箱,整个服务最多同时有 5000 个活跃收件箱。24 小时的有效期固定,无法延长。

MCP 客户端使用 create_agent_inbox 和 read_agent_inbox;后者的等待操作也会监视 truncated,并在达到上限导致邮件被拒时立即返回。A2A 客户端指定 agent-inbox 技能,该技能会创建收件箱并返回地址和 URL;读取邮件仍通过 REST 或 MCP 完成。


Storage - 用于流水线的临时键值存储

提交任意 JSON、文本或文件。返回一个 UUID。可从任何位置检索——另一台机器、不同的 Agent 调用,或下游流水线步骤。

请求正文会原样存储。 发送的内容会原样返回;不会添加或移除封装。

curl -X POST https://aisenseapi.com/services/v1/storage \
  -H "Content-Type: application/json" \
  -d '{"result": 42, "status": "complete"}'
# -> { "storage_id": "550e8400-e29b-41d4-a716-446655440000",
#      "storage_url": "https://aisenseapi.com/services/v1/storage/550e8400-e29b-41d4-a716-446655440000",
#      "sha256_hash": "...", "bytes": 36, "expire_timestamp": 1738457158 }

curl https://aisenseapi.com/services/v1/storage/550e8400-e29b-41d4-a716-446655440000
# -> {"result": 42, "status": "complete"}

24 小时后过期。可执行文件(Windows、Linux 和 Mac 程序,根据文件首字节判断)会被拒绝,并返回 415。每个 IP 每天最多可存储 80 MB;超过后,POST 请求会返回 429。存储的文件仅当为图片、音频、视频或 PDF 时才会以内嵌形式返回;其他所有文件(包括 SVG)都会作为下载返回。


URL Shortener
curl "https://aisenseapi.com/services/v1/url_shortener/https://example.com/very/long/path"
# -> { "short_url": "https://307.fi/KtNshX2B", "expire_timestamp": 1786959715 }

24 小时后过期。


IP Reverse Lookup
curl https://aisenseapi.com/services/v1/ip_reverse_lookup/8.8.8.8
{
  "ip": "8.8.8.8",
  "country": "United States",
  "city": null,
  "location": { "lat": "37.751000", "lng": "-97.822000" },
  "place": null,
  "timezone": "America/Chicago"
}

city 和 place 经常为 null;如果城市未知,坐标会回退到所在国家的质心。还可将域名解析为 IP。

curl https://aisenseapi.com/services/v1/domain_ip_lookup/example.com
# -> { "domain": "example.com", "ip": "104.20.23.154" }

标准工具

哈希 - MD5、SHA1、SHA256、SHA512、CRC32

接受 JSON、纯文本(Content-Type: text/plain)或文件上传。 每种算法返回的键名均为对应算法的名称,而不是 hash。

curl -X POST https://aisenseapi.com/services/v1/sha256_hash \
  -H "Content-Type: application/json" -d '{"data": "Hello"}'
# -> { "sha256_hash": "185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969" }

md5_hash | sha1_hash | sha256_hash | sha512_hash | crc32_checksum | whirlpool_hash | sha3_256_hash | sha3_512_hash | blake2b_hash | blake3_hash

crc32_checksum 返回整数,而不是十六进制字符串。

用于测试数据的密码哈希,计算速度较慢且带盐,每个 IP 每天可进行 200 次操作:argon2id_hash | bcrypt_hash | scrypt_hash,使用 password_verify 验证;它会从字符串中读取算法和成本。


编码 - Base64、Base58、Base32、Hex、base64url、URL、HTML、JWT、QR 码
# Encode
curl -X POST https://aisenseapi.com/services/v1/base64_encode \
  -H "Content-Type: application/json" -d '{"data": "Hello world"}'
# -> { "base64_encoded_data": "SGVsbG8gd29ybGQ=" }

# Decode - returns the raw bytes, not JSON
curl -X POST https://aisenseapi.com/services/v1/base64_decode \
  -H "Content-Type: application/json" -d '{"data": "SGVsbG8gd29ybGQ="}'
# -> Hello world

# ...unless you ask for JSON
curl -X POST https://aisenseapi.com/services/v1/base64_decode \
  -H "Content-Type: application/json" -H "Accept: application/json" \
  -d '{"data": "eyJrZXkiOiJ2YWx1ZSJ9"}'
# -> { "type": "json", "decoded_data": { "key": "value" } }

五种字节解码器(base64_decode、base58_decode、base32_decode、hex_decode、base64url_decode)除非收到 Accept: application/json,否则都会以 application/octet-stream 响应。这是 API 中唯一不返回 JSON 的地方。base64_decode、hex_decode 和 base64url_decode 也会以 text/plain 响应;如果收到它们无法处理的 Accept,则会返回 406。其他两种在 Accept 不是 JSON 时都会返回字节。

curl -X POST https://aisenseapi.com/services/v1/hex_encode \
  -H "Content-Type: application/json" -d '{"data": "hello"}'
# -> { "hex_encoded_data": "68656c6c6f" }

curl -X POST https://aisenseapi.com/services/v1/base64url_encode \
  -H "Content-Type: application/json" -d '{"data": "hello?"}'
# -> { "base64url_encoded_data": "aGVsbG8_" }   (- and _, no padding, as in a JWT)

curl -X POST https://aisenseapi.com/services/v1/url_encode \
  -H "Content-Type: application/json" -d '{"data": "a b/c?é"}'
# -> { "url_encoded_data": "a%20b%2Fc%3F%C3%A9" }

curl -X POST https://aisenseapi.com/services/v1/html_encode \
  -H "Content-Type: application/json" -d '{"data": "<b>Tom & Jerry</b>"}'
# -> { "html_encoded_data": "&lt;b&gt;Tom &amp; Jerry&lt;/b&gt;" }

url_decode 和 html_decode 返回 JSON,字段分别为 url_decoded_data 和 html_decoded_data,因为结果是文本。url_decode 会保留 +,不会将其转换。

HTML 和 Markdown。 html_to_markdown 会将页面或任意 HTML 转换为 CommonMark,并返回 markdown 和页面的 title,不包含脚本、样式或表单。markdown_to_html 会返回可安全放入页面的 html:Markdown 中的原始 HTML 会显示为文本,不安全协议的链接也会显示为文本。两者都接受 JSON 的 data 字符串或原始请求正文。

curl -X POST https://aisenseapi.com/services/v1/html_to_markdown \
  -H "Content-Type: application/json" -d '{"data": "<h1>Hi</h1><p>A <b>bold</b> word</p>"}'
# -> { "markdown": "# Hi\n\nA **bold** word", "title": null }

curl -X POST https://aisenseapi.com/services/v1/markdown_to_html \
  -H "Content-Type: application/json" -d '{"data": "**Bold** <b>raw</b>"}'
# -> { "html": "<p><strong>Bold</strong> &lt;b&gt;raw&lt;/b&gt;</p>" }

JWT - data 接受 JSON 对象形式的声明,或包含 JSON 的字符串。 两种形式生成的令牌相同。

curl -X POST https://aisenseapi.com/services/v1/jwt_encode \
  -H "Content-Type: application/json" \
  -d '{"data": {"user": "alice"}, "secret": "my-secret-key"}'
# -> { "jwt": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..." }

jwt_decode 返回 decoded_payload。

QR - 请求字段为 payload,也接受别名 data。

curl -X POST https://aisenseapi.com/services/v1/qrcode_encode \
  -H "Content-Type: application/json" -d '{"payload": "https://example.com"}'
# -> { "qrcode_image": "iVBORw0KGgoAAAANSUhEUgAA...", "image_type": "png" }

qrcode_decode 接受相同的 payload 字段(或文件上传),并返回 qrcode_content。上传的图像可以是 PNG、JPEG、GIF 或 WebP,大小最多为 10 MB。JSON 正文最多为 256 KiB,因此通过 payload 传输的图像大小约为 190 KB。


随机 - UUID、GUID、数字、颜色、密码
curl https://aisenseapi.com/services/v1/uuid            # { "uuid": "..." }
curl https://aisenseapi.com/services/v1/guid            # { "guid": "..." }
curl https://aisenseapi.com/services/v1/random_color    # { "random_color": "#9b6bbf" }
curl https://aisenseapi.com/services/v1/random_number/1/100
# -> { "random_number": 73, "range": { "from": 1, "to": 100 } }
curl https://aisenseapi.com/services/v1/password/16
# -> { "password": "jFehS]AKGx9wl[jp", "password_length": 16 }

random_number 只提供一个参数时,该参数为上限,下限固定为 1。


时间 - 日期时间、时间戳、时区
curl https://aisenseapi.com/services/v1/datetime            # UTC
curl https://aisenseapi.com/services/v1/datetime/+0200      # with offset
curl https://aisenseapi.com/services/v1/datetime/europe/oslo  # a zone by name, summer time included
curl https://aisenseapi.com/services/v1/ip_datetime         # the same, where your address is
curl https://aisenseapi.com/services/v1/timestamp
curl https://aisenseapi.com/services/v1/microtimestamp
curl https://aisenseapi.com/services/v1/timezones
curl https://aisenseapi.com/services/v1/swatchinternettime

偏移量为四位数字,可带正负号,例如 +0200、-0530、0100,也可使用带冒号的格式,例如 +02:00。仅包含小时的值(如 1)不是有效路由。像 europe/oslo 这样的时区名称不区分大小写,并会遵循夏令时,而固定偏移量不会。其响应包含当前生效的偏移量、标准偏移量、是否启用夏令时及其开始和结束时间,以及日期和周数。/ip_datetime[/{ip}] 会返回某个地址所在时区的相同信息;不提供地址时则返回调用者所在时区的信息。

worldtimeapi.org 的客户端在我们于 2026 年 10 月 3 日建立的每个连接都重置后,可在此处获取响应:/api/timezone/{zone} 对应 /datetime/{zone},/api/ip[/{address}] 对应 /ip_datetime[/{ip}],/api/timezone 对应 /timezones,以上均通过 HTTPS 返回 JSON。迁移对照表中包含详细信息。

/timezones 返回的是对象,而不是字符串: {"timezones": [{"timezone": "Europe/Oslo", "offset": "+0200"}, ...]}。


Web 工具 - Ping、运行状况、客户端 IP、用户代理
curl https://aisenseapi.com/services/v1/ping        # { "ping": "pong" }
curl https://aisenseapi.com/services/v1/health      # { "status": "ok", "microtimestamp": ... }
curl https://aisenseapi.com/services/v1/client_ip   # { "ip": "203.0.113.42" }
curl https://aisenseapi.com/services/v1/user_agent  # { "user_agent": "curl/8.5.0" }

加密货币 - 钱包生成与余额查询
curl https://aisenseapi.com/services/v1/solana/generate_new_wallet
curl https://aisenseapi.com/services/v1/bitcoin/generate_new_wallet
curl https://aisenseapi.com/services/v1/ethereum/generate_new_wallet

curl https://aisenseapi.com/services/v1/solana/balance/{address}
curl https://aisenseapi.com/services/v1/bitcoin/balance/{address}
curl https://aisenseapi.com/services/v1/ethereum/balance/{address}

这三个生成器都会返回 public_address(Bitcoin 还会返回 private_key_wif)。Ethereum 余额以字符串形式返回—— {"wallet": "0x...", "balance_eth": "6.634527787345637061", "balance_wei": "6634527787345637061"} ——因为 Wei 通常会超过 2^53,这是 JavaScript 客户端能够以 JSON 数字形式保留的最大整数。

钱包生成仅用于开发和测试。通过公共 HTTP 端点生成的密钥经过了你无法控制的网络。切勿向其转入资金。


随附的 JavaScript 和 Python 客户端分别封装了 Agent Queue 的八个方法,每个 MCP 工具对应一个;上面的原始 HTTP 示例展示了相同的调用。

按语言快速开始

curl

curl https://aisenseapi.com/services/v1/uuid

Python - 零依赖,仅使用标准库。

from aisense_api import AISenseAPI
api = AISenseAPI()

print(api.get_uuid()["uuid"])
print(api.hash_sha256("Hello")["sha256_hash"])
print(api.ip_reverse_lookup("8.8.8.8")["country"])

JavaScript - Node 18+ 或任何现代浏览器,使用原生 fetch。

import { AISenseAPI } from './aisense-api.js'
const api = new AISenseAPI()

console.log((await api.getUUID()).uuid)
console.log((await api.hashSHA256('Hello')).sha256_hash)
console.log((await api.ipReverseLookup('8.8.8.8')).country)

两个客户端都会返回解析后的响应,并且每个方法的文档字符串都会注明确切的响应键。路径不存在时,它们还会给出清晰的错误,而不会让调试回显导致 JSON 解析失败。它们涵盖了 API.md 中的所有端点,tools/check-sdk-coverage.py 会连同 openai-tools.json 一起检查覆盖情况。图像方法会以 multipart/form-data 上传文件,故障模拟器则会返回 API 发送的内容,而不是抛出错误。

大模型函数调用(OpenAI、Gemini、Mistral 等)

import json
from openai import OpenAI

with open("openai-tools.json") as f:
    tools = json.load(f)

client = OpenAI()
response = client.chat.completions.create(
    model="gpt-4o",
    tools=tools,
    messages=[{"role": "user", "content": "Generate a UUID and hash the word Hello with SHA256"}]
)

Claude - 随附 SKILL.md。将其添加到 Claude 的上下文中,它就会自动将这些 API 用作工具。


仓库内容

文件用途
API.md端点约定、源代码检查和带日期的生产环境观察记录
queue-openapi.jsonAgent Queue 的独立 OpenAPI 约定
MCP.md远程 MCP 服务、工具列表和客户端示例
AGENT-GUIDE.md所有 MCP 工具的权威精简指南
AGENT-QUICKSTART.md完整的 Queue 示例、工作器和重试决策
server.json官方 MCP Registry 的元数据
aisense_api.pyPython 客户端(仅使用标准库)
aisense-api.jsJavaScript ESM 客户端
openai-tools.jsonREST 函数调用目录,与 MCP 工具列表分开
SKILL.mdClaude 技能文件
test.sh对响应正文和状态码进行断言;失败时退出并返回 1(适合 CI)
tools/check-text.php提交前检查文档标点
tools/check-sdk-coverage.py当 API.md 中的端点未被客户端或 openai-tools.json 覆盖时失败
tools/check-sdk-requests.py使用本地桩运行两个客户端,并检查每个请求是否覆盖较新的端点
tools/pages/图像工具页面和 web/ 中三个图像指南的生成器

test.sh 不仅会对状态码进行断言,还会检查响应正文。正文才是最重要的部分:只检查状态码的测试套件会放过返回 200、但响应键错误的端点。


端点摘要

所有路径均相对于 https://aisenseapi.com/services/v1/。存储字段是 /storage 返回的键:storage_id、storage_url、sha256_hash、bytes 和 expire_timestamp。

类别端点方法响应键
时间/datetime[/{offset}]GETdatetime
时间/datetime/{zone}GETdatetime、timezone、abbreviation、utc_offset、dst、unixtime、raw_offset、dst_offset、dst_from、dst_until、day_of_week、day_of_year、week_number、utc_datetime
时间/ip_datetime[/{ip}]GETip,以及 /datetime/{zone} 的键
时间/timestampGETtimestamp
时间/microtimestampGETmicrotimestamp
时间/timezones[/{offset}]GETtimezones
时间/swatchinternettimeGETbeat、date
时间/timestamp_convertPOSTinput、detected、timestamp、datetime、rfc2822、utc_datetime
随机/random_number[/{from}[/{to}]]GETrandom_number、range
随机/random_colorGETrandom_color
随机/uuidGETuuid
随机/guidGETguid
随机/password[/{length}]GETpassword、password_length
随机/passphrase[/{groups}]GETpassphrase、groups、length、entropy_bits
转换/base64_encodePOSTbase64_encoded_data
转换/base64_decodePOST原始字节,或 type + decoded_data
转换/base58_encodePOSTbase58_encoded_data
转换/base58_decodePOST原始字节,或 type + decoded_data
转换/base32_encodePOSTbase32_encoded_data
转换/base32_decodePOST原始字节,或 type + decoded_data
转换/hex_encodePOSThex_encoded_data
转换/hex_decodePOST原始字节,或 type + decoded_data
转换/base64url_encodePOSTbase64url_encoded_data
转换/base64url_decodePOST原始字节,或 type + decoded_data
转换/url_encodePOSTurl_encoded_data
转换/url_decodePOSTurl_decoded_data
转换/html_encodePOSThtml_encoded_data
转换/html_decodePOSThtml_decoded_data
转换/html_to_markdownPOSTmarkdown、title
转换/markdown_to_htmlPOSThtml
转换/slugifyPOSTslug
转换/jwt_encodePOSTjwt
转换/jwt_decodePOSTdecoded_payload
转换/qrcode_encodePOSTqrcode_image、image_type
转换/qrcode_decodePOSTqrcode_content
转换/json_to_csvPOST存储字段、content_type、filename、operation
转换/csv_to_jsonPOST存储字段、content_type、filename、operation
转换/table_matchPOST存储字段、content_type、filename、operation
转换/json_formatPOST存储字段、content_type、filename、operation
转换/json_validatePOST存储字段、content_type、filename、operation、valid
图像/image_convertPOST存储字段、format、width、height、input_format、input_bytes
图像/image_compressPOST存储字段、format、width、height、input_format、input_bytes
图像/image_resizePOST存储字段、format、width、height、input_width、input_height、fit、upscaled
图像/image_metadataPOST存储字段、format、width、height、gps、findings
图像/image_stripPOST存储字段、format、width、height、input_bytes、removed、kept
图像/image_colorsPOST存储字段、average、dominant、count
图像/image_faviconPOST存储字段、files、crop、upscaled
逻辑/decidePOSTanswers
逻辑/mock_response/{status}[/{ms}]任意error 或 ok,以及 mock_response
Agent 测试/aiq/start/{version}[/{profile}]GETrun_id、run_token、task
Agent 测试/aiq/start/dar/team-5POSTrun_id、run_token、controller_key
Agent 测试/aiq/verifyPOSTvalid
哈希/md5_hashPOSTmd5_hash
哈希/sha1_hashPOSTsha1_hash
哈希/sha256_hashPOSTsha256_hash
哈希/sha512_hashPOSTsha512_hash
哈希/crc32_checksumPOSTcrc32_checksum
哈希/whirlpool_hashPOSTwhirlpool_hash
哈希/sha3_256_hashPOSTsha3_256_hash
哈希/sha3_512_hashPOSTsha3_512_hash
哈希/blake2b_hashPOSTblake2b_hash
哈希/blake3_hashPOSTblake3_hash
哈希/argon2id_hashPOSTargon2id_hash
哈希/bcrypt_hashPOSTbcrypt_hash
哈希/scrypt_hashPOSTscrypt_hash
哈希/hash_verifyPOSTmatch、algorithm、computed
哈希/password_verifyPOSTmatch、algorithm、params
Web/pingGETping
Web/healthGETstatus、microtimestamp
Web/client_ipGETip
Web/html2pdfPOSTstorage_id、storage_url、sha256_hash、bytes、expire_timestamp
Web/user_agentGETuser_agent
Web/ip_reverse_lookup/{ip}GETip、country、city、location、place、timezone
Web/domain_ip_lookup/{domain}GETdomain、ip
Web/email_validatePOSTemail、valid_syntax、domain、has_mx、mx_hosts
Web/storagePOST / GETstorage_id、storage_url、sha256_hash、bytes、expire_timestamp
Web/storage/{id}/sha256/{hex}GET已存储的正文;如果其哈希值与 {hex} 不符,则返回 412
Web/url_shortener/{url}GETshort_url、expire_timestamp
Web/dns/{ip}、/dns/{slug}GET,或通过 POST 更改name、ip、record、ttl、expire_at,创建时还包括 dns_token
Web/semantic_searchGET / POSTcollection_id、model、创建时的读写令牌、搜索所得的排名 results
Web/webhook_capturePOST / GETcapture_id、update_url、read_url、wait_url
Web/webhook_actionPOST / GETaction_id、表单 URL 或 URL 列表、result_url、wait_url
Web/webhook_schedulePOST / GET / DELETE单次或定期任务状态、计数和结果
Web/agent_wakePOST / GET / DELETEtaskId、status、result、等待支持
Web/inboxPOSTinbox_id、slug、address、read_url、wait_url、expire_timestamp
Web/inbox/{inbox_id}GETslug、address、received、truncated、messages、时间字段
Web/heartbeatPOSTheartbeat_id、status、时间字段、ping_url、status_url
Web/heartbeat/{id}GET状态、时间字段、计数器、可选的 delivery
Web/heartbeat/{id}/pingPOST更新后的时间字段和计数器
Web/lease/namespacePOSTnamespace、entropy_bits
Web/lease、/lease/acquirePOST状态、所有者令牌和 fencing 令牌、过期字段、可选结果
Web/lease/renew、/lease/release、/lease/completePOST状态、fencing 令牌、过期字段、可选结果
Web/queuePOSTqueue_id、角色令牌、计数和固定过期时间
Web/queue/{id}GETqueue_id、计数和时间信息
Web/queue/{id}/jobs、/queue/{id}/claim、作业操作POST / GETjob,仅在认领时附带收据
Web/validate/{type}POSTtype、valid、各项检查字段
加密/solana/generate_new_walletGETprivate_key、private_key_base58、public_address
加密/solana/balance/{address}GETwallet、balance_sol、balance_lamports
加密/bitcoin/generate_new_walletGETprivate_key、private_key_wif、public_address
加密/bitcoin/balance/{address}GETwallet、final_balance_btc、final_balance_sats
加密/ethereum/generate_new_walletGETprivate_key、public_address
加密/ethereum/balance/{address}GETwallet、balance_eth、balance_wei

备注

  • 输入格式因端点而异。实用工具转换支持多种格式,而 Queue 和其他结构化工作流端点要求使用 JSON
  • Storage、URL Shortener、Webhook Capture、Webhook Action、Webhook Schedule、Agent Wake、Agent Inbox、Heartbeat、Lease 和 Queue 的有效期或绝对生命周期为 24 小时
  • Queue 作业(包括已完成和失败的作业)共用固定的队列过期时间。活动不会延长此期限
  • Webhook Schedule 会将最终结果额外保留最多 24 小时
  • Heartbeat 在触发、未触发或过期后,其终止状态还可读取 24 小时
  • 每个响应都会设置 Access-Control-Allow-Origin: *,因此可从浏览器调用
  • 速率限制:每个 IP 每天 5000 个请求

AI SENSE AS | aisenseapi.com Postboks 1202 Vika, 0110 Oslo, Norway

MIT License

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。