{ "schema_version": "mcp_control_plane_catalog_v1", "generated_at": "2026-07-15T18:30:00+08:00", "status": "source_inventory_ready_runtime_federation_partial", "architecture": { "decision": "single_control_plane_reuse_existing_gateway_registry_rag", "page_route": "/automation/mcp", "api_route": "/api/v1/mcp-control-plane/overview", "gateway": "reuse_awoooi_mcp_gateway", "provider_registry": "reuse_awoooi_provider_registry_and_mcp_tool_registry", "rag": "reuse_postgresql_pgvector_with_redis_hot_cache", "separate_gateway_allowed": false, "separate_rag_database_allowed": false, "reason": "A separate gateway or vector store would split grants, audit receipts, provenance, rollback state, and retrieval policy. The new page is a control surface over the existing planes, not a second runtime." }, "source_policy": { "source_control_authority": "gitea", "github_allowed": false, "github_actions_allowed": false, "github_artifact_sources_allowed": false, "catalogs_are_discovery_only": true, "catalog_sources": [ { "source_id": "smithery", "url": "https://smithery.ai/servers", "trust_role": "candidate_discovery_only" }, { "source_id": "mcp-so", "url": "https://mcp.so/servers", "trust_role": "candidate_discovery_only" }, { "source_id": "official-mcp-registry", "url": "https://registry.modelcontextprotocol.io", "trust_role": "metadata_and_version_discovery_not_artifact_trust" } ] }, "security_policy": { "external_content_default": "untrusted_quarantine", "external_rag_auto_write_allowed": false, "quarantine_index": "mcp_external_quarantine", "promotion_target": "governed_internal_rag", "required_promotion_receipts": [ "source_identity_and_license", "data_classification_and_tenant_scope", "prompt_injection_scan", "malware_and_content_safety_scan", "independent_citation_verifier", "human_or_policy_approval_for_regulated_data", "durable_write_acknowledgement" ], "gateway_request_body_storage": "forbidden_hash_only", "gateway_response_body_storage": "forbidden_hash_only", "distributed_rate_limit_required": true, "tool_annotations_are_untrusted_hints": true }, "supply_chain_policy": { "floating_versions_allowed": false, "npx_yes_allowed": false, "latest_tag_allowed": false, "direct_public_registry_runtime_install_allowed": false, "required_before_canary": [ "exact_version", "immutable_artifact_digest", "internal_mirror_ref", "sbom_ref", "signature_or_provenance_ref", "license_decision", "vulnerability_decision", "rollback_artifact_ref" ] }, "version_lifecycle": { "desired_loop": [ "discover", "normalize", "diff", "compatibility_replay", "security_and_supply_chain_verify", "shadow", "canary", "bounded_rollout", "post_verify", "rollback_or_promote", "writeback" ], "discovery_cadence": "0 */6 * * * Asia/Taipei", "compatibility_cadence": "on_version_diff", "canary_policy": "one_noncritical_product_then_10_25_50_100_percent", "rollback_policy": "automatic_on_protocol_tool_schema_auth_latency_or_quality_regression", "runtime_state": "not_running", "active_blockers": [ "durable_version_observation_store_missing", "compatibility_replay_harness_missing", "canary_executor_and_independent_verifier_missing", "rollback_receipt_writeback_missing" ] }, "capabilities": [ { "capability_id": "core.awoooi-mcp-platform", "title": "AWOOOI MCP Gateway / Registry / RAG", "source_type": "internal", "catalog_source": "internal", "decision": "integrated", "risk_tier": "medium", "scope": "read_and_controlled_write", "data_boundary": "internal", "deployment_allowed": true, "version_state": "repo_sha_bound", "digest_state": "source_sha_available_runtime_image_digest_readback_pending", "sbom_state": "partial", "signature_state": "partial", "rag_policy": "internal_governed_only", "evidence_refs": [ "apps/api/src/plugins/mcp/gateway.py", "apps/api/src/plugins/mcp/registry.py", "apps/api/src/services/mcp_tool_registry.py", "apps/api/src/services/knowledge_rag_service.py" ] }, { "capability_id": "federation.ewoooc-mcp-rag", "title": "EwoooC MCP / PixelRAG federation", "source_type": "cross_product_internal", "catalog_source": "gitea", "decision": "federate", "risk_tier": "medium", "scope": "read_only_first", "data_boundary": "commerce_internal", "deployment_allowed": false, "version_state": "remote_source_readback_pending", "digest_state": "runtime_digest_readback_pending", "sbom_state": "pending", "signature_state": "pending", "rag_policy": "quarantine_then_verified_promotion", "evidence_refs": [ "gitea://wooo/ewoooc@main/services/mcp_router.py", "gitea://wooo/ewoooc@main/services/external_mcp_rag_integration_service.py" ] }, { "capability_id": "federation.momo-mcp-rag", "title": "MOMO MCP / PixelRAG federation", "source_type": "cross_product_internal", "catalog_source": "gitea", "decision": "federate", "risk_tier": "medium", "scope": "read_only_first", "data_boundary": "commerce_internal", "deployment_allowed": false, "version_state": "remote_source_readback_pending", "digest_state": "runtime_digest_readback_pending", "sbom_state": "pending", "signature_state": "pending", "rag_policy": "quarantine_then_verified_promotion", "evidence_refs": [ "gitea://wooo/momo-pro-system@main/services/mcp_router.py", "gitea://wooo/momo-pro-system@main/services/external_mcp_rag_integration_service.py" ] }, { "capability_id": "federation.stockplatform-research-mcp", "title": "StockPlatform internal research MCP", "source_type": "cross_product_internal", "catalog_source": "gitea", "decision": "federate", "risk_tier": "medium", "scope": "read_only", "data_boundary": "financial_research", "deployment_allowed": false, "version_state": "server_0.1.0_source_detected_runtime_readback_pending", "digest_state": "pending", "sbom_state": "pending", "signature_state": "pending", "rag_policy": "cite_internal_evidence_only", "evidence_refs": [ "gitea://wooo/stockplatform-v2@main/apps/api/app/api/routes/mcp.py" ] }, { "capability_id": "federation.vibework-agent-mcp", "title": "VibeWork agent MCP", "source_type": "cross_product_internal", "catalog_source": "gitea", "decision": "federate", "risk_tier": "high", "scope": "controlled_apply", "data_boundary": "marketplace_internal", "deployment_allowed": false, "version_state": "package_0.1.0_source_detected_runtime_readback_pending", "digest_state": "pending", "sbom_state": "pending", "signature_state": "pending", "rag_policy": "no_external_auto_write", "evidence_refs": [ "gitea://wooo/vibework@main/packages/mcp-server" ] }, { "capability_id": "quarantine.agent-bounty-mcp", "title": "Agent Bounty MCP remediation lane", "source_type": "cross_product_internal", "catalog_source": "gitea", "decision": "quarantine", "risk_tier": "critical", "scope": "write_and_financial", "data_boundary": "financial_and_external_agent", "deployment_allowed": false, "version_state": "package_0.1.1_source_detected", "digest_state": "pending", "sbom_state": "pending", "signature_state": "pending", "rag_policy": "blocked", "blockers": [ "github_api_tool_violates_freeze", "tool_output_contains_cross_tool_prompt_injection", "financial_write_tools_require_independent_controlled_apply" ], "evidence_refs": [ "gitea://wooo/agent-bounty-protocol@main/packages/mcp-server/src/index.ts" ] }, { "capability_id": "federation.bitan-support-mcp", "title": "Bitan Pharmacy support MCP", "source_type": "cross_product_internal", "catalog_source": "gitea", "decision": "federate_after_remediation", "risk_tier": "high", "scope": "read_only", "data_boundary": "health_information", "deployment_allowed": false, "version_state": "source_detected_runtime_readback_pending", "digest_state": "pending", "sbom_state": "pending", "signature_state": "pending", "rag_policy": "regulated_quarantine_and_citation_verifier", "blockers": [ "github_external_provider_must_be_removed", "medical_content_requires_source_and_safety_verifier" ], "evidence_refs": [ "gitea://wooo/bitan-pharmacy@main/src/lib/ai/mcp/registry.ts", "gitea://wooo/bitan-pharmacy@main/src/app/api/internal-mcp/route.ts" ] }, { "capability_id": "internal.gitea-source-control", "title": "Internal Gitea source-control MCP", "source_type": "internal_build", "catalog_source": "internal", "decision": "build_internal", "risk_tier": "high", "scope": "read_only_then_controlled_write", "data_boundary": "source_control", "deployment_allowed": false, "version_state": "not_built", "digest_state": "not_built", "sbom_state": "not_built", "signature_state": "not_built", "rag_policy": "metadata_only_no_source_auto_ingest", "blockers": [ "no_suitable_gitea_server_found_in_reviewed_directories", "internal_gitea_api_adapter_and_grants_missing" ], "evidence_refs": [] }, { "capability_id": "external.google-drive-readonly", "title": "Google Drive read-only document intake", "source_type": "external", "catalog_source": "mcp-so", "catalog_url": "https://mcp.so/servers/mcp-gdrive-server", "decision": "shadow_candidate", "risk_tier": "high", "scope": "read_only", "data_boundary": "tenant_documents", "deployment_allowed": false, "version_state": "unresolved", "digest_state": "missing", "sbom_state": "missing", "signature_state": "missing", "rag_policy": "quarantine_only_no_auto_promotion", "blockers": [ "exact_version_digest_sbom_signature_and_internal_mirror_missing", "oauth_scope_and_tenant_isolation_not_verified" ], "evidence_refs": [] }, { "capability_id": "external.playwright-verifier", "title": "Playwright UI verifier MCP", "source_type": "external", "catalog_source": "mcp-so", "catalog_url": "https://mcp.so/server/playwright-mcp/microsoft", "decision": "internalize_then_canary", "risk_tier": "high", "scope": "allowlisted_origins_only", "data_boundary": "public_and_test_surfaces", "deployment_allowed": false, "version_state": "unresolved", "digest_state": "missing", "sbom_state": "missing", "signature_state": "missing", "rag_policy": "screenshots_and_accessibility_receipts_only", "blockers": [ "floating_install_examples_rejected", "origin_allowlist_and_session_redaction_verifier_missing" ], "evidence_refs": [] }, { "capability_id": "external.google-search-console-readonly", "title": "Google Search Console read-only MCP", "source_type": "external", "catalog_source": "mcp-so", "catalog_url": "https://mcp.so/server/google-search-console", "decision": "shadow_candidate", "risk_tier": "medium", "scope": "read_only", "data_boundary": "site_analytics", "deployment_allowed": false, "version_state": "unresolved", "digest_state": "missing", "sbom_state": "missing", "signature_state": "missing", "rag_policy": "aggregate_metrics_only", "blockers": [ "service_identity_and_property_allowlist_missing", "exact_artifact_and_rollback_receipts_missing" ], "evidence_refs": [] }, { "capability_id": "external.youtube-readonly", "title": "YouTube metadata and transcript MCP", "source_type": "external", "catalog_source": "mcp-so", "catalog_url": "https://mcp.so/servers/youtube-mcp-server", "decision": "shadow_candidate", "risk_tier": "medium", "scope": "read_only", "data_boundary": "public_media", "deployment_allowed": false, "version_state": "unresolved", "digest_state": "missing", "sbom_state": "missing", "signature_state": "missing", "rag_policy": "transcript_quarantine_with_source_url", "blockers": [ "floating_npx_install_rejected", "quota_identity_and_transcript_rights_review_missing" ], "evidence_refs": [] }, { "capability_id": "external.google-maps-readonly", "title": "Google Maps read-only MCP", "source_type": "external", "catalog_source": "mcp-so", "catalog_url": "https://mcp.so/server/google-maps-mcp/cablate", "decision": "shadow_candidate", "risk_tier": "medium", "scope": "read_only", "data_boundary": "location_and_delivery", "deployment_allowed": false, "version_state": "unresolved", "digest_state": "missing", "sbom_state": "missing", "signature_state": "missing", "rag_policy": "no_location_history_persistence", "blockers": [ "api_key_scope_cost_ceiling_and_tenant_policy_missing", "exact_artifact_and_canary_missing" ], "evidence_refs": [] }, { "capability_id": "external.sportiq-shadow", "title": "Sportiq FIFA 2026 research shadow", "source_type": "external", "catalog_source": "mcp-so", "catalog_url": "https://mcp.so/servers/sportiq-mcp", "decision": "research_shadow_only", "risk_tier": "high", "scope": "read_only", "data_boundary": "public_sports_and_odds", "deployment_allowed": false, "version_state": "unresolved", "digest_state": "missing", "sbom_state": "missing", "signature_state": "missing", "rag_policy": "never_source_of_truth_predictions_require_independent_sources", "blockers": [ "prediction_and_odds_provenance_unverified", "official_schedule_results_source_required_first" ], "evidence_refs": [] }, { "capability_id": "external.context7-readonly", "title": "Context7 documentation MCP", "source_type": "external", "catalog_source": "mcp-so", "catalog_url": "https://mcp.so/server/context7", "decision": "development_shadow_candidate", "risk_tier": "medium", "scope": "read_only", "data_boundary": "public_technical_docs", "deployment_allowed": false, "version_state": "unresolved", "digest_state": "missing", "sbom_state": "missing", "signature_state": "missing", "rag_policy": "ephemeral_context_no_automatic_km_write", "blockers": [ "source_provenance_and_prompt_injection_replay_missing", "exact_artifact_and_internal_mirror_missing" ], "evidence_refs": [] }, { "capability_id": "external.smithery-site-audit-shadow", "title": "Smithery public-site SEO audit shadow", "source_type": "external", "catalog_source": "smithery", "catalog_url": "https://smithery.ai/servers/cool_web_tool/site-audit", "decision": "evaluation_shadow_candidate", "risk_tier": "high", "scope": "allowlisted_public_origins_check_mode_only", "data_boundary": "public_site_metadata_no_authenticated_surface", "active_security_scan_allowed": false, "deployment_allowed": false, "version_state": "unresolved", "digest_state": "missing", "sbom_state": "missing", "signature_state": "missing", "rag_policy": "ephemeral_receipt_only_no_content_ingestion", "blockers": [ "exact_artifact_internal_mirror_and_rollback_receipts_missing", "provider_cost_and_external_crawl_boundary_not_approved", "origin_allowlist_robots_policy_and_independent_result_verifier_missing" ], "evidence_refs": [ "https://smithery.ai/servers/cool_web_tool/site-audit" ] }, { "capability_id": "rejected.smithery-technical-analysis", "title": "Smithery technical-analysis market signal MCP", "source_type": "external", "catalog_source": "smithery", "catalog_url": "https://smithery.ai/servers/ta-mcp/technical-analysis-mcp", "decision": "rejected", "risk_tier": "high", "scope": "none", "data_boundary": "public_market_data_and_generated_signals", "deployment_allowed": false, "version_state": "unresolved", "digest_state": "missing", "sbom_state": "missing", "signature_state": "missing", "rag_policy": "rejected_no_finance_truth_or_trading_signal", "blockers": [ "not_a_taiwan_official_market_source", "stocks_crypto_and_indian_market_scope_not_product_fit", "generated_trading_signal_provenance_and_liability_risk" ], "evidence_refs": [ "https://smithery.ai/servers/ta-mcp/technical-analysis-mcp" ] }, { "capability_id": "federation.web-research", "title": "Governed web research federation", "source_type": "cross_product_internal", "catalog_source": "gitea", "decision": "federate_existing", "risk_tier": "high", "scope": "read_only", "data_boundary": "open_world_untrusted", "deployment_allowed": false, "version_state": "ewoooc_source_detected_runtime_readback_pending", "digest_state": "pending", "sbom_state": "pending", "signature_state": "pending", "rag_policy": "quarantine_citation_and_independent_verifier", "blockers": [ "cross_product_gateway_federation_missing", "prompt_injection_and_source_quality_verifier_missing" ], "evidence_refs": [ "gitea://wooo/ewoooc@main/services/external_mcp_rag_integration_service.py" ] }, { "capability_id": "internal.taiwan-finance-sources", "title": "Taiwan official finance source MCP", "source_type": "internal_build", "catalog_source": "internal", "decision": "build_internal", "risk_tier": "high", "scope": "read_only", "data_boundary": "financial_research", "deployment_allowed": false, "version_state": "not_built", "digest_state": "not_built", "sbom_state": "not_built", "signature_state": "not_built", "rag_policy": "official_source_citations_required", "blockers": [ "reviewed_marketplace_servers_do_not_provide_authoritative_taiwan_coverage" ], "evidence_refs": [] }, { "capability_id": "internal.supply-chain-verifier", "title": "MCP supply-chain and version verifier", "source_type": "internal_build", "catalog_source": "internal", "decision": "build_internal", "risk_tier": "high", "scope": "check_then_controlled_apply", "data_boundary": "software_supply_chain", "deployment_allowed": false, "version_state": "not_built", "digest_state": "not_built", "sbom_state": "not_built", "signature_state": "not_built", "rag_policy": "receipts_only", "blockers": [ "version_discovery_replay_canary_and_rollback_controller_missing" ], "evidence_refs": [ "scripts/security/package-supply-chain-baseline.py" ] }, { "capability_id": "rejected.github", "title": "GitHub MCP and GitHub-hosted automation", "source_type": "external", "catalog_source": "policy", "decision": "rejected", "risk_tier": "critical", "scope": "none", "data_boundary": "forbidden", "deployment_allowed": false, "version_state": "not_applicable", "digest_state": "not_applicable", "sbom_state": "not_applicable", "signature_state": "not_applicable", "rag_policy": "blocked", "blockers": [ "github_freeze" ], "evidence_refs": [] }, { "capability_id": "rejected.duplicate-and-write-heavy-marketplace", "title": "Duplicate infrastructure, trading, wallet, and broad-write MCPs", "source_type": "external", "catalog_source": "smithery_and_mcp-so", "decision": "rejected", "risk_tier": "critical", "scope": "none", "data_boundary": "forbidden", "deployment_allowed": false, "version_state": "not_applicable", "digest_state": "not_applicable", "sbom_state": "not_applicable", "signature_state": "not_applicable", "rag_policy": "blocked", "blockers": [ "duplicates_existing_kubernetes_postgresql_redis_or_rag", "trading_wallet_private_key_or_paid_provider_side_effect", "google_sheets_and_drive_write_surface_exceeds_initial_scope" ], "evidence_refs": [] } ], "products": [ { "product_id": "awoooi", "inventory_state": "source_detected_runtime_partial", "existing_capability_ids": ["core.awoooi-mcp-platform"], "recommended_capability_ids": ["internal.gitea-source-control", "external.playwright-verifier", "internal.supply-chain-verifier"], "rejected_capability_ids": ["rejected.github", "rejected.duplicate-and-write-heavy-marketplace"], "blockers": ["provider_health_and_gateway_audit_need_durable_page_readback", "rag_index_runtime_is_empty"] }, { "product_id": "ewoooc", "inventory_state": "source_detected_federation_missing", "existing_capability_ids": ["federation.ewoooc-mcp-rag", "federation.web-research"], "recommended_capability_ids": ["external.google-drive-readonly", "external.playwright-verifier", "internal.supply-chain-verifier"], "rejected_capability_ids": ["rejected.github", "rejected.duplicate-and-write-heavy-marketplace"], "blockers": ["awoooi_federated_runtime_readback_missing", "pixelrag_must_remain_read_only_until_ocr_vlm_verifier"] }, { "product_id": "2026fifa", "inventory_state": "no_committed_mcp_runtime_detected", "existing_capability_ids": [], "recommended_capability_ids": ["external.sportiq-shadow", "federation.web-research", "external.playwright-verifier"], "rejected_capability_ids": ["rejected.github", "rejected.duplicate-and-write-heavy-marketplace"], "blockers": ["official_schedule_results_and_odds_sources_not_federated", "betting_recommendations_require_independent_verifier"] }, { "product_id": "agent-bounty-protocol", "inventory_state": "source_detected_quarantined", "existing_capability_ids": ["quarantine.agent-bounty-mcp"], "recommended_capability_ids": ["internal.gitea-source-control", "internal.supply-chain-verifier"], "rejected_capability_ids": ["rejected.github", "rejected.duplicate-and-write-heavy-marketplace"], "blockers": ["github_tool_and_prompt_injection_must_be_removed", "financial_actions_need_controlled_apply_receipts"] }, { "product_id": "awooogo", "inventory_state": "no_committed_mcp_runtime_detected", "existing_capability_ids": [], "recommended_capability_ids": ["external.google-maps-readonly", "external.google-search-console-readonly", "external.smithery-site-audit-shadow", "external.playwright-verifier"], "rejected_capability_ids": ["rejected.github", "rejected.duplicate-and-write-heavy-marketplace"], "blockers": ["delivery_location_data_policy_and_cost_ceiling_missing"] }, { "product_id": "stockplatform-v2", "inventory_state": "source_detected_runtime_readback_missing", "existing_capability_ids": ["federation.stockplatform-research-mcp"], "recommended_capability_ids": ["internal.taiwan-finance-sources", "federation.web-research", "external.playwright-verifier"], "rejected_capability_ids": ["rejected.github", "rejected.duplicate-and-write-heavy-marketplace", "rejected.smithery-technical-analysis"], "blockers": ["taiwan_marketplace_mcp_authority_gap", "cross_product_invocation_readback_missing"] }, { "product_id": "vibework", "inventory_state": "source_detected_runtime_readback_missing", "existing_capability_ids": ["federation.vibework-agent-mcp"], "recommended_capability_ids": ["internal.gitea-source-control", "external.context7-readonly", "external.playwright-verifier"], "rejected_capability_ids": ["rejected.github"], "blockers": ["controlled_apply_and_tenant_grants_not_federated"] }, { "product_id": "momo-pro-system", "inventory_state": "source_detected_federation_missing", "existing_capability_ids": ["federation.momo-mcp-rag", "federation.web-research"], "recommended_capability_ids": ["external.google-drive-readonly", "external.playwright-verifier", "internal.supply-chain-verifier"], "rejected_capability_ids": ["rejected.github", "rejected.duplicate-and-write-heavy-marketplace"], "blockers": ["awoooi_federated_runtime_readback_missing", "pixelrag_must_remain_read_only_until_ocr_vlm_verifier"] }, { "product_id": "tsenyang-website", "inventory_state": "no_committed_mcp_runtime_detected", "existing_capability_ids": [], "recommended_capability_ids": ["external.google-search-console-readonly", "external.smithery-site-audit-shadow", "federation.web-research", "external.playwright-verifier"], "rejected_capability_ids": ["rejected.github"], "blockers": ["seo_analytics_service_identity_and_property_allowlist_missing"] }, { "product_id": "vtuber", "inventory_state": "no_committed_mcp_runtime_detected", "existing_capability_ids": [], "recommended_capability_ids": ["external.youtube-readonly", "external.google-drive-readonly", "external.playwright-verifier"], "rejected_capability_ids": ["rejected.github", "rejected.duplicate-and-write-heavy-marketplace"], "blockers": ["media_rights_quota_and_transcript_provenance_policy_missing"] }, { "product_id": "bitan-pharmacy", "inventory_state": "source_detected_remediation_required", "existing_capability_ids": ["federation.bitan-support-mcp"], "recommended_capability_ids": ["external.context7-readonly", "federation.web-research", "external.google-search-console-readonly", "external.smithery-site-audit-shadow", "external.playwright-verifier"], "rejected_capability_ids": ["rejected.github"], "blockers": ["github_external_provider_must_be_removed", "medical_answer_source_and_safety_verifier_missing"] }, { "product_id": "clawbot-openclaw", "inventory_state": "no_federated_mcp_inventory_readback", "existing_capability_ids": [], "recommended_capability_ids": ["internal.gitea-source-control", "external.context7-readonly", "external.playwright-verifier", "internal.supply-chain-verifier"], "rejected_capability_ids": ["rejected.github"], "blockers": ["agent_runtime_tool_and_version_inventory_readback_missing"] } ] }