Mcp Server For Opentext Knowledge Discovery — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Mcp Server For Opentext Knowledge Discovery (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
An MCP (Model Context Protocol) server for managing OpenText Knowledge Discovery content engines.
This server exposes Content Engine administration tasks as MCP tools, allowing AI assistants to create databases, delete databases, list databases, delete documents, query engine status, and manage engine configuration — all through natural language.
| Tool | Description | Required Params | Optional Params |
|---|---|---|---|
create_database | Create a new database via DRECREATEDBASE | db_name | engine_name, internal, read_only |
delete_database | Delete a database and all its documents via DREREMOVEDBASE | db_name | engine_name, ignore_max_pending_items, index_uid, no_archive, priority |
list_databases | List all databases via GetStatus admin action | — | engine_name |
delete_documents | Delete all documents from a database via DREREMOVEDBASE | db_name | engine_name |
get_status | Get engine status (version, ports, components) | — | engine_name |
list_engines | Show all configured engines and the active one | — | — |
reload_config | Hot-reload config.json without restarting | — | — |
httpx package (pip install httpx)git clone <repo-url>
cd mcp-kdCopy the example config and edit it with your engine details:
cp config.json.example config.jsonEdit config.json:
{
"active": "content1",
"engines": {
"content1": {
"host": "content-engine-host.example.com",
"index_port": 9101,
"aci_port": 9000,
"ssl_cert": "/certs/bundle.crt",
"verify_ssl": true
}
},
"request_timeout": 30,
"log_level": "INFO"
}| Key | Description |
|---|---|
active | Which engine entry is used by default |
engines.<name>.host | Hostname or IP of the content engine |
engines.<name>.index_port | Index action port (e.g., DRECREATEDBASE) |
engines.<name>.aci_port | ACI / admin action port (e.g., GetStatus) |
engines.<name>.ssl_cert | Path to the CA certificate bundle for HTTPS |
engines.<name>.verify_ssl | Set to false to skip SSL verification (not recommended) |
request_timeout | HTTP request timeout in seconds |
log_level | Logging level (DEBUG, INFO, WARNING, ERROR) |
pip install httpx>=0.27.0If using a virtual environment:
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtPlace your content engine's CA certificate bundle at the path specified in config.json (ssl_cert):
mkdir -p certs
cp /path/to/your/bundle.crt certs/python3 server.pyThe server listens on stdin/stdout using the MCP JSON-RPC 2.0 protocol. It is designed to be launched by an MCP host (VS Code, Claude Desktop, etc.).
Add this to .vscode/mcp.json in your project:
{
"servers": {
"mcp-kd": {
"command": "/usr/bin/python3",
"args": ["/path/to/mcp-kd/server.py"],
"env": { "PYTHONUNBUFFERED": "1" }
}
}
}Reload the VS Code window (Developer: Reload Window) and mcp-kd will appear in the MCP Servers view.
docker build -t mcp-kd:latest .docker compose up -dThe docker-compose.yml mounts config.json and the certs/ directory as volumes so you can update them without rebuilding the image.
docker run -i \
-v $(pwd)/config.json:/app/config.json:ro \
-v $(pwd)/certs:/certs:ro \
mcp-kd:latestThe -i flag (stdin open) is required — MCP communicates via stdio.
┌──────────────┐ stdio/JSON-RPC ┌──────────────┐ HTTPS/REST ┌─────────────────┐
│ MCP Host │ ◄──────────────────────► │ server.py │ ◄────────────────► │ Content Engine │
│ (VS Code, │ │ (MCP-KD) │ │ (OpenText KD) │
│ Claude, etc)│ └──────┬───────┘ └─────────────────┘
└──────────────┘ │
┌──────▼───────┐
│ content_engine.py │
│ (REST client) │
└──────────────────┘Define multiple engines in config.json and switch between them at runtime by providing the engine_name parameter in tool calls:
{
"active": "content1",
"engines": {
"content1": { "host": "engine1.example.com", "index_port": 9101, "aci_port": 9000 },
"content2": { "host": "engine2.example.com", "index_port": 9101, "aci_port": 9000 }
}
}Pass "engine_name": "content2" to target a specific engine. Omit it to use the active engine.
mcp-kd/
├── server.py # MCP server (JSON-RPC 2.0 over stdio)
├── content_engine.py # Content Engine REST API client
├── config.json # Engine configuration (git-ignored)
├── config.json.example # Example config with placeholder values
├── requirements.txt # Python dependencies
├── Dockerfile # Docker image definition
├── docker-compose.yml # Docker Compose configuration
├── .gitignore # Git ignore rules
├── .dockerignore # Docker build ignore rules
├── test_smoke.py # Smoke test for the MCP server
├── instructions/ # Reference docs for Content Engine actions
│ ├── goal.md
│ ├── createDb.md
│ ├── deleteDb.md
│ ├── getstatus.md
│ └── general-instructions.md
└── certs/ # SSL certificate bundles (git-ignored)
└── bundle.crtThis project is provided as-is for managing OpenText Knowledge Discovery content engines.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.