伊诺-米克p
用于 伊诺 爱普。 将克劳德,Cursor或VS代码等AI助手连接到你自己的Inio数据:客户,发票,暂停,重试尝试和支付.
状态 : 0.7.0. 默认情况下只读, 带有选入的写工具; stdio 或 a 共享 HTTP 服务器已公布为
@dnmitev/inio-mcp直到它移动到@inio范围.
安装
您需要Node.js 24或后期的Inio API客户端证书(OAuth2客户端证书用于您的Inio API域).
export INIO_CLIENT_ID=... # your Inio API client id
export INIO_CLIENT_SECRET=... # your Inio API client secret
export INIO_AUTH_URL=... # token endpoint (or realm issuer URL) of your Inio API realm
export INIO_URL=... # Inio API gateway base URL, including /v1
npx -y @dnmitev/[email protected]
| 变量 | 需求 | 默认 | 目的 |
|---|---|---|---|
INIO_CLIENT_ID | 对 | API客户端代号(OAuth2客户端证书) | |
INIO_CLIENT_SECRET | 对 | API 客户端秘密 | |
INIO_AUTH_URL | 对 | Token 端点( 或域发件人 URL) | |
INIO_URL | 对 | API 基础 URL 包含. /v1,必须是 https | |
INIO_REVEAL_PII | 没有 | false | true 关闭列表中的字段的编辑 数据保护 (两种客户类型) |
INIO_LOG_LEVEL | 没有 | info | fatal . trace,或 silent |
INIO_REQUEST_TIMEOUT_MS | 没有 | 30000 | 按Inio API或令牌请求计时,1000–600000 ms. 返回超时 TIMEOUT (整秒报告,四舍五入). 如果一个符号刷新和速率限制都发生,一个工具调用最多可达到5×个值+5 s |
MCP_TRANSPORT | 没有 | stdio | stdio,或 http 用于共享服务器(参见 托管(中文(简体) ) |
MCP_AUTH_TOKEN | 仅限http | 每个 HTTP 请求必须发送 Bearer 令牌; 至少 32 个字符, 没有白空间 。 生成方式 openssl rand -hex 32 | |
PORT | 没有 | 3000 | HTTP 端口 |
HOST | 没有 | 127.0.0.1 | HTTP 绑定地址 (0.0.0.0 在 Docker 图像中) |
MCP_ALLOWED_ORIGINS | 没有 | 逗号分隔浏览器的源头允许除localhost之外,例如. https://app.example.com; 匹配主机名 | |
INIO_ALLOW_WRITES | 没有 | false | true 注册写入工具(见下文);默认关闭 |
INIO_WRITE_TOOLS | 没有 | 全部 | 以逗号分隔的写作工具进行注册,例如:. create_customer_pause,cancel_customer_pause; 需求 INIO_ALLOW_WRITES=true。未知名称在启动时停止服务器 |
INIO_MAX_PAYMENT_AMOUNT | 没有 | 无 | 数额最大 create_payment 可以用发票货币记录一次电话,例如:. 500. 拒绝全额支付;转而发放明确数额 |
快速启动( Claude 桌面)
将此添加到 ~/Library/Application Support/Claude/claude_desktop_config.json (温道: %APPDATA%\Claude\claude_desktop_config.json)并重新启动 Claude 桌面 :
{
"mcpServers": {
"inio": {
"command": "npx",
"args": ["-y", "@dnmitev/[email protected]"],
"env": {
"INIO_CLIENT_ID": "your-client-id",
"INIO_CLIENT_SECRET": "your-client-secret",
"INIO_AUTH_URL": "https://<your-keycloak>/realms/<realm>/protocol/openid-connect/token",
"INIO_URL": "https://<your-inio-api-gateway>/v1"
}
}
}
}
文件以平白文本保存客户端的秘密; 仅由您保存可读( Namechmod 600) (中文(简体) ). 然后问,例如:"C-1001客户的开出发票是哪张?" 更多提示 : 实例。 。 。 .
设置客户端
每个指南覆盖本地服务器(npx)在多克运行,并连接到主机团队服务器:
| 客户端 | 指南 |
|---|---|
| 克劳德桌面 | 文献/设置/文件-桌面 |
| 克劳德代码 | 文档/设置/密码 |
| VS 代码 | 文件/设置/vscode.md |
| 光标 | 文件/设置/校正 |
Claude在网络上,桌面和移动可以使用主机服务器作为连接器,您自己登录,没有安装任何信息: 文件/设置/声明-网络.md。 。 。 .
为整个团队运行一个服务器 托管共享服务器。 。 。 .
想要在自己的云或代理平台运行的Inio客户端,拥有自己的Inio API认证: 为Inio客户提供自营服务。 。 。 .
固定和核查
实例pin版本0.7.0. 升级时故意更改版本;不要丢弃. pin 覆盖了套件本身: npx 仍然在每一个新安装上解决其声明范围内的依赖性.
- 无 : 软件包以 npm 出处发布。 软件包npmjs.com页面上的"证明"部分显示其构建的源寄存器和工作流程; 2;
npm view @dnmitev/[email protected] dist.attestations给出记录它们的证明包的 URL.npm audit signatures,在安装软件包的工程中运行(例如npm init -y && npm i --ignore-scripts @dnmitev/[email protected] && npm audit signatures),检查登记签名和安装的所有设备的出处证明. - 嵌入器 : 查阅摘要
docker buildx imagetools inspect ghcr.io/dnmitev/inio-mcp:0.7.0和使用情况ghcr.io/dnmitev/inio-mcp@sha256:<digest>。将文摘包固定在您下面不会改变标记;它本身并不能证明是谁创建了图像.
工具
这些工具只读取. 结果被压缩(空值下降)。 调整取决于客户类型:业务客户(B只有发票链接和SSN已编辑;消费者(C)和未知类型也有联系方式,地址,城市,名称,参考文献,SSN和银行细节被编辑. INIO_REVEAL_PII=true 关掉 见 数据保护 准确的名单.
| 工具 | 目的 |
|---|---|
list_customers | 客户摘要,按客户号码、直接借项或服务项目过滤,分门别类和呼号 |
get_customer | 按UUID或客户号码显示的1名客户及其服务线和活动暂停 |
get_customer_pause | 一个客户暂停由客户 UUID 暂停 UUID |
list_customer_pauses | 暂停客户,可选择按状态过滤 |
list_invoices | 发票摘要,按发票号码、客户、状况或付款状况过滤,分门别类和呼号 |
get_invoice | 按UUID或发票号码开出一张发票 |
get_invoice_retry_attempts | 直接调试尝试发票,计数失败和成功,直接调试资格 |
细节工具的选项 :
get_invoice带withInherited添加继承值(IBAN、银行、有效暂停)。 有了发票号码,就给API打了两次电话.get_invoice财务报告和审定财务报表get_customer带includeWorkflowSettings应添加workflowsSettings(分配方法、升级费和时间、启用阶段)。 它很大,所以默认关闭.
如果 Inio API 限制请求( HTTP 429), 服务器等待 Retry-After (最多5 s) 并重试一次;第二个429作为返回 RATE_LIMITED。 。 。 .
写作工具( opt- in)
写入工具仅在服务器运行时注册 INIO_ALLOW_WRITES=true。它们被标记为破坏性,所以MCP客户端可以要求您确认每个呼叫(Claude桌面确实如此,除非您永久允许该工具). 印地安组织的审计领域记录的每封信 inio-mcp。 Inio API 对 API 客户端没有作用 : 已启用写入, 这些工具所能做的都允许您的证书 。 要缩小范围, 请只列出您需要的工具 INIO_WRITE_TOOLS 上限付款 INIO_MAX_PAYMENT_AMOUNT。 。 。 .
不要永久允许(自动批准)在客户端中写入工具 。 确定步骤是,在到达伊尼奥之前,你捕捉到错误的数量,客户或日期.
| 工具 | 变化是什么 | 撤销 |
|---|---|---|
create_customer_pause | 暂停提醒和(或)今后客户的收债转账 | 取消暂停 |
update_customer_pause | 更改暂停的日期或范围( 活动暂停: 只有结束日期) | 再更新一次 |
cancel_customer_pause | 取消预定或活动暂停 | 无法被撤销; 创建一个新的 |
update_invoice_due_date | 推迟发票到期日 invoiceDueDatePostponed 访问您的系统 | 无法被撤销 (仅推迟) |
update_invoice_stop_until_dates | 设定或清除提醒和收债步骤被延后的日期( 需要停止到结束的功能) | 重新设定或清除( 否); 上一个日期没有保留 |
update_customer | 更改客户名,分发邮件,手机号码,语言或地址(null clears a 字段). 无SSN, org 或增值税编号 | 再次更新; 前一个值没有保存 |
reset_invoice_stage | 将发票移动回 invoiced (新到期日)或 reminded;可免除未清费用。 仅以 redistribute: true | 无法被撤销 |
create_credit_invoice | 以新的信用发票抵免发票项目. 仅发送给终端客户 distributionEnabled: true | 无法被撤销 |
match_credit_invoice | 将现有信用发票与发票相匹配,降低其剩余金额 | 无法被撤销 |
create_payment | 记录一张发票上的付款: direct_payment, (中文(简体) ), good_will, (中文(简体) ), bank 或者说 reminder_fee_waiver。必须要求全额付款 fullPayment: true。每次通话记录一次新的付款 | 无法被撤销 |
create_customer | 创建一个客户( 消费者) C 与SSN,或商务 B 与 orgNr 和 vatNo 相通。 只有数据库;没有发送给客户. 有些助手(Claude of them)拒绝发送SSN,所以如果您有的话会在后台创建消费者. 已经存在的客户身份被拒绝 | 更新为 update_customer· ; 无法删除 使用这些工具 |
如果一个写出时间,无法到达API或得到服务器错误(HTTP 5xx),修改可能已经应用,也可能没有应用,结果说在再次尝试之前先检查客户或发票. 如果 API 接受一个书写但无法读取其答案,则工具报告成功,在重试前要检查一个注释.
无法提供:倒置付款(公共API不披露倒置需要的付款分配标识)并开具发票(创建一张立即发送给终端客户)。 用伊尼奥的后台做这些.
日志
服务器将 JSON 日志行写入 stderr (stout 包含 MCP 协议). Claude 桌面保存到 ~/Library/Logs/Claude/mcp-server-inio.log。每个工具调用记录其持续时间、结果、大约象征性成本(approxTokens)和称为它的MCP客户端(名称和版本,例如克洛德桌面;仅当客户端与每个请求一起发送时,在HTTP之上). 写入通话并日志 write: true 和他们更改的识别标志target:客户、发票、信用发票或暂停编号或号码;金额、联系方式和其他论点不记录。 启动行列出已注册的写作工具和支付限额. 设定 INIO_LOG_LEVEL=debug 也可以看到每个 API 呼叫和符号刷新。 秘密和信物从未被记录.
解决问题
| 症状 | 原因和修补 |
|---|---|
服务器在起始时退出 INIO_… is required 或者说 must be an https URL | 变量缺失或错误; 信件列出每个问题 . INIO_URL 必须包括 /v1 |
工具返回 Authentication failed (HTTP 401 …) | 错误 INIO_CLIENT_ID 或者说 INIO_CLIENT_SECRET,或 INIO_AUTH_URL 指错领域 |
工具返回 UNAUTHORIZED | API拒绝了这个符号: INIO_AUTH_URL 不属于 API 在 INIO_URL |
工具返回 NETWORK_ERROR (无法到达Inio API) | INIO_URL 错误或无法从服务器运行的地方到达 |
| 主机服务器答案 401 | 这个 Authorization: Bearer <token> 缺少信头或符号错误 |
| 主机服务器答案 403 | 基于浏览器的客户端的来源不允许; 管理员将其添加到 MCP_ALLOWED_ORIGINS |
工具返回 TIMEOUT | Inio API没有在内部回答 INIO_REQUEST_TIMEOUT_MS 默认为30 s; 重试或提升 |
工具返回 RATE_LIMITED | Inio API 利率限制连续两次被击中; 等待并再次尝试 |
一些字段显示 [redacted] | 消费者的个人数据默认被隐藏;见 数据保护 |
数据保护
工具的服务器编辑结果( 除非 INIO_REVEAL_PII=true)取决于客户类型(customerType) (中文(简体) ). 结果中的每个对象都使用自己的类型;没有一种对象(发票,暂停)跟随它所坐入的对象.
商业客户(B) (中文(简体) ). 公司和联系方式都是商业数据,经常公开,所以只有发票链接(任何持有链接的人都可以打开发票)和个人身份号码(唯一交易商的SSN)才会被修改:
pdfURL, (中文(简体) ),digitalInvoiceURL, (中文(简体) ),ssn
消费者C)和未知类型. 个人的详情是个人资料:
- 名称中包含的任何字段
email(例如:.distributionEmailAddress)和任何文本中的电子邮件地址 - 名称中包含的任何字段
phone(例如:.mobilePhoneNo(中文(简体) ) - 地址行 :
addressLine, (中文(简体) ),addressLine1, (中文(简体) ),addressLine2,, , , , , , , , zipCode, (中文(简体) ),citycustomerName, (中文(简体) ),yourReferencessniban, (中文(简体) ),bankAccount, (中文(简体) ),accountNumber- 发票链接 :
pdfURL, (中文(简体) ),digitalInvoiceURL
发票上没有客户类型,所以 get_invoice 查一查发票的客户(在服务器重启前一直被查取,因此其类型改变的客户会将旧规则保存到那时),如果查取失败,则使用消费者规则. 通过写作工具退回的发票总是使用消费者规则.
错误消息总是隐藏电子邮件地址,以及上面列出的消费字段的每字段错误消息(对于两种客户类型),即使有 INIO_REVEAL_PII=true。其他错误文本按 API 给定时返回。 其他一切随API的提供而归还,包括组织和增值税号码、票据和其他免费文本、发票说明、金额和发票阶段.
- 工具结果到您的助手后面的 LLM 提供者( 例如 Claude 的 Anthropic, 或是您在 Cursor 或 VS 代码中选择的模型提供者) 。 贵组织需要与提供商达成数据处理协议,涵盖客户数据.
- SSN等写作工具的参数、联系方式和地址
create_customer财务报告和审定财务报表update_customer,在您的即时和工具呼叫中。 不管怎样,他们都会找到供货商INIO_REVEAL_PII说. - 服务器什么也不存. 它只把Inio访问符记在记忆中.
- 日志(stderr)包含工具名称,期限和结果. API 失败的电话通过路径登录,路径可以包括客户或发票号码或ID
debug平分每个API呼叫是。 日志中从不包含符号,秘密或工具结果.
发布模式
inio-mcp有一个单一的维护者. 发行版本仅由GitHub Actions发布工作流程发布,从版本标记:它发布到npm并有出处,将图像推向GHCR. 见 固定和核查 如何检查释放。 软件包移动到 @inio gitHub公司组织;README将说何时.
发展
要从源头运行, 克隆寄存器, 运行 npm ci && npm run build,并指定客户端 node /absolute/path/to/iniomcp/dist/index.js。 。 。 .
| 命令 | 目的 |
|---|---|
npm run dev | 用节点的监视模式从源头运行服务器 |
npm run inspect | 在 MCP 检查器中打开服务器 |
npm test | 单位测试 |
npm run test:integration | 构建,然后对照一个 Keycloak 容器和一个假的 Inio API 测试已建服务器( 需要多克) |
npm run test:package | 包装 npm 软件包, 安装到临时项目并检查已安装的服务器 |
npm run test:live | 针对真实的伊诺环境的对接测试:设置 INIO_LIVE=1 编辑 INIO_* 变量(或本地变量) .env(中文(简体) ) |
npm run smoke:writes -- <customerNo> [invoiceNo] | 您名下的客户的写作工具( 和发票) : 重新命名客户并恢复名称、 创建、 更新并取消30 - 45天前的暂停、 设定并清除一个终止日期 。 更改数据; 从不推迟到期日、 重排一个阶段或创建信用 |
npm run mutation | 突变测试(Stryker) |
MUTATE=src/http.ts npm run mutation -- --force | 只对所选文件进行突变测试( comma- 分离) |
npm run lint 编号 : npm run typecheck | 克林特(类型-意识) + Pretier / TypeScript 7 |
许可证
Apache 许可证 2.0。许可证只涵盖此源代码。 它不允许访问 Inio API; 您需要自己的 Inio API 证书 .