# io.github.g-digital-by-Garrigues/gocertius (npm · @g-digital/mcp-gocertius)

MCP server for GoCertius: certified evidence, dossiers, notifications and chats via AI agents.

- Trust score: 63/100 (medium)
- Change this week: +37
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `@g-digital/mcp-gocertius`: 63/100 (this document), [markdown](https://verifymcp.io/servers/g-digital-by-garrigues-gocertius/g-digital-mcp-gocertius.md), [page](https://verifymcp.io/servers/g-digital-by-garrigues-gocertius/g-digital-mcp-gocertius)

## Channel facts

- Registry: `npm`
- Package: `@g-digital/mcp-gocertius`
- Version: `1.5.1`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 87/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (110 of 114), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (110 of 114), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Build provenance is cryptographically sound, but it attests a different repository to the one declared in the registry. Most often the declared URL is simply stale.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 11 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 61/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 4966 tokens (~121/item across 41 items; 41 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 71/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 13% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add g-digital-by-garrigues-gocertius -- npx -y @g-digital/mcp-gocertius
```

### Codex

```bash
codex mcp add g-digital-by-garrigues-gocertius -- npx -y @g-digital/mcp-gocertius
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "g-digital-by-garrigues-gocertius": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@g-digital/mcp-gocertius"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add g-digital-by-garrigues-gocertius --command npx --arg -y --arg @g-digital/mcp-gocertius
```

### Hermes

```yaml
mcp_servers:
  g-digital-by-garrigues-gocertius:
    command: "npx"
    args: ["-y", "@g-digital/mcp-gocertius"]
```

### Other

```json
{
  "mcpServers": {
    "g-digital-by-garrigues-gocertius": {
      "command": "npx",
      "args": [
        "-y",
        "@g-digital/mcp-gocertius"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 63, +4)

- [functional improvement] Stability: unverified → 0.27

### 2026-08-02 (score 59, +29)

- [security improvement] Known CVEs: unverified → partial
- [security improvement] Install scripts: unverified → pass
- [security improvement] Malware scan: unverified → pass
- [security] Provenance: Build provenance is cryptographically sound, but it attests a different repository to the one declared in the registry. Most often the declared URL is simply stale.
- [security] Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet.
- [functional regression] Capabilities: pass → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional regression] Security disclosure: fail → unverified
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] License: unverified → pass
- [functional improvement] Maintenance: unverified → pass
- [functional] Licence: MIT

### 2026-07-31 (score 30, +24)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 6, −66)

- [security regression] Known CVEs: partial → unverified
- [security regression] Malware scan: pass → unverified
- [security regression] Install scripts: pass → unverified
- [security] Provenance: Build provenance not yet verified.
- [functional regression] Dependency health: partial → unverified
- [functional regression] License: pass → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional regression] Maintenance: pass → unverified
- [functional] Licence: MIT

### 2026-07-28 (score 72, +46)

- [security improvement] Install scripts: unverified → pass
- [security improvement] Known CVEs: unverified → partial
- [security] Provenance: Build provenance is cryptographically sound, but it attests a different repository to the one declared in the registry. Most often the declared URL is simply stale.
- [functional regression] Security disclosure: unverified → fail
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] License: unverified → pass
- [functional improvement] Tool coverage: unverified → 100
- [functional] First check of Schema quality: good
- [functional] First check of Tool coverage: 13
- [functional] First check of Schema quality: fail
- [functional] First check of Schema quality: fail
- [functional] Licence: MIT

### 2026-07-27 (score 26)

First indexed and scored.

## MCP tools (41)

### `evidence_create` (~421 tokens)

Registers a NEW evidence record inside an evidence group. Requires: evidence_group_create → evidenceGroupId, case_file_create → caseFileId. Generate a UUID v4 for `id`. Compute the SHA-256 hex hash of the file BEFORE calling. Normal INTERNAL flow: call evidence_create with custodyType INTERNAL and NO fileUrl; the API returns uploadFileUrl, a presigned S3 URL. You MUST PUT the exact file bytes to uploadFileUrl, then verify with evidence_get/evidence_list, and ONLY THEN call evidence_seal. Do not seal an evidence group until every INTERNAL evidence file has been uploaded. Convenience flow: if you pass `fileUrl` (public HTTPS, no redirects, under 1 GiB), this tool downloads that URL and PUTs the bytes to uploadFileUrl for you. EXTERNAL flow: use custodyType EXTERNAL only when you intentionally register hash-only evidence; still generate a fresh UUID for each evidence. If an INTERNAL evidence creation/upload failed and you want to retry as EXTERNAL, create a NEW evidence id; do not reuse an id whose outcome is unknown. WARNING: the API sometimes returns {code:'EvidenceCreateError'} even when the evidence was successfully persisted — always verify with evidence_list before retrying.

Input parameters:

- `caseFileId` (string, required): UUID of the case file
- `custodyType` (string): INTERNAL = GoCertius stores the file; EXTERNAL = only hash registered
- `evidenceGroupId` (string, required): UUID of the evidence group
- `fileName` (string, required): Original file name including extension
- `fileUrl` (string): Optional public HTTPS URL to download and auto-upload to the returned uploadFileUrl (custodyType INTERNAL only). Omit this when you want the manual presigned-URL flow.
- `hash` (string, required): SHA-256 hex digest of the file content (64 hex chars)
- `id` (string, required): UUID v4 for the new evidence record (idempotency key)
- `title` (string, required): Human-readable title for the evidence

### `evidence_list` (~99 tokens)

Lists all evidence records in a specific evidence group. Use to review uploaded documents before sealing the group, or to find a specific evidenceId. Requires: caseFileId and evidenceGroupId. Returns paginated list with IDs, titles, status, and timestamps.

Input parameters:

- `caseFileId` (string, required)
- `evidenceGroupId` (string, required)
- `filter` (object)
- `order` (object)
- `page` (object)

### `evidence_seal` (~162 tokens)

Seal and certify an evidence group. Closes the group to new additions and triggers async timestamping. Returns immediately — the group transitions OPEN → CLOSING → CLOSED. Poll evidence_group_list until status is CLOSED before linking to a dossier.

Input parameters:

- `altitudeLocation` (string)
- `attestation` (object)
- `caseFileId` (string, required)
- `deviceManufacturer` (string)
- `deviceModel` (string)
- `deviceOS` (string)
- `evidencesCount` (number, required)
- `id` (string, required)
- `latitudeLocation` (string)
- `locationAccuracy` (string)
- `longitudeLocation` (string)
- `userAgent` (string)
- `webUrl` (string)

### `evidence_get` (~83 tokens)

Retrieves a specific evidence record. Requires: evidence_create → evidenceId, evidence_group_create → evidenceGroupId, case_file_create → caseFileId. Returns status (COMPLETED|IN_PROCESS|ERROR), hash, and tspTimestamp when certified.

Input parameters:

- `caseFileId` (string, required)
- `evidenceGroupId` (string, required)
- `id` (string, required)

### `evidence_group_create` (~110 tokens)

Creates an evidence group inside a case file. Requires: case_file_create → caseFileId. Generate a UUID v4 for `id`. Set evidenceType to FILE, PHOTO, VIDEO, or WEB_PLUGIN. Returns evidenceGroupId. One group can contain multiple evidence records.

Input parameters:

- `attestation` (object)
- `caseFileId` (string, required)
- `description` (string)
- `evidenceType` (string, required)
- `id` (string, required)
- `name` (string, required)

### `evidence_group_list` (~81 tokens)

Lists all evidence groups in a case file with their current status (OPEN, CLOSING, CLOSED). Use to find an existing group or check which groups are ready for sealing. Requires: caseFileId.

Input parameters:

- `caseFileId` (string, required)
- `filter` (object)
- `order` (object)
- `page` (object)

### `dossier_create` (~164 tokens)

Creates a dossier to aggregate certified evidence groups into a single tamper-evident PDF. Requires: case_file_create → caseFileId. Evidence groups must be in CLOSED status before linking. Generate a UUID v4 string for `id`. Returns dossierId. After creation, link evidence with dossier_evidence_link, then certify with dossier_certify.

Input parameters:

- `accessToken` (string)
- `caseFileId` (string, required)
- `dossierTemplateId` (string)
- `filledFields` (object)
- `id` (string, required)
- `language` (string, required)
- `modelId` (string)
- `name` (string, required)
- `purpose` (string)
- `validityFrom` (string, required)
- `validityTo` (string, required)

### `dossier_update` (~132 tokens)

Updates the metadata of an existing dossier (name, template fields, expiry). Requires: dossier_create → dossierId, caseFileId. Only available while dossier is in DRAFT status.

Input parameters:

- `accessToken` (string)
- `caseFileId` (string, required)
- `dossierId` (string, required)
- `dossierTemplateId` (string)
- `filledFields` (object)
- `language` (string)
- `modelId` (string)
- `name` (string)
- `purpose` (string)
- `validityFrom` (string)
- `validityTo` (string)

### `dossier_certify` (~149 tokens)

Certifies a DRAFT dossier, locking in all its associated evidence groups. The dossier must be in DRAFT status. After certification it transitions to CERTIFIED and a tamper-evident PDF is generated. Prerequisites: the dossier must exist (dossier_create) and have evidence groups linked. Use dossier_group_certify instead if you want to create + certify in one step from a single evidence group. Example: dossier_certify({ caseFileId: '...', dossierId: '...' })

Input parameters:

- `caseFileId` (string, required): UUID of the case file that owns this dossier
- `dossierId` (string, required): UUID of the dossier to certify (must be in DRAFT status)

### `dossier_list` (~84 tokens)

Lists all dossiers in a case file with their status and metadata. Use to find an existing dossierId or monitor certification progress. Requires: caseFileId. Returns paginated list with IDs, names, status, and creation dates.

Input parameters:

- `caseFileId` (string, required)
- `filter` (object)
- `order` (object)
- `page` (object)

### `dossier_get` (~66 tokens)

Retrieves the full details of a specific dossier including status, linked evidence, and download URLs. Use to check current state or get certificate download URLs after CERTIFIED. Requires: caseFileId and dossierId.

Input parameters:

- `caseFileId` (string, required)
- `dossierId` (string, required)

### `dossier_template_list` (~45 tokens)

Lists available dossier templates. No prerequisites. Returns template IDs and their translations per language. Use the returned id as dossierTemplateId in dossier_create.

Input parameters:

- `page` (object)

### `dossier_preview` (~45 tokens)

Returns an HTML preview URL of a dossier before certification. Requires: caseFileId and dossierId.

Input parameters:

- `caseFileId` (string, required)
- `dossierId` (string, required)

### `dossier_document_url` (~53 tokens)

Returns the download URL for the certified dossier PDF. Requires: dossier_certify (CERTIFIED status), caseFileId, dossierId.

Input parameters:

- `caseFileId` (string, required)
- `dossierId` (string, required)

### `dossier_package_url` (~58 tokens)

Returns the download URL for the full dossier package (PDF + evidence files). Requires: dossier_certify (CERTIFIED status), caseFileId, dossierId.

Input parameters:

- `caseFileId` (string, required)
- `dossierId` (string, required)

### `dossier_visibility` (~61 tokens)

Updates the visibility (public/private) of a certified dossier. Requires: dossier_certify (CERTIFIED status), caseFileId, dossierId.

Input parameters:

- `caseFileId` (string, required)
- `dossierId` (string, required)
- `visibility` (string, required)

### `dossier_delete` (~66 tokens)

Deletes a dossier. Available in DRAFT status (to discard before certification) or in CERTIFIED status (to permanently remove the certified dossier). Irreversible. Requires: caseFileId and dossierId.

Input parameters:

- `caseFileId` (string, required)
- `dossierId` (string, required)

### `dossier_group_certify` (~151 tokens)

Creates AND certifies a dossier from a single sealed evidence group in one call (express path). Requires: evidence_seal (CLOSED status), case_file_create → caseFileId, evidence_group_create → evidenceGroupId. Generate a UUID v4 string for `id`. Use when you have exactly one sealed evidence group and don't need multi-group aggregation. Returns dossierId immediately with CERTIFYING status → poll until CERTIFIED.

Input parameters:

- `caseFileId` (string, required)
- `evidenceGroupId` (string, required)
- `evidenceIds` (array)
- `id` (string, required)
- `language` (string, required)
- `modelId` (string)
- `name` (string, required)

### `dossier_evidence_link` (~182 tokens)

Links specific evidence items to a DRAFT dossier. Call once per case file containing evidences to link. After linking all evidences, call dossier_certify to finalize. For a single-group dossier, use dossier_group_certify instead (one step). Example: dossier_evidence_link({ caseFileId: '...', dossierId: '...', caseFileToLinkId: '...', ids: ['ev-uuid-1', 'ev-uuid-2'] })

Input parameters:

- `caseFileId` (string, required): UUID of the case file that owns the dossier
- `caseFileToLinkId` (string, required): UUID of the case file containing the evidences (often same as caseFileId)
- `dossierId` (string, required): UUID of the DRAFT dossier to link evidences to
- `ids` (array, required): UUIDs of the evidence items to link

### `dossier_evidence_list_to_link` (~90 tokens)

Lists evidence items that are available to be linked to a dossier (CLOSED groups not yet linked). Requires: caseFileId and dossierId.

Input parameters:

- `caseFileId` (string, required)
- `caseFileToLinkId` (string, required)
- `dossierId` (string, required)
- `filter` (object)
- `order` (object)
- `page` (object)

### `dossier_evidence_list` (~76 tokens)

Lists all evidence items linked to a dossier. Requires: caseFileId and dossierId.

Input parameters:

- `caseFileId` (string, required)
- `dossierEvidenceGroupId` (string, required)
- `dossierId` (string, required)
- `filter` (object)
- `order` (object)
- `page` (object)

### `dossier_evidence_get` (~70 tokens)

Retrieves details of a specific evidence item linked to a dossier. Requires: caseFileId, dossierId, evidenceId.

Input parameters:

- `caseFileId` (string, required)
- `dossierEvidenceGroupId` (string, required)
- `dossierEvidenceId` (string, required)
- `dossierId` (string, required)

### `dossier_evidence_delete` (~76 tokens)

Removes an evidence item from a dossier. Only available while dossier is in DRAFT status. Requires: caseFileId, dossierId, evidenceId.

Input parameters:

- `caseFileId` (string, required)
- `dossierEvidenceGroupId` (string, required)
- `dossierEvidenceId` (string, required)
- `dossierId` (string, required)

### `notification_document_add` (~73 tokens)

Performs the notification_document_add operation. Review the API documentation for full field details.

Input parameters:

- `caseFileId` (string, required)
- `fileName` (string, required)
- `fileSize` (number)
- `hash` (string, required)
- `id` (string, required)
- `notificationRequestId` (string, required)

### `notification_request_create` (~228 tokens)

Creates a certified notification request. Requires: case_file_create → caseFileId. Generate a UUID v4 for `id`. Set language to en_GB or es_ES. Returns notificationRequestId. Add at least one receiver with notification_receiver_add before sending. IMPORTANT: The `content` field must be valid HTML — plain text without HTML tags will not render on the recipient landing page. Only the following HTML formats are supported: paragraphs (<p>), bold (<strong>), italic (<em>), unordered lists (<ul><li>), ordered lists (<ol><li>). Do not use other HTML tags or CSS. Avoid special typographic characters (em dashes, smart quotes) in `subject`; use standard ASCII equivalents (hyphen, straight quotes) instead.

Input parameters:

- `caseFileId` (string, required)
- `content` (string, required)
- `id` (string, required)
- `language` (string, required)
- `otpByDefault` (boolean)
- `sendWaUrlByDefault` (boolean)
- `subject` (string, required)
- `type` (string)

### `notification_request_send` (~59 tokens)

Trigger delivery of a certified notification to all added recipients. Returns immediately — delivery is async. Poll notification_request_status until status is DELIVERED before retrieving certificates.

Input parameters:

- `caseFileId` (string, required)
- `notificationRequestId` (string, required)

### `notification_request_status` (~111 tokens)

Checks the delivery status of a certified notification. Requires: notificationRequestId, caseFileId. Returns status (CREATING|DRAFT|IN_PROCESS|SENT|PARTIALLY_READ|FULLY_READ|PARTIALLY_ANSWERED|FULLY_ANSWERED). Poll until status is SENT or beyond. Do not call notification_certificate_get while status is CREATING, DRAFT, or IN_PROCESS.

Input parameters:

- `caseFileId` (string, required)
- `notificationRequestId` (string, required)

### `notification_receiver_add` (~158 tokens)

Adds a recipient to a notification request. Requires: notification_request_create → notificationRequestId, case_file_create → caseFileId. The `id` can be a UUID v4 or custom string (e.g. your internal user ID). Returns receiverId — save it for notification_certificate_get. Add all receivers before calling notification_request_send.

Input parameters:

- `caseFileId` (string, required)
- `email` (string, required)
- `firstName` (string, required)
- `id` (string, required)
- `lastName` (string, required)
- `notificationRequestId` (string, required)
- `otpRequired` (boolean)
- `phoneNumber` (string)
- `phonePrefix` (string)
- `sendWaUrl` (boolean)

### `notification_certificate_get` (~153 tokens)

Creates or retrieves a PDF certificate for a specific notification receiver. Requires notification_request_send and notification_receiver_add. Generate a UUID v4 for `id` the first time and reuse that id when polling. This tool is idempotent: it first lists existing certificates for the receiver and, if `id` already exists, returns it instead of creating it again. If the certificate status is CERTIFIED, the response includes documentUrl when available. If it is CERTIFYING, poll this same tool with the same id.

Input parameters:

- `caseFileId` (string, required)
- `id` (string, required)
- `language` (string)
- `notificationRequestId` (string, required)
- `receiverId` (string, required)

### `case_file_create` (~147 tokens)

Creates a new case file — the top-level container for all related operations (evidence, notifications, dossiers, chats). Call this first before any other operation. Generate a UUID v4 for `id`. For `useCaseId`, use the general GoCertius use case: `063a016a-1d62-4b7b-a24f-7cf4d1d289bf` unless a specific use case is required. Returns caseFileId needed for all subsequent calls.

Input parameters:

- `description` (string)
- `id` (string, required)
- `name` (string, required)
- `reference` (string)
- `useCaseId` (string, required)

### `case_file_list` (~79 tokens)

Lists all case files in your GoCertius account. Pass userId (from session_login or session_info) to scope results to your account. Returns paginated list with IDs, names, and status.

Input parameters:

- `filter` (object)
- `order` (object)
- `page` (object)
- `userId` (string, required)

### `case_file_get` (~49 tokens)

Retrieves details of a specific case file. Requires: caseFileId. Use to verify a case file exists before creating evidence groups, dossiers, or notifications.

Input parameters:

- `caseFileId` (string, required)

### `chat_create` (~172 tokens)

Creates a certified chat channel (Telegram). IMPORTANT: Chats can only be created in the user's personal case file (created automatically when the GoCertius account was opened). Do not use a manually created case file — use session_info → case_file_list to find the personal case file (oldest createdAt, owned by the user). Generate a UUID v4 for `id`. Set service to Telegram. Returns immediately and the chat may start in status `creating`; call chat_get and wait until it is registered/active before requesting the invitation URL or certificates.

Input parameters:

- `caseFileId` (string, required)
- `id` (string, required)
- `language` (string, required)
- `service` (string, required)
- `serviceDescription` (string)
- `serviceTitle` (string)
- `title` (string, required)

### `chat_get` (~83 tokens)

Retrieves details of a certified chat. Requires: personal caseFileId and chat_create → chatId. Returns status, participants, and registeredAt timestamp. After chat_create, poll chat_get until status is active/registered and registeredAt is present; createdAt is not enough for certificate creation.

Input parameters:

- `caseFileId` (string, required)
- `chatId` (string, required)

### `chat_invitation_url` (~96 tokens)

Returns the Telegram invitation URL for a certified chat. Requires: chat_create → chatId and the personal caseFileId. Do not call while chat_get still shows status `creating`; wait until the chat is registered/active, otherwise the API can answer Chat not found. Share the returned invitationUrl with participants so they can join the certified channel.

Input parameters:

- `caseFileId` (string, required)
- `chatId` (string, required)

### `chat_certificate_create` (~175 tokens)

Creates a certificate of a range of messages from a certified chat. Requires: chat_create → chatId, personal caseFileId, chat_get → registeredAt, and messages already present in the Telegram channel. Generate a UUID v4 for `id`. Do not use createdAt as a substitute for registeredAt; if registeredAt is missing, the chat is not ready to certify. Specify chatMessagesFrom and chatMessagesTo as ISO timestamps (chatMessagesFrom must be AFTER registeredAt). ASYNC: poll chat_certificate_get until status === CERTIFIED.

Input parameters:

- `caseFileId` (string, required)
- `chatId` (string, required)
- `chatMessagesFrom` (string, required)
- `chatMessagesTo` (string, required)
- `id` (string, required)
- `language` (string, required)
- `name` (string, required)

### `chat_certificate_get` (~115 tokens)

Retrieves a certified chat certificate including its status, message range, and PDF download URL. Prerequisites: the certificate must have been created with chat_certificate_create. Returns documentUrl when status is CERTIFIED. Example: chat_certificate_get({ caseFileId: '...', chatId: '...', id: '...' })

Input parameters:

- `caseFileId` (string, required): UUID of the case file that owns the chat
- `chatId` (string, required): UUID of the chat
- `id` (string, required): UUID of the certificate to retrieve

### `session_login` (~68 tokens)

Authenticate with GoCertius. Credentials are read from the server environment: if MCP_AUTH_USER_KEY is set it is exchanged for a session token; otherwise MCP_AUTH_EMAIL + MCP_AUTH_PASSWORD are used. The server manages authentication automatically — call this only to force a re-login or after a 401.

### `session_info` (~154 tokens)

Returns the authenticated user's session info including userId and session type (Password or UserKey). Use this to retrieve the userId (UUID) required by case_file_list and other user-scoped operations. Works on both auth flows: with a user key (MCP_AUTH_USER_KEY) it resolves identity via profile_get (GET /profile → `id`), since no email is configured; with MCP_AUTH_EMAIL it queries /session-info. profile_get is the canonical way to obtain the userId and returns more (companyId, defaultCaseFileId). Prerequisites: a valid session (call session_login first if needed). Example: session_info() → { userId: '...uuid...', type: 'Password' }

### `profile_get` (~145 tokens)

Returns the authenticated user's own profile. Works on EVERY auth flow (user key or email/password) because it identifies the caller from the session token alone — no email needed. Its `id` field IS your userId (UUID): the value required by case_file_list and every /users/{userId}/... operation. Prefer this over session_info when you need the userId, and it is the ONLY way to obtain it on a user-key deployment (MCP_AUTH_USER_KEY), where no email is configured. Also returns companyId (needed to subscribe to the notifications SSE stream) and defaultCaseFileId (the personal case file — the one chats must use). No parameters.

### `evidence_upload` (~377 tokens)

Uploads a local file as evidence in one step: computes its SHA-256, registers the evidence record (custodyType INTERNAL = GoCertius stores the file), and uploads the bytes to S3 — no manual hashing or PUT needed. Internally this follows the required GoCertius sequence: create INTERNAL evidence → receive uploadFileUrl (presigned S3 URL) → PUT file bytes → return uploaded:true. Requires: case_file_create → caseFileId, evidence_group_create → evidenceGroupId. Provide EXACTLY ONE of `filePath` (absolute local path, stdio/local mode only) or `contentBase64` (base64-encoded file content, ~10 MB max). Use evidence_upload when the file is on the local machine; use evidence_create when you already have the SHA-256 hash, need to inspect/use uploadFileUrl manually, or have a public fileUrl. After this tool succeeds, verify with evidence_get/evidence_list and only then call evidence_seal. If this tool fails before returning an evidence id, check evidence_list before retrying; if retrying manually, use evidence_create with a fresh UUID. Local files must be under 1 GiB.

Input parameters:

- `caseFileId` (string, required): UUID of the case file
- `contentBase64` (string): Base64-encoded file content (~10 MB max). The tool will create evidence, receive uploadFileUrl, and PUT these bytes to it.
- `evidenceGroupId` (string, required): UUID of the evidence group
- `fileName` (string, required): File name including extension
- `filePath` (string): Absolute local path to the file (stdio/local mode only). The tool will create evidence, receive uploadFileUrl, and PUT this file to it.
- `title` (string, required): Human-readable title for the evidence

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/g-digital-by-garrigues-gocertius/g-digital-mcp-gocertius#diagnostics

## Score history

- 2026-08-03: 63
- 2026-08-02: 59
- 2026-08-01: 30
- 2026-07-31: 30
- 2026-07-30: 6
- 2026-07-29: 72
- 2026-07-28: 72
- 2026-07-27: 26

## Links

- npm package: https://www.npmjs.com/package/@g-digital/mcp-gocertius
- Socket report: https://socket.dev/npm/package/@g-digital/mcp-gocertius
- Repository: https://github.com/g-digital-by-Garrigues/GoCertius_MCP
- Changelog RSS feed: https://verifymcp.io/servers/g-digital-by-garrigues-gocertius/g-digital-mcp-gocertius/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/g-digital-by-garrigues-gocertius/g-digital-mcp-gocertius/changelog.json
- HTML version of this page: https://verifymcp.io/servers/g-digital-by-garrigues-gocertius/g-digital-mcp-gocertius
