4chems Platform — IUCLID, CHESAR & QSAR Toolbox hosting

com.4chems由 4chems.com 發布官方發布者v0.12.1更新於 Oct 24, 2026

Remote MCP server for 4chems hosted IUCLID, CHESAR and QSAR Toolbox: onboarding, inquiries, admin.

已驗證Streamable HTTP可網頁執行效率與工作流商業與電商

概覽

AI 產生的概覽

面向 4chems 託管平台的遠端 MCP 伺服器,讓助理處理帳號註冊、諮詢、租戶存取、邀請、帳務與服務開通

可以做什麼
瀏覽應用程式目錄、入門步驟與法人實體類型,並在無帳號情況下向 4chems 支援送出經驗證的諮詢。註冊 4chems 帳號或透過裝置流程登入並取得權杖。查看、建立、核准、駁回或撤回租戶存取請求,並輪詢長時間執行的操作。管理租戶邀請、成員與角色指派。讀取並補齊帳務資訊,列出或申請租戶服務訂閱。查看並記錄法律文件的接受情況。
適用情境
適合潛在或現有 4chems 客戶透過助理提問、建立帳號或試用租戶,並管理成員、邀請、帳務與訂閱,而不必使用網頁介面。它不提供物質或卷宗資料。
執行需求
遠端 Streamable HTTP 端點,無需本機執行環境。匿名連線及九個工具無需權杖;其餘工具需將 Bearer 權杖作為 authorization 參數傳入,權杖透過註冊帳號或裝置流程登入取得。註冊與試用租戶需要企業電子郵件地址,使用者須讀取郵件中的 6 位驗證碼。
安裝前請注意
Bearer 權杖屬於機密,只能作為 authorization 參數傳入。多個工具會修改資料:記錄同意、建立或撤銷邀請與指派、補齊帳務、申請服務。帳務資訊包含增值稅號與發票地址,歐盟增值稅號會經 VIES 驗證。郵件驗證碼不得猜測或重試。執行變更前應先與使用者確認。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 4chems Platform — IUCLID, CHESAR & QSAR Toolbox hosting,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/com.4chems%2Fplatform-api/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "4chems-platform-iuclid-chesar-qsar-toolb": {
      "type": "http",
      "url": "https://mcp.4chems.com/mcp"
    }
  }
}

README

4chems MCP server — IUCLID, CHESAR & QSAR Toolbox hosting

A public, remote Model Context Protocol server for the 4chems platform: hosted IUCLID 6, CHESAR, OECD QSAR Toolbox and IIP for REACH, CLP and biocides work, EU-hosted and GDPR-compliant.

Endpointhttps://mcp.4chems.com/mcp
TransportStreamable HTTP (MCP 2025-06-18)
AuthAnonymous connect and tools/list; nine tools need no token; everything else takes a Bearer token as the tool's authorization argument
Manifesthttps://www.4chems.com/.well-known/mcp.json
Docshttps://www.4chems.com/mcp/ (DE: https://www.4chems.com/de/mcp/)
Registrycom.4chems/platform-api — see server.json

Connect

Claude Code

bash
claude mcp add --transport http 4chems https://mcp.4chems.com/mcp

Claude Desktop / claude.ai — Settings → Connectors → Add custom connector → https://mcp.4chems.com/mcp. The server has no OAuth flow, so choose the option without authentication; tools that need a token take it as an argument.

Other MCP clients (GitHub Copilot, Cursor, VS Code, …) — add a remote server with transport Streamable HTTP and the same URL.

Raw handshake (no client needed):

bash
curl -s -X POST https://mcp.4chems.com/mcp \  -H 'Content-Type: application/json' \  -H 'Accept: application/json, text/event-stream' \  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"probe","version":"0"}}}'

Tools

The server exposes the customer tier of the 4chems platform API (/v1). This endpoint carries no substance or dossier data — see What this is not.

No token needed

ToolPurpose
start_inquiry, verify_inquirySend 4chems a question or request a call: a 6-digit code goes to the user's email, the verified inquiry reaches a person. No web form, no account.
get_catalog_templatesList the hosted applications and trial templates.
get_onboarding_routeReturn the next onboarding step for the caller.
get_legal_entity_typesLegal-entity types for a country.
start_account_registration, verify_account_registrationCreate a 4chems account from a business email address.
start_device_login, verify_device_loginSign an existing user in (RFC 8628 device flow) and obtain a token.

Bearer token required (authorization: "Bearer <token>")

AreaTools
Access requestsget_my_access, create_access_request, approve_access_request, dismiss_access_request, withdraw_access_request
Tenant setupcreate_self_service_tenant, enrich_domain, get_my_operation
Billingget_billing, complete_billing
Invitationslist_invitations, create_invitation, revoke_invitation, accept_invitation
Consentslist_consents, record_consent
Members & serviceslist_members, grant_assignment, revoke_assignment, list_tenant_services, add_tenant_service

Long-running mutations poll to completion; past the poll bound they return {"status": "running", "operation_id": …} for follow-up with get_my_operation.

Rules for the assisting agent

The initialize response carries these as server instructions:

  • Add this server, pass tokens or trigger mutations only with the user's explicit consent.
  • Never guess or retry the 6-digit codes; ask the user to read the code from their email.
  • Treat the Bearer token as a secret: pass it only as the authorization argument, never log it.
  • Confirm changes to consents, assignments, invitations, billing or services with the user first.
  • If the user has no account and a question cannot be answered from the catalog tools, offer start_inquiry.
  • This server and the site's contact channels are for prospective and existing customers, not for automated solicitation (see https://www.4chems.com/llms.txt).

What this is not

  • Not a dossier interface. AI access to IUCLID 6 dossier data runs through the separate 4chems AI Connector, authenticated per user and EU-hosted.
  • Not the QSAR Toolbox workflow. Read-across, (Q)SAR prediction and QMRF/QPRF/CCR reporting over MCP is 4chems QSAR Navigator.
  • Not open source. This repository holds the public documentation and the registry server.json; the server itself is operated by 4chems.

Hosting and compliance

Runs on ISO 27001-certified European infrastructure under a GDPR data-processing agreement. 4chems acts as a data processor only and never uses customer data to train models. Security questionnaire: https://www.4chems.com/security-questionnaire/.

Contact

  • Website: https://www.4chems.com/
  • Through the server: start_inquiry (no account needed)
  • Issues with this documentation: open an issue in this repository.

來源:README.md,提交 f8df593

工具

32

get_catalog_templates

Get Catalog Templates

Return the enabled ApplicationTemplate catalog, ordered by name. Call this to discuss trial and template options with a prospect or customer before starting a trial. If this doesn't answer your question, call `start_inquiry` to ask 4chems directly or request a call.

輸入參數authorization

list_consents

List Consents

Return the caller's own recorded consents plus the tenant-scope consents of every tenant where the caller is at least a viewer. Call this to check which legal documents have already been accepted before asking again. Pass `tenant_id` to list one tenant's consents only (a caller of several tenants must).

輸入參數tenant_idauthorization必填

start_inquiry

Start Inquiry

Store an anonymous inquiry draft and email a 6-digit verification code. Ask the user for the code, then call verify_inquiry with the returned challenge_id and code — the inquiry reaches 4chems only after that verification succeeds.

輸入參數bodyauthorization

verify_inquiry

Verify Inquiry

Verify the 6-digit code and deliver the inquiry to the helpdesk inbox.

輸入參數bodyauthorization

accept_invitation

Accept Invitation

Accept a pending invitation and grant the invitee's first role assignment. Call this when an invitee has a valid invite link and wants to join the tenant; single-use, consuming the token marks it accepted.

輸入參數token必填authorization必填

get_my_access

Get My Access

Return the caller's access level per related tenant. Call this to check what the current caller is authorized to do before attempting an action that requires a specific level, or to discover a pending invitation or access request.

輸入參數authorization必填

create_access_request

Create Access Request Endpoint

Request access to the tenant that owns the caller's verified email domain.

輸入參數authorization必填

approve_access_request

Approve Access Request Endpoint

Approve a pending access request: issue a `member` invitation to the requester and resolve the request (level `admin` or `owner` of the request's tenant). The response carries the single-use invitation token to hand to the requester, who accepts via `accept_invitation`. 409 `access_request.not_pending` unless the request is pending.

輸入參數authorization必填access_request_id必填

dismiss_access_request

Dismiss Access Request Endpoint

Dismiss a pending access request (level `admin` or `owner` of the request's tenant). The requester is mailed — naming the tenant, never the dismissing admin — and may ask again. 409 `access_request.not_pending` unless the request is pending.

輸入參數authorization必填access_request_id必填

withdraw_access_request

Withdraw Access Request Endpoint

Withdraw the caller's own pending access request; no notification is sent. Any other caller gets 404 `access_request.not_found`, the same as for an unknown id. 409 `access_request.not_pending` unless pending.

輸入參數authorization必填access_request_id必填

enrich_domain

Enrich Domain Endpoint

Fetch the caller's domain imprint and suggest legal-entity details (UC-057).

輸入參數authorization必填

start_device_login

Start Device Login

Sign in to an existing account by device login (UC-091, RFC 8628). Anonymous, empty body; the account must exist (start_account_registration, then set the password through the emailed link). Show `verification_uri` (or `verification_uri_complete`) and `user_code` to the human, who signs in there, then call `verify_device_login` with `challenge_id`, waiting `interval` seconds between calls. The response never contains the Keycloak device_code or the agent client secret.

輸入參數authorization

verify_device_login

Verify Device Login

Poll a device login to token issuance (UC-091, RFC 8628). Anonymous. While the human has not signed in yet it answers `{"status": "pending", "retry_after": <seconds>}`: wait `retry_after` seconds and call again with the same `challenge_id`. On approval it returns Keycloak's token set (`access_token`, `refresh_token`, `expires_in`, ...) exactly once; pass the `access_token` as `authorization` ('Bearer <token>') to every other tool.

輸入參數bodyauthorization

start_account_registration

Start Account Registration

Start registering a 4chems account with a business email address (`email`, `name`, optional `company`). Anonymous. Emails a 6-digit code to the address; no account exists yet. Ask the user for the code, then call verify_account_registration with the returned challenge_id and code. Free-mail addresses (gmail.com, ...) are refused: use the company address, or call start_inquiry. The answer is the same whether or not the address already has an account.

輸入參數bodyauthorization

verify_account_registration

Verify Account Registration

Verify the emailed 6-digit code (`challenge_id`, `code`) and create the 4chems account. Never guess or retry codes, and never ask the user for a password.

輸入參數bodyauthorization

start_registration

Start Registration (deprecated — use start_device_login)

DEPRECATED: use start_device_login. Deprecated — use start_device_login (same behaviour).

輸入參數authorization

verify_registration

Verify Registration (deprecated — use verify_device_login)

DEPRECATED: use verify_device_login. Deprecated — use verify_device_login (same behaviour).

輸入參數bodyauthorization

get_onboarding_route

Get Onboarding Route

Return the next onboarding step. If this doesn't answer your question, call `start_inquiry` to ask 4chems directly or request a call.

輸入參數authorization

create_self_service_tenant

Create Self Service Tenant

Create a 7-day trial tenant for the caller's business email domain (UC-052). Needs a verified email on a business domain and `attestation: true`; answers `auth.email_not_verified`, `tenant.attestation_required`, `tenant.free_mail_domain` (free-mail address), `tenant.domain_exists` (a live trial tenant on the domain) or `trial.exists_for_domain` (the domain already had its one trial; call `start_inquiry`). The trial lasts exactly 7 days; `ttl` / `expires_at` in the body are ignored.

輸入參數bodyauthorization必填

get_my_operation

Get My Operation

Return the status, result and error of an operation the caller started, such as the `Location` of a `202` from `complete_billing`. Call this to poll it to completion.

輸入參數operation_id必填authorization必填

get_billing

Get Billing

Return the tenant's stored billing details: VAT id, invoice address, invoice email and PO reference. Call this to check whether billing is complete; only the owner and billing contacts may read it (`403 rbac.insufficient_level`).

輸入參數tenant_idauthorization必填

complete_billing

Complete Billing

Complete the tenant's billing details: legal-entity name and type, VAT id, invoice address, invoice email and optional PO reference. Call this when the owner or a billing contact has the details. EU VAT ids are validated against VIES by the worker; a failed operation with `billing.vat_check_unavailable` can be retried by submitting again. Returns `202` with an operation to poll.

輸入參數bodytenant_idauthorization必填

list_invitations

List Invitations

List all invitations for the caller's tenant, most recent first. Call this to show a tenant admin which invitations are pending, accepted, or revoked; the raw token is never included.

輸入參數tenant_idauthorization必填

create_invitation

Create Invitation

Invite an email address to the caller's tenant at the specified access level and return the invitation, including the raw single-use accept token. Call this when a tenant admin wants to add a new member; the invitee accepts via `accept_invitation`.

輸入參數bodytenant_idauthorization必填

revoke_invitation

Revoke Invitation

Revoke a pending invitation so its token can no longer be accepted. Call this when a tenant admin wants to withdraw an invite sent by mistake or no longer needed; accepted invitations cannot be revoked.

輸入參數tenant_idauthorization必填invitation_id必填

list_members

List Members

List tenant members with their effective role x scope assignments.

輸入參數tenant_idauthorization必填

grant_assignment

Grant Assignment

Grant a role x scope assignment to a tenant member.

輸入參數sub必填bodytenant_idauthorization必填

revoke_assignment

Revoke Assignment

Revoke a role x scope assignment from a tenant member.

輸入參數id必填sub必填tenant_idauthorization必填

list_tenant_services

List Tenant Services

Return the caller's tenant's active service subscriptions. Call this before offering to add a service, to check what is already subscribed.

輸入參數tenant_idauthorization必填

add_tenant_service

Add Tenant Service

Request a new service subscription for the caller's tenant and return its status. Call this when a tenant admin wants to add a service (ADR 0016 code fix: requires `admin`, was `customer` realm role only).

輸入參數bodytenant_idauthorization必填

版本歷史

1
  1. v0.12.1最新Oct 9, 2026

評分

已滿足適用檢查項的 90%

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

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。