关于 Indraft
Indraft 是面向 AI Agent 的 CRM,提供公司、联系人、商机、任务和互动记录,无需预先设计结构。它记录每项信息的来源与变更,并阻止较弱的判断覆盖已确认内容。
主要功能
- 01管理公司、联系人和商机
- 02记录任务与互动
- 03追踪字段来源和变更
- 04按权限提供 45 个工具
- 05支持自定义字段和对象
适用场景
- 01让 Agent 读取和更新 CRM 记录
- 02审查 Agent 写入的来源和变更
- 03根据业务需要扩展 CRM 数据结构
MCP 相关
提供 MCP 服务,供支持 Streamable HTTP 和 OAuth 2.1 的客户端读取和写入 CRM。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://api.indraft.io/mcpclaude mcp add --transport http io-indraft https://api.indraft.io/mcp{"mcpServers":{"io-indraft":{"type":"http","url":"https://api.indraft.io/mcp"}}}在 Cursor 中打开{"servers":{"io-indraft":{"type":"http","url":"https://api.indraft.io/mcp"}}}在 VS Code 中打开{"mcpServers":{"io-indraft":{"type":"http","url":"https://api.indraft.io/mcp"}}}{"mcpServers":{"io-indraft":{"serverUrl":"https://api.indraft.io/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://api.indraft.io/mcp需要授权工具
详细介绍
Indraft
你的 AI Agent 真正能操作的 CRM。 连接 Claude、ChatGPT、Cursor 或任何 MCP 客户端后,它就能从第一次请求开始读取和写入公司、联系人、商机、任务 和互动记录,无需预先设计架构。
MCP 服务:https://api.indraft.io/mcp · indraft.io ·
文档
连接
Claude
claude mcp add --transport http indraft https://api.indraft.io/mcp
Claude 会打开浏览器进行授权。无需粘贴任何内容,也无需保存 API 密钥。
在 Claude Desktop 或 claude.ai 中,将其作为自定义连接器添加,并使用相同的 URL。
ChatGPT
Settings → Connectors → Add custom connector,URL 为 https://api.indraft.io/mcp。
通过 OAuth 授权。
Cursor、Windsurf、VS Code 和其他 MCP 客户端
任何支持 Streamable HTTP 和 OAuth 2.1 的客户端都能使用。将其指向
https://api.indraft.io/mcp。
然后粘贴以下内容,Agent 就会自行完成设置:
为我的业务设置 Indraft。先读取其 CRM 架构,然后告诉我你认为我们是做什么的,以及你打算如何建模;在我回复之前不要写入任何内容。
它会先读取架构再写入,因此无需你解释,就能了解对象类型、限制以及它获准执行的操作。
为什么要做这个
大多数 CRM 都是为用户逐个点击表单而设计的,而 Agent 使用这类 CRM,就像是在做屏幕抓取,只不过步骤更多:猜字段名称、编造记录,以及覆盖他人已经核实的信息。
Indraft 的设计思路恰恰相反。
每个值都会记录是谁以何种方式提供的。 可以是观察所得、推断所得、导入所得、由某人提供,或由某人确认。这些来源有不同的优先级,较弱的声明无法悄悄覆盖较强的声明,因此 Agent 的猜测永远不会覆盖你核实过的内容。如果写入被拦截,系统会明确说明,而不会报告成功。
每项变更都会留有记录。 记录操作者、变更来源渠道以及字段级差异。大多数变更都可以撤销。
从第一次请求开始,系统就已准备好数据。 在你进行任何配置之前,公司、联系人、商机、任务和互动记录就已存在,还有一条真正能完成交易的销售管道。需要时可以添加自定义字段和自己的对象类型,只需提出需求即可定义。
遇到不确定的情况,系统会拒绝操作,而不是猜测。 如果总额涉及多种货币,除非你指定了汇率,否则系统会拒绝计算;每个换算后的答案都会注明使用的汇率及其提供者。系统不支持批量删除。
工具
共 45 个,涵盖读取、写入、架构变更、合并、批量导入和汇总。Agent 只会看到其凭据实际有权调用的工具。
完整参考文档由服务器自身的目录生成:TOOLS.md
每个工具都包含人类可读的 title,以及适用的 readOnlyHint、destructiveHint 和 openWorldHint,因此客户端可以在调用前判断这是读取还是写入操作。
TypeScript SDK
适用于你自己的服务;当你需要使用 REST API 而非 MCP 时即可采用。源代码位于 sdk/;npm 版本即将发布。
import { IndraftClient } from "./sdk";
const indraft = new IndraftClient({ token: process.env.INDRAFT_TOKEN });
const { record } = await indraft.upsertCompany({
name: "Halden Freight",
domain: "halden.example",
industry: "Logistics",
// Say how you know. An import is weaker than a person, and Indraft enforces
// that rather than trusting the last writer.
assertionKind: "imported",
idempotencyKey: "nightly-sync-halden",
});
错误具有明确类型,并附带恢复提示,而不只是状态码:
import { IndraftError } from "./sdk";
try {
await indraft.upsertCompany({ name: "Halden Freight", industry: "Retail", overrideStanding: true });
} catch (error) {
if (error instanceof IndraftError && error.code === "standing_override_refused") {
// This workspace does not permit overrideStanding. Send the write again
// without it: it applies to every field it is strong enough to move and
// reports the rest in `held[]`, and a person can confirm a contested value.
console.error(error.recoveryHint);
}
}
跨币种总额并不是错误,而是另一种答案。若要求汇总多种货币的交易金额,而系统中没有记录汇率,汇总结果会按货币分组返回,而不是直接相加,因为悄悄混合不同货币得出总额,正是本产品拒绝犯下的错误。
源代码见 sdk/。MIT。
另有提供
- REST API,附有已发布的 OpenAPI 描述
- 官方 MCP 注册表:
io.indraft/mcp - 随时导出所有内容:每张表格对应一个电子表格,整个工作区可导出为 JSON,并附带说明文件,解释各文件之间的关联。不遗漏任何内容,也不会为了适应限制而删减。
状态
Indraft 已在 indraft.io 上线。提供免费套餐,无需提供银行卡。
欢迎在此提交问题和疑问。安全问题请发送至
[email protected],不要公开提交。
许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。