github Python analyzed 251b017

E-Coli-BW/mcp-agent-platform

github

Full-stack Agent runtime: LangGraph ReAct + Spring Boot microservices + MCP protocol tools + RAG + Eval

maintainer
E-Coli-BW
licence
first seen
2026-06-28
last seen
2026-08-27
releases · 30d
0
short id

Drift inferred · capture-to-capture

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

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

tools

  • content_search
  • directory_tree
  • file_info
  • file_search
  • import_copilot_sessions
  • import_project_knowledge
  • memory_compact_execute
  • memory_compact_plan
  • memory_context
  • memory_delete
  • memory_get
  • memory_list
  • memory_pin
  • memory_search
  • memory_set
  • read_file_content
skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit 251b017 · analyzer v33 · 3w ago

danger signals1

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

code files: 655

filesystem 86

  • fs E-Coli-BW-mcp-agent-platform-251b017/platform/agent-sdk/agent_sdk/plugin.py :4 from pathlib import Path
  • fs (weak) E-Coli-BW-mcp-agent-platform-251b017/platform/agent-sdk/tests/test_plugin_manifest.py :3 from pathlib import Path
  • fs E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/agent/intent/eval_cli.py :6 from pathlib import Path
  • fs E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/api/workspace.py :4 from pathlib import Path
  • fs E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/config.py :1 from pathlib import Path
  • fs E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/context/workspace.py :8 from pathlib import Path
  • fs E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/deploy.py :13 from pathlib import Path
  • fs E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/events/model_provenance.py :14 from pathlib import Path
  • fs E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/feedback/store.py :8 from pathlib import Path
  • fs E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/logging_config.py :26 from pathlib import Path
  • fs E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/main.py :6 from pathlib import Path
  • fs E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/plugins/loader.py :9 from pathlib import Path
show 28 more
  • fs E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/rag/chunking/code.py :39 from pathlib import Path
  • fs E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/rag/chunking/fixed_size.py :4 from pathlib import Path
  • fs E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/rag/chunking/html.py :6 from pathlib import Path
  • fs E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/rag/chunking/markdown.py :5 from pathlib import Path
  • fs E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/rag/chunking/metadata.py :5 from pathlib import Path
  • fs E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/rag/chunking/openapi.py :5 from pathlib import Path
  • fs E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/rag/chunking/pdf.py :4 from pathlib import Path
  • fs E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/rag/chunking/registry.py :3 from pathlib import Path
  • fs E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/rag/compression/ast.py :41 from pathlib import Path
  • fs E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/rag/eval/benchmark_rerankers.py :6 from pathlib import Path
  • fs E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/rag/eval/customer_qa.py :4 from pathlib import Path
  • fs E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/rag/eval/dataset.py :6 from pathlib import Path
  • fs E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/rag/eval/ranking.py :8 from pathlib import Path
  • fs E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/rag/index/indexer.py :16 from pathlib import Path
  • fs E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/rag/index/redis_retriever.py :186 from pathlib import Path
  • fs E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/rag/index/retriever.py :19 from pathlib import Path
  • fs E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/rag/reranking/learned.py :21 from pathlib import Path
  • fs E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/registry/config_loader.py :5 from pathlib import Path
  • fs E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/registry/watcher.py :5 from pathlib import Path
  • fs E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/runtime/agent_output.py :12 r"test(?:ing)?|review(?:ing)?|open(?:ing)?|list(?:ing)?|"
  • fs E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/runtime/approval.py :10 from pathlib import Path
  • fs E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/runtime/checkpoint.py :8 from pathlib import Path
  • fs E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/runtime/store.py :10 from pathlib import Path
  • fs E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/tools/agent_mode.py :20 from pathlib import Path
  • fs E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/tools/definitions.py :237 with open(resolved, 'r', encoding='utf-8', errors='replace') as f:
  • fs E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/tools/ops_tools.py :12 from pathlib import Path
  • fs E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/tools/ticket_backend.py :128 with open(path, "w") as f:
  • fs E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/tools/workspace_resolver.py :28 from pathlib import Path

46 more not shown — this panel samples each group; the count above is the real total.

shell / exec 18

  • shell E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/agent/agent_graph/nodes/tools.py :7 import subprocess
  • shell E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/tools/agent_mode.py :341 import subprocess
  • shell E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/tools/definitions.py :5 import subprocess
  • shell E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/tools/ops_tools.py :10 import subprocess
  • shell (weak) E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/scripts/runtime_approval_api_recovery.py :13 import subprocess
  • shell (weak) E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/scripts/runtime_approval_recovery.py :11 import subprocess
  • shell (weak) E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/scripts/runtime_model_retry_crash_recovery.py :11 import subprocess
  • shell (weak) E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/tests/test_agent_mode.py :4 import subprocess
  • shell (weak) E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/tests/test_gaps.py :3 import subprocess
  • shell (weak) E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/tests/test_ops_tools.py :4 import subprocess
  • shell (weak) E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/tests/test_runtime_approval_recovery_script.py :2 import subprocess
  • shell (weak) E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/tests/test_runtime_model_retry_crash_recovery_script.py :2 import subprocess
show 6 more
  • shell (weak) E-Coli-BW-mcp-agent-platform-251b017/platform/eval-harness/eval/coding_e2e.py :12 import subprocess
  • shell (weak) E-Coli-BW-mcp-agent-platform-251b017/platform/eval-harness/experiments/controlled_4arm/prepare_tasks.py :35 import subprocess
  • shell (weak) E-Coli-BW-mcp-agent-platform-251b017/platform/eval-harness/experiments/controlled_4arm/run.py :50 import subprocess
  • shell (weak) E-Coli-BW-mcp-agent-platform-251b017/platform/eval-harness/experiments/local_runtime_20260826/run.py :12 import subprocess
  • shell (weak) E-Coli-BW-mcp-agent-platform-251b017/platform/eval-harness/run_experiment.py :53 import subprocess
  • shell (weak) E-Coli-BW-mcp-agent-platform-251b017/scripts/dev/dashboard/dashboard.py :50 import subprocess

network 31

  • net E-Coli-BW-mcp-agent-platform-251b017/platform/agent-sdk/agent_sdk/memory.py :3 import httpx
  • net E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/agent/intent/evaluation.py :9 import httpx
  • net E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/api/auth_proxy.py :41 - Uses a module-level httpx.AsyncClient with connection pooling.
  • net E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/auth/auth_client.py :8 import httpx
  • net E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/middleware/jwt_auth.py :15 import httpx
  • net E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/rag/embedding/embedder.py :16 - embed_text() is async — it uses httpx.AsyncClient which runs on the asyncio
  • net E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/tools/definitions.py :398 import httpx
  • net E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/tools/mcp_client.py :10 import httpx
  • net E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/tools/ticket_backend.py :260 import requests
  • net (weak) E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/scripts/customer_qa_eval.py :12 import httpx
  • net (weak) E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/scripts/runtime_approval_api_recovery.py :18 import httpx
  • net (weak) E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/scripts/runtime_model_retry_crash_recovery.py :9 import socket
show 19 more
  • net (weak) E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/scripts/runtime_scenario.py :29 import httpx
  • net (weak) E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/tests/test_auth_contract.py :21 import httpx
  • net (weak) E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/tests/test_auth_proxy.py :24 from httpx import ASGITransport, AsyncClient
  • net (weak) E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/tests/test_auth_service_client.py :23 with patch("httpx.AsyncClient") as MockClient:
  • net (weak) E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/tests/test_jwks_async.py :3 The original implementation used `urllib.request.urlopen` inside an async
  • net (weak) E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/tests/test_workspace_api.py :6 from httpx import ASGITransport, AsyncClient
  • net (weak) E-Coli-BW-mcp-agent-platform-251b017/platform/eval-harness/eval/coding_e2e.py :21 import httpx
  • net (weak) E-Coli-BW-mcp-agent-platform-251b017/platform/eval-harness/eval/runner.py :34 import httpx
  • net (weak) E-Coli-BW-mcp-agent-platform-251b017/platform/eval-harness/eval/scorers/llm_judge.py :166 import httpx # local import keeps the module importable without httpx
  • net (weak) E-Coli-BW-mcp-agent-platform-251b017/platform/eval-harness/eval/warm_cache.py :17 import httpx
  • net (weak) E-Coli-BW-mcp-agent-platform-251b017/platform/eval-harness/experiments/controlled_4arm/prepare_tasks.py :121 import httpx
  • net (weak) E-Coli-BW-mcp-agent-platform-251b017/platform/eval-harness/experiments/controlled_4arm/run.py :57 import httpx
  • net (weak) E-Coli-BW-mcp-agent-platform-251b017/platform/eval-harness/experiments/local_runtime_20260826/run.py :18 import httpx
  • net (weak) E-Coli-BW-mcp-agent-platform-251b017/platform/eval-harness/java_vs_python_experiment.py :56 import httpx
  • net (weak) E-Coli-BW-mcp-agent-platform-251b017/platform/eval-harness/run_experiment.py :58 import httpx
  • net (weak) E-Coli-BW-mcp-agent-platform-251b017/platform/eval-harness/suites/bfcl/__init__.py :61 import httpx
  • net (weak) E-Coli-BW-mcp-agent-platform-251b017/platform/eval-harness/tests/test_llm_judge.py :3 These tests do NOT hit a live LLM; we monkeypatch httpx.post so the
  • net (weak) E-Coli-BW-mcp-agent-platform-251b017/platform/eval-harness/tests/test_runner_security.py :80 monkeypatch.setattr("eval.runner.httpx.Client", Client)
  • net (weak) E-Coli-BW-mcp-agent-platform-251b017/scripts/dev/dashboard/dashboard.py :56 import httpx

secrets 6

  • secrets E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/tools/definitions.py :31 client_secret = os.environ.get('AUTH_CLIENT_SECRET', 'agent-secret')
  • secrets E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/tools/ticket_backend.py :432 api_token=kwargs.get("jira_token") or os.environ["AGENT_JIRA_TOKEN"],
  • secrets (weak) E-Coli-BW-mcp-agent-platform-251b017/platform/eval-harness/eval/runner.py :68 DEFAULT_BASELINE_API_KEY = os.environ.get("EVAL_BASELINE_API_KEY", "ollama")
  • secrets (weak) E-Coli-BW-mcp-agent-platform-251b017/platform/eval-harness/eval/scorers/llm_judge.py :145 os.environ.get("OPENAI_API_KEY", "ollama"),
  • secrets (weak) E-Coli-BW-mcp-agent-platform-251b017/platform/eval-harness/java_vs_python_experiment.py :60 JWT_SECRET = os.environ.get("AGENT_JWT_SECRET", "default-dev-secret-DO-NOT-USE-IN-PRODUCTION")
  • secrets (weak) E-Coli-BW-mcp-agent-platform-251b017/platform/eval-harness/suites/bfcl/__init__.py :149 key = os.environ.get("EVAL_BFCL_API_KEY") or os.environ.get(

database 9

  • db E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/middleware/session_lane.py :21 import redis.asyncio as aioredis
  • db E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/rag/index/redis_retriever.py :22 import redis
  • db E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/runtime/approval.py :6 import sqlite3
  • db E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/runtime/checkpoint.py :5 import sqlite3
  • db E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/runtime/store.py :7 import sqlite3
  • db E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/app/store/conversation.py :46 import redis.asyncio as redis
  • db (weak) E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/scripts/runtime_model_retry_crash_recovery.py :10 import sqlite3
  • db (weak) E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/scripts/runtime_scenario.py :22 import sqlite3
  • db (weak) E-Coli-BW-mcp-agent-platform-251b017/platform/agent-server/tests/test_model_retry_checkpoint.py :1 import sqlite3

tool registrations 29

  • file_search E-Coli-BW-mcp-agent-platform-251b017/platform/mcp-cli/filesearch/filesearch-server.ts :108
  • content_search E-Coli-BW-mcp-agent-platform-251b017/platform/mcp-cli/filesearch/filesearch-server.ts :157
  • read_file_content E-Coli-BW-mcp-agent-platform-251b017/platform/mcp-cli/filesearch/filesearch-server.ts :285
  • directory_tree E-Coli-BW-mcp-agent-platform-251b017/platform/mcp-cli/filesearch/filesearch-server.ts :329
  • file_info E-Coli-BW-mcp-agent-platform-251b017/platform/mcp-cli/filesearch/filesearch-server.ts :403
  • memory_set E-Coli-BW-mcp-agent-platform-251b017/platform/mcp-cli/memory-server.ts :127
  • memory_get E-Coli-BW-mcp-agent-platform-251b017/platform/mcp-cli/memory-server.ts :176
  • memory_search E-Coli-BW-mcp-agent-platform-251b017/platform/mcp-cli/memory-server.ts :227
  • memory_delete E-Coli-BW-mcp-agent-platform-251b017/platform/mcp-cli/memory-server.ts :268
  • memory_pin E-Coli-BW-mcp-agent-platform-251b017/platform/mcp-cli/memory-server.ts :291
  • memory_list E-Coli-BW-mcp-agent-platform-251b017/platform/mcp-cli/memory-server.ts :319
  • import_copilot_sessions E-Coli-BW-mcp-agent-platform-251b017/platform/mcp-cli/memory-server.ts :351
show 17 more
  • import_project_knowledge E-Coli-BW-mcp-agent-platform-251b017/platform/mcp-cli/memory-server.ts :370
  • memory_compact_plan E-Coli-BW-mcp-agent-platform-251b017/platform/mcp-cli/memory-server.ts :401
  • memory_compact_execute E-Coli-BW-mcp-agent-platform-251b017/platform/mcp-cli/memory-server.ts :481
  • memory_context E-Coli-BW-mcp-agent-platform-251b017/platform/mcp-cli/memory-server.ts :556
  • memory_set E-Coli-BW-mcp-agent-platform-251b017/platform/mcp-cli/teaching/memory-server-minimal.ts :79
  • memory_get E-Coli-BW-mcp-agent-platform-251b017/platform/mcp-cli/teaching/memory-server-minimal.ts :100
  • memory_set E-Coli-BW-mcp-agent-platform-251b017/tools/memory-ts/memory-server.ts :125
  • memory_get E-Coli-BW-mcp-agent-platform-251b017/tools/memory-ts/memory-server.ts :166
  • memory_search E-Coli-BW-mcp-agent-platform-251b017/tools/memory-ts/memory-server.ts :189
  • memory_delete E-Coli-BW-mcp-agent-platform-251b017/tools/memory-ts/memory-server.ts :230
  • memory_pin E-Coli-BW-mcp-agent-platform-251b017/tools/memory-ts/memory-server.ts :248
  • memory_list E-Coli-BW-mcp-agent-platform-251b017/tools/memory-ts/memory-server.ts :269
  • import_copilot_sessions E-Coli-BW-mcp-agent-platform-251b017/tools/memory-ts/memory-server.ts :301
  • import_project_knowledge E-Coli-BW-mcp-agent-platform-251b017/tools/memory-ts/memory-server.ts :318
  • memory_compact_plan E-Coli-BW-mcp-agent-platform-251b017/tools/memory-ts/memory-server.ts :347
  • memory_compact_execute E-Coli-BW-mcp-agent-platform-251b017/tools/memory-ts/memory-server.ts :427
  • memory_context E-Coli-BW-mcp-agent-platform-251b017/tools/memory-ts/memory-server.ts :489

declared dependencies 23

  • httpx@>=0.27.0
  • pyyaml@>=6.0
  • pytest@>=8.0.0
  • pytest-asyncio@>=0.24.0
  • org.springframework.ai:spring-ai-bom@*
  • org.springframework.boot:spring-boot-starter-webflux@*
  • org.springframework.boot:spring-boot-starter-security@*
  • org.springframework.boot:spring-boot-starter-data-redis-reactive@*
  • org.springframework.boot:spring-boot-starter-actuator@*
  • org.springframework.ai:spring-ai-client-chat@*
  • org.springframework.ai:spring-ai-model@*
  • org.springframework.ai:spring-ai-openai@*
show 11 more
  • org.springframework.ai:spring-ai-ollama@*
  • org.yaml:snakeyaml@*
  • com.fasterxml.jackson.core:jackson-databind@*
  • com.networknt:json-schema-validator@1.5.8
  • io.jsonwebtoken:jjwt-api@0.12.6
  • io.jsonwebtoken:jjwt-impl@0.12.6
  • io.jsonwebtoken:jjwt-jackson@0.12.6
  • org.springframework.boot:spring-boot-configuration-processor@*
  • org.springframework.boot:spring-boot-starter-test@*
  • io.projectreactor:reactor-test@*
  • org.springframework.security:spring-security-test@*