SignalEDI

io.github.SignalEDI由 GitHub 帳號 SignalEDI 發布v0.4.0更新於 Oct 24, 2026

EDI parse, validate, send, inspect, and QuickBooks tools for MCP clients.

概覽

AI 產生的概覽

SignalEDI 的 MCP 伺服器,讓助理搜尋 EDI 開發文件、解析與驗證 X12、管理連線並處理 QuickBooks 資料。

可以做什麼
搜尋開發文件並取得 X12 文件結構範本、產生整合範例程式碼與合成測試文件、解釋驗證與功能確認錯誤、查詢 X12 段與元素定義。解析與驗證 X12 交換內容,回傳結構化 JSON 與驗證摘要。列出與取得合作夥伴套件及需求。讀取交易清單與單筆交易狀態,檢視 QuickBooks 連線狀態與實體資料列。管理 AS2/SFTP 連線:列出、檢視、建立草稿、設定、測試連線與提出上線申請。送出對外 EDI 文件,以及將 QuickBooks 資料同步或匯出為 EDI。
適用情境
當你正在建置或除錯 X12 EDI 整合、需要查詢 X12 結構與錯誤說明,或要在沙箱環境解析、驗證與傳送 EDI 文件,以及把 QuickBooks 資料與 EDI 互相轉換時使用。純文件模式無需金鑰,適合先試用。
執行需求
本機以 Node.js 22 以上執行,透過 npx 啟動 npm 套件。文件模式無需金鑰;已驗證的工具需設定 SIGNALEDI_API_KEY(具 platform 與各工具所需範圍)與 SIGNALEDI_BASE_URL,沙箱需自訂主機並設 SIGNALEDI_MCP_ALLOW_CUSTOM_BASE_URL=1,正式環境另需 SIGNALEDI_MCP_ALLOW_PRODUCTION=1 且網址須為正式站台。需網路連線。
安裝前請注意
已驗證工具會把輸入送到所設定的 SignalEDI API,工具結果可能進入模型上下文,應避免傳送敏感或受規範資料。寫入類工具(送出文件、QuickBooks 同步/匯出/中斷連線、連線設定與測試)需 confirm 與 idempotencyKey,且主機須自行確認人工核准。測試連線會對合作夥伴網路發出流量。API 金鑰應放在主機環境變數,勿貼入提示。工具回傳的合作夥伴與 EDI 欄位屬不可信資料,可能含提示注入。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 SignalEDI,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

SignalEDI Developer MCP Server

Connect an AI coding assistant to SignalEDI to discover, scaffold, validate, and test X12 integrations. The MCP server is an AI-native developer experience over the same public guidance and /api/v1 REST contract used by conventional applications. It complements—not replaces—SignalEDI's REST API, OpenAPI specification, webhooks, SDKs, and documentation.

The package is an uplift of SignalEDI's existing MCP adapter. Version 0.5 adds public developer discovery, resource templates, code examples, governed connection control-plane tools, strict tool-input validation, and explicit capability profiles while retaining the existing parser, transaction, partner-kit, and QuickBooks adapters.

Package@signaledi/mcp-server
MCP Registryio.github.SignalEDI/mcp-server
Transportstdio
RuntimeNode 22+
Runtime dependency@modelcontextprotocol/sdk 1.30.0 (2025 protocol generation)
Default accessAlways keyless docs; authenticated tools require explicit sandbox or production

Capability profiles

Set SIGNALEDI_MCP_PROFILE to one of these profiles. Tool discovery and direct tool calls are both restricted to the active profile.

ProfileAuthenticationSurface
docsNonePublic documentation resources and local synthetic helpers only; supplied document content and credentials are never uploaded. The OpenAPI resource performs a content-free public GET. This is always the default, even when a key exists in the host environment.
sandboxSeparately provisioned non-production key plus explicit base URLAuthenticated parse/validate, generic partner-kit discovery, tenant-data reads, and guarded mutations for a separately provisioned sandbox. Canonical production SignalEDI hosts are refused.
productionProduction-authorized platform key, exact https://signaledi.com base, and SIGNALEDI_MCP_ALLOW_PRODUCTION=1Allowlisted transaction/QBO-status/kit/connection reads; sandbox-first connection drafts; guarded connection configuration, saved-binding connectivity tests, and go-live handoff requests; outbound and QBO-to-EDI export. Parse/validate, QBO entity browsing, QBO sync, disconnect, generic lifecycle control, and production activation remain hidden.

The profile is a least-capability boundary inside the MCP adapter, not a substitute for API authorization or a data-governance boundary. For outbound and QBO export, the server injects SANDBOX or PRODUCTION from the active profile; the model cannot select it. The API then binds that value to the selected partner connection. Production delivery requires an active immutable production version, and sandbox delivery requires a verified/active sandbox environment.

Every authenticated call requires the base platform scope. Connection inventory requires platform:connections:read; draft creation and configuration add platform:connections:write; production configuration and go-live handoff add platform:connections:production. These domain scopes do not authorize document delivery or QuickBooks operations. Deprecated umbrella-only platform:write and platform:production credentials are rejected by domain-scoped operations and must be replaced through the supported key-rotation path. Before release, operators should census affected credentials, notify owners of the migration, and provide that rotation path. MCP profile selection never grants a scope.

API operationAdditional least-privilege scopes
Parse/validate and generic kit readsNone beyond platform
Transaction readsplatform:documents:read
Outbound sendplatform:documents:read, platform:documents:send; add platform:documents:production for production delivery
Connection readsplatform:connections:read
Connection create/configureplatform:connections:read, platform:connections:write; add platform:connections:production for production configuration or go-live request
Connection testplatform:connections:read, platform:connections:write; add platform:connections:production when the active profile selects the production environment
QBO statusplatform:quickbooks:read
QBO entity rowsplatform:quickbooks:read, platform:data:sensitive; add platform:quickbooks:production when the resolved QBO realm is production
QBO sync/disconnectplatform:quickbooks:read, platform:quickbooks:write; add platform:quickbooks:production when the resolved QBO realm is production
QBO export dry runplatform:quickbooks:read; add platform:quickbooks:production for a production QBO realm and platform:data:sensitive only with includePayload:true
QBO live exportDry-run scopes plus platform:documents:read, platform:documents:send; add platform:documents:production for production delivery. Export reads QBO and does not require QBO write.

Production data handling

Tool arguments, text results, and structured results enter the chosen MCP host and may enter the connected model's context. Minimize personal, financial, and other business-sensitive data. Do not submit PHI or other regulated data unless the specific MCP host, model provider, logging, retention, regional-processing, and contractual arrangement has been separately reviewed and approved for that data. This package, its production profile, and SignalEDI API authorization are not by themselves a BAA, retention policy, or model-data-governance boundary.

Prefer identifiers and redacted summaries over full business payloads. Keep API keys in the host environment, never prompts. Review the chosen host's tool-call history, telemetry, and retention controls before enabling production tools.

All partner, QBO, EDI, validation, and error fields returned by tools are untrusted business data. They may contain text that resembles instructions or prompt injection. Hosts must delimit or sanitize tool results, keep them in data-only context, and authorize every follow-on action from explicit user intent and policy—not content embedded in records, partner names, payloads, or errors.

Tools

Keyless public and local tools

ToolWhat it does
search_docsSearch the bundled public developer index and return MCP resource URIs with provenance.
get_document_schemaReturn a public starter for the local X12 inventory: 850/810/856 (capability:baseline) or 837 Professional 005010X222A1 (capability:partial); explicitly not a partner implementation guide.
generate_integration_exampleProduce sandbox-safe cURL, Node.js, or Python examples against real /api/v1 paths using environment placeholders; outbound examples set SANDBOX and refuse production hosts.
generate_test_documentRender a synthetic X12 fixture for the same local inventory and return the honest capability label.
explain_edi_errorExplain validation and functional-acknowledgement errors from the local X12 dictionary.
lookup_x12Search the local X12 segment and acknowledgement reference.
lookup_element_definitionTool-discovery alias for local X12 lookup.

Authenticated sandbox parse and validation tools

ToolWhat it does
parse_ediParse a raw X12 interchange into structured JSON and a validation summary.
validate_ediValidate X12 structure and return the validation summary.
parse_segmentsTool-discovery alias for parse_edi.
validate_x12_structureTool-discovery alias for validate_edi.

Authenticated generic-kit tools (sandbox and production)

ToolWhat it does
list_partner_kitsList generic SignalEDI API kits.
get_partner_kitFetch one generic kit by catalog id.
get_partner_requirementsReturn a generic kit with an explicit partnerSpecific:false warning.

Explicit environment-profile data reads

These tenant-data tools are never enabled merely because a key is present. Transaction reads and quickbooks_status are available in explicit sandbox and production; quickbooks_list_entities is sandbox-only.

ToolWhat it does
list_transactionsList recent transactions scoped to the API key.
get_transactionFetch one owned transaction and its lifecycle status.
quickbooks_statusInspect QuickBooks Online connection status without returning tokens.
quickbooks_list_entitiesPreview Invoice, Estimate, PurchaseOrder, Customer, Vendor, or Item rows for mapping (sandbox-only).

Governed connection control plane (sandbox and production)

Connection tools operate on the public /api/v1/connections contract. MCP applies a second response allowlist over the API's sanitized representation: it may return opaque gateway/evidence references and configured-status booleans, but never stored credentials, secret references, raw transport configuration, private keys, certificates, or tokens.

ToolWhat it does
list_connectionsCursor-page tenant-scoped AS2/SFTP and legitimate legacy API connection summaries with optional partner/lifecycle filters.
get_connectionInspect safe environment, gateway, approval, test-coverage, readiness, and next-action state for one AS2/SFTP or legacy API connection.
create_connection_draftCreate or recover an idempotent sandbox-first DRAFT; created distinguishes insertion from matching reuse, and it cannot activate production.
configure_connectionBind an existing gateway reference and constrained X12 ISA/GS identifiers to an AS2/SFTP SANDBOX or PRODUCTION environment; the server owns ISA15 and accepts no credential material. Production configuration requires platform:connections:production and still does not activate delivery. Legacy API rows remain read-only here and use the governed API-connections surface.
test_connectionTest the exact saved connection in the environment injected from the active profile. The operation causes partner-network egress, records sanitized evidence, requires host-enforced review plus an idempotency key, and never accepts endpoints or credentials or activates production.
request_connection_go_liveAsk the API to move a server-proven READY connection only to GO_LIVE_APPROVED. SignalEDI staff activation remains a separate MFA/governance operation.

There is deliberately no generic lifecycle-transition tool. test_connection can create authoritative connectivity evidence for the exact saved binding; intermediate testing/certification stages otherwise come from evidence or onboarding-project state, not model claims. There are no production activation, rollback, or isolation tools.

Explicit write-profile tools

ToolWhat it does
send_outbound_documentSubmit an outbound EDI document in the active sandbox/production environment.
quickbooks_sync_to_qboPush a bounded transaction selection into QBO (sandbox-only); buyer and supplier directions are explicit, and all:true is cursor-paginated.
quickbooks_export_to_ediPreview or export QBO invoices/purchase orders as EDI in the active sandbox/production environment. Dry-run results are payload-redacted by default; full payloads require includePayload:true, platform:data:sensitive, and host-enforced confirm:true.
quickbooks_disconnectRevoke and remove the workspace QBO connection (sandbox-only).

Every tool publishes an input and output schema. The server validates inputs itself, rejects unknown fields, and returns both readable text and structuredContent with namespaced contract metadata.

Mutation safety

Write tools are absent from docs. Every live mutation requires confirm:true and a caller-generated idempotencyKey of 8–128 printable ASCII characters without leading/trailing whitespace. Outbound sends, QBO sync/export/disconnect, and connection create/configure/test/go-live requests enforce durable API-side replay protection and are annotated idempotent. QBO disconnect stays sandbox-only and reports a pending Intuit revocation instead of claiming completion. confirm:true is an assertion from the calling workflow; the MCP server cannot independently prove that a human approved it, so the host must present the action for review.

The MCP client never automatically retries mutations or parse/validate POSTs. Parse/validate upload synthetic or approved test data and can record sandbox usage, so their annotations remain non-read-only and non-idempotent. Read-only GETs retain bounded transient retry behavior.

Custom base URLs are rejected unless SIGNALEDI_MCP_ALLOW_CUSTOM_BASE_URL=1 is set after the destination is verified. URLs containing credentials, paths, queries, or fragments are rejected. HTTP is allowed only for localhost and still requires the custom-host opt-in.

The adapter caps raw EDI inputs at 65,536 UTF-8 bytes, serialized JSON request bodies at 1 MiB, and API responses at 4 MiB. The input schemas publish character/collection bounds; byte limits are rechecked immediately before network use, and streamed responses are cancelled when they cross the cap.

Resources and prompts

Stable guidance is exposed as resources rather than action tools:

  • signaledi://quickstart
  • signaledi://openapi
  • signaledi://developer-workflows
  • signaledi://x12-reference
  • signaledi://documents/{transactionSet}/schema

The document schema is also advertised as a resource template. Prompts include scaffold-integration, onboard-partner, and debug-rejection; scaffold and onboarding prompts default to synthetic data and avoid writes until an isolated sandbox is confirmed.

Quick start

Run the public docs profile:

bash
npx -y @signaledi/[email protected]

Configure the authenticated sandbox profile only after a non-production base and key have been provisioned. Claude Code project config (.mcp.json) expands ${NAME} from the host environment:

json
{  "mcpServers": {    "signaledi": {      "command": "npx",      "args": ["-y", "@signaledi/[email protected]"],      "env": {        "SIGNALEDI_MCP_PROFILE": "sandbox",        "SIGNALEDI_API_KEY": "${SIGNALEDI_SANDBOX_API_KEY}",        "SIGNALEDI_BASE_URL": "${SIGNALEDI_SANDBOX_BASE_URL}",        "SIGNALEDI_MCP_ALLOW_CUSTOM_BASE_URL": "1"      }    }  }}

On native Windows, Claude Code must launch the npm shim through cmd:

json
{  "mcpServers": {    "signaledi": {      "command": "cmd",      "args": ["/c", "npx", "-y", "@signaledi/[email protected]"],      "env": {        "SIGNALEDI_MCP_PROFILE": "sandbox",        "SIGNALEDI_API_KEY": "${SIGNALEDI_SANDBOX_API_KEY}",        "SIGNALEDI_BASE_URL": "${SIGNALEDI_SANDBOX_BASE_URL}",        "SIGNALEDI_MCP_ALLOW_CUSTOM_BASE_URL": "1"      }    }  }}

Cursor uses .cursor/mcp.json, mcpServers, and ${env:NAME} references:

json
{  "mcpServers": {    "signaledi": {      "command": "npx",      "args": ["-y", "@signaledi/[email protected]"],      "env": {        "SIGNALEDI_MCP_PROFILE": "sandbox",        "SIGNALEDI_API_KEY": "${env:SIGNALEDI_SANDBOX_API_KEY}",        "SIGNALEDI_BASE_URL": "${env:SIGNALEDI_SANDBOX_BASE_URL}",        "SIGNALEDI_MCP_ALLOW_CUSTOM_BASE_URL": "1"      }    }  }}

Claude Code plugin

This public repository is also a Claude Code / Cowork plugin for the community plugin directory. The plugin launches the same npm package over stdio — there is no parallel MCP implementation and SignalEDI does not expose a hosted remote MCP URL, so skip the remote OAuth connector directory.

Plugin manifest.claude-plugin/plugin.json (name: signaledi)
MCP config.mcp.json → npx -y @signaledi/[email protected]
Skillskills/signaledi-mcp-profiles/
Validate locallyclaude plugin validate . --strict (from this folder; Claude Code CLI)
Submit (Console)platform.claude.com/plugins/submit
Submit (claude.ai Team/Enterprise)claude.ai/admin-settings/directory/submissions/plugins/new

Docs: Submitting your plugin. Official claude-plugins-official marketplace is curated; community submit still requires a public GitHub repo and claude plugin validate. One-click install needs @signaledi/[email protected] on npm.

Claude Desktop (MCPB)

Package the same stdio server as a Claude Desktop Extension (.mcpb). Source: mcpb/manifest.json + scripts/build-mcpb.mjs. See mcpb/README.md for full build and submit notes.

bash
npm cinpm run build:mcpb# → dist/signaledi-mcp-server-0.5.0.mcpb

Install by double-clicking the .mcpb, dragging it into Claude Desktop, or Settings → Extensions → Advanced → Install Extension…. Extension settings map to the same env vars as server.json (SIGNALEDI_API_KEY, SIGNALEDI_BASE_URL, SIGNALEDI_MCP_PROFILE, etc.). Author/publisher: SignalEDI · [email protected] · https://signaledi.com.

Directory submit (manual only): do not submit from this agent/CI. When ready, follow Anthropic’s desktop extension submission form after building/testing the artifact. Tooling: @anthropic-ai/mcpb (mcpb pack / mcpb validate). Spec: Build a desktop extension with MCPB.

Google Antigravity

Manual Antigravity / Gemini-style plugin folder at antigravity-plugin/ (wires mcp_config.json → npx -y @signaledi/[email protected]). MCP Store listing is not self-serve; install by copying the folder:

ScopePath
Global~/.gemini/config/plugins/signaledi
Workspace.agents/plugins/signaledi (or _agents/plugins/signaledi)

See antigravity-plugin/README.md. Brand: SignalEDI only.

Cursor Marketplace

This public repository is packaged as a Cursor Plugin for the official Marketplace. The plugin launches the same npm package over stdio — there is no parallel MCP implementation.

Plugin manifest.cursor-plugin/plugin.json (name: signaledi)
MCP configmcp.json → npx -y @signaledi/[email protected]
Logoassets/logo.svg (relative path)
Skillskills/signaledi-mcp-profiles/
Submitcursor.com/marketplace/publish → repo https://github.com/SignalEDI/mcp-server

Install (after listing): open Customize → Marketplace, search for SignalEDI, and install.

Configure: set plugin variables under Plugins → Configure (no secrets in the repo or prompts):

VariableTypical value
SIGNALEDI_MCP_PROFILEdocs (default), sandbox, or production
SIGNALEDI_API_KEYLeast-privilege workspace key (ignored by docs)
SIGNALEDI_BASE_URLVerified non-production origin, or exactly https://signaledi.com for production
SIGNALEDI_MCP_ALLOW_CUSTOM_BASE_URL1 only for verified custom hosts
SIGNALEDI_MCP_ALLOW_PRODUCTION1 only with the production profile and canonical base

Plugin mcp.json uses ${VAR} placeholders that match those dashboard variables (not the manual ${env:NAME} syntax used in project .cursor/mcp.json). Unset placeholders stay fail-closed on the keyless docs profile. Marketplace one-click install requires @signaledi/[email protected] (or newer matching pin) on npm; until that publish lands, local/manual npx against a published version still works for verification.

Publishing is subject to the Cursor Marketplace Publisher Terms. Marketplace plugins must be open source and pass manual review; see marketplace security.

Privacy Policy

SignalEDI’s product privacy policy is published at https://signaledi.com/privacy. The MCP adapter runs locally over stdio; authenticated calls send tool inputs to the SignalEDI API host you configure. Tool arguments, text results, and structured results enter the MCP host and may enter model context—see Production data handling above. Contact: [email protected].

VS Code uses .vscode/mcp.json, a top-level servers object, and a password input for secrets:

json
{  "inputs": [    {      "type": "promptString",      "id": "signaledi-api-key",      "description": "SignalEDI non-production sandbox API key",      "password": true    },    {      "type": "promptString",      "id": "signaledi-api-base",      "description": "Verified non-production SignalEDI API base URL"    }  ],  "servers": {    "signaledi": {      "type": "stdio",      "command": "npx",      "args": ["-y", "@signaledi/[email protected]"],      "env": {        "SIGNALEDI_MCP_PROFILE": "sandbox",        "SIGNALEDI_API_KEY": "${input:signaledi-api-key}",        "SIGNALEDI_BASE_URL": "${input:signaledi-api-base}",        "SIGNALEDI_MCP_ALLOW_CUSTOM_BASE_URL": "1"      }    }  }}

For a provisioned local sandbox, add the following values to the chosen client's env object, using that client's environment-reference syntax for the key:

json
{  "SIGNALEDI_MCP_PROFILE": "sandbox",  "SIGNALEDI_API_KEY": "<host environment reference to SIGNALEDI_SANDBOX_API_KEY>",  "SIGNALEDI_BASE_URL": "http://localhost:3100",  "SIGNALEDI_MCP_ALLOW_CUSTOM_BASE_URL": "1"}

Production is an explicit, fail-closed opt-in. Use only the canonical origin and keep the key in the MCP host environment:

json
{  "SIGNALEDI_MCP_PROFILE": "production",  "SIGNALEDI_API_KEY": "<host environment reference to SIGNALEDI_PRODUCTION_API_KEY>",  "SIGNALEDI_BASE_URL": "https://signaledi.com",  "SIGNALEDI_MCP_ALLOW_PRODUCTION": "1"}

The production profile does not accept custom hosts or a missing/implicit base. Removing any one of the profile, key, canonical base, or opt-in prevents startup.

Never paste real keys or secrets into prompts. MCP server environment variables are resolved by the host process, not by the model.

Configuration

Environment variableDefaultPurpose
SIGNALEDI_MCP_PROFILEdocsCapability boundary: docs, explicit sandbox, or explicit production. Supplying a key alone never enables remote tools.
SIGNALEDI_API_KEY—Least-privilege workspace key; ignored in docs, required in authenticated profiles. It needs base platform plus each tool's published domain scopes. Do not issue legacy umbrella write/production scopes to an MCP host.
SIGNALEDI_BASE_URLPublic production base for the content-free docs OpenAPI GET onlySandbox requires an explicit verified non-production origin; production requires exactly https://signaledi.com.
SIGNALEDI_MCP_ALLOW_CUSTOM_BASE_URL—Set to 1 only for a verified localhost, preview, or sandbox host.
SIGNALEDI_MCP_ALLOW_PRODUCTION—Set to 1 as the independent production opt-in; ignored by other profiles.
SIGNALEDI_MCP_TELEMETRYenabledSet to 0 to disable redacted local metric lines. Metrics contain tool, profile, result/code, latency, and request id—not payloads or secrets.

The server writes JSON-RPC only to stdout and logs only to stderr.

Deliberately deferred surfaces

The MCP does not fabricate hosted capabilities that are not yet backed by stable, tenant-isolated APIs:

  • suggest_mapping and validate_mapping wait for the structured mapping-validation service and partner-guide provenance contract.
  • create_sandbox_project, create_test_partner, submit_test_document, and get_test_results wait for stable tenant-isolated lifecycle/test routes.
  • generate_webhook_fixture and verify_webhook_signature wait for one canonical runtime signing contract; the current primary delivery/replay path and remediation path sign differently.
  • Credential rotation, raw gateway configuration, mapping deployment, arbitrary partner edits, manual evidence/lifecycle claims, production activation/rollback/isolation, QBO sync/disconnect, and document retransmission are not exposed in production. The production profile is limited to the allowlisted reads and server-gated draft/configuration/connectivity-test/go-live-request/outbound/QBO-export operations described above.

Local development

bash
node test.mjsnpm run test:stdionpm start

Unit tests use synthetic data and mock HTTP. The stdio integration tests exercise docs, sandbox, and production discovery without live API calls. See RELEASE_NOTES_0.5.0.md for release gates.

Architecture and repository authority

text
MCP client  <-> @signaledi/mcp-server over stdio      |- public documentation resources and local synthetic helpers      `- profile-gated calls to the conventional SignalEDI /api/v1 REST API

The standalone GitHub repository SignalEDI/mcp-server is the canonical source and sole automated npm/MCP Registry publish authority. The private SignalEDI/platform repository may retain a synchronized validation snapshot for its hosted API/backend contracts; see MIRROR.md. All examples are synthetic and must remain free of customer, health, financial, and credential data.

來源:README.md,提交 f567210

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.4.0最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分