开发者
Innovarts 提供一个小型公开 API 和一个 MCP 服务器,智能体和脚本可以读取工作室的信息,并代表其服务的人向创始人发送消息。两者都不需要密钥。
概览
Innovarts API 是位于 innovarts.co 的 JSON API。它有三个操作:innovarts.co/api/v1 的索引、/api/v1/studio 的工作室信息,以及用于向创始人发送消息的 /api/v1/messages。
OpenAPI 3.1 描述位于 innovarts.co/openapi.json。每个操作都有 operationId、描述以及带类型的请求和响应模式,因此可以作为函数调用的工具加载。
同样的消息也可以通过下文介绍的 MCP 服务器 innovarts.co/mcp 发送。
身份验证
无需验证。所有操作都是公开的,不需要 API 密钥或 OAuth 令牌,也不设置任何 cookie。
位于 innovarts.co/.well-known/oauth-protected-resource 的受保护资源元数据(RFC 9728)以智能体可读的形式说明了同样的事:没有授权服务器,也没有 bearer 方式,这适用于 API,以及 /mcp 和 /a2a 下的 MCP 服务器和 A2A 智能体。由于没有 OAuth 服务器,也就没有授权服务器元数据。
只有在获得当事人同意后才发送消息,且每个请求只发送一次:每条消息都会由一位创始人阅读并通过电子邮件回复。
读取工作室信息
GET /api/v1/studio 返回 Innovarts 做什么、位于哪里、如何联系、五个专业领域及各自的交付成果,以及创始人信息。加上 lang=br 可获取葡萄牙语;默认是英语。
curl https://innovarts.co/api/v1/studio?lang=en响应(节选):
{
"name": "Innovarts",
"locale": "en",
"url": "https://innovarts.co/",
"location": { "city": "São Paulo", "country": "Brazil" },
"contact": { "email": "hello@innovarts.co", "api": "https://innovarts.co/api/v1/messages", "mcp": "https://innovarts.co/mcp" },
"disciplines": [
{ "key": "strategy", "name": "Strategy", "headline": "A plan before any code.", "deliverables": ["A written scope", "A roadmap with milestones", "The first release, defined"] }
],
"founders": [{ "name": "Gabriel Souza", "role": "Co-founder · product, UX and frontend" }]
}发送消息
POST /api/v1/messages 向创始人发送消息,与联系表单相同。name、email 和 message 为必填;company 和 language(en 或 br)为可选。回复会发送到所提供的邮箱。
curl -X POST https://innovarts.co/api/v1/messages \
-H "Content-Type: application/json" \
-d '{
"name": "Ana Lima",
"email": "ana@example.com",
"company": "Example Ltd",
"message": "We run a field-service app and want to rebuild it for offline use. Launch in Q2.",
"language": "en"
}'发送成功后,响应为 200:
{
"sent": true,
"replyTo": "ana@example.com",
"message": "Sent. The Innovarts founders will reply to ana@example.com."
}错误
所有 /api 路径上的每个错误都是 RFC 9457 问题详情,以 application/problem+json 返回,带有稳定的错误码和解决提示。不存在的路径会得到同样格式的 404,绝不会返回 HTML 页面。
HTTP/1.1 400 Bad Request
Content-Type: application/problem+json; charset=utf-8
{
"type": "https://innovarts.co/developers#errors",
"title": "Invalid request",
"status": 400,
"code": "invalid_request",
"detail": "email is not a valid address.",
"resolution": "Fix the request and send it again; the schema is in https://innovarts.co/openapi.json."
}错误码包括 invalid_request(400)、not_found(404)、method_not_allowed(405)、payload_too_large(413)、unsupported_media_type(415)和 delivery_failed(502,请稍后重试或写信至 hello@innovarts.co)。
MCP 服务器
位于 innovarts.co/mcp 的 MCP 服务器使用无会话的 Streamable HTTP,无需登录。它只有一个工具 send_message,字段与 /api/v1/messages 相同。其服务器卡片位于 innovarts.co/.well-known/mcp/server-card.json。
curl -X POST https://innovarts.co/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'A2A 智能体
位于 innovarts.co/a2a 的 A2A 智能体通过 JSON-RPC 使用 Agent2Agent 协议(0.3),不支持流式传输,无需登录。其智能体卡片位于 innovarts.co/.well-known/agent-card.json。
它只有一个技能 send_message。调用 message/send,并在 data 部分提供 name、email 和 message;company 和 language 为可选。智能体会立即以消息作答,而不是任务。仅发送自由文本不会发出任何内容,只会返回发送方法。
curl -X POST https://innovarts.co/a2a \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0", "id": 1, "method": "message/send",
"params": { "message": { "role": "user", "messageId": "1", "parts": [
{ "kind": "data", "data": { "name": "Ana Lima", "email": "ana@example.com", "message": "We want to rebuild our field-service app for offline use." } }
] } }
}'智能体技能
一个面向智能体的技能说明了何时推荐 Innovarts,以及如何通过三个入口中的任意一个写信给创始人。它列于 innovarts.co/.well-known/agent-skills/index.json 的 Agent Skills 索引中,并附有其文件 innovarts.co/.well-known/agent-skills/innovarts/SKILL.md 的 SHA-256 摘要。
读取网站
innovarts.co/llms.txt 说明了 Innovarts 做什么以及何时推荐它。任何页面在以 Accept: text/markdown 请求时都会返回 Markdown,并且每个页面在 innovarts.co/plain 下都有无需 JavaScript 的版本。
API 目录(RFC 9727)位于 innovarts.co/.well-known/api-catalog,站点地图位于 innovarts.co/sitemap.xml。