# io.github.GCTRL-TECH/gctrl (npm · gctrl-mcp)

Governed graph-native agent memory: knowledge extraction, fusion, hybrid RAG, scoped access tokens.

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

## Components

- npm · `gctrl-mcp`: 67/100 (this document), [markdown](https://verifymcp.io/servers/gctrl-tech-gctrl/gctrl-mcp.md), [page](https://verifymcp.io/servers/gctrl-tech-gctrl/gctrl-mcp)

## Channel facts

- Registry: `npm`
- Package: `gctrl-mcp`
- Version: `1.0.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 (95 of 99), 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 (95 of 99), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (AGPL-3.0-or-later).
  - Actively maintained (last published 14 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 64/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 5677 tokens (~103/item across 55 items; 55 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**: 98/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 94% 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 gctrl-tech-gctrl -- npx -y gctrl-mcp
```

### Codex

```bash
codex mcp add gctrl-tech-gctrl -- npx -y gctrl-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "gctrl-tech-gctrl": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "gctrl-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add gctrl-tech-gctrl --command npx --arg -y --arg gctrl-mcp
```

### Hermes

```yaml
mcp_servers:
  gctrl-tech-gctrl:
    command: "npx"
    args: ["-y", "gctrl-mcp"]
```

### Other

```json
{
  "mcpServers": {
    "gctrl-tech-gctrl": {
      "command": "npx",
      "args": [
        "-y",
        "gctrl-mcp"
      ]
    }
  }
}
```

## 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 67, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-02 (score 66, +45)

- [security regression] Provenance: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Malware scan: unverified → pass
- [functional regression] Security disclosure: fail → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional improvement] License: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Stability: unverified → 0.23
- [functional improvement] Schema quality: unverified → good
- [functional] First check of Schema quality: unverified
- [functional] Licence: AGPL-3.0-or-later

### 2026-08-01 (score 21, −7)

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

### 2026-07-31 (score 28, −18)

- [security regression] Malware scan: pass → unverified

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

First indexed and scored.

## MCP tools (55)

### `gctrl_extract` (~157 tokens)

Extract structured knowledge (entities, relations) from text. Creates a knowledge graph in Neo4j and vector embeddings in Qdrant. Use this to ingest new information into Ground Control. Specify a compilationId to add the results to a specific knowledge graph (e.g. an agent's dedicated graph).

Input parameters:

- `compilationId` (string): Optional: target knowledge graph compilation ID. The extracted job will be auto-linked to this compilation. Use gctrl_list_graphs to find IDs.
- `discoveryMode` (string): strict = only ontology types, discover = find all types and extend ontology
- `ontologyId` (string): Optional ontology ID to guide entity type extraction
- `text` (string, required): The text content to extract knowledge from

### `borghive_extract` (~178 tokens)

[DEPRECATED — use 'gctrl_extract' instead, alias will be removed in v2] Extract structured knowledge (entities, relations) from text. Creates a knowledge graph in Neo4j and vector embeddings in Qdrant. Use this to ingest new information into Ground Control. Specify a compilationId to add the results to a specific knowledge graph (e.g. an agent's dedicated graph).

Input parameters:

- `compilationId` (string): Optional: target knowledge graph compilation ID. The extracted job will be auto-linked to this compilation. Use gctrl_list_graphs to find IDs.
- `discoveryMode` (string): strict = only ontology types, discover = find all types and extend ontology
- `ontologyId` (string): Optional ontology ID to guide entity type extraction
- `text` (string, required): The text content to extract knowledge from

### `gctrl_query` (~95 tokens)

Ask a natural-language question — GCTRL blends ALL memory layers automatically (HOT dossiers > graph facts > warm chunks) and returns a grounded answer with sources + confidence. Prefer this for open questions; then persist any new conclusion with gctrl_store.

Input parameters:

- `compilationId` (string): Optional: query a specific knowledge graph compilation. Omit to search all graphs.
- `question` (string, required): Natural language question about the knowledge graph

### `borghive_query` (~116 tokens)

[DEPRECATED — use 'gctrl_query' instead, alias will be removed in v2] Ask a natural-language question — GCTRL blends ALL memory layers automatically (HOT dossiers > graph facts > warm chunks) and returns a grounded answer with sources + confidence. Prefer this for open questions; then persist any new conclusion with gctrl_store.

Input parameters:

- `compilationId` (string): Optional: query a specific knowledge graph compilation. Omit to search all graphs.
- `question` (string, required): Natural language question about the knowledge graph

### `gctrl_search_entities` (~83 tokens)

Search for specific entities in the knowledge graph by name or type. Returns matching entities with their properties and relationships.

Input parameters:

- `entityType` (string): Filter by entity type label (e.g. "company", "person", "technology")
- `limit` (number): Maximum results to return
- `query` (string, required): Search term (entity name or partial match)

### `borghive_search_entities` (~105 tokens)

[DEPRECATED — use 'gctrl_search_entities' instead, alias will be removed in v2] Search for specific entities in the knowledge graph by name or type. Returns matching entities with their properties and relationships.

Input parameters:

- `entityType` (string): Filter by entity type label (e.g. "company", "person", "technology")
- `limit` (number): Maximum results to return
- `query` (string, required): Search term (entity name or partial match)

### `gctrl_get_dossier` (~114 tokens)

Read the AUTHORITATIVE entity dossier (the HOT memory tier) for a named entity: a compiled summary, key facts (with confidence), origin files and a timeline. This is the highest-trust source — when a dossier exists it directly answers "who/what is X" and "where does X come from", with no hedging. Built on-the-fly if missing.

Input parameters:

- `name` (string, required): The entity name to fetch the dossier for (e.g. "Fabio", "Ground Control")

### `borghive_get_dossier` (~137 tokens)

[DEPRECATED — use 'gctrl_get_dossier' instead, alias will be removed in v2] Read the AUTHORITATIVE entity dossier (the HOT memory tier) for a named entity: a compiled summary, key facts (with confidence), origin files and a timeline. This is the highest-trust source — when a dossier exists it directly answers "who/what is X" and "where does X come from", with no hedging. Built on-the-fly if missing.

Input parameters:

- `name` (string, required): The entity name to fetch the dossier for (e.g. "Fabio", "Ground Control")

### `gctrl_list_graphs` (~35 tokens)

List all knowledge graph compilations available in Ground Control. Shows name, entity count, relation count, and classification level.

### `borghive_list_graphs` (~58 tokens)

[DEPRECATED — use 'gctrl_list_graphs' instead, alias will be removed in v2] List all knowledge graph compilations available in Ground Control. Shows name, entity count, relation count, and classification level.

### `gctrl_fuse` (~74 tokens)

Merge multiple extraction jobs into a unified knowledge graph. Uses entity matching to find duplicates across sources and creates a consolidated graph.

Input parameters:

- `description` (string): Optional description
- `name` (string, required): Name for the new fused knowledge graph
- `sourceJobIds` (array, required): Array of KEX job IDs to merge

### `borghive_fuse` (~96 tokens)

[DEPRECATED — use 'gctrl_fuse' instead, alias will be removed in v2] Merge multiple extraction jobs into a unified knowledge graph. Uses entity matching to find duplicates across sources and creates a consolidated graph.

Input parameters:

- `description` (string): Optional description
- `name` (string, required): Name for the new fused knowledge graph
- `sourceJobIds` (array, required): Array of KEX job IDs to merge

### `gctrl_distill` (~126 tokens)

Distill a WIKI compilation into human-readable wiki pages — one markdown page per important entity, grounded on the source RAW graph and its text chunks, with [[wikilinks]] between related entities and a Sources section. Returns how many pages were written.

Input parameters:

- `compilationId` (string, required): The WIKI compilation ID to distill into wiki pages. Must be a compilation of type WIKI (created with a wikiSourceCompilationId).
- `limit` (number): Max number of entity pages to generate (default 15). Higher = slower (one LLM call per entity).

### `borghive_distill` (~148 tokens)

[DEPRECATED — use 'gctrl_distill' instead, alias will be removed in v2] Distill a WIKI compilation into human-readable wiki pages — one markdown page per important entity, grounded on the source RAW graph and its text chunks, with [[wikilinks]] between related entities and a Sources section. Returns how many pages were written.

Input parameters:

- `compilationId` (string, required): The WIKI compilation ID to distill into wiki pages. Must be a compilation of type WIKI (created with a wikiSourceCompilationId).
- `limit` (number): Max number of entity pages to generate (default 15). Higher = slower (one LLM call per entity).

### `gctrl_wiki_page` (~119 tokens)

Read distilled wiki pages from a WIKI compilation. Pass a slug to fetch one full page (markdown body + citations); omit the slug to list all pages (optionally filtered by query).

Input parameters:

- `compilationId` (string, required): The WIKI compilation ID.
- `query` (string): Optional: when no slug is given, filter the listed pages whose title contains this text.
- `slug` (string): Slug of a specific page to fetch (e.g. "fabio-chiaramonte"). Omit to list all pages.

### `borghive_wiki_page` (~142 tokens)

[DEPRECATED — use 'gctrl_wiki_page' instead, alias will be removed in v2] Read distilled wiki pages from a WIKI compilation. Pass a slug to fetch one full page (markdown body + citations); omit the slug to list all pages (optionally filtered by query).

Input parameters:

- `compilationId` (string, required): The WIKI compilation ID.
- `query` (string): Optional: when no slug is given, filter the listed pages whose title contains this text.
- `slug` (string): Slug of a specific page to fetch (e.g. "fabio-chiaramonte"). Omit to list all pages.

### `gctrl_search_chunks` (~91 tokens)

Retrieve source text passages (warm vector + keyword) for a question — the raw evidence layer. Limit is fixed at 5 passages. Use this to back up an answer with citations; prefer gctrl_query for a composed blended answer.

Input parameters:

- `compilationId` (string): Optional: scope to a specific knowledge graph compilation
- `query` (string, required): The question or topic to retrieve source text passages for

### `borghive_search_chunks` (~113 tokens)

[DEPRECATED — use 'gctrl_search_chunks' instead, alias will be removed in v2] Retrieve source text passages (warm vector + keyword) for a question — the raw evidence layer. Limit is fixed at 5 passages. Use this to back up an answer with citations; prefer gctrl_query for a composed blended answer.

Input parameters:

- `compilationId` (string): Optional: scope to a specific knowledge graph compilation
- `query` (string, required): The question or topic to retrieve source text passages for

### `gctrl_get_entity` (~91 tokens)

Read one entity: its type, connections (up to 20 relation strings), and full provenance — origin file, sourceRef, extraction job + timestamp. Use this to answer "where does X come from / which file / what is the source of X". Prefer gctrl_get_dossier for a compiled authoritative summary.

Input parameters:

- `name` (string, required): Entity name to look up (exact or close match)

### `borghive_get_entity` (~113 tokens)

[DEPRECATED — use 'gctrl_get_entity' instead, alias will be removed in v2] Read one entity: its type, connections (up to 20 relation strings), and full provenance — origin file, sourceRef, extraction job + timestamp. Use this to answer "where does X come from / which file / what is the source of X". Prefer gctrl_get_dossier for a compiled authoritative summary.

Input parameters:

- `name` (string, required): Entity name to look up (exact or close match)

### `gctrl_get_neighbors` (~82 tokens)

List entities within N hops of a node — dependency tracing across the knowledge graph (great for code graphs: "what does X touch?"). Clearance-filtered: only nodes you are cleared for are returned.

Input parameters:

- `depth` (number): Hops to expand (1-3, default 1)
- `name` (string, required): Entity name to expand from

### `borghive_get_neighbors` (~104 tokens)

[DEPRECATED — use 'gctrl_get_neighbors' instead, alias will be removed in v2] List entities within N hops of a node — dependency tracing across the knowledge graph (great for code graphs: "what does X touch?"). Clearance-filtered: only nodes you are cleared for are returned.

Input parameters:

- `depth` (number): Hops to expand (1-3, default 1)
- `name` (string, required): Entity name to expand from

### `gctrl_shortest_path` (~73 tokens)

Find the shortest path between two entities (how is A connected to B / does X depend on Y). Clearance-aware: a path is only returned if every node on it is one you are cleared to see.

Input parameters:

- `from` (string, required): Start entity name
- `to` (string, required): End entity name

### `borghive_shortest_path` (~96 tokens)

[DEPRECATED — use 'gctrl_shortest_path' instead, alias will be removed in v2] Find the shortest path between two entities (how is A connected to B / does X depend on Y). Clearance-aware: a path is only returned if every node on it is one you are cleared to see.

Input parameters:

- `from` (string, required): Start entity name
- `to` (string, required): End entity name

### `gctrl_list_conflicts` (~36 tokens)

List open classification conflicts — entities whose sources disagree on sensitivity (≥2 distinct clearance ranks). Useful for governance / compliance review.

### `borghive_list_conflicts` (~59 tokens)

[DEPRECATED — use 'gctrl_list_conflicts' instead, alias will be removed in v2] List open classification conflicts — entities whose sources disagree on sensitivity (≥2 distinct clearance ranks). Useful for governance / compliance review.

### `gctrl_detect_communities` (~79 tokens)

Run community detection + centrality on a graph: clusters related entities (Louvain), flags the most-central "god nodes", and tags every node with its community/centrality. Returns the cluster summary. Owner action; respects KB-scoped tokens.

Input parameters:

- `compilationId` (string, required): The compilation (graph) ID to analyse

### `borghive_detect_communities` (~103 tokens)

[DEPRECATED — use 'gctrl_detect_communities' instead, alias will be removed in v2] Run community detection + centrality on a graph: clusters related entities (Louvain), flags the most-central "god nodes", and tags every node with its community/centrality. Returns the cluster summary. Owner action; respects KB-scoped tokens.

Input parameters:

- `compilationId` (string, required): The compilation (graph) ID to analyse

### `gctrl_wiki_graph` (~70 tokens)

Get a WIKI compilation as a navigable graph: pages are nodes, [[wikilinks]] are edges. Clearance-filtered (pages above your clearance, and their links, are hidden). Useful for canvas/visual clients.

Input parameters:

- `compilationId` (string, required): The WIKI compilation ID

### `borghive_wiki_graph` (~93 tokens)

[DEPRECATED — use 'gctrl_wiki_graph' instead, alias will be removed in v2] Get a WIKI compilation as a navigable graph: pages are nodes, [[wikilinks]] are edges. Clearance-filtered (pages above your clearance, and their links, are hidden). Useful for canvas/visual clients.

Input parameters:

- `compilationId` (string, required): The WIKI compilation ID

### `gctrl_ingest_repo` (~133 tokens)

Ingest a (Python) code repository into the knowledge graph: parses files into File/Class/Function/Module entities + CONTAINS/IMPORTS/CALLS/INHERITS edges (fully local, no LLM). Classification flows in like any other knowledge. Pass files as [{path, content}].

Input parameters:

- `classificationLevelId` (string): Optional classification level UUID for the ingested code
- `files` (array, required): Repo files as {path, content} (Python .py files are parsed; others skipped)
- `repoName` (string): Optional repo name (provenance origin)

### `borghive_ingest_repo` (~156 tokens)

[DEPRECATED — use 'gctrl_ingest_repo' instead, alias will be removed in v2] Ingest a (Python) code repository into the knowledge graph: parses files into File/Class/Function/Module entities + CONTAINS/IMPORTS/CALLS/INHERITS edges (fully local, no LLM). Classification flows in like any other knowledge. Pass files as [{path, content}].

Input parameters:

- `classificationLevelId` (string): Optional classification level UUID for the ingested code
- `files` (array, required): Repo files as {path, content} (Python .py files are parsed; others skipped)
- `repoName` (string): Optional repo name (provenance origin)

### `gctrl_pin_dossier` (~78 tokens)

Pin (or unpin) an entity dossier so it stays in HOT memory and is always injected into answers. Owner-level memory curation — denied for KB-scoped tokens.

Input parameters:

- `name` (string, required): Entity name to pin/unpin
- `pinned` (boolean): true=pin, false=unpin, omit=toggle

### `borghive_pin_dossier` (~101 tokens)

[DEPRECATED — use 'gctrl_pin_dossier' instead, alias will be removed in v2] Pin (or unpin) an entity dossier so it stays in HOT memory and is always injected into answers. Owner-level memory curation — denied for KB-scoped tokens.

Input parameters:

- `name` (string, required): Entity name to pin/unpin
- `pinned` (boolean): true=pin, false=unpin, omit=toggle

### `gctrl_memory_feedback` (~143 tokens)

Reinforce or distrust a memory: vote 'up' raises an entity dossier's trust; 'down' sets it to 0 and, if you pass a fact triple (compilationId+head+relType+tail), deletes that wrong edge and remembers the correction so it never returns. Owner-level.

Input parameters:

- `compilationId` (string): For a targeted 👎 fact correction
- `entity` (string, required): Entity whose dossier the feedback targets
- `head` (string)
- `relType` (string)
- `tail` (string)
- `vote` (string, required): 'up' to confirm/reinforce, 'down' to distrust

### `borghive_memory_feedback` (~165 tokens)

[DEPRECATED — use 'gctrl_memory_feedback' instead, alias will be removed in v2] Reinforce or distrust a memory: vote 'up' raises an entity dossier's trust; 'down' sets it to 0 and, if you pass a fact triple (compilationId+head+relType+tail), deletes that wrong edge and remembers the correction so it never returns. Owner-level.

Input parameters:

- `compilationId` (string): For a targeted 👎 fact correction
- `entity` (string, required): Entity whose dossier the feedback targets
- `head` (string)
- `relType` (string)
- `tail` (string)
- `vote` (string, required): 'up' to confirm/reinforce, 'down' to distrust

### `gctrl_memory_health` (~43 tokens)

Read the memory snapshot: coverage, store sizes (entities/edges/chunks/dossiers/wiki), heat + trust distribution, and the last maintenance cycle. Owner-level.

### `borghive_memory_health` (~65 tokens)

[DEPRECATED — use 'gctrl_memory_health' instead, alias will be removed in v2] Read the memory snapshot: coverage, store sizes (entities/edges/chunks/dossiers/wiki), heat + trust distribution, and the last maintenance cycle. Owner-level.

### `gctrl_run_maintenance` (~34 tokens)

Run one memory governance cycle now (decay → dedup → promote hot → evict stale). Owner-level.

### `borghive_run_maintenance` (~57 tokens)

[DEPRECATED — use 'gctrl_run_maintenance' instead, alias will be removed in v2] Run one memory governance cycle now (decay → dedup → promote hot → evict stale). Owner-level.

### `gctrl_get_user_profile` (~36 tokens)

Read the owner personalization profile (opt-in facts + summary) so you can tailor answers to who is asking. Owner-level.

### `borghive_get_user_profile` (~59 tokens)

[DEPRECATED — use 'gctrl_get_user_profile' instead, alias will be removed in v2] Read the owner personalization profile (opt-in facts + summary) so you can tailor answers to who is asking. Owner-level.

### `gctrl_list_ontologies` (~33 tokens)

List all ontologies available in Ground Control. Ontologies define entity types and matching rules for knowledge extraction.

### `borghive_list_ontologies` (~57 tokens)

[DEPRECATED — use 'gctrl_list_ontologies' instead, alias will be removed in v2] List all ontologies available in Ground Control. Ontologies define entity types and matching rules for knowledge extraction.

### `gctrl_list_extractions` (~38 tokens)

List recent knowledge extraction jobs with their status, entity counts, and source info.

Input parameters:

- `limit` (number): Maximum jobs to return

### `borghive_list_extractions` (~61 tokens)

[DEPRECATED — use 'gctrl_list_extractions' instead, alias will be removed in v2] List recent knowledge extraction jobs with their status, entity counts, and source info.

Input parameters:

- `limit` (number): Maximum jobs to return

### `gctrl_store` (~160 tokens)

WRITE your conclusions back into GCTRL — call this after ANY substantive task so your memory compounds across sessions (this is the point of GCTRL). Extracts entities + builds graph from the text, like saving notes but structured. IMPORTANT: always pass a compilationId for your assigned knowledge base (find it via gctrl_list_graphs) so nothing is orphaned.

Input parameters:

- `compilationId` (string): Target knowledge graph compilation ID. RECOMMENDED: always specify this to store into the correct agent graph. Use gctrl_list_graphs to find IDs.
- `ontologyId` (string): Optional ontology to guide extraction
- `text` (string, required): Text content to store as knowledge
- `title` (string): Optional title/label for this knowledge

### `borghive_store` (~181 tokens)

[DEPRECATED — use 'gctrl_store' instead, alias will be removed in v2] WRITE your conclusions back into GCTRL — call this after ANY substantive task so your memory compounds across sessions (this is the point of GCTRL). Extracts entities + builds graph from the text, like saving notes but structured. IMPORTANT: always pass a compilationId for your assigned knowledge base (find it via gctrl_list_graphs) so nothing is orphaned.

Input parameters:

- `compilationId` (string): Target knowledge graph compilation ID. RECOMMENDED: always specify this to store into the correct agent graph. Use gctrl_list_graphs to find IDs.
- `ontologyId` (string): Optional ontology to guide extraction
- `text` (string, required): Text content to store as knowledge
- `title` (string): Optional title/label for this knowledge

### `gctrl_schema` (~36 tokens)

Get the schema of the knowledge graph — available entity types, relationship types, and property keys. Useful for understanding what data is stored.

### `borghive_schema` (~57 tokens)

[DEPRECATED — use 'gctrl_schema' instead, alias will be removed in v2] Get the schema of the knowledge graph — available entity types, relationship types, and property keys. Useful for understanding what data is stored.

### `gctrl_find_file` (~156 tokens)

Find files by name/path across connected sources (Google Drive, SharePoint) — including UNSUPPORTED files like CAD drawings (.dwg/.step), images and archives indexed as metadata. Fuzzy-ranked. Each hit includes path, size, modified/last-seen times, source, and up to 3 related parsed sibling documents from the same folder, so you can answer "where is file X, when was it seen last, and what project is it related to".

Input parameters:

- `limit` (number): Maximum hits to return (default 5, max 25)
- `query` (string, required): File name or path fragment to search for (fuzzy), e.g. "rim cad" or "felge.dwg"

### `gctrl_get_sync_status` (~64 tokens)

Summarize connector sync health: per connector (Google Drive / SharePoint) the last sync time and live job counts by status, plus the last 5 failed source files with their errors. Use to answer "is my Drive sync working / what failed last".

### `gctrl_ingest_file` (~149 tokens)

Ingest a PDF, DOCX, or other binary file into the knowledge graph. Use this whenever the user drops, mentions, or references a file (not raw text) that should become knowledge — reads the file from local disk, uploads it, and starts extraction. For plain text, use gctrl_extract/gctrl_store instead.

Input parameters:

- `compilationId` (string): Optional: target knowledge graph compilation ID. Omit to fall back to your default knowledge base.
- `ontologyId` (string): Optional ontology ID to guide entity type extraction
- `path` (string, required): Absolute (or cwd-relative) path to the local file to ingest, e.g. a PDF or DOCX

### `gctrl_set_privacy_mode` (~152 tokens)

Raise a knowledge graph's privacy for cloud LLMs during setup: 'cloaked' (pseudonymize entities/PII before a cloud model sees them) or 'local_only' (never send it to a cloud model). Can only INCREASE privacy — loosening it back to 'open' needs the Settings UI. Never call this 'encryption'.

Input parameters:

- `compilationId` (string, required): The knowledge graph to make more private.
- `mode` (string, required): 'cloaked' = entities/PII are pseudonymized before any cloud model sees them (recommended when you are a cloud model); 'local_only' = this graph is never sent to a cloud model.

### `borghive_set_privacy_mode` (~176 tokens)

[DEPRECATED — use 'gctrl_set_privacy_mode' instead, alias will be removed in v2] Raise a knowledge graph's privacy for cloud LLMs during setup: 'cloaked' (pseudonymize entities/PII before a cloud model sees them) or 'local_only' (never send it to a cloud model). Can only INCREASE privacy — loosening it back to 'open' needs the Settings UI. Never call this 'encryption'.

Input parameters:

- `compilationId` (string, required): The knowledge graph to make more private.
- `mode` (string, required): 'cloaked' = entities/PII are pseudonymized before any cloud model sees them (recommended when you are a cloud model); 'local_only' = this graph is never sent to a cloud model.

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/gctrl-tech-gctrl/gctrl-mcp#diagnostics

## Score history

- 2026-08-03: 67
- 2026-08-02: 66
- 2026-08-01: 21
- 2026-07-31: 28
- 2026-07-30: 46
- 2026-07-28: 46
- 2026-07-27: 46

## Links

- npm package: https://www.npmjs.com/package/gctrl-mcp
- Socket report: https://socket.dev/npm/package/gctrl-mcp
- Repository: https://github.com/GCTRL-TECH/platform
- Website: https://gctrl.tech/
- Changelog RSS feed: https://verifymcp.io/servers/gctrl-tech-gctrl/gctrl-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/gctrl-tech-gctrl/gctrl-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/gctrl-tech-gctrl/gctrl-mcp
