关于 GoCertius MCP
GoCertius MCP 将 AI Agent 连接到 GoCertius 数字信任服务,用于处理认证证据、档案、通知和聊天。它通过 MCP 工具提供这些操作,并附带 Claude Code 工作流指南。
主要功能
- 01创建认证证据
- 02管理档案
- 03处理认证通知
- 04管理认证聊天
- 05执行签名工作流
- 06Claude Code 工作流指南
适用场景
- 01通过 Agent 工作流创建认证记录
- 02将证据整理到档案中
- 03发送认证通知
- 04管理认证聊天记录
MCP 相关
通过 62 个工具向 MCP 客户端提供 GoCertius 数字信任操作。它使用 GoCertius 用户密钥换取会话令牌进行身份验证。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y @g-digital/mcp-gocertiusMCP_ALLOW_INSECURE_FILE_URLSet to "true" to allow plain http:// fileUrl downloads in evidence_create (default https-only). Private/internal addresses are rejected regardless (resolution-time check; see the documented DNS TOCTOU limitation in the hosted-deployment runbook).MCP_ALLOW_UNVERIFIED_BEAREREscape hatch for MCP_HTTP_PUBLIC=true WITHOUT inbound-token introspection: set to "true" ONLY when an upstream gateway already verifies Bearer tokens. The server logs a prominent warning and forwards tokens upstream unverified.MCP_ALLOWED_HOSTSComma-separated allowed Host headers. Empty = Host validation disabled (default). When set, requests with a Host outside the list are rejected.MCP_ALLOWED_ORIGINSComma-separated allowed browser Origins (DNS-rebinding defense). Empty = reject any request carrying an Origin header; non-browser clients (CLI/SDK) send no Origin and are always allowed. Use '*' to allow all.MCP_API_BASE_URLUpstream API root. Required: your user key is exchanged for a session token against this host, and the server will not start without it.MCP_AUTH_USER_KEY密钥Long-lived GoCertius user key, exchanged automatically for a short-lived session token. Use it for headless or automated access instead of an account password. (See https://www.gocertius.io for credential acquisition.)MCP_HTTP_HOSTInterface the HTTP transport binds to. Default 127.0.0.1 (localhost only). Set 0.0.0.0 to expose on all interfaces (containers do this automatically).MCP_HTTP_MAX_BODY_BYTESMaximum accepted POST /mcp request-body size in bytes (default 16777216 = 16 MiB — sized so base64 file uploads within the documented tool limits fit). Oversized requests get a 413 JSON-RPC error before/while reading — closes a memory-exhaustion DoS vector in public deployments. Note: base64 file sources are capped by this limit BEFORE MCP_FILE_MAX_BYTES applies.MCP_HTTP_PUBLICSet to "true" for public/multi-tenant deployments. Activates Host validation and refuses to start unless (1) MCP_ALLOWED_ORIGINS or MCP_ALLOWED_HOSTS is set AND (2) inbound Bearer introspection is configured (MCP_SVC_INTROSPECT_URL + MCP_SVC_CLIENT_ID/SECRET) or MCP_ALLOW_UNVERIFIED_BEARER=true is set explicitly (fail-closed).MCP_SVC_CLIENT_IDClient ID this server presents to the introspection endpoint above (its resource-server credentials). Only needed alongside MCP_SVC_INTROSPECT_URL; it does not authenticate you to GoCertius.MCP_SVC_CLIENT_SECRET密钥Client secret this server presents to the introspection endpoint above (its resource-server credentials). Only needed alongside MCP_SVC_INTROSPECT_URL; it does not authenticate you to GoCertius. (See https://www.gocertius.io for credential acquisition.)MCP_SVC_INTROSPECT_URLRFC 7662 token introspection URL for inbound Bearer verification in HTTP mode. Opt-in, and required when MCP_HTTP_PUBLIC=true. Leave empty for stdio (local) use.PORTHTTP port when running in hosted (HTTP) mode; ignored in stdio mode本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
41收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| caseFileId | string | 是 | 案件文件的 UUID |
| evidenceGroupId | string | 是 | 证据组的 UUID |
| id | string | 是 | 新证据记录的 UUID v4(幂等键) |
| title | string | 是 | 证据的易读标题 |
| fileName | string | 是 | 包含扩展名的原始文件名 |
| hash | string | 是 | 文件内容的 SHA-256 十六进制摘要(64 个十六进制字符) |
| custodyType | enum | 否 | INTERNAL = GoCertius 存储文件;EXTERNAL = 仅登记哈希INTERNAL | EXTERNAL |
| fileUrl | string | 否 | 可选的公开 HTTPS URL,用于下载文件并自动上传到返回的 uploadFileUrl(仅适用于 custodyType INTERNAL)。若要使用手动预签名 URL 流程,请省略此项。 |
详细介绍
GoCertius MCP 服务
GoCertius 的 MCP 服务:通过 AI Agent 管理认证证据、档案、通知和聊天。
快速入门
npx -y @g-digital/mcp-gocertius
也可参阅 ONBOARDING.md,了解分步设置指南(≤ 5 分钟)。
安装渠道
此 MCP 通过 g-digital MCP distribution pipeline 发布到所有主流 MCP 分发渠道。选择适合你技术栈的渠道:
| 渠道 | 安装命令 / URL |
|---|---|
| npm | npx -y @g-digital/mcp-gocertius — npmjs.com/package/@g-digital/mcp-gocertius |
| Docker Hub | docker pull gdigital/gocertius:latest — hub.docker.com/r/gdigital/gocertius |
| MCP Official Registry | 自动发现为 io.github.g-digital-by-Garrigues/gocertius — registry.modelcontextprotocol.io |
| n8n 社区节点 | 在 n8n Settings → Community Nodes 中安装 @g-digital/n8n-nodes-gocertius — npmjs.com/package/@g-digital/n8n-nodes-gocertius |
| Smithery | smithery mcp install g-digital/gocertius — smithery.ai/servers/g-digital/gocertius |
所有渠道提供相同的 MCP 服务契约;无论选择哪种安装方式,以下工具和环境配置均适用。
需要凭据?请访问:https://www.gocertius.io
安装
Claude Desktop
{
"mcpServers": {
"gocertius": {
"args": [
"-y",
"@g-digital/mcp-gocertius"
],
"command": "npx",
"env": {
"MCP_API_BASE_URL": "https://api-gocertius.gocertius.io",
"MCP_AUTH_USER_KEY": "<PASTE_MCP_AUTH_USER_KEY_HERE>"
}
}
}
}
需要凭据?请参阅:https://www.gocertius.io
Claude Code(CLI)
{
"mcpServers": {
"gocertius": {
"args": [
"-y",
"@g-digital/mcp-gocertius"
],
"command": "npx",
"env": {
"MCP_API_BASE_URL": "https://api-gocertius.gocertius.io",
"MCP_AUTH_USER_KEY": "<PASTE_MCP_AUTH_USER_KEY_HERE>"
}
}
}
}
需要凭据?请参阅:https://www.gocertius.io
Cursor
{
"mcpServers": {
"gocertius": {
"args": [
"-y",
"@g-digital/mcp-gocertius"
],
"command": "npx",
"env": {
"MCP_API_BASE_URL": "https://api-gocertius.gocertius.io",
"MCP_AUTH_USER_KEY": "<PASTE_MCP_AUTH_USER_KEY_HERE>"
}
}
}
}
需要凭据?请参阅:https://www.gocertius.io
Windsurf
{
"mcpServers": {
"gocertius": {
"args": [
"-y",
"@g-digital/mcp-gocertius"
],
"command": "npx",
"env": {
"MCP_API_BASE_URL": "https://api-gocertius.gocertius.io",
"MCP_AUTH_USER_KEY": "<PASTE_MCP_AUTH_USER_KEY_HERE>"
}
}
}
}
需要凭据?请参阅:https://www.gocertius.io
Cline
{
"mcpServers": {
"gocertius": {
"args": [
"-y",
"@g-digital/mcp-gocertius"
],
"command": "npx",
"env": {
"MCP_API_BASE_URL": "https://api-gocertius.gocertius.io",
"MCP_AUTH_USER_KEY": "<PASTE_MCP_AUTH_USER_KEY_HERE>"
}
}
}
}
需要凭据?请参阅:https://www.gocertius.io
VS Code
{
"servers": {
"gocertius": {
"args": [
"-y",
"@g-digital/mcp-gocertius"
],
"command": "npx",
"env": {
"MCP_API_BASE_URL": "https://api-gocertius.gocertius.io",
"MCP_AUTH_USER_KEY": "<PASTE_MCP_AUTH_USER_KEY_HERE>"
}
}
}
}
需要凭据?请参阅:https://www.gocertius.io
JetBrains
{
"mcpServers": {
"gocertius": {
"args": [
"-y",
"@g-digital/mcp-gocertius"
],
"command": "npx",
"env": {
"MCP_API_BASE_URL": "https://api-gocertius.gocertius.io",
"MCP_AUTH_USER_KEY": "<PASTE_MCP_AUTH_USER_KEY_HERE>"
}
}
}
}
需要凭据?请参阅:https://www.gocertius.io
Zed
{
"mcpServers": {
"gocertius": {
"args": [
"-y",
"@g-digital/mcp-gocertius"
],
"command": "npx",
"env": {
"MCP_API_BASE_URL": "https://api-gocertius.gocertius.io",
"MCP_AUTH_USER_KEY": "<PASTE_MCP_AUTH_USER_KEY_HERE>"
}
}
}
}
需要凭据?请参阅:https://www.gocertius.io
Claude Desktop / Claude Code
添加到你的 ~/.claude.json 或 claude_desktop_config.json:
{
"mcpServers": {
"gocertius": {
"command": "npx",
"args": ["-y", "@g-digital/mcp-gocertius"],
"env": {
"MCP_AUTH_USER_KEY": "your-user-key",
"MCP_API_BASE_URL": "https://api-gocertius.gocertius.io"
}
}
}
}
Docker
docker run --rm -i \
-e MCP_AUTH_USER_KEY=your-user-key \
-e MCP_API_BASE_URL=https://api-gocertius.gocertius.io \
gdigital/gocertius:latest
环境变量
| 名称 | 必需 | 密钥 | 描述 |
|---|---|---|---|
MCP_ALLOW_INSECURE_FILE_URL | 否 | 否 | 设置为 "true",以允许 evidence_create 下载普通 http:// fileUrl(默认仅允许 https)。无论如何都会拒绝私有/内部地址(在解析时检查;请参阅托管部署运行手册中记录的 DNS TOCTOU 限制)。 |
MCP_ALLOW_UNVERIFIED_BEARER | 否 | 否 | 当 MCP_HTTP_PUBLIC=true 且未进行入站令牌内省时的应急选项:仅当上游网关已验证 Bearer 令牌时,才设置为 "true"。服务器会记录醒目的警告,并未经验证地将令牌转发到上游。 |
MCP_ALLOWED_HOSTS | 否 | 否 | 以逗号分隔的允许使用的 Host 标头。留空 = 禁用 Host 验证(默认)。设置后,Host 不在列表中的请求将被拒绝。 |
MCP_ALLOWED_ORIGINS | 否 | 否 | 以逗号分隔的允许使用的浏览器 Origin(防御 DNS 重绑定)。留空 = 拒绝任何携带 Origin 标头的请求;非浏览器客户端(CLI/SDK)不会发送 Origin,因此始终允许。使用 '*' 允许所有来源。 |
MCP_API_BASE_URL | 是 | 否 | 上游 API 根地址。必需:你的用户密钥将针对该主机交换为会话令牌,且未设置此项时服务器不会启动。 |
MCP_AUTH_USER_KEY | 是 | 是 | 长期有效的 GoCertius 用户密钥,会自动交换为短期会话令牌。无头或自动化访问时,请使用此密钥,而非账户密码。(有关如何获取凭据,请参阅 https://www.gocertius.io。) |
MCP_HTTP_HOST | 否 | 否 | HTTP 传输绑定的接口。默认值为 127.0.0.1(仅限本地主机)。设置为 0.0.0.0 可在所有接口上公开服务(容器会自动执行此操作)。 |
MCP_HTTP_MAX_BODY_BYTES | 否 | 否 | POST /mcp 请求正文可接受的最大字节数(默认值 16777216 = 16 MiB;此大小可容纳符合文档所述工具限制的 base64 文件上传)。超大请求会在读取前/读取过程中返回 413 JSON-RPC 错误,避免公开部署中的内存耗尽 DoS 攻击向量。注意:base64 文件源会先受此限制约束,然后才应用 MCP_FILE_MAX_BYTES。 |
MCP_HTTP_PUBLIC | 否 | 否 | 面向公众/多租户部署时设置为 "true"。此项会启用 Host 验证,并要求满足以下条件,否则拒绝启动:(1)已设置 MCP_ALLOWED_ORIGINS 或 MCP_ALLOWED_HOSTS;且(2)已配置入站 Bearer 内省(MCP_SVC_INTROSPECT_URL + MCP_SVC_CLIENT_ID/SECRET),或已显式设置 MCP_ALLOW_UNVERIFIED_BEARER=true(失败时关闭)。 |
MCP_SVC_CLIENT_ID | 否 | 否 | 此服务器向上文所述的内省端点提供的客户端 ID(其资源服务器凭据)。仅在同时设置 MCP_SVC_INTROSPECT_URL 时需要;此项不会用于向 GoCertius 验证你的身份。 |
MCP_SVC_CLIENT_SECRET | 否 | 是 | 此服务器向上文所述的内省端点提供的客户端密钥(其资源服务器凭据)。仅在同时设置 MCP_SVC_INTROSPECT_URL 时需要;此项不会用于向 GoCertius 验证你的身份。(有关如何获取凭据,请参阅 https://www.gocertius.io。) |
MCP_SVC_INTROSPECT_URL | 否 | 否 | HTTP 模式下用于验证入站 Bearer 的 RFC 7662 令牌内省 URL。选择性启用,且 MCP_HTTP_PUBLIC=true 时必需。本地 stdio 使用时请留空。 |
PORT | 否 | 否 | 在托管(HTTP)模式下运行时使用的 HTTP 端口;stdio 模式下忽略此项 |
| 变量 | 必需 | 描述 |
|---|---|---|
MCP_AUTH_USER_KEY | 必需 | 长期有效的用户密钥(用于交换会话令牌) |
MCP_OTEL_ENABLED | 可选 | 设置为 true 以启用 OpenTelemetry 跟踪 |
MCP_API_BASE_URL | 必需 | 上游 API 根地址。用户密钥交换会针对该地址进行身份验证,因此未设置此项时服务器不会启动 |
内置技能
此软件包在 .claude/commands/ 下提供 Claude Code 斜杠命令。安装后,可在 Claude Code 中调用:
/getting-started— 分步工作流指南/evidence-lifecycle— 分步工作流指南/dossier-lifecycle— 分步工作流指南/notification-lifecycle— 分步工作流指南/notification-attachments— 分步工作流指南/chat-lifecycle— 分步工作流指南
请参阅 docs/agent-prompts.md,了解端到端提示词示例及其触发的工具调用序列。
想直接基于 REST API 编写代码?
您不必通过此 MCP 服务。本仓库还提供了 Claude Code 技能——一份独立的集成指南(涵盖身份验证、调用顺序、选项、枚举值和注意事项),帮助您直接基于 REST API 编程:
- 技能:
.claude/skills/gocertius-suite-api/SKILL.md— 在 Claude Code 中打开此仓库后,即可直接使用。 - 参考资料: docs/api-integration-skill.md。
它独立于 MCP 工具和 n8n 节点;请选择最适合您的集成入口。
可用工具
此服务提供 62 个工具:
| 工具 | 描述 |
|---|---|
evidence_create | 在证据组中注册一条新的证据记录。需要:evidence_group_create → evidenceGroupId、case_file_create → caseFileId。为 id 生成一个 UUID v4,并在调用前计算 SHA-256 十六进制哈希。内部流程:使用 custodyType INTERNAL 调用;响应会返回 uploadFileUrl(预签名 S3 URL)。将文件的确切字节内容 PUT 到 uploadFileUrl,然后使用 evidence_get/evidence_list 验证,只有完成后才能调用 evidence_seal。只要还有任何 INTERNAL 证据文件未上传,就不要封存。外部流程:仅在有意创建仅含哈希的证据时使用 custodyType EXTERNAL;每条证据仍需使用新的 UUID。如果之前创建/上传证据失败且结果不确定,请先使用 evidence_list 验证再重试;除非已确认记录未持久化,否则不要重复使用同一个 id。警告:即使证据已成功持久化,API 有时仍会返回 {code:'EvidenceCreateError'}。 |
evidence_list | 列出特定证据组中的所有证据记录。可用于在封存证据组前检查已上传的文档,或查找特定的 evidenceId。需要:caseFileId 和 evidenceGroupId。返回包含 ID、标题、状态和时间戳的分页列表。 |
evidence_seal | 封存证据组并触发合格 TSP 时间戳。需要:组内所有 INTERNAL 证据记录均已上传到各自的 uploadFileUrl,并通过 evidence_get/evidence_list 验证。需要 case_file_create → caseFileId 和 evidence_group_create → evidenceGroupId。将 evidencesCount 设为组内证据数量。异步:调用后,轮询 evidence_group_list,直到组状态变为 CLOSED,再关联到档案或生成证书。 |
evidence_get | 获取特定证据记录。需要:evidence_create → evidenceId、evidence_group_create → evidenceGroupId、case_file_create → caseFileId。返回状态(COMPLETED |
evidence_group_create | 在案件文件中创建证据组。需要:case_file_create → caseFileId。为 id 生成一个 UUID v4。将 evidenceType 设为 FILE、PHOTO、VIDEO 或 WEB_PLUGIN。返回 evidenceGroupId。一个组可以包含多条证据记录。 |
evidence_group_list | 列出案件文件中的所有证据组及其当前状态(OPEN、CLOSING、CLOSED)。可用于查找现有组或检查哪些组已可封存。需要:caseFileId。 |
dossier_create | 创建档案,将已认证的证据组合并为单个防篡改 PDF。需要:case_file_create → caseFileId。关联前,证据组必须处于 CLOSED 状态。为 id 生成一个 UUID v4 字符串。返回 dossierId。创建后,使用 dossier_evidence_link 关联证据,然后使用 dossier_certify 进行认证。 |
dossier_update | 更新现有档案的元数据(名称、模板字段、有效期)。需要:dossier_create → dossierId、caseFileId。仅当档案处于 DRAFT 状态时可用。 |
dossier_certify | 认证档案,生成防篡改 PDF 并锁定所有关联的证据。需要:dossier_create → dossierId、dossier_evidence_link(已关联证据)、case_file_create → caseFileId。异步:状态从 DRAFT → CERTIFYING → CERTIFIED。轮询 dossier_list,直到 dossierId 状态 === CERTIFIED 后再下载。 |
dossier_list | 列出案件文件中的所有档案及其状态和元数据。可用于查找现有 dossierId 或监控认证进度。需要:caseFileId。返回包含 ID、名称、状态和创建日期的分页列表。 |
dossier_list_by_user | 列出用户所有案件文件中的每个档案。需要:userId(来自 session_login 或 session_info)。不知道档案属于哪个案件文件时使用此工具;已有 caseFileId 时使用 dossier_list。支持 filter、order 和 page。返回 { data, meta.totalElements }。 |
dossier_get | 获取特定档案的完整详情,包括状态、关联证据和下载 URL。可用于检查当前状态,或在档案 CERTIFIED 后获取证书下载 URL。需要:caseFileId 和 dossierId。 |
dossier_template_list | 列出可用的档案模板。无前置条件。返回模板 ID 及其各语言译文。在 dossier_create 中将返回的 id 用作 dossierTemplateId。 |
dossier_preview | 返回档案在认证前的 HTML 预览 URL。需要:caseFileId 和 dossierId。 |
dossier_document_url | 返回已认证档案 PDF 的下载 URL。需要:dossier_certify(CERTIFIED 状态)、caseFileId、dossierId。 |
dossier_package_url | 返回完整档案包(PDF + 证据文件)的下载 URL。需要:dossier_certify(CERTIFIED 状态)、caseFileId、dossierId。 |
dossier_visibility | 更新已认证档案的可见性(公开/私有)。需要:dossier_certify(CERTIFIED 状态)、caseFileId、dossierId。 |
dossier_delete | 删除档案。DRAFT 状态下可用(在认证前丢弃),CERTIFIED 状态下也可用(永久移除已认证档案)。此操作不可逆。需要:caseFileId 和 dossierId。 |
dossier_group_certify | 一次调用即可从单个已封存证据组创建并认证档案(快速流程)。需要:evidence_seal(CLOSED 状态)、case_file_create → caseFileId、evidence_group_create → evidenceGroupId。为 id 生成一个 UUID v4 字符串。只有一个已封存证据组且不需要合并多个组时使用。立即返回 dossierId,状态为 CERTIFYING → 轮询直到 CERTIFIED。 |
dossier_evidence_link | 将已封存证据组中的证据记录关联到档案。需要:dossier_create → dossierId、evidence_seal(CLOSED 状态)、case_file_create → caseFileId。证据组必须处于 CLOSED 状态。传入要关联的证据 UUID 的 ids 数组。可以多次调用,以关联来自不同案件文件的证据。 |
dossier_evidence_list_to_link | 列出可关联到档案的证据项(尚未关联的 CLOSED 组)。需要:caseFileId 和 dossierId。 |
dossier_evidence_list | 列出档案中某一个证据组所关联的证据项。需要:caseFileId、dossierId 和 dossierEvidenceGroupId,三者缺一不可。要查看档案中所有组的证据项,请改用 dossier_evidence_list_by_dossier。支持 filter、order 和 page。 |
dossier_evidence_list_by_dossier | 列出档案所有证据组中关联的每一项证据。需要:caseFileId 和 dossierId。这是档案范围的视图;dossier_evidence_list 的范围更窄,仅查看单个组,且还需要 dossierEvidenceGroupId。支持 filter、order 和 page。返回 { data, meta.totalElements }。 |
dossier_evidence_get | 获取档案中某个特定关联证据项的详情。需要:caseFileId、dossierId、evidenceId。 |
dossier_evidence_delete | 从档案中移除证据项。仅当档案处于 DRAFT 状态时可用。需要:caseFileId、dossierId、evidenceId。 |
notification_document_add | 为通知添加文档。分两步:此调用注册文件并返回 { url }(预签名上传 URL),然后将原始字节内容 PUT 到该 URL,并携带 x-amz-checksum-sha256 标头。为 id 生成一个 UUID v4,并在调用前计算文件的 SHA-256 十六进制哈希——将其填入 hash。顺序至关重要,顺序错误会导致发送失败:添加所有文档后,再添加收件人;等每份文档都达到 READY_TO_SEND(轮询 notification_document_list;约需 8 秒)后,再调用 notification_request_send。在添加收件人后附加文档,或文档仍为 PENDING 时发送,都会返回 409/404 NOTIFICATION_NOT_FOUND。附件数量上限由订阅设置决定,而不是固定的 API 限制,因此不要假定某个数量。附件可以打包进送达证书中——请参阅 notification_certificate_package_url。 |
notification_request_create | 创建认证通知请求。需要:case_file_create → caseFileId。为 id 生成一个 UUID v4。将 language 设为 en_GB 或 es_ES。返回 notificationRequestId。发送前,使用 notification_receiver_add 添加至少一名收件人。重要:content 字段必须是有效 HTML——没有 HTML 标签的纯文本不会显示在收件人落地页上。仅支持以下 HTML 格式:段落()、粗体()、斜体()、无序列表(
|
notification_request_send | 向所有已添加的收件人发送认证通知。需要:notification_request_create → notificationRequestId、notification_receiver_add(至少一名收件人)、case_file_create → caseFileId。异步:触发送达流程。在生成证书前,轮询 notification_request_status,直到状态为 SENT 或更后续状态(PARTIALLY_READ、FULLY_READ)。 |
notification_request_status | 检查认证通知的送达状态。需要:notificationRequestId、caseFileId。返回状态(CREATING |
notification_receiver_add | 向通知请求添加收件人。需要:notification_request_create → notificationRequestId、case_file_create → caseFileId。id 可以是 UUID v4,也可以是自定义字符串(例如你的内部用户 ID)。返回 receiverId——请保存,以供 notification_certificate_get 使用。始终通过电子邮件送达;设置 sendWaUrl 可提供 WhatsApp 链接,设置 sendSmsUrl 可提供 RCS/SMS 链接(渠道会协商:手机支持时使用 RCS,否则使用 SMS),设置 otpRequired 可通过一次性验证码验证收件人。这三项中的任何一项都需要 phonePrefix(带 +)和 phoneNumber。调用 notification_request_send 前添加所有收件人;但如果通知带有附件,必须先添加附件(请参阅 notification_document_add)。 |
notification_certificate_get | 为特定收件人生成或获取 PDF 证书,用于证明通知已送达和/或已读。需要:notification_request_send、notification_receiver_add → receiverId、notification_request_create → notificationRequestId、case_file_create → caseFileId。首次为该收件人请求证书时,为 id 生成一个 UUID v4,轮询时重复使用同一个 id。仅当 notification_request_status 为 SENT 或更后续状态时调用。首次调用可能返回 {},此时证书仍在生成中;请轮询/重新调用 notification_certificate_get,直到响应包含 pdfUrl/documentUrl 或 CERTIFIED/最终状态。如果后端在 SENT 状态下返回 Forbidden/Unexpected,不要持续高频调用证书端点:轮询 notification_request_status 直到 READ/ANSWERED,或在 UI 中验证后,再使用同一个证书 id 重试。对于 ACCEPTED_OR_NOT 通知,请在达到可认证的送达/已读状态后调用一次,获取中间证书;在达到 PARTIALLY_ANSWERED/FULLY_ANSWERED 后再次调用,获取最终答复证书。 |
notification_request_list | 列出用户可见的认证通知。需要 userId(来自 session_login、session_info 或 profile_get)——此列表按用户范围筛选,而非按案件文件筛选,因此除非进行过滤,否则会涵盖所有案件文件。可用于找回遗失的 notificationRequestId;这是唯一的查找方式。每条通知返回:id、code、subject、status、type、sentAt、receiverStats 和所属 caseFile。可按 status 或 statuses(CREATING、DRAFT、IN_PROCESS、SENT、PARTIALLY_READ、FULLY_READ、PARTIALLY_ANSWERED、FULLY_ANSWERED)、caseFileIds、subject 的 search 或用于查找发送给特定收件人的 receiversSearch 进行筛选。分页。 |
notification_request_update | 编辑尚未发送的通知:subject、content、type 和 language。需要 notificationRequestId 和 caseFileId。content 必须是有效 HTML——API 虽接受纯文本,但纯文本不会显示在收件人落地页上。仅支持以下标签:、、、
|
notification_request_delete | 删除通知。需要 notificationRequestId 和 caseFileId。无法撤销。已测试:通知发送后,API 会以 403 Forbidden 拒绝此操作——已发送的通知属于送达证据,不能删除。如果只想将其归档到其他位置,请改用 notification_request_case_file_move。 |
notification_request_duplicate | 从现有通知创建新的 DRAFT 通知,并复制其内容、收件人和附件。无论原通知处于何种状态都可使用,因此可用于向同一批人重新发送,或将已发送的通知作为模板重用。为 id 生成一个 UUID v4,并提供新的 subject;在请求体中传入 caseFileId 可将副本放入另一个案件文件,省略则将其保留在原通知所在的位置。副本异步构建:初始状态为 CREATING,收件人和文档数量均为零,之后才会逐步填充,因此立即读取时会显示为空的通知,但实际上并非空通知。请轮询 notification_request_status,直到状态变为 DRAFT,再检查或发送。由于收件人会被复制,请在调用 notification_request_send 前使用 notification_receiver_list 检查;否则会再次发送给原收件人。 |
notification_request_case_file_move | 将通知移动到另一个案件文件。注意两个 caseFileId 的含义:路径中的值是通知当前所在的案件文件,请求体中的值是目标位置。通知按案件文件分组,而这是在不复制通知的情况下更改分组的唯一方式。 |
notification_receiver_list | 列出通知的收件人及其各自的送达状态。每位收件人返回:id、firstName、lastName、email、phonePrefix/phoneNumber、status(INVALID、READY_TO_SEND、SENT、READ、ANSWERED、ERROR)、statusUpdatedAt、收件人回复后的 answer、emailBounced,以及被拒绝地址的 validationError(TAKEN、IS_DEFINED、IS_INVALID)。可在 notification_request_send 前调用,检查是否有地址显示为 INVALID;发送后也可调用,查看谁已读或回复。也可用于找回 notification_certificate_get 所需的 receiverId。支持分页;可按 id 筛选。 |
notification_receiver_update | 更正收件人信息:firstName、lastName、email、phonePrefix、phoneNumber。需要 receiverId、notificationRequestId 和 caseFileId。与其删除后重新添加(这会导致 receiverId 丢失),不如使用此工具修正输入错误的地址。phonePrefix 必须包含 +(例如 +34)。如果收件人需要接收 RCS/SMS 链接(sendSmsUrl)、WhatsApp 链接(sendWaUrl)或 OTP 验证(otpRequired),则必须提供电话号码。 |
notification_receiver_delete | 从通知中移除收件人。需要 receiverId、notificationRequestId 和 caseFileId。若要一次性移除平台拒绝的所有地址,请使用 notification_receiver_invalid_purge,而不是逐个删除。 |
notification_receiver_add_bulk | 一次添加多名收件人,而无需为每人单独调用 notification_receiver_add。将 receivers 作为数组传入;每个条目都需要 id(由你生成)、firstName、lastName 和 email,并可选提供 phonePrefix(带 +)和 phoneNumber。注意,此批量方式不接受单收件人工具支持的逐收件人 otpRequired、sendWaUrl 或 sendSmsUrl 标志;请改为在请求中设置默认值(otpByDefault、sendWaUrlByDefault、sendSmsUrlByDefault)。收件人数量上限由订阅设置决定,并非固定的 API 限制:上限因租户和平台而异,因此不要假定某个数量——添加收件人,并在超过租户上限时查看错误。调用 notification_request_send 前添加所有收件人,然后使用 notification_receiver_list 检查结果,因为被拒绝的地址会显示为 INVALID。 |
notification_receiver_invalid_purge | 一次性从通知中移除所有状态为 INVALID 的收件人——即平台判定为格式错误或重复的地址。需要 notificationRequestId 和 caseFileId。其他状态的收件人不受影响。INVALID 收件人会阻止发送,因此请在调用 notification_request_send 前运行此工具(或使用 notification_receiver_update 修正地址),否则通知无法发送。先使用 notification_receiver_list 查看将被移除的对象。 |
notification_document_list | 列出附加到通知的文档及其处理状态,也可用于在调用 notification_document_add 后轮询:新注册的文档初始状态为 PENDING,约 8 秒后变为 READY_TO_SEND。任何文档仍处于 PENDING 时调用 notification_request_send,都会失败并返回 409/404 NOTIFICATION_NOT_FOUND。请在有限次数内重试轮询——每隔几秒一次,最多尝试十几次。需要 notificationRequestId 和 caseFileId。分页。 |
notification_document_delete | 从通知中移除附件。需要 documentId(来自 notification_document_list)、notificationRequestId 和 caseFileId。 |
notification_document_download_url | 返回 { downloadUrl },即附件发送时版本的临时链接。需要 documentId(来自 notification_document_list)、notificationRequestId 和 caseFileId。可用于获取你附加的文件,或验证收件人收到的内容。该 URL 为预签名 URL,设有有效期——需要时再获取,不要存储。 |
notification_certificate_list | 列出某位收件人已生成的送达证书,以便重用而不是重复生成。需要 receiverId、notificationRequestId 和 caseFileId。每份证书返回:id、status(DRAFT、CERTIFYING、CERTIFIED)、language、createdAt、certifiedAt、partial(表示这是在收件人完成回复前签发的中间证书),以及 embeddedDocuments。不要将 embeddedDocuments 理解为“证书包中包含附件”:一次测试中,带有附件的通知其该字段为 false,但 notification_certificate_package_url 仍返回了包含该附件的 ZIP。证书状态变为 CERTIFIED 后,使用 notification_certificate_document_url 下载证书本身,或使用 notification_certificate_package_url 下载同时包含附件的 ZIP。 |
notification_certificate_document_url | 返回证书 PDF 本身的 { documentUrl },不含附件。需要 certificateId、receiverId、notificationRequestId 和 caseFileId。请等待证书达到 CERTIFIED 状态:生成是异步的,仍处于 CERTIFYING 时首次调用可能返回 404 或空结果,因此请在有限次数内重试几次,不要高频调用。如果要将附件一起打包,请改用 notification_certificate_package_url。 |
notification_certificate_package_url | 返回 { packageUrl },即包含证书和通知附件的 ZIP——“含附件”版本。API 中没有单独的预览标志:package 包含附件,document 仅包含证书本身。需要 certificateId、receiverId、notificationRequestId 和 caseFileId。前置条件与 notification_certificate_document_url 相同——等待状态变为 CERTIFIED;生成仍在进行时,首次调用可能失败。 |
case_file_create | 创建新的案件文件——所有相关操作(证据、通知、档案、聊天)的顶层容器。任何其他操作前都应先调用此工具。为 id 生成一个 UUID v4。返回后续调用都需要的 caseFileId。 |
case_file_list | 列出 GoCertius 账户中的所有案件文件。传入 userId(来自 session_login 或 session_info),可将结果限定为你的账户。返回包含 ID、名称和状态的分页列表。 |
case_file_get | 获取特定案件文件的详情。需要:caseFileId。可用于在创建证据组、档案或通知前验证案件文件是否存在。 |
case_file_delete | 删除案件文件及其中归档的所有内容——证据组、档案、通知及其证书。此操作不可逆,无确认步骤,也没有回收站。需要:caseFileId。无响应正文(HTTP 204);请使用 case_file_list 确认。除非用户要求销毁该案件文件,否则不要调用此工具进行“清理”。 |
chat_create | 创建已认证的聊天频道(Telegram)。重要:只能在用户的个人案件文件中创建聊天频道(该文件在 GoCertius 账户开通时自动创建)。不要使用手动创建的案件文件——使用 session_info → case_file_list 查找个人案件文件(createdAt 最早且归用户所有的文件)。为 id 生成一个 UUID v4。将 service 设为 Telegram。工具会立即返回,而聊天状态可能为 creating;在请求邀请 URL 或证书前,请调用 chat_get 并等待聊天完成注册/激活。 |
chat_get | 获取已认证聊天的详情。需要:个人案件文件的 caseFileId 和 chat_create → chatId。返回状态、参与者和 registeredAt 时间戳。调用 chat_create 后,轮询 chat_get,直到状态为 active/registered 且 registeredAt 存在;仅有 createdAt 不足以创建证书。 |
chat_invitation_url | 返回已认证聊天的 Telegram 邀请 URL。需要:chat_create → chatId 和个人案件文件的 caseFileId。若 chat_get 仍显示状态为 creating,不要调用此工具;应等待聊天完成注册/激活,否则 API 可能返回 Chat not found。将返回的 invitationUrl 分享给参与者,以便他们加入已认证频道。 |
chat_certificate_create | 为已认证聊天中的一段消息创建证书。需要:chat_create → chatId、个人案件文件的 caseFileId、chat_get → registeredAt,且 Telegram 频道中已有消息。为 id 生成一个 UUID v4。不要用 createdAt 代替 registeredAt;如果没有 registeredAt,说明聊天尚未准备好进行认证。将 chatMessagesFrom 和 chatMessagesTo 指定为 ISO 时间戳(chatMessagesFrom 必须晚于 registeredAt)。异步:轮询 chat_certificate_get,直到 status === CERTIFIED。 |
chat_certificate_get | 获取已认证聊天的证书。需要:chat_certificate_create → 证书 id、chat_create → chatId、case_file_create → caseFileId。状态达到 CERTIFIED 时返回 documentUrl。使用 documentUrl 前请先轮询,直到状态为 CERTIFIED。 |
session_login | 强制 MCP 服务向 GoCertius 重新进行身份验证。不接受任何参数,也不接受凭据——服务会重新使用其配置的用户密钥(MCP_AUTH_USER_KEY)换取新的会话令牌,并报告生成的 userId 和过期时间。MCP 服务会自动管理身份验证;只有遇到 401 错误时才调用此工具。如果服务没有自己的凭据(未配置凭据,或你提供了自己的 Bearer 令牌),则没有可供续期的会话,此工具会返回一个提及 MCP_AUTH_USER_KEY 的错误。 |
session_info | 获取当前已认证会话的信息:userId、type(此 MCP 会话的身份验证方式——始终为 UserKey,这是服务唯一的身份验证流程)、accountLoginType(另一项信息:GoCertius 账户本身的登录方式,为 Password 或 OpenId;若 API 未提供则为 null)、email、companyId 和 defaultCaseFileId。可用于验证当前登录身份或检查会话有效性;身份通过 GET /profile 解析。如果只需要 userId,请优先使用 profile_get——它是规范来源(id),并会返回其余个人资料信息。无必需参数。 |
profile_get | 返回已认证用户本人的个人资料。仅凭会话令牌识别调用者——无需 email 或其他输入,因此适用于所有部署,包括每个请求单独使用 Bearer 令牌的部署。其 id 字段就是你的 userId(UUID):这是 case_file_list 和所有 /users/{userId}/... 操作所需的值。需要 userId 时优先使用此工具,而不是 session_info:它是规范来源。还会返回 companyId(订阅通知 SSE 流所需)和 defaultCaseFileId(个人案件文件——聊天必须使用此文件)。此外,还会返回 permit,这是一个布尔值集合——{ evidences, idVerifications, notifications, chats, signatures }——用于说明此账户可以使用哪些工具类别:值为 false 表示该类别中的所有工具都会返回 403,无论输入是什么;重试或更改参数都无济于事。首次调用某个类别中的工具前,请先读取此字段。注意,此服务中没有对应工具的类别会显示为 false,这是正常现象,不代表配置错误。无参数。 |
evidence_upload | 一步将本地文件作为证据上传:计算其 SHA-256、注册证据记录(custodyType INTERNAL = GoCertius 存储文件),并将字节内容上传到 S3——无需手动计算哈希或执行 PUT。内部按 GoCertius 要求的顺序执行:创建 INTERNAL 证据 → 获取 uploadFileUrl(预签名 S3 URL)→ PUT 文件字节 → 返回 uploaded:true。需要:case_file_create → caseFileId、evidence_group_create → evidenceGroupId。必须且只能提供 filePath(绝对本地路径,仅限 stdio/本地模式)或 contentBase64(Base64 编码的文件内容,约最多 10 MB)中的一项。文件位于本地计算机时使用 evidence_upload;已有 SHA-256 哈希、需要检查/手动使用 uploadFileUrl,或有公开 fileUrl 时使用 evidence_create。此工具成功后,使用 evidence_get/evidence_list 验证,之后才能调用 evidence_seal。如果此工具在返回证据 id 前失败,请先检查 evidence_list 再重试;若手动重试,请使用 evidence_create 并生成新的 UUID。本地文件必须小于 1 GiB。 |
notification_send | 一次调用即可向一名或多名收件人发送认证通知:创建通知请求、添加所有收件人并发送。所有 UUID 均由工具自行生成——不要传入任何 id。需要 case_file_create → caseFileId。content 必须为 HTML:API 虽接受纯文本并报告 SENT,但纯文本不会显示在收件人落地页上。仅支持以下标签:、、、
|
notification_send_with_attachments | 一次调用即可向一名或多名收件人发送带有一个或多个附件的认证通知。没有附件时请改用 notification_send。此工具单独提供,是因为 API 强制执行附件顺序规则,且不允许违反:必须先注册并完整上传文档,再添加任何收件人;通知发送前,每份文档都必须达到 READY_TO_SEND——否则发送会失败并返回 409/404 NOTIFICATION_NOT_FOUND。此工具会为你执行完整流程:创建 → 注册并上传每份文档 → 等待 READY_TO_SEND → 添加收件人 → 发送。每个附件可使用本地文件路径、Base64 内容、HTTPS URL 或 n8n 二进制引用;哈希计算和上传由工具内部处理。所有 UUID 均由工具自行生成——不要传入任何 id。需要 case_file_create → caseFileId。content 必须为 HTML:API 虽接受纯文本并报告 SENT,但纯文本不会显示在收件人落地页上。仅支持以下标签:、、、
|
共存
此 MCP 服务是 GoCertius API 当前正在积极维护的接口。
它可以与您配置中的其他 MCP 服务安全共存——它仅公开以 GoCertius 为命名空间的工具,且不与其他服务共享本地状态。
许可证
MIT — 请参阅 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。