Cont3Xt — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Cont3Xt (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.
Virtual Infinite Context for Agents and LLMs An MCP server that maintains a continuous rolling context window, always surfacing the most relevant memories for the task at hand — while respecting your token budget.
This repository includes an MVP MCP stdio server suitable for integration with the Cline extension for VS Code. It exposes a minimal, SQLite-only toolset over stdio with zero external services required by default.
Notes:
{ "ok": boolean, "data": {...}, "meta": { "duration_ms": number, "backend": "sqlite", "version": "0.1.1" } }
Requires Python 3.11+
git clone https://github.com/elevend0g/cont3xt.git
cd cont3xt
pip install -r requirements.txt
pip install -e .virtual-context-mcp --init-dbThis creates ./data/memory.db if it doesn’t exist (or the path specified by config/env).
virtual-context-mcpThis starts the MCP server over stdio.
Add an MCP server named cont3xt that launches the stdio server:
Example configuration shape (adapt for your Cline settings UI/JSON):
{
"mcpServers": {
"cont3xt": {
"command": "virtual-context-mcp",
"args": ["--config", "configs/novel_writing.yaml"],
"env": {
"CONTEXT_MAX_TOKENS": "12000",
"PYTHONUNBUFFERED": "1"
}
}
}
}Notes:
{
"mcpServers": {
"cont3xt": {
"command": "virtual-context-mcp",
"args": ["--config", "configs/novel_writing.yaml"],
"env": {
"CONTEXT_MAX_TOKENS": "12000",
"PYTHONUNBUFFERED": "1"
}
}
}
}All tools return a JSON envelope as text content.
Envelope:
{
"ok": true,
"data": { /* tool-specific payload */ },
"meta": {
"duration_ms": 5.23,
"backend": "sqlite",
"version": "0.1.1"
}
}Upsert memory for a session from either combined content or a user/assistant pair.
Arguments:
Response (example):
{
"ok": true,
"data": {
"session_id": "sess-1",
"ids": ["b1c...f"],
"count": 1
},
"meta": {
"duration_ms": 1.23,
"backend": "sqlite",
"version": "0.1.1"
}
}Simple substring search with a recency-biased score over recent SQLite chunks.
Arguments:
Response (example):
{
"ok": true,
"data": {
"query": "emerald eyes",
"results_count": 2,
"results": [
{
"chunk_id": "b1c...f",
"score": 1.7,
"timestamp": "2025-08-09T17:30:00.000000",
"token_count": 142,
"preview": "User: ... Assistant: ..."
}
]
},
"meta": {
"duration_ms": 2.45,
"backend": "sqlite",
"version": "0.1.1"
}
}Packs a token-budgeted context using recent conversation chunks. Reserves a small buffer and includes the current input if provided.
Arguments:
Response (example):
{
"ok": true,
"data": {
"pack": {
"schema_version": "ctx.v1",
"budget_tokens": 12000,
"used_tokens": 2834,
"sections": [
{"role": "user", "title": "Current Input", "content": "..."},
{
"role": "context",
"title": "Conversation (2025-08-09T17:30:00.000000)",
"content": "...",
"chunk_id": "b1c...f",
"token_count": 142
}
],
"provenance": {
"retriever": "recent-only",
"stores": {"sqlite": "./data/memory.db"}
},
"pack_stats": {
"num_candidates": 12,
"kept": 4,
"dropped": 8,
"buffer_tokens": 500
}
},
"meta": {
"input_tokens": 120,
"output_tokens": 2834,
"budget": 12000,
"sources": ["b1c...f", "a9d...1"]
}
},
"meta": {
"duration_ms": 7.89,
"backend": "sqlite",
"version": "0.1.1"
}
}Notes:
"reason": "BUDGET_TOO_SMALL".Returns basic status and configuration fingerprint.
Arguments: none
Response (example):
{
"ok": true,
"data": {
"server": "cont3xt",
"version": "0.1.1",
"datetime": "2025-08-09T17:32:00.000000",
"config": {
"sqlite_path": "./data/memory.db",
"max_tokens": 12000,
"token_model": "cl100k_base",
"optional_backends": {
"qdrant": false,
"neo4j": false
}
}
},
"meta": {
"duration_ms": 0.41,
"backend": "sqlite",
"version": "0.1.1"
}
}1) In Cline, run a task like “Improve function X in file Y; add a unit test and make tests pass.” 2) Cline should:
search_memory(session_id, query="project goals")context_pack(session_id, current_input="<file diff request>", budget_tokens=12000)memory_upsert with (user_input, assistant_response) to persist the session outcome3) Acceptance:
pip install -e ., launch Cline, and complete a guided code edit PR in one go using the above flow.Defaults are provided in code, optionally loaded from a YAML file (e.g., configs/novel_writing.yaml) and overridden by environment variables.
Environment variable overrides (examples):
For the MVP, only SQLite is used. Qdrant / Neo4j are intentionally not required; future versions can enable them via env/config flags.
Truncation policy:
"reason": "BUDGET_TOO_SMALL".Entry points:
Local logs: standard output (set PYTHONUNBUFFERED=1 for real-time logs). SQLite file: ./data/memory.db by default.
Run unit/integration tests as needed (note that legacy story-focused modules may not reflect the MVP surface area).
MIT © elevend0g
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.