{ "schema_version": "mcp_control_plane_catalog_v1", "generated_at": "2026-07-15T11:53:26+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": "scheduled_pending_first_receipt", "active_blockers": [ "external_candidate_immutable_supply_chain_receipts_missing", "registered_internal_replay_adapters_missing", "no_promotable_external_candidate_for_shadow_or_canary" ] }, "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/servers/playwright-mcp", "decision": "internalize_then_canary", "risk_tier": "high", "scope": "allowlisted_origins_only", "data_boundary": "public_and_test_surfaces", "deployment_allowed": false, "version_state": "exact_0.0.78_protocol_schema_replay_verified", "digest_state": "internal_mirror_digest_verified_sha256_de002c418bbb94fb4609539c4259c39ccb7f8b353f8bac8fbcba9e5742ad79ed", "sbom_state": "cyclonedx_1.5_mirror_readback_verified", "signature_state": "npm_registry_ecdsa_and_slsa_subject_independently_reverified", "compatibility_state": "protocol_schema_compatibility_verified", "replay_status": "completed_protocol_schema_replay_verified", "replay_protocol_version": "2025-06-18", "replay_server_name": "Playwright", "replay_server_version": "1.62.0-alpha-1783623505000", "replay_tool_count": 24, "replay_tool_name_set_sha256": "12d23fea9d8d1a1de3f44863dc00cf393f0a2165323838cf93fed30a6a4cc237", "replay_tool_schema_manifest_sha256": "c3737ced21147d0512b0400df5885c95a545bc915892b5c8f928cee78428ac99", "replay_adapter_id": "playwright_public_accessibility_verifier_v1", "replay_adapter_allowed_tool_count": 4, "replay_adapter_denied_tool_count": 20, "replay_run_id": "90d0515a-0812-4b04-9913-b210313accff", "replay_trace_id": "mcp-replay-90d0515a-0812-4b04-9913-b210313accff", "replay_work_item_id": "MCP-REPLAY-PLAYWRIGHT-001", "replay_observed_at": "2026-07-15T03:37:08.023613+00:00", "replay_audit_commit": "4a15edb8309a550b6d77f8c1f88b6b1203206045", "replay_artifact_audit_commit": "9c08ada5c0f15bb6924304af29cd13c8376182ff", "artifact_latest_revalidation_audit_commit": "226a733b022072d13fb4a4d69b81b7c2fac11cc3", "replay_controller_receipt_sha256": "279cf92ca06d418537b54921df7deab1377eac290cc885102f608f832cd013f5", "replay_verifier_receipt_sha256": "161d41484cddab750e1904099c3adcb0909756262331351b09f28b632194cbad", "replay_independent_verifier": true, "replay_process_exit_code": 0, "replay_shutdown_mode": "stdin_eof_clean_exit", "replay_ephemeral_container_removed": true, "replay_browser_started": false, "replay_tool_call_performed": false, "replay_navigation_performed": false, "replay_external_rag_write_performed": false, "replay_production_write_performed": false, "replay_promotion_allowed": false, "rag_policy": "screenshots_and_accessibility_receipts_only", "blockers": [ "registered_public_origin_replay_adapter_missing", "immutable_browser_runtime_supply_chain_missing", "public_origin_egress_proxy_and_private_network_denial_missing", "public_origin_shadow_replay_not_verified", "canary_verifier_and_rollback_execution_pending" ], "evidence_refs": [ "config/mcp/playwright-mcp-artifact-policy.json", "config/mcp/playwright-mcp-replay-policy.json", ".gitea/workflows/mcp-external-replay.yaml", "docs/operations/external-mcp-artifacts/playwright-mcp-0.0.78-check.snapshot.json", "gitea:mcp-artifact-receipts@9c08ada5c0f15bb6924304af29cd13c8376182ff:docs/operations/external-mcp-artifacts/playwright-mcp-0.0.78-controller.snapshot.json", "gitea:mcp-artifact-receipts@9c08ada5c0f15bb6924304af29cd13c8376182ff:docs/operations/external-mcp-artifacts/playwright-mcp-0.0.78-verifier.snapshot.json", "gitea:mcp-artifact-receipts@226a733b022072d13fb4a4d69b81b7c2fac11cc3:docs/operations/external-mcp-artifacts/playwright-mcp-0.0.78-verifier.snapshot.json", "gitea:mcp-replay-receipts@4a15edb8309a550b6d77f8c1f88b6b1203206045:docs/operations/external-mcp-replays/playwright-mcp-0.0.78-controller.snapshot.json", "gitea:mcp-replay-receipts@4a15edb8309a550b6d77f8c1f88b6b1203206045:docs/operations/external-mcp-replays/playwright-mcp-0.0.78-verifier.snapshot.json", "gitea-run:wooo/awoooi/actions/runs/5192", "registry.wooo.work/awoooi/mcp-artifacts/playwright-mcp@sha256:de002c418bbb94fb4609539c4259c39ccb7f8b353f8bac8fbcba9e5742ad79ed" ] }, { "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/servers/google-search-console-mcp-sarahpark", "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/servers/context7-mcp", "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"] } ] }