{
"event": "PreToolUse",
"tool_name": "Edit",
"tool_input": {
"file_path": "\/opt\/mcp-servers\/mcp-db\/config.py",
"old_string": " # ki_content - Content Studio\n \"content_orders\",\n \"content_versions\",\n \"content_contracts\",\n \"content_critiques\",\n \"content_sources\",\n \"content_structures\",\n \"author_profiles\",\n \"critics\",",
"new_string": " # ki_content - Content Studio\n \"content_orders\",\n \"content_versions\",\n \"content_contracts\",\n \"content_critiques\",\n \"content_sources\",\n \"content_structures\",\n \"content_config\",\n \"content_config_history\",\n \"author_profiles\",\n \"critics\","
}
}
{
"tool_response": {
"filePath": "\/opt\/mcp-servers\/mcp-db\/config.py",
"oldString": " # ki_content - Content Studio\n \"content_orders\",\n \"content_versions\",\n \"content_contracts\",\n \"content_critiques\",\n \"content_sources\",\n \"content_structures\",\n \"author_profiles\",\n \"critics\",",
"newString": " # ki_content - Content Studio\n \"content_orders\",\n \"content_versions\",\n \"content_contracts\",\n \"content_critiques\",\n \"content_sources\",\n \"content_structures\",\n \"content_config\",\n \"content_config_history\",\n \"author_profiles\",\n \"critics\",",
"originalFile": "\"\"\"Zentrale Konfiguration für MCP-DB Server\"\"\"\nimport os\nfrom typing import List\n\n\nclass Config:\n \"\"\"Konfiguration aus Environment Variables\"\"\"\n\n # Datenbank für Queries (mcp_readonly)\n DB_HOST: str = os.getenv(\"DB_HOST\", \"localhost\")\n DB_USER: str = os.getenv(\"DB_USER\", \"mcp_readonly\")\n DB_PASSWORD: str = os.getenv(\"DB_PASSWORD\", \"\")\n\n # Datenbank für Logging (mcp_logger)\n LOG_DB_HOST: str = os.getenv(\"LOG_DB_HOST\", \"localhost\")\n LOG_DB_NAME: str = os.getenv(\"LOG_DB_NAME\", \"ki_dev\")\n LOG_DB_USER: str = os.getenv(\"LOG_DB_USER\", \"mcp_logger\")\n LOG_DB_PASSWORD: str = os.getenv(\"LOG_DB_PASSWORD\", \"\")\n\n # Database Allowlist\n ALLOWED_DATABASES: List[str] = [\"ki_dev\", \"ki_content\"]\n\n # Dangerous Keyword Blocklist\n BLOCKED_KEYWORDS: List[str] = [\n \"DROP\",\n \"DELETE\",\n \"INSERT\",\n \"UPDATE\",\n \"TRUNCATE\",\n \"ALTER\",\n \"CREATE\",\n \"RENAME\",\n \"GRANT\",\n \"REVOKE\",\n \"LOAD_FILE\",\n \"INTO OUTFILE\",\n \"INTO DUMPFILE\",\n \"BENCHMARK\",\n \"SLEEP\",\n ]\n\n # Query Limits\n MAX_QUERY_LENGTH: int = 2000\n MAX_ROWS: int = 100\n QUERY_TIMEOUT_SEC: int = 30\n\n # Table Allowlist (nur existierende Tabellen)\n # ki_dev: mcp_log, protokoll, tasks, contracts, dokumentation, pipeline, prompts\n # ki_content: content, chat, chunks, entities, taxonomy\n ALLOWED_TABLES: List[str] = [\n # ki_dev - Logs\n \"mcp_log\",\n \"protokoll\",\n \"file_backup_history\",\n # ki_dev - Tasks\n \"tasks\",\n \"task_assignments\",\n \"task_results\",\n \"task_comments\",\n # ki_dev - Contracts\n \"contracts\",\n \"contract_history\",\n \"contract_validations\",\n # ki_dev - Dokumentation\n \"dokumentation\",\n \"dokumentation_chunks\",\n \"dokumentation_history\",\n # ki_dev - Pipeline\/Prompts\n \"pipeline_log\",\n \"pipeline_queue\",\n \"prompts\",\n \"prompt_tests\",\n \"system_prompts\",\n \"llm_requests\",\n # ki_content - Content Studio\n \"content_orders\",\n \"content_versions\",\n \"content_contracts\",\n \"content_critiques\",\n \"content_sources\",\n \"content_structures\",\n \"author_profiles\",\n \"critics\",\n # ki_content - RAG\/Documents\n \"documents\",\n \"chunks\",\n \"chunk_semantics\",\n \"chunk_entities\",\n \"chunk_taxonomy\",\n \"document_taxonomy\",\n # ki_content - Chat\n \"chat_sessions\",\n \"chat_messages\",\n # ki_content - Entities\/Taxonomy\n \"entities\",\n \"entity_relations\",\n \"entity_synonyms\",\n \"entity_classifications\",\n \"taxonomy_terms\",\n \"ontology_classes\",\n # ki_content - Search\n \"search_history\",\n ]\n",
"structuredPatch": [
{
"oldStart": 79,
"oldLines": 6,
"newStart": 79,
"newLines": 8,
"lines": [
" \"content_critiques\",",
" \"content_sources\",",
" \"content_structures\",",
"+ \"content_config\",",
"+ \"content_config_history\",",
" \"author_profiles\",",
" \"critics\",",
" # ki_content - RAG\/Documents"
]
}
],
"userModified": false,
"replaceAll": false
}
}