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.
- mcpaisuite_kernelmcp-1.0.3/.bandit +5 -0
- mcpaisuite_kernelmcp-1.0.3/.github/workflows/ci.yml +35 -0
- mcpaisuite_kernelmcp-1.0.3/.github/workflows/release.yml +26 -0
- mcpaisuite_kernelmcp-1.0.3/.gitignore +32 -0
- mcpaisuite_kernelmcp-1.0.3/Dockerfile +30 -0
- mcpaisuite_kernelmcp-1.0.3/LICENSE +661 -0
- mcpaisuite_kernelmcp-1.0.3/PKG-INFO +219 -0
- mcpaisuite_kernelmcp-1.0.3/README.md +161 -0
- mcpaisuite_kernelmcp-1.0.3/benchmarks/__init__.py +0 -0
- mcpaisuite_kernelmcp-1.0.3/benchmarks/__main__.py +5 -0
- mcpaisuite_kernelmcp-1.0.3/benchmarks/bench_core.py +796 -0
- mcpaisuite_kernelmcp-1.0.3/benchmarks/cache_hit_bench.py +137 -0
- mcpaisuite_kernelmcp-1.0.3/benchmarks/cross_framework_agentic.py +227 -0
- mcpaisuite_kernelmcp-1.0.3/benchmarks/cross_framework_agentic_hard.py +145 -0
- mcpaisuite_kernelmcp-1.0.3/benchmarks/cross_framework_bench.py +127 -0
- mcpaisuite_kernelmcp-1.0.3/benchmarks/cross_framework_multitool.py +209 -0
- mcpaisuite_kernelmcp-1.0.3/benchmarks/ltp_vs_react_bench.py +241 -0
- mcpaisuite_kernelmcp-1.0.3/benchmarks/measure_dynamic_tail.py +149 -0
- mcpaisuite_kernelmcp-1.0.3/benchmarks/measure_output_tokens.py +123 -0
- mcpaisuite_kernelmcp-1.0.3/benchmarks/results_all_haiku.json +1139 -0
- mcpaisuite_kernelmcp-1.0.3/benchmarks/results_all_haiku_lean.json +1140 -0
- mcpaisuite_kernelmcp-1.0.3/benchmarks/results_all_haiku_lean_cached.json +1140 -0
- mcpaisuite_kernelmcp-1.0.3/benchmarks/results_all_opus.json +1139 -0
- mcpaisuite_kernelmcp-1.0.3/benchmarks/results_all_sonnet.json +1139 -0
- mcpaisuite_kernelmcp-1.0.3/benchmarks/results_all_sonnet_lean_cached.json +1140 -0
- mcpaisuite_kernelmcp-1.0.3/benchmarks/results_cross_framework.json +385 -0
- mcpaisuite_kernelmcp-1.0.3/benchmarks/results_cross_framework_sonnet.json +385 -0
- mcpaisuite_kernelmcp-1.0.3/benchmarks/results_hybrid_all_haiku_layered.json +391 -0
- mcpaisuite_kernelmcp-1.0.3/benchmarks/results_ltp_vs_react.json +971 -0
- mcpaisuite_kernelmcp-1.0.3/benchmarks/results_ltp_vs_react_hard.json +297 -0
- mcpaisuite_kernelmcp-1.0.3/benchmarks/results_ltp_vs_react_hard_opus.json +297 -0
- mcpaisuite_kernelmcp-1.0.3/benchmarks/results_multitool2_haiku.json +593 -0
- mcpaisuite_kernelmcp-1.0.3/benchmarks/results_multitool2_opus.json +593 -0
- mcpaisuite_kernelmcp-1.0.3/benchmarks/results_multitool2_sonnet.json +593 -0
- mcpaisuite_kernelmcp-1.0.3/benchmarks/results_multitool_haiku.json +437 -0
- mcpaisuite_kernelmcp-1.0.3/benchmarks/results_multitool_opus.json +242 -0
- mcpaisuite_kernelmcp-1.0.3/benchmarks/results_multitool_sonnet.json +242 -0
- mcpaisuite_kernelmcp-1.0.3/benchmarks/results_xframework_agentic_haiku.json +593 -0
- mcpaisuite_kernelmcp-1.0.3/benchmarks/results_xframework_agentic_hard.json +509 -0
- mcpaisuite_kernelmcp-1.0.3/benchmarks/results_xframework_agentic_sonnet.json +593 -0
- mcpaisuite_kernelmcp-1.0.3/benchmarks/results_xframework_multitool_haiku.json +742 -0
- mcpaisuite_kernelmcp-1.0.3/benchmarks/results_xframework_multitool_sonnet.json +742 -0
- mcpaisuite_kernelmcp-1.0.3/benchmarks/validate_msg_cache.py +64 -0
- mcpaisuite_kernelmcp-1.0.3/comparisons/.gitignore +3 -0
- mcpaisuite_kernelmcp-1.0.3/comparisons/_sample.txt +6 -0
- mcpaisuite_kernelmcp-1.0.3/comparisons/agent_kernelmcp.py +11 -0
- mcpaisuite_kernelmcp-1.0.3/comparisons/agent_langchain.py +7 -0
- mcpaisuite_kernelmcp-1.0.3/comparisons/fullstack_kernelmcp.py +15 -0
- mcpaisuite_kernelmcp-1.0.3/comparisons/rag_kernelmcp.py +11 -0
- mcpaisuite_kernelmcp-1.0.3/comparisons/rag_langchain.py +10 -0
- mcpaisuite_kernelmcp-1.0.3/docker-compose.prod.yml +80 -0
- mcpaisuite_kernelmcp-1.0.3/err.txt +0 -0
- mcpaisuite_kernelmcp-1.0.3/k8s/configmap.yaml +15 -0
- mcpaisuite_kernelmcp-1.0.3/k8s/deployment.yaml +75 -0
- mcpaisuite_kernelmcp-1.0.3/k8s/namespace.yaml +6 -0
- mcpaisuite_kernelmcp-1.0.3/k8s/redis.yaml +71 -0
- mcpaisuite_kernelmcp-1.0.3/k8s/service.yaml +17 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/__init__.py +33 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/a2a/__init__.py +5 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/a2a/bridge.py +124 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/a2a/client.py +122 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/a2a/models.py +103 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/a2a/server.py +147 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/agents/__init__.py +35 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/agents/base.py +466 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/agents/code_agent.py +9 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/agents/examples.py +170 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/agents/file_agent.py +9 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/agents/graph_executor.py +928 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/agents/ltp_agent.py +9 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/agents/memory_agent.py +9 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/agents/message_bus.py +179 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/agents/meta_agent.py +306 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/agents/patterns.py +436 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/agents/plan_agent.py +9 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/agents/rag_agent.py +9 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/agents/registry.py +205 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/agents/research_agent.py +9 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/agents/sandbox_scope.py +37 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/agents/shared_memory.py +108 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/agents/taskforce.py +218 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/api/__init__.py +20 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/api/app.py +213 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/cli.py +341 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/core/__init__.py +0 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/core/audit.py +117 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/core/auto_dispatch.py +102 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/core/background.py +163 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/core/base_pipeline.py +22 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/core/bootstrap.py +120 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/core/compaction.py +166 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/core/constitution.py +411 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/core/context.py +101 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/core/engine.py +1507 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/core/explore.py +52 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/core/jit.py +177 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/core/json_repair.py +233 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/core/ltp_runner.py +195 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/core/models.py +294 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/core/nudges.py +181 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/core/resilience.py +127 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/core/todos.py +86 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/core/tool_executor.py +152 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/core/tool_selection.py +100 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/enterprise/__init__.py +0 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/enterprise/cost_allocation.py +130 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/enterprise/rbac.py +163 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/enterprise/sla.py +114 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/events.py +105 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/facade.py +143 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/factory.py +589 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/integration/__init__.py +0 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/integration/langchain_adapter.py +197 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/integration/mcp_client.py +262 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/integration/orchestrator.py +2014 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/mcp_client/__init__.py +0 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/mcp_server.py +749 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/multimodal/__init__.py +4 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/multimodal/audio.py +72 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/multimodal/vision.py +174 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/observability/__init__.py +6 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/observability/hub.py +271 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/observability/otel.py +78 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/observability/replay.py +497 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/observability/tracer.py +251 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/persistence/__init__.py +0 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/persistence/checkpoint.py +269 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/persistence/state_manager.py +151 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/pipeline.py +362 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/routing/__init__.py +0 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/routing/llm_gateway.py +360 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/routing/sampling_gateway.py +230 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/routing/supervisor.py +82 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/scaling.py +108 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/security/__init__.py +4 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/security/dlp.py +70 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/streaming.py +159 -0
- mcpaisuite_kernelmcp-1.0.3/kernelmcp/triggers/__init__.py +0 -0
- mcpaisuite_kernelmcp-1.0.3/pyproject.toml +73 -0
- mcpaisuite_kernelmcp-1.0.3/tests/__init__.py +0 -0
- mcpaisuite_kernelmcp-1.0.3/tests/conftest.py +0 -0
- mcpaisuite_kernelmcp-1.0.3/tests/integration/__init__.py +0 -0
- mcpaisuite_kernelmcp-1.0.3/tests/integration/test_cross_libs.py +506 -0
- mcpaisuite_kernelmcp-1.0.3/tests/integration/test_full_suite.py +168 -0
- mcpaisuite_kernelmcp-1.0.3/tests/test_engine_extended.py +1534 -0
- mcpaisuite_kernelmcp-1.0.3/tests/test_facade.py +68 -0
- mcpaisuite_kernelmcp-1.0.3/tests/test_factory_deep.py +519 -0
- mcpaisuite_kernelmcp-1.0.3/tests/test_json_repair.py +546 -0
- mcpaisuite_kernelmcp-1.0.3/tests/test_llm_gateway.py +556 -0
- mcpaisuite_kernelmcp-1.0.3/tests/test_mcp_client_deep.py +391 -0
- mcpaisuite_kernelmcp-1.0.3/tests/test_orchestrator_extended.py +1690 -0
- mcpaisuite_kernelmcp-1.0.3/tests/test_pipeline_extended.py +496 -0
- mcpaisuite_kernelmcp-1.0.3/tests/test_resilience_extended.py +173 -0
- mcpaisuite_kernelmcp-1.0.3/tests/test_sampling_gateway.py +793 -0
- mcpaisuite_kernelmcp-1.0.3/tests/test_shared_memory.py +193 -0
- mcpaisuite_kernelmcp-1.0.3/tests/test_subagent_extended.py +498 -0
- mcpaisuite_kernelmcp-1.0.3/tests/unit/__init__.py +0 -0
- mcpaisuite_kernelmcp-1.0.3/tests/unit/test_a2a.py +234 -0
- mcpaisuite_kernelmcp-1.0.3/tests/unit/test_agents_deep.py +259 -0
- mcpaisuite_kernelmcp-1.0.3/tests/unit/test_audit_deep.py +267 -0
- mcpaisuite_kernelmcp-1.0.3/tests/unit/test_background.py +393 -0
- mcpaisuite_kernelmcp-1.0.3/tests/unit/test_base_pipeline.py +116 -0
- mcpaisuite_kernelmcp-1.0.3/tests/unit/test_compaction.py +193 -0
- mcpaisuite_kernelmcp-1.0.3/tests/unit/test_context_deep.py +285 -0
- mcpaisuite_kernelmcp-1.0.3/tests/unit/test_dlp.py +89 -0
- mcpaisuite_kernelmcp-1.0.3/tests/unit/test_engine_deep.py +398 -0
- mcpaisuite_kernelmcp-1.0.3/tests/unit/test_enterprise.py +197 -0
- mcpaisuite_kernelmcp-1.0.3/tests/unit/test_events_deep.py +256 -0
- mcpaisuite_kernelmcp-1.0.3/tests/unit/test_explore.py +91 -0
- mcpaisuite_kernelmcp-1.0.3/tests/unit/test_inline_images.py +80 -0
- mcpaisuite_kernelmcp-1.0.3/tests/unit/test_jit.py +131 -0
- mcpaisuite_kernelmcp-1.0.3/tests/unit/test_jit_engine.py +106 -0
- mcpaisuite_kernelmcp-1.0.3/tests/unit/test_kernel.py +282 -0
- mcpaisuite_kernelmcp-1.0.3/tests/unit/test_langchain_adapter.py +155 -0
- mcpaisuite_kernelmcp-1.0.3/tests/unit/test_ltp_runner_policy.py +100 -0
- mcpaisuite_kernelmcp-1.0.3/tests/unit/test_ltp_synthesis.py +90 -0
- mcpaisuite_kernelmcp-1.0.3/tests/unit/test_mcp_client.py +236 -0
- mcpaisuite_kernelmcp-1.0.3/tests/unit/test_message_bus.py +327 -0
- mcpaisuite_kernelmcp-1.0.3/tests/unit/test_meta_agent.py +431 -0
- mcpaisuite_kernelmcp-1.0.3/tests/unit/test_orchestrator_deep.py +388 -0
- mcpaisuite_kernelmcp-1.0.3/tests/unit/test_parallel_tools.py +107 -0
- mcpaisuite_kernelmcp-1.0.3/tests/unit/test_patterns_deep.py +547 -0
- mcpaisuite_kernelmcp-1.0.3/tests/unit/test_pipeline_deep.py +286 -0
- mcpaisuite_kernelmcp-1.0.3/tests/unit/test_prompt_cache.py +80 -0
- mcpaisuite_kernelmcp-1.0.3/tests/unit/test_resilience.py +112 -0
- mcpaisuite_kernelmcp-1.0.3/tests/unit/test_streaming_persistence.py +230 -0
- mcpaisuite_kernelmcp-1.0.3/tests/unit/test_taskforce_deep.py +474 -0
- mcpaisuite_kernelmcp-1.0.3/tests/unit/test_todos.py +143 -0
- mcpaisuite_kernelmcp-1.0.3/tests/unit/test_tool_executor.py +170 -0
- mcpaisuite_kernelmcp-1.0.3/tests/unit/test_workspace_snapshot.py +116 -0
|
@@ -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"]
|