github Python analyzed c91b8d5

devnullnoop/MGCP

github

Memory Graph Core Primitives — persistent, graph-based memory for LLM interactions via MCP

maintainer
devnullnoop
license
NOASSERTION
first seen
2026-07-29
last seen
2026-08-21
releases · 30d
0
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 50 tools
transport stdio · http counts 50 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • add_catalogue_item
  • add_enforcement_rule
  • add_intent
  • add_lesson
  • add_project_todo
  • add_workflow_step
  • adjudicate_apology_gate
  • compile_intent_to_skill
  • create_workflow
  • delete_lesson
  • detect_communities
  • get_catalogue_item
  • get_enforcement_rule
  • get_intent
  • get_lesson
  • get_lessons_by_category
  • get_project_context
  • get_workflow
  • get_workflow_step
  • link_lesson_to_workflow_step
  • link_lessons
  • list_categories
  • list_enforcement_rules
  • list_intents
  • list_projects
  • list_workflows
  • query_lessons
  • query_workflows
  • read_soliloquy
  • refine_lesson
  • rem_report
  • rem_run
  • rem_status
  • remove_catalogue_item
  • remove_enforcement_rule
  • remove_intent
  • reset_reminder_state
  • save_community_summary
  • save_project_context
  • schedule_reminder
  • search_catalogue
  • search_communities
  • spider_lessons
  • toggle_enforcement_rule
  • update_enforcement_rule
  • update_intent
  • update_project_todo
  • update_workflow
  • update_workflow_state
  • write_soliloquy
skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit c91b8d5 · analyzer v33 · 5d ago

skills & prompt files 1

danger signals2

code evidence vHEAD · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 76

filesystem 51

  • fs devnullnoop-MGCP-c91b8d5/check_install.py :14 from pathlib import Path
  • fs (weak) devnullnoop-MGCP-c91b8d5/examples/claude-hooks/legacy/error-detector.py :14 from pathlib import Path
  • fs (weak) devnullnoop-MGCP-c91b8d5/examples/claude-hooks/legacy/task-start-reminder.py :16 from pathlib import Path
  • fs (weak) devnullnoop-MGCP-c91b8d5/examples/claude-hooks/post-tool-dispatcher.py :18 from pathlib import Path
  • fs (weak) devnullnoop-MGCP-c91b8d5/examples/claude-hooks/pre-tool-dispatcher.py :40 from pathlib import Path
  • fs (weak) devnullnoop-MGCP-c91b8d5/examples/claude-hooks/session-init.py :20 from pathlib import Path
  • fs (weak) devnullnoop-MGCP-c91b8d5/examples/claude-hooks/user-prompt-dispatcher.py :25 from pathlib import Path
  • fs (weak) devnullnoop-MGCP-c91b8d5/scripts/clean_tool_call_envelopes.py :28 from pathlib import Path
  • fs devnullnoop-MGCP-c91b8d5/src/mgcp/backup.py :3 import shutil
  • fs devnullnoop-MGCP-c91b8d5/src/mgcp/bootstrap_loader.py :21 from pathlib import Path
  • fs devnullnoop-MGCP-c91b8d5/src/mgcp/data_ops.py :8 from pathlib import Path
  • fs devnullnoop-MGCP-c91b8d5/src/mgcp/enforcement.py :34 from pathlib import Path
  • fs devnullnoop-MGCP-c91b8d5/src/mgcp/hook_templates/post-tool-dispatcher.py :18 from pathlib import Path
  • fs devnullnoop-MGCP-c91b8d5/src/mgcp/hook_templates/pre-tool-dispatcher.py :40 from pathlib import Path
  • fs devnullnoop-MGCP-c91b8d5/src/mgcp/hook_templates/session-init.py :20 from pathlib import Path
  • fs devnullnoop-MGCP-c91b8d5/src/mgcp/hook_templates/user-prompt-dispatcher.py :25 from pathlib import Path
  • fs devnullnoop-MGCP-c91b8d5/src/mgcp/init_project.py :6 import shutil
  • fs devnullnoop-MGCP-c91b8d5/src/mgcp/intent_config.py :40 from pathlib import Path
  • fs devnullnoop-MGCP-c91b8d5/src/mgcp/launcher.py :11 from pathlib import Path
  • fs devnullnoop-MGCP-c91b8d5/src/mgcp/logging_config.py :16 from pathlib import Path
  • fs devnullnoop-MGCP-c91b8d5/src/mgcp/migration.py :20 from pathlib import Path
  • fs devnullnoop-MGCP-c91b8d5/src/mgcp/persistence.py :13 from pathlib import Path
  • fs devnullnoop-MGCP-c91b8d5/src/mgcp/qdrant_catalogue_store.py :19 from pathlib import Path
  • fs devnullnoop-MGCP-c91b8d5/src/mgcp/qdrant_vector_store.py :19 from pathlib import Path
  • fs devnullnoop-MGCP-c91b8d5/src/mgcp/rem_cycle.py :441 from pathlib import Path as _Path
  • fs devnullnoop-MGCP-c91b8d5/src/mgcp/reminder_state.py :18 from pathlib import Path
  • fs devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :14 from pathlib import Path
  • fs devnullnoop-MGCP-c91b8d5/src/mgcp/skill_compiler.py :37 from pathlib import Path
  • fs devnullnoop-MGCP-c91b8d5/src/mgcp/telemetry.py :10 from pathlib import Path
  • fs devnullnoop-MGCP-c91b8d5/src/mgcp/web_server.py :8 from pathlib import Path
  • fs (weak) devnullnoop-MGCP-c91b8d5/tests/benchmark_data/run_blind_llm.py :15 from pathlib import Path
  • fs (weak) devnullnoop-MGCP-c91b8d5/tests/conftest.py :12 import shutil
  • fs (weak) devnullnoop-MGCP-c91b8d5/tests/ledger.py :12 from pathlib import Path
  • fs (weak) devnullnoop-MGCP-c91b8d5/tests/nli_apology_benchmark.py :37 from pathlib import Path
  • fs (weak) devnullnoop-MGCP-c91b8d5/tests/retrieval_benchmark.py :34 from pathlib import Path
  • fs (weak) devnullnoop-MGCP-c91b8d5/tests/test_claims.py :41 import shutil
  • fs (weak) devnullnoop-MGCP-c91b8d5/tests/test_communities.py :5 from pathlib import Path
  • fs (weak) devnullnoop-MGCP-c91b8d5/tests/test_data_ops.py :5 from pathlib import Path
  • fs (weak) devnullnoop-MGCP-c91b8d5/tests/test_failure_recovery.py :14 from pathlib import Path
  • fs (weak) devnullnoop-MGCP-c91b8d5/tests/test_init_project.py :9 from pathlib import Path
  • fs (weak) devnullnoop-MGCP-c91b8d5/tests/test_integration.py :9 from pathlib import Path
  • fs (weak) devnullnoop-MGCP-c91b8d5/tests/test_intent_benchmark.py :26 from pathlib import Path
  • fs (weak) devnullnoop-MGCP-c91b8d5/tests/test_intent_config.py :167 with open(config_path) as f:
  • fs (weak) devnullnoop-MGCP-c91b8d5/tests/test_pre_tool_dispatcher.py :16 from pathlib import Path
  • fs (weak) devnullnoop-MGCP-c91b8d5/tests/test_routing_integration.py :16 from pathlib import Path
  • fs (weak) devnullnoop-MGCP-c91b8d5/tests/test_session_init.py :13 from pathlib import Path
  • fs (weak) devnullnoop-MGCP-c91b8d5/tests/test_skill_compiler.py :14 from pathlib import Path
  • fs (weak) devnullnoop-MGCP-c91b8d5/tests/test_smoke.py :11 from pathlib import Path
  • fs (weak) devnullnoop-MGCP-c91b8d5/tests/test_stress.py :16 from pathlib import Path
  • fs (weak) devnullnoop-MGCP-c91b8d5/tests/test_tool_call_envelope.py :24 from pathlib import Path
  • fs (weak) devnullnoop-MGCP-c91b8d5/tests/test_trigger_coverage.py :32 import shutil

shell / exec 12

  • shell devnullnoop-MGCP-c91b8d5/check_install.py :12 import subprocess
  • shell (weak) devnullnoop-MGCP-c91b8d5/examples/claude-hooks/pre-tool-dispatcher.py :38 import subprocess
  • shell devnullnoop-MGCP-c91b8d5/src/mgcp/enforcement.py :33 import subprocess
  • shell devnullnoop-MGCP-c91b8d5/src/mgcp/hook_templates/pre-tool-dispatcher.py :38 import subprocess
  • shell devnullnoop-MGCP-c91b8d5/src/mgcp/init_project.py :989 import subprocess
  • shell devnullnoop-MGCP-c91b8d5/src/mgcp/launcher.py :7 import subprocess
  • shell (weak) devnullnoop-MGCP-c91b8d5/tests/test_claims.py :43 import subprocess
  • shell (weak) devnullnoop-MGCP-c91b8d5/tests/test_init_project.py :7 import subprocess
  • shell (weak) devnullnoop-MGCP-c91b8d5/tests/test_pre_tool_dispatcher.py :14 import subprocess
  • shell (weak) devnullnoop-MGCP-c91b8d5/tests/test_routing_integration.py :13 import subprocess
  • shell (weak) devnullnoop-MGCP-c91b8d5/tests/test_session_init.py :11 import subprocess
  • shell (weak) devnullnoop-MGCP-c91b8d5/tests/test_smoke.py :8 import subprocess

secrets 1

  • secrets (weak) devnullnoop-MGCP-c91b8d5/tests/benchmark_data/run_blind_llm.py :72 api_key = os.environ.get("ANTHROPIC_API_KEY")

database 8

  • db (weak) devnullnoop-MGCP-c91b8d5/examples/claude-hooks/session-init.py :19 import sqlite3
  • db (weak) devnullnoop-MGCP-c91b8d5/scripts/clean_tool_call_envelopes.py :26 import sqlite3
  • db devnullnoop-MGCP-c91b8d5/src/mgcp/hook_templates/session-init.py :19 import sqlite3
  • db (weak) devnullnoop-MGCP-c91b8d5/tests/test_claims.py :42 import sqlite3
  • db (weak) devnullnoop-MGCP-c91b8d5/tests/test_failure_recovery.py :12 import sqlite3
  • db (weak) devnullnoop-MGCP-c91b8d5/tests/test_session_init.py :10 import sqlite3
  • db (weak) devnullnoop-MGCP-c91b8d5/tests/test_tool_call_envelope.py :23 import sqlite3
  • db (weak) devnullnoop-MGCP-c91b8d5/tests/test_versioning.py :293 import sqlite3

tool registrations 50

  • query_lessons devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :183
  • get_lesson devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :279
  • spider_lessons devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :317
  • list_categories devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :356
  • get_lessons_by_category devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :376
  • add_lesson devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :397
  • refine_lesson devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :463
  • link_lessons devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :510
  • delete_lesson devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :610
  • get_project_context devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :652
  • save_project_context devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :705
  • add_project_todo devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :770
  • update_project_todo devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :819
  • list_projects devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :863
  • search_catalogue devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :969
  • add_catalogue_item devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :1024
  • remove_catalogue_item devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :1188
  • get_catalogue_item devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :1277
  • list_workflows devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :1350
  • query_workflows devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :1377
  • get_workflow devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :1456
  • get_workflow_step devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :1474
  • link_lesson_to_workflow_step devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :1537
  • create_workflow devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :1589
  • update_workflow devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :1627
  • add_workflow_step devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :1682
  • detect_communities devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :1738
  • save_community_summary devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :1802
  • search_communities devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :1869
  • schedule_reminder devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :1933
  • reset_reminder_state devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :2026
  • update_workflow_state devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :2038
  • rem_run devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :2098
  • rem_report devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :2166
  • rem_status devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :2213
  • write_soliloquy devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :2261
  • read_soliloquy devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :2301
  • list_intents devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :2389
  • get_intent devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :2422
  • add_intent devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :2460
  • update_intent devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :2516
  • remove_intent devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :2570
  • compile_intent_to_skill devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :2595
  • list_enforcement_rules devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :2678
  • get_enforcement_rule devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :2705
  • add_enforcement_rule devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :2717
  • update_enforcement_rule devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :2779
  • remove_enforcement_rule devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :2828
  • toggle_enforcement_rule devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :2842
  • adjudicate_apology_gate devnullnoop-MGCP-c91b8d5/src/mgcp/server.py :2856

declared dependencies 17

  • mcp@>=1.0.0,<2.0.0
  • networkx@>=3.2
  • numpy@>=1.26.0
  • qdrant-client@>=1.12.0
  • sentence-transformers@>=2.2.2
  • pydantic@>=2.5.0
  • pyyaml@>=6.0
  • aiosqlite@>=0.19.0
  • fastapi@>=0.109.0
  • uvicorn@>=0.27.0
  • websockets@>=12.0
  • pytest@>=7.4.0
  • pytest-asyncio@>=0.23.0
  • ruff@>=0.1.9
  • build@>=1.0.0
  • playwright@>=1.40.0
  • aiohttp@>=3.9.0