mcpaisuite-kernelmcp 1.0.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (190) hide show
  1. mcpaisuite_kernelmcp-1.0.3/.bandit +5 -0
  2. mcpaisuite_kernelmcp-1.0.3/.github/workflows/ci.yml +35 -0
  3. mcpaisuite_kernelmcp-1.0.3/.github/workflows/release.yml +26 -0
  4. mcpaisuite_kernelmcp-1.0.3/.gitignore +32 -0
  5. mcpaisuite_kernelmcp-1.0.3/Dockerfile +30 -0
  6. mcpaisuite_kernelmcp-1.0.3/LICENSE +661 -0
  7. mcpaisuite_kernelmcp-1.0.3/PKG-INFO +219 -0
  8. mcpaisuite_kernelmcp-1.0.3/README.md +161 -0
  9. mcpaisuite_kernelmcp-1.0.3/benchmarks/__init__.py +0 -0
  10. mcpaisuite_kernelmcp-1.0.3/benchmarks/__main__.py +5 -0
  11. mcpaisuite_kernelmcp-1.0.3/benchmarks/bench_core.py +796 -0
  12. mcpaisuite_kernelmcp-1.0.3/benchmarks/cache_hit_bench.py +137 -0
  13. mcpaisuite_kernelmcp-1.0.3/benchmarks/cross_framework_agentic.py +227 -0
  14. mcpaisuite_kernelmcp-1.0.3/benchmarks/cross_framework_agentic_hard.py +145 -0
  15. mcpaisuite_kernelmcp-1.0.3/benchmarks/cross_framework_bench.py +127 -0
  16. mcpaisuite_kernelmcp-1.0.3/benchmarks/cross_framework_multitool.py +209 -0
  17. mcpaisuite_kernelmcp-1.0.3/benchmarks/ltp_vs_react_bench.py +241 -0
  18. mcpaisuite_kernelmcp-1.0.3/benchmarks/measure_dynamic_tail.py +149 -0
  19. mcpaisuite_kernelmcp-1.0.3/benchmarks/measure_output_tokens.py +123 -0
  20. mcpaisuite_kernelmcp-1.0.3/benchmarks/results_all_haiku.json +1139 -0
  21. mcpaisuite_kernelmcp-1.0.3/benchmarks/results_all_haiku_lean.json +1140 -0
  22. mcpaisuite_kernelmcp-1.0.3/benchmarks/results_all_haiku_lean_cached.json +1140 -0
  23. mcpaisuite_kernelmcp-1.0.3/benchmarks/results_all_opus.json +1139 -0
  24. mcpaisuite_kernelmcp-1.0.3/benchmarks/results_all_sonnet.json +1139 -0
  25. mcpaisuite_kernelmcp-1.0.3/benchmarks/results_all_sonnet_lean_cached.json +1140 -0
  26. mcpaisuite_kernelmcp-1.0.3/benchmarks/results_cross_framework.json +385 -0
  27. mcpaisuite_kernelmcp-1.0.3/benchmarks/results_cross_framework_sonnet.json +385 -0
  28. mcpaisuite_kernelmcp-1.0.3/benchmarks/results_hybrid_all_haiku_layered.json +391 -0
  29. mcpaisuite_kernelmcp-1.0.3/benchmarks/results_ltp_vs_react.json +971 -0
  30. mcpaisuite_kernelmcp-1.0.3/benchmarks/results_ltp_vs_react_hard.json +297 -0
  31. mcpaisuite_kernelmcp-1.0.3/benchmarks/results_ltp_vs_react_hard_opus.json +297 -0
  32. mcpaisuite_kernelmcp-1.0.3/benchmarks/results_multitool2_haiku.json +593 -0
  33. mcpaisuite_kernelmcp-1.0.3/benchmarks/results_multitool2_opus.json +593 -0
  34. mcpaisuite_kernelmcp-1.0.3/benchmarks/results_multitool2_sonnet.json +593 -0
  35. mcpaisuite_kernelmcp-1.0.3/benchmarks/results_multitool_haiku.json +437 -0
  36. mcpaisuite_kernelmcp-1.0.3/benchmarks/results_multitool_opus.json +242 -0
  37. mcpaisuite_kernelmcp-1.0.3/benchmarks/results_multitool_sonnet.json +242 -0
  38. mcpaisuite_kernelmcp-1.0.3/benchmarks/results_xframework_agentic_haiku.json +593 -0
  39. mcpaisuite_kernelmcp-1.0.3/benchmarks/results_xframework_agentic_hard.json +509 -0
  40. mcpaisuite_kernelmcp-1.0.3/benchmarks/results_xframework_agentic_sonnet.json +593 -0
  41. mcpaisuite_kernelmcp-1.0.3/benchmarks/results_xframework_multitool_haiku.json +742 -0
  42. mcpaisuite_kernelmcp-1.0.3/benchmarks/results_xframework_multitool_sonnet.json +742 -0
  43. mcpaisuite_kernelmcp-1.0.3/benchmarks/validate_msg_cache.py +64 -0
  44. mcpaisuite_kernelmcp-1.0.3/comparisons/.gitignore +3 -0
  45. mcpaisuite_kernelmcp-1.0.3/comparisons/_sample.txt +6 -0
  46. mcpaisuite_kernelmcp-1.0.3/comparisons/agent_kernelmcp.py +11 -0
  47. mcpaisuite_kernelmcp-1.0.3/comparisons/agent_langchain.py +7 -0
  48. mcpaisuite_kernelmcp-1.0.3/comparisons/fullstack_kernelmcp.py +15 -0
  49. mcpaisuite_kernelmcp-1.0.3/comparisons/rag_kernelmcp.py +11 -0
  50. mcpaisuite_kernelmcp-1.0.3/comparisons/rag_langchain.py +10 -0
  51. mcpaisuite_kernelmcp-1.0.3/docker-compose.prod.yml +80 -0
  52. mcpaisuite_kernelmcp-1.0.3/err.txt +0 -0
  53. mcpaisuite_kernelmcp-1.0.3/k8s/configmap.yaml +15 -0
  54. mcpaisuite_kernelmcp-1.0.3/k8s/deployment.yaml +75 -0
  55. mcpaisuite_kernelmcp-1.0.3/k8s/namespace.yaml +6 -0
  56. mcpaisuite_kernelmcp-1.0.3/k8s/redis.yaml +71 -0
  57. mcpaisuite_kernelmcp-1.0.3/k8s/service.yaml +17 -0
  58. mcpaisuite_kernelmcp-1.0.3/kernelmcp/__init__.py +33 -0
  59. mcpaisuite_kernelmcp-1.0.3/kernelmcp/a2a/__init__.py +5 -0
  60. mcpaisuite_kernelmcp-1.0.3/kernelmcp/a2a/bridge.py +124 -0
  61. mcpaisuite_kernelmcp-1.0.3/kernelmcp/a2a/client.py +122 -0
  62. mcpaisuite_kernelmcp-1.0.3/kernelmcp/a2a/models.py +103 -0
  63. mcpaisuite_kernelmcp-1.0.3/kernelmcp/a2a/server.py +147 -0
  64. mcpaisuite_kernelmcp-1.0.3/kernelmcp/agents/__init__.py +35 -0
  65. mcpaisuite_kernelmcp-1.0.3/kernelmcp/agents/base.py +466 -0
  66. mcpaisuite_kernelmcp-1.0.3/kernelmcp/agents/code_agent.py +9 -0
  67. mcpaisuite_kernelmcp-1.0.3/kernelmcp/agents/examples.py +170 -0
  68. mcpaisuite_kernelmcp-1.0.3/kernelmcp/agents/file_agent.py +9 -0
  69. mcpaisuite_kernelmcp-1.0.3/kernelmcp/agents/graph_executor.py +928 -0
  70. mcpaisuite_kernelmcp-1.0.3/kernelmcp/agents/ltp_agent.py +9 -0
  71. mcpaisuite_kernelmcp-1.0.3/kernelmcp/agents/memory_agent.py +9 -0
  72. mcpaisuite_kernelmcp-1.0.3/kernelmcp/agents/message_bus.py +179 -0
  73. mcpaisuite_kernelmcp-1.0.3/kernelmcp/agents/meta_agent.py +306 -0
  74. mcpaisuite_kernelmcp-1.0.3/kernelmcp/agents/patterns.py +436 -0
  75. mcpaisuite_kernelmcp-1.0.3/kernelmcp/agents/plan_agent.py +9 -0
  76. mcpaisuite_kernelmcp-1.0.3/kernelmcp/agents/rag_agent.py +9 -0
  77. mcpaisuite_kernelmcp-1.0.3/kernelmcp/agents/registry.py +205 -0
  78. mcpaisuite_kernelmcp-1.0.3/kernelmcp/agents/research_agent.py +9 -0
  79. mcpaisuite_kernelmcp-1.0.3/kernelmcp/agents/sandbox_scope.py +37 -0
  80. mcpaisuite_kernelmcp-1.0.3/kernelmcp/agents/shared_memory.py +108 -0
  81. mcpaisuite_kernelmcp-1.0.3/kernelmcp/agents/taskforce.py +218 -0
  82. mcpaisuite_kernelmcp-1.0.3/kernelmcp/api/__init__.py +20 -0
  83. mcpaisuite_kernelmcp-1.0.3/kernelmcp/api/app.py +213 -0
  84. mcpaisuite_kernelmcp-1.0.3/kernelmcp/cli.py +341 -0
  85. mcpaisuite_kernelmcp-1.0.3/kernelmcp/core/__init__.py +0 -0
  86. mcpaisuite_kernelmcp-1.0.3/kernelmcp/core/audit.py +117 -0
  87. mcpaisuite_kernelmcp-1.0.3/kernelmcp/core/auto_dispatch.py +102 -0
  88. mcpaisuite_kernelmcp-1.0.3/kernelmcp/core/background.py +163 -0
  89. mcpaisuite_kernelmcp-1.0.3/kernelmcp/core/base_pipeline.py +22 -0
  90. mcpaisuite_kernelmcp-1.0.3/kernelmcp/core/bootstrap.py +120 -0
  91. mcpaisuite_kernelmcp-1.0.3/kernelmcp/core/compaction.py +166 -0
  92. mcpaisuite_kernelmcp-1.0.3/kernelmcp/core/constitution.py +411 -0
  93. mcpaisuite_kernelmcp-1.0.3/kernelmcp/core/context.py +101 -0
  94. mcpaisuite_kernelmcp-1.0.3/kernelmcp/core/engine.py +1507 -0
  95. mcpaisuite_kernelmcp-1.0.3/kernelmcp/core/explore.py +52 -0
  96. mcpaisuite_kernelmcp-1.0.3/kernelmcp/core/jit.py +177 -0
  97. mcpaisuite_kernelmcp-1.0.3/kernelmcp/core/json_repair.py +233 -0
  98. mcpaisuite_kernelmcp-1.0.3/kernelmcp/core/ltp_runner.py +195 -0
  99. mcpaisuite_kernelmcp-1.0.3/kernelmcp/core/models.py +294 -0
  100. mcpaisuite_kernelmcp-1.0.3/kernelmcp/core/nudges.py +181 -0
  101. mcpaisuite_kernelmcp-1.0.3/kernelmcp/core/resilience.py +127 -0
  102. mcpaisuite_kernelmcp-1.0.3/kernelmcp/core/todos.py +86 -0
  103. mcpaisuite_kernelmcp-1.0.3/kernelmcp/core/tool_executor.py +152 -0
  104. mcpaisuite_kernelmcp-1.0.3/kernelmcp/core/tool_selection.py +100 -0
  105. mcpaisuite_kernelmcp-1.0.3/kernelmcp/enterprise/__init__.py +0 -0
  106. mcpaisuite_kernelmcp-1.0.3/kernelmcp/enterprise/cost_allocation.py +130 -0
  107. mcpaisuite_kernelmcp-1.0.3/kernelmcp/enterprise/rbac.py +163 -0
  108. mcpaisuite_kernelmcp-1.0.3/kernelmcp/enterprise/sla.py +114 -0
  109. mcpaisuite_kernelmcp-1.0.3/kernelmcp/events.py +105 -0
  110. mcpaisuite_kernelmcp-1.0.3/kernelmcp/facade.py +143 -0
  111. mcpaisuite_kernelmcp-1.0.3/kernelmcp/factory.py +589 -0
  112. mcpaisuite_kernelmcp-1.0.3/kernelmcp/integration/__init__.py +0 -0
  113. mcpaisuite_kernelmcp-1.0.3/kernelmcp/integration/langchain_adapter.py +197 -0
  114. mcpaisuite_kernelmcp-1.0.3/kernelmcp/integration/mcp_client.py +262 -0
  115. mcpaisuite_kernelmcp-1.0.3/kernelmcp/integration/orchestrator.py +2014 -0
  116. mcpaisuite_kernelmcp-1.0.3/kernelmcp/mcp_client/__init__.py +0 -0
  117. mcpaisuite_kernelmcp-1.0.3/kernelmcp/mcp_server.py +749 -0
  118. mcpaisuite_kernelmcp-1.0.3/kernelmcp/multimodal/__init__.py +4 -0
  119. mcpaisuite_kernelmcp-1.0.3/kernelmcp/multimodal/audio.py +72 -0
  120. mcpaisuite_kernelmcp-1.0.3/kernelmcp/multimodal/vision.py +174 -0
  121. mcpaisuite_kernelmcp-1.0.3/kernelmcp/observability/__init__.py +6 -0
  122. mcpaisuite_kernelmcp-1.0.3/kernelmcp/observability/hub.py +271 -0
  123. mcpaisuite_kernelmcp-1.0.3/kernelmcp/observability/otel.py +78 -0
  124. mcpaisuite_kernelmcp-1.0.3/kernelmcp/observability/replay.py +497 -0
  125. mcpaisuite_kernelmcp-1.0.3/kernelmcp/observability/tracer.py +251 -0
  126. mcpaisuite_kernelmcp-1.0.3/kernelmcp/persistence/__init__.py +0 -0
  127. mcpaisuite_kernelmcp-1.0.3/kernelmcp/persistence/checkpoint.py +269 -0
  128. mcpaisuite_kernelmcp-1.0.3/kernelmcp/persistence/state_manager.py +151 -0
  129. mcpaisuite_kernelmcp-1.0.3/kernelmcp/pipeline.py +362 -0
  130. mcpaisuite_kernelmcp-1.0.3/kernelmcp/routing/__init__.py +0 -0
  131. mcpaisuite_kernelmcp-1.0.3/kernelmcp/routing/llm_gateway.py +360 -0
  132. mcpaisuite_kernelmcp-1.0.3/kernelmcp/routing/sampling_gateway.py +230 -0
  133. mcpaisuite_kernelmcp-1.0.3/kernelmcp/routing/supervisor.py +82 -0
  134. mcpaisuite_kernelmcp-1.0.3/kernelmcp/scaling.py +108 -0
  135. mcpaisuite_kernelmcp-1.0.3/kernelmcp/security/__init__.py +4 -0
  136. mcpaisuite_kernelmcp-1.0.3/kernelmcp/security/dlp.py +70 -0
  137. mcpaisuite_kernelmcp-1.0.3/kernelmcp/streaming.py +159 -0
  138. mcpaisuite_kernelmcp-1.0.3/kernelmcp/triggers/__init__.py +0 -0
  139. mcpaisuite_kernelmcp-1.0.3/pyproject.toml +73 -0
  140. mcpaisuite_kernelmcp-1.0.3/tests/__init__.py +0 -0
  141. mcpaisuite_kernelmcp-1.0.3/tests/conftest.py +0 -0
  142. mcpaisuite_kernelmcp-1.0.3/tests/integration/__init__.py +0 -0
  143. mcpaisuite_kernelmcp-1.0.3/tests/integration/test_cross_libs.py +506 -0
  144. mcpaisuite_kernelmcp-1.0.3/tests/integration/test_full_suite.py +168 -0
  145. mcpaisuite_kernelmcp-1.0.3/tests/test_engine_extended.py +1534 -0
  146. mcpaisuite_kernelmcp-1.0.3/tests/test_facade.py +68 -0
  147. mcpaisuite_kernelmcp-1.0.3/tests/test_factory_deep.py +519 -0
  148. mcpaisuite_kernelmcp-1.0.3/tests/test_json_repair.py +546 -0
  149. mcpaisuite_kernelmcp-1.0.3/tests/test_llm_gateway.py +556 -0
  150. mcpaisuite_kernelmcp-1.0.3/tests/test_mcp_client_deep.py +391 -0
  151. mcpaisuite_kernelmcp-1.0.3/tests/test_orchestrator_extended.py +1690 -0
  152. mcpaisuite_kernelmcp-1.0.3/tests/test_pipeline_extended.py +496 -0
  153. mcpaisuite_kernelmcp-1.0.3/tests/test_resilience_extended.py +173 -0
  154. mcpaisuite_kernelmcp-1.0.3/tests/test_sampling_gateway.py +793 -0
  155. mcpaisuite_kernelmcp-1.0.3/tests/test_shared_memory.py +193 -0
  156. mcpaisuite_kernelmcp-1.0.3/tests/test_subagent_extended.py +498 -0
  157. mcpaisuite_kernelmcp-1.0.3/tests/unit/__init__.py +0 -0
  158. mcpaisuite_kernelmcp-1.0.3/tests/unit/test_a2a.py +234 -0
  159. mcpaisuite_kernelmcp-1.0.3/tests/unit/test_agents_deep.py +259 -0
  160. mcpaisuite_kernelmcp-1.0.3/tests/unit/test_audit_deep.py +267 -0
  161. mcpaisuite_kernelmcp-1.0.3/tests/unit/test_background.py +393 -0
  162. mcpaisuite_kernelmcp-1.0.3/tests/unit/test_base_pipeline.py +116 -0
  163. mcpaisuite_kernelmcp-1.0.3/tests/unit/test_compaction.py +193 -0
  164. mcpaisuite_kernelmcp-1.0.3/tests/unit/test_context_deep.py +285 -0
  165. mcpaisuite_kernelmcp-1.0.3/tests/unit/test_dlp.py +89 -0
  166. mcpaisuite_kernelmcp-1.0.3/tests/unit/test_engine_deep.py +398 -0
  167. mcpaisuite_kernelmcp-1.0.3/tests/unit/test_enterprise.py +197 -0
  168. mcpaisuite_kernelmcp-1.0.3/tests/unit/test_events_deep.py +256 -0
  169. mcpaisuite_kernelmcp-1.0.3/tests/unit/test_explore.py +91 -0
  170. mcpaisuite_kernelmcp-1.0.3/tests/unit/test_inline_images.py +80 -0
  171. mcpaisuite_kernelmcp-1.0.3/tests/unit/test_jit.py +131 -0
  172. mcpaisuite_kernelmcp-1.0.3/tests/unit/test_jit_engine.py +106 -0
  173. mcpaisuite_kernelmcp-1.0.3/tests/unit/test_kernel.py +282 -0
  174. mcpaisuite_kernelmcp-1.0.3/tests/unit/test_langchain_adapter.py +155 -0
  175. mcpaisuite_kernelmcp-1.0.3/tests/unit/test_ltp_runner_policy.py +100 -0
  176. mcpaisuite_kernelmcp-1.0.3/tests/unit/test_ltp_synthesis.py +90 -0
  177. mcpaisuite_kernelmcp-1.0.3/tests/unit/test_mcp_client.py +236 -0
  178. mcpaisuite_kernelmcp-1.0.3/tests/unit/test_message_bus.py +327 -0
  179. mcpaisuite_kernelmcp-1.0.3/tests/unit/test_meta_agent.py +431 -0
  180. mcpaisuite_kernelmcp-1.0.3/tests/unit/test_orchestrator_deep.py +388 -0
  181. mcpaisuite_kernelmcp-1.0.3/tests/unit/test_parallel_tools.py +107 -0
  182. mcpaisuite_kernelmcp-1.0.3/tests/unit/test_patterns_deep.py +547 -0
  183. mcpaisuite_kernelmcp-1.0.3/tests/unit/test_pipeline_deep.py +286 -0
  184. mcpaisuite_kernelmcp-1.0.3/tests/unit/test_prompt_cache.py +80 -0
  185. mcpaisuite_kernelmcp-1.0.3/tests/unit/test_resilience.py +112 -0
  186. mcpaisuite_kernelmcp-1.0.3/tests/unit/test_streaming_persistence.py +230 -0
  187. mcpaisuite_kernelmcp-1.0.3/tests/unit/test_taskforce_deep.py +474 -0
  188. mcpaisuite_kernelmcp-1.0.3/tests/unit/test_todos.py +143 -0
  189. mcpaisuite_kernelmcp-1.0.3/tests/unit/test_tool_executor.py +170 -0
  190. mcpaisuite_kernelmcp-1.0.3/tests/unit/test_workspace_snapshot.py +116 -0
@@ -0,0 +1,5 @@
1
+ # B104: 0.0.0.0 binding is intentional for A2A server (container/Docker use)
2
+ # B108: /tmp references are path-matching guards, not insecure temp file usage
3
+ skips:
4
+ - B104
5
+ - B108
@@ -0,0 +1,35 @@
1
+ name: CI — kernelmcp
2
+ on:
3
+ push:
4
+ branches: [main]
5
+ pull_request:
6
+ branches: [main]
7
+
8
+ jobs:
9
+ test:
10
+ runs-on: ubuntu-latest
11
+ strategy:
12
+ matrix:
13
+ python-version: ['3.11', '3.12', '3.13']
14
+ steps:
15
+ - uses: actions/checkout@v4
16
+ - uses: actions/setup-python@v5
17
+ with:
18
+ python-version: ${{ matrix.python-version }}
19
+ - name: Install sister libs (not yet on PyPI)
20
+ run: |
21
+ pip install "websearchmcp @ git+https://github.com/gashel01/websearchmcp.git@main"
22
+ pip install "ltpmcp @ git+https://github.com/gashel01/ltpmcp.git@main"
23
+ pip install "evalmcp @ git+https://github.com/gashel01/evalmcp.git@main"
24
+ - name: Install package
25
+ run: pip install -e ".[dev]"
26
+ - name: Lint (ruff)
27
+ run: |
28
+ pip install ruff
29
+ ruff check .
30
+ - name: Security scan (bandit)
31
+ run: |
32
+ pip install bandit
33
+ bandit -r kernelmcp/ -c .bandit --severity-level medium 2>&1 || true
34
+ - name: Tests
35
+ run: python -m pytest tests/ -v --tb=short --cov=kernelmcp --cov-report=term-missing --cov-fail-under=35
@@ -0,0 +1,26 @@
1
+ name: release
2
+ # Publishes to PRODUCTION PyPI (pypi.org) when you push a version tag, e.g.
3
+ # `git tag v1.0.3 && git push --tags`.
4
+ # Auth = PyPI Trusted Publishing (OIDC): NO stored token. You must add this repo+workflow
5
+ # as a (pending) trusted publisher on pypi.org first: https://pypi.org/manage/account/publishing/
6
+ on:
7
+ push:
8
+ tags:
9
+ - 'v*'
10
+ jobs:
11
+ pypi:
12
+ runs-on: ubuntu-latest
13
+ permissions:
14
+ contents: read # checkout needs read access (private repo)
15
+ id-token: write # short-lived OIDC token for Trusted Publishing — no secret stored
16
+ steps:
17
+ - uses: actions/checkout@v4
18
+ - uses: actions/setup-python@v5
19
+ with:
20
+ python-version: '3.12'
21
+ - name: Build sdist + wheel
22
+ run: |
23
+ python -m pip install --upgrade build
24
+ python -m build
25
+ - name: Publish to PyPI (Trusted Publishing, no token)
26
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,32 @@
1
+ __pycache__/
2
+ *.py[cod]
3
+ *.egg-info/
4
+ dist/
5
+ build/
6
+ .eggs/
7
+ .env
8
+ .env.*
9
+ *.log
10
+ .venv/
11
+ venv/
12
+ .pytest_cache/
13
+ .mypy_cache/
14
+ .ruff_cache/
15
+ htmlcov/
16
+ .coverage
17
+ *.db
18
+ *.sqlite3
19
+ node_modules/
20
+ .next/
21
+ .DS_Store
22
+ Thumbs.db
23
+
24
+ # Only push README.md — exclude all other .md files
25
+ *.md
26
+ !README.md
27
+
28
+ # Root test files with hardcoded paths
29
+ test_post_roadmap.py
30
+ test_s1_s2.py
31
+ test_taskforce.py
32
+ test.txt
@@ -0,0 +1,30 @@
1
+ # Stage 1: Build — install all MCP libs
2
+ FROM python:3.12-slim AS builder
3
+
4
+ WORKDIR /build
5
+
6
+ COPY pyproject.toml ./
7
+ COPY kernelmcp/ kernelmcp/
8
+
9
+ RUN pip install --no-cache-dir --prefix=/install \
10
+ . \
11
+ ragmcp searchmcp webextractormcp schedulermcp \
12
+ auditmcp metronomemcp reactmcp ltpmcp taskforcemcp browsermcp
13
+
14
+ # Stage 2: Slim runtime
15
+ FROM python:3.12-slim
16
+
17
+ WORKDIR /app
18
+
19
+ COPY --from=builder /install /usr/local
20
+ COPY kernelmcp/ kernelmcp/
21
+
22
+ RUN useradd --create-home appuser
23
+ USER appuser
24
+
25
+ EXPOSE 8080
26
+
27
+ HEALTHCHECK --interval=30s --timeout=5s --retries=3 \
28
+ CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:8080/health')"
29
+
30
+ ENTRYPOINT ["kernelmcp", "start", "--mode", "agent"]