EIB MCP RAG Full State of Affairs Report 2026 07 15 - TerrenceMcGuinness-NOAA/global-workflow GitHub Wiki

EIB MCP-RAG Full โ€” State of Affairs Report (July 15, 2026)

Server: eib-mcp-rag-full (local stdio, Python MCP server, DB_BACKEND=cots) Host: Parallel Works COTS host (ChromaDB + Neo4j, mpnet768 embeddings) Snapshot: 2026-07-15T16:40Z Purpose: Build a robust, verifiable ground-truth context so we can evaluate what changes need to land in the top-level instruction files for GitHub Copilot (.github/copilot-instructions.md) and Kiro (.kiro/steering/*.md).

This report is generated by running every health/status/state MCP tool at maximum depth against the on-workspace COTS server, then cross-referencing the results with the CHANGELOG.md "Unreleased" entries, the 68 SDD workflow specs, and the 49 Kiro spec directories. It is not a report on the AWS agentcore-mcp-rag runtime โ€” the July 13 sister report on the Gateway/AgentCore surface is the companion for that plane.


1. Executive Summary

Dimension Status Notes
Overall Health HEALTHY (4/4) Base Server, Utility, Vector, Graph all pass
Functional Smoke Tests 11/11 pass, 0 fail, 0 skip All modules exercised end-to-end
Tool Surface 53 tools across 9 active modules 1 module inactive (SPOT โ€” parity with AgentCore)
Tenants 5 configured, 5 filesystem-reachable gw (default), gw_sfs, gw_jedi_gfs, gw_v17, gw_gefs_v12
Vector Store (ChromaDB) 17 indices, 220,538 docs in gw, 15 collections Healthy
Graph Store (Neo4j) 225,836 nodes / 4,051,374 rels in gw Healthy
Knowledge Integrity 4/4 checks pass (0 SKIP) Phase 68 fix landed cleanly
Health Trend (15 snapshots) Neo4j stable ยฑ0; ChromaDB +2,610 docs No anomalies
Quality Benchmarks MISSING No quality_metrics.jsonl on disk
Manifest v9.2.0, 67 sources (61 shared / 6 tenant) Scope-aware naming live
Manifest Gap Detector All 5 tracked collections report 0 actual Naming-schema drift (details in ยง7)
SDD Framework v6.0 Phase 31, 68 workflows, 49 sessions 35 completed, 5 abandoned
Active SDD Session None Last completed: Phase 68 (RAG Data-Plane Gap Closure)
Latest CHANGELOG entry Phase 68 โ€” RAG Data-Plane Gap Closure (Jul 10, 2026) Verified COTS-truthfully
Active in-flight spec cots-reingest-ralph-framework Paused after PoC; resume in fresh session

Headline: The COTS stdio server is fully green on structure and behavior. The two open items that should shape the next instruction-file revision are (a) the manifest gap-detector's declared collection names no longer match the actual COTS collections produced by the Phase 68 resolve_collection_name namer, and (b) no RAG quality benchmark is currently on disk, so we cannot regression-detect embedding or retrieval changes.


2. mcp_health_check --deep --detailed --functional

Overall: HEALTHY (4/4 components)

Component Status Detail
Base Server [OK] FastMCP running
Utility Tools [OK] 4 utility tools registered
Vector Database [OK] 17 indices
Graph Database [OK] 108,280 nodes, 4,229,217 relationships (unfiltered; per-tenant totals in ยง4)

2.1 Tenants (5)

tenant_id branch lifecycle index_prefix label_prefix workflow_subdir reachable
gw develop production (empty) (empty) develop yes
gw_sfs dev/sfs experimental gw_sfs_ GW_SFS_ dev-sfs yes
gw_jedi_gfs dev/jedi-gfs experimental gw_jedi_gfs_ GW_JEDI_GFS_ dev-jedi-gfs yes
gw_v17 dev/gfs.v17 staging gw_v17_ GW_V17_ dev-v17 yes
gw_gefs_v12 release/gefs_v12 production gw_gefs_v12_ GW_GEFS_V12_ gefs-v12 yes

Default tenant: gw (resolved from catalog.defaults.tenant_id). Mount root: /mcp_rag_eib/eib-mcp-rag-server/.pw_workflow_mount (mounted; all 5 subdirectories present).

2.2 Functional Validation (11 modules)

Module Status Latency Notes
semantic_search [OK] 903 ms Slowest โ€” expected (embed + vector search)
code_analysis [OK] 7 ms Neo4j hot
graph_rag [OK] 5 ms Neo4j hot
ee2_compliance [OK] 41 ms
operational [OK] 43 ms
sdd_workflow [OK] 0 ms Filesystem
workflow_info [OK] 0 ms Filesystem
github_tools [OK] 120 ms GitHub API round-trip
utility [OK] 0 ms Built-in
code_awareness [OK] 72 ms
branch_isolation [OK] 108 ms Multi-tenant probe

Health snapshot persisted to health_history.jsonl (feeds ยง6).


3. get_server_info --include_capabilities

  • Version: MDC MCP/RAG Server v1.0.0
  • Total tools: 53
  • Active modules: 9 of 10 โ€” semantic_search, code_analysis, graph_rag, ee2_compliance, operational, sdd_workflow, workflow_info, github_tools, utility
  • Tenants: 5 (default gw)
  • Capabilities: Data Access connected; Vector Search available; Graph Queries available; Utility Tools always-on (4)

Registered tools (53)

analyze_code_structure, analyze_ee2_compliance, analyze_repository_structure, analyze_workflow_dependencies, check_knowledge_integrity, checkpoint_state, complete_sdd_session, describe_component, explain_with_context, explain_workflow_component, extract_ci_error_signal, extract_code_for_analysis, find_callers_callees, find_dependencies, find_env_dependencies, find_related_files, find_similar_code, generate_compliance_report, get_change_impact, get_code_context, get_health_trend, get_ingested_urls_array, get_job_details, get_knowledge_base_status, get_operational_guidance, get_pull_requests, get_quality_metrics, get_sdd_execution_history, get_sdd_framework_status, get_sdd_session, get_sdd_workflow, get_server_info, get_session_context, get_system_configs, get_workflow_structure, list_all_sources, list_ingested_urls, list_job_scripts, list_sdd_workflows, mark_as_modified, mcp_health_check, record_sdd_step, restore_checkpoint, scan_repository_compliance, search_architecture, search_documentation, search_ee2_standards, search_issues, start_sdd_session, trace_data_flow, trace_execution_path, trace_full_execution_chain, validate_sdd_compliance.


4. get_knowledge_base_status (tenant: gw)

4.1 Vector Database (ChromaDB)

  • Collections: 15
  • Total documents: 220,538
  • Status: [OK] Healthy
Collection Documents
global-workflow-docs-v8-1-0 20,511
code-with-context-v8-0-0 60,574
phase48-scratch 3,630
jjobs-v8-0-0 700
mdc-jjobs-mpnet768 700
global-workflow-docs-v8-2-0 23,624
mdc-ee2-standards-mpnet768 34
community-summaries 2,113
global-workflow-docs-v8-0-0 22,498
ci-test-cases-v1-0-0 74
ee2-standards-v5-0-0-enhanced 34
jjobs-v8-1-0 859
mdc-code-context-mpnet768 60,576
mdc-workflow-docs-mpnet768 22,498
mdc-community-summaries-mpnet768 2,113

Note the co-existence of two naming families: the legacy versioned collections (*-v8-*-*) still serving as the reference set, and the new scope-aware mdc-*-mpnet768 collections introduced by Phase 68's collection_namer.py. This is the deliberate alongside pattern from the cots-reingest-ralph-* spec chain โ€” cutover is a separate human-gated step.

4.2 Graph Database (Neo4j)

  • Files: 17,273
  • Functions: 113,571
  • Classes: 648
  • Total nodes: 225,836
  • Total relationships: 4,051,374
  • Status: [OK] Healthy

Relationship types (top 10):

Type Count
CALLS 3,306,540
USES 679,698
DEPENDS_ON_ENV 28,504
DEFINES 11,687
IMPORTS 9,141
EXPORTS 7,276
DEPENDS_ON 4,032
INVOKES 2,579
SOURCES 1,788
EXECUTES 129

Label breakdown (top 10):

Label Count
Function 89,595
FortranSubroutine 80,745
File 17,273
FortranFunction 16,849
FortranModule 9,014
PythonFunction 7,127
PythonModule 1,480
Module 1,330
FortranProgram 1,186
ShellScript 589

5. check_knowledge_integrity --sample_size 50 (tenant: gw)

Overall: All checks passed โ€” this is the direct outcome of Phase 68's fix that unblocked the previously-[SKIP] checks.

Check Status Details
Path Consistency [OK] 0/50 randomly sampled docs carry a checkout-specific prefix
Orphaned Graph Nodes [OK] 17,273 File nodes in graph; 0/20 sampled lack identity
Stale Embeddings [OK] 50/50 sampled docs appear current vs. their git source
Coverage Gap [OK] 106,608 Fortran symbols in graph; 7,242 files on disk (1,472.1% coverage)

The "1472% coverage" is the expected symbols-per-file ratio (many symbols per Fortran file) โ€” it is a healthy signal that the graph is denser than the file inventory, not a sign of double-ingestion.


6. get_health_trend --limit 15

Timestamp (UTC) Neo4j Nodes Neo4j Rels ChromaDB Docs Collections Node Drift Doc Drift
2026-06-24 23:43 108,280 4,220,211 220,538 15 0 0
2026-06-25 22:00 108,280 4,220,211 220,538 15 0 0
2026-06-26 13:08 108,280 4,220,211 220,538 15 0 0
2026-06-26 20:31 108,280 4,220,211 220,538 15 0 0
2026-06-26 20:40 108,280 4,220,211 220,538 15 0 0
2026-06-26 23:23 108,280 4,220,211 220,538 15 0 0
2026-07-02 13:37 108,280 4,220,211 220,538 15 0 0
2026-07-02 16:01 108,280 4,220,211 220,538 15 0 0
2026-07-02 21:58 108,280 4,220,211 220,538 15 0 0
2026-07-02 22:03 108,280 4,220,211 220,538 15 0 0
2026-07-03 03:18 108,280 4,220,211 220,538 15 0 0
2026-07-09 22:07 108,280 4,229,217 223,148 17 0 +2,610
2026-07-09 23:28 108,280 4,229,217 223,148 17 0 0
2026-07-10 02:26 108,280 4,229,217 223,148 17 0 0
2026-07-14 17:43 108,280 4,229,217 223,148 17 0 0

Trends

  • Neo4j nodes: stable (+0 over 15 snapshots)
  • ChromaDB docs: increasing (+2,610 over the window โ€” attributable to the July 8-10 Ralph-loop PoC that produced the two new mdc-* collections + phase48-scratch; see CHANGELOG "COTS Full Re-Ingest via Ralph Loop")

Anomalies: none (all consecutive changes within the 10% threshold).

The current get_knowledge_base_status in ยง4 shows 220,538 docs / 15 collections while the trend rows since 2026-07-09 report 223,148 / 17. The delta (+2,610 / +2 collections) is the July PoC snapshot; the KB-status view is scoped to the gw (default) tenant per Phase 68's _filter_indices_by_tenant fix, so the two collections created for gw_v17 (jjobs + partial documentation) are correctly excluded from the gw tenant total. This is expected behavior, not drift.


7. list_all_sources --include_gaps

  • Manifest version: 9.2.0
  • Generated: 2026-07-15T16:40:13Z
  • Total sources: 67 (65 enabled)

By source type

Type Sources Enabled Declared docs
code_parse 3 3 88,614
community_summary 1 1 2,113
config_parse 2 2 1,484
jjob_docs 1 1 751
on_disk_submodule 1 1 1,759
standards 1 1 34
url_crawl 58 56 19,489

By scope (Phase 68 additive)

Scope Sources Enabled Note
shared 61 59 NWS-wide, ingested once (unprefixed collection)
tenant 6 6 per (repo, branch) โ€” tenant-prefixed collection

Gap detection (declared vs. actual)

Collection Status Declared Actual Coverage
code-with-context-v8-0-0 gap 90,098 0 0.0%
community-summaries gap 2,113 0 0.0%
ee2-standards-v5-0-0-enhanced gap 34 0 0.0%
global-workflow-docs-v8-0-0 gap 21,248 0 0.0%
jjobs-v8-0-0 gap 751 0 0.0%

Finding โ€” naming-schema drift: the gap detector reports 0 actual for every collection even though ยง4.1 shows those collections populated with real document counts. This is a detector-side lookup mismatch, not a data-plane loss. Phase 68's resolve_collection_name moved the naming authority to collection_namer.py, but the gap-detector step of list_all_sources is evidently comparing manifest target_collection strings against a resolver that now produces mdc-*-mpnet768-style names on COTS. This is the first candidate item for the next Kiro spec.


8. get_quality_metrics --compare

Result: No benchmark results found. Expected at sdd_framework/execution_state/quality_metrics.jsonl โ€” the file does not exist on this host.

Implications:

  • We cannot detect P@k or MRR regressions from Phase 68 or the July Ralph-loop PoC.
  • The 2026-07-02 comparative report MCP-Health-Status-Comparative-Report flagged this exact gap on AgentCore; it now applies to the COTS stdio server as well.
  • Running the benchmark harness is a prerequisite for validating the eventual mdc-*-mpnet768 cutover.

9. get_system_configs --platform all --config_type all

Active platforms detected in env/: AWS-EC2, AWSPW, AZUREPW, CONTAINER, DERECHO, GAEAC6, GOOGLEPW, HERA, HERCULES, ORION, URSA, WCOSS2.

Path SPOT (tenant gw):

  • HOMEgfs โ†’ /mcp_rag_eib/eib-mcp-rag-server/.pw_workflow_mount/develop
  • Jobs, Scripts, Utilities, Parameters, Source resolve under ${HOMEgfs}/... โ€” the Phase 67 _develop rename is transparent to the tenant, as intended.

10. SDD Framework โ€” get_sdd_framework_status --detailed

  • Version: 6.0 Phase 31
  • Status: Operational
  • Execution model: Session-Oriented Tracking
  • Available workflows: 68
  • Total sessions: 49
    • Completed: 35
    • Abandoned: 5

Active session

None โ€” get_session_context returns "No Active Session". Every response you get during this conversation is currently un-attributed to a phase.

Preserved infrastructure

  • [..] ISD approval โ€” dormant (reserved for Phase 4C USD)
  • [..] WorkflowExecutor โ€” filesystem-backed; degraded on AgentCore microVM
  • [OK] SpecificationParser โ€” active
  • [OK] SelfModificationEngine โ€” available

Recent sessions (from get_sdd_execution_history --analytics)

Status Phase Steps Note
[!!] abandoned phase60_code_awareness_tool_parity_branch_validation 1 early exit
[OK] completed phase60_code_awareness_tool_parity_branch_validation 6 superseded the abandoned attempt
[!!] abandoned phase63_python_container_parity_and_backend_rename 3 rescoped as 63a + 63b
[!!] abandoned phase63b_python_container_gateway_parity 2 later completed via CHANGELOG Phase 63b
[OK] completed Phase 68 โ€” RAG Data-Plane Gap Closure 8 last engagement

The 5-item abandonment pattern is not a health problem โ€” in every case the abandoned session was replaced by a re-scoped follow-up (usually with a letter suffix), which is the intended behavior under .kiro/steering/07-feature-branch-spec-workflow.md.


11. Kiro Specs โ€” active / staged / recently landed

The .kiro/specs/ directory now holds 49 spec directories. Grouped by state (inferred from CHANGELOG + wiki cross-reference):

Landed & verified (last 45 days)

  • rag-data-plane-gap-closure โ€” Phase 68 (Jul 10) โ€” the item that produced the "all integrity checks pass" line in ยง5.
  • python-container-gateway-parity โ€” Phase 63b (Jul, per CHANGELOG) โ€” replaced legacy Node.js eib-mcp-rag:latest with eib-mcp-rag-python:latest.
  • backend-agnostic-refactor (Phase 63a) โ€” DB_BACKEND=cots|aws|legacy rename; legacy accepted for one release with a WARN.
  • manifest-status-writeback (Phase 57), url-crawl-gap-closure (Phase 58), pdf-ingestion-pipeline (Phase 59).

Active / paused (in-flight)

  • cots-reingest-ralph-framework โ€” the Ralph-loop driver adopted from mreferre/ralph-loop-kiro-specs, with Slurm sbatch dispatch. PoC ran to v9-0-0 (15 done / 3 skipped / 44 pending in .reingest_state/v9-0-0/state.json). Work paused pending a fresh session โ€” this is where the "next engagement" should resume.
  • cots-reingest-ralph-loop โ€” Tasks 1-5, 9 complete; Tasks 6-8 carried into the framework spec.
  • gemini-embedding-provider โ€” Phase 66, planning artifacts only, gated on GEMINI_API_KEY.

Planned but not started

bedrock-embedding-reingestion, bedrock-native-embedding-swap, graceful-missing-index-handling, neptune-recovery-reingestion, omd-tenants-3-routing, tenant-status-honesty, tenant-source-drift-detection (Phase 69), search-deduplication, functional-smoke-tests.


12. CHANGELOG cross-reference โ€” most recent 3 Unreleased entries

  1. Phase 68 โ€” RAG Data-Plane Gap Closure & Tenant-Scope Clarification (Jul 10, 2026) โ€” verified COTS-truthfully on this exact server; 11/11 health tests pass, 4/4 integrity checks run (0 SKIP), KB-status total docs 220,538 [OK] Healthy, list_all_sources gained a By Scope breakdown. Manifest bumped v9.2.0 with mandatory scope: tenant|shared field.
  2. COTS Full Re-Ingest via Ralph Loop (Jul 8-9, 2026) โ€” orchestration + State_Manager landed; PoC produced fresh v9-0-0 collections in gw_v17 (gw_v17_mdc-jjobs-titan1024-v9-0-0 + partial documentation) plus new graph nodes stamped v9-0-0. State durable in .reingest_state/v9-0-0/.
  3. Phase 67 โ€” supported_repos Rename Path Conformance (Jul 8, 2026) โ€” 44 files updated to route supported_repos/global-workflow โ†’ supported_repos/global-workflow_develop. Tenant-aware ingesters required no path change (they use tenant.workflow_root from tenants.yaml).

The most recent [Unreleased] block is Phase 68; nothing has landed since Jul 10 on the CHANGELOG.


13. Findings that should shape the next revision of the top-level instruction files

These are the concrete signals in this snapshot that suggest updates to .github/copilot-instructions.md and .kiro/steering/*.md:

  1. Manifest v9.2.0 + scope-awareness is now a load-bearing SPOT, but the Copilot instructions still describe the ingest surface at Phase 63 vintage. The scope: tenant|shared required field, the collection_namer.resolve_collection_name(domain, scope, tenant, version, profile) authority, and the tenant vs. shared collection-naming rules (mdc-{domain}-{profile}{suffix} vs. {index_prefix}mdc-{domain}-{profile}{suffix}) belong in the "Key Conventions โ†’ SPOT" section.

  2. Gap-detector drift (ยง7): the list_all_sources gap detector reports 0/0 for all five collections while the underlying data is present. A follow-up spec (candidate name: manifest-gap-detector-namer-alignment) is warranted; until it lands, the instructions should tell agents to not interpret list_all_sources gap rows as data-loss without cross-checking get_knowledge_base_status.

  3. Session tracking is off by default. get_session_context reports "No Active Session" and the last engagement (Phase 68) completed cleanly. The Superpowers assessment (SDD-Framework-Comparative-Assessment-Superpowers) already recommended auto-triggering start_sdd_session โ€” this is the right moment to promote that from a "recommendation" to an operating rule in .kiro/steering/02-development-workflow.md and mirror it in .github/copilot-instructions.md under a new "Session Discipline" subsection.

  4. quality_metrics.jsonl is missing (ยง8). Instructions should call out running the benchmark harness after any RAG-plane change (embeddings, ingesters, resolver logic). Today it is only mentioned obliquely in the test-command block.

  5. Ralph-loop is the active in-flight orchestration (cots-reingest-ralph-framework). Neither instruction set names it. Agents landing here without context could accidentally launch competing ingest runs. A one-line "Currently in-flight: cots-reingest-ralph-framework (paused; resume via its tasks.md)" note in 04-phase48-progress.md (or a new 14-active-in-flight-specs.md steering doc) would prevent this.

  6. The 5 abandoned SDD sessions are all rescopes (ยง10). They are noise unless we tag them as superseded_by: <phase>. 07-feature-branch-spec-workflow.md could gain a paragraph on the abandon-and-rescope pattern so it stops looking like failure in get_sdd_framework_status output.

  7. The default-tenant filter is the correct behavior (ยง6 footnote). This is worth a one-liner in .github/copilot-instructions.md โ€” because the multi-tenant call surface can otherwise cause agents to conclude the KB shrank when a tool actually just changed its tenant scope.

  8. Container-image staleness rule is well-covered (Docker MCP Gateway section of Copilot instructions) โ€” no change needed. This snapshot confirms the current stdio server matches source; there is nothing to reconcile against the Python container image today.


14. What was not done in this snapshot

  • Did not modify .github/copilot-instructions.md or any .kiro/steering/*.md. Per project policy this report only stages the findings; the actual edits happen under a new Kiro spec after human review.
  • Did not touch supported_repos/global-workflow_develop or any other read-only submodule. The only submodule touched by this session is supported_repos/global-workflow.wiki, and only to publish this report + update Home.md.
  • Did not run git commit or git push outside the wiki submodule โ€” no changes were made outside it.

15. Reproducibility

Every table in this report is the direct return of one of the following calls against eib-mcp-rag-full (COTS stdio, DB_BACKEND=cots, MCP_DEFAULT_TENANT=gw) at 2026-07-15T16:40Z:

  • mcp_health_check(deep=true, detailed=true, functional=true) โ†’ ยง2
  • get_server_info(include_capabilities=true) โ†’ ยง3
  • get_knowledge_base_status(include_graph=true, include_vector=true) โ†’ ยง4
  • check_knowledge_integrity(sample_size=50) โ†’ ยง5
  • get_health_trend(limit=15) โ†’ ยง6
  • list_all_sources(format=summary, include_gaps=true) โ†’ ยง7
  • get_quality_metrics(compare=true) โ†’ ยง8
  • get_system_configs(platform=all, config_type=all) โ†’ ยง9
  • get_sdd_framework_status(detailed=true) โ†’ ยง10
  • get_sdd_execution_history(analytics=true, limit=20) โ†’ ยง10
  • get_session_context(include_dirty=true) โ†’ ยง10

Companion reports on the AWS surface: agentcore-mcp-rag-Health-Status-Report-2026-07-13 and MCP-Health-Status-Comparative-Report.

โš ๏ธ **GitHub.com Fallback** โš ๏ธ