Kontrol Freek
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| KF_HMAC_SECRET | Yes | Secret key for HMAC-SHA256 audit trail. | |
| KF_TELEGRAM_TOKEN | No | Telegram bot token for interactive approval. | |
| KF_TELEGRAM_CHAT_ID | No | Telegram chat ID for receiving notifications. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| check_assumptionA | Verify an assumption against past decisions. Checks for contradictions, scores risk, and requests human approval when needed. ALWAYS pass project_root as the current working directory so decisions are stored per-project and not mixed across projects. The AI MUST call this at every decision point:
|
| confirm_decisionA | Record a finalized decision. Irreversible decisions always require human approval. Always pass project_root as the current working directory. |
| ask_humanB | Ask the human a direct question and wait for their response. Call this whenever uncertain. Always pass project_root as the current working directory. |
| query_decisionsA | Search past decisions for context and consistency. Always pass project_root as the current working directory. |
| revoke_decisionA | Revoke or supersede a previously approved decision. Use this when a past decision was wrong, circumstances changed, or it conflicts with new requirements. The decision is marked 'revoked' in the log so future similarity checks ignore it. Always pass project_root as the current working directory. |
| get_firewall_statsA | Return firewall statistics for the current project. Always pass project_root as the current working directory. |
| setup_projectA | Initialize Kontrol Freek for the current project. Checks if .kontrol-freek.json exists in the project root. If not, analyzes project files to infer a configuration, then asks the human for confirmation before writing the file. Always pass project_root as the current working directory. Call this at the start of every session in a new project. |
| healthcheckA | Full health check — DB, audit chain, channels. Always pass project_root as the current working directory. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| assumption_discipline_prompt | System prompt that enforces assumption discipline. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| get_project_context | Read project context files. |
| stats_resource |
TDQS
Scored across 8 tools
Decision-related tools are mostly distinct: check_assumption verifies, confirm_decision records, query_decisions searches, revoke_decision invalidates. Some overlap exists between check_assumption and ask_human since both can involve seeking human input, but their primary purposes remain distinguishable.
Most tool names follow a clear verb_noun snake_case pattern: check_assumption, confirm_decision, query_decisions, revoke_decision, get_firewall_stats, setup_project. The single deviation is 'healthcheck', which is a compound noun without an explicit verb separator, but it is still readable and consistent in style.
Eight tools is a well-scoped set for a decision-management server. Each tool has a clear role in the lifecycle, and the count is within the ideal range without redundancy or bloat.
The decision lifecycle is well covered: setup, assumption checking, confirmation, querying, revocation, and human escalation are all present. Minor gaps exist, such as no explicit update_decision operation, but revoke_decision handles superseding, and healthcheck/stat tools round out operational coverage.