{"data":{"skill":{"slug":"aykahshi-copilot-mcp-server","name":"copilot-mcp-server","icon":"📦","repo":"https://github.com/Aykahshi/copilot-mcp-tool/tree/main/plugins/copilot-flow/skills/copilot-mcp-server","status":"approved","author":"Aykahshi","authorVersion":null,"skillstoreRevision":1},"audit":{"id":"fa30f198-abb3-4200-aed7-f276002ccb39","skill_id":"48c3c931-0563-4a0b-b5eb-5377246c60e2","version":8,"content_hash":"v3:5ab1d37e83436c6eef84de88573e142b94f2a4ad:04480f076248cdac0a658fba48bf410e0e5cf6ce260a9689c10219d781a85588:1d1bc2f6f7673f05e39ccf08caa80ac21d2d71fe85e50c11a79fbfc77e13e1e6:736b696c6c732f61796b61687368692f636f70696c6f742d6d63702d736572766572:5b68d9690825b535a50d322f60f4f534","risk_level":"medium","is_blocked":false,"safe_to_publish":true,"analysis_status":"ok","agent_auto_install_policy":"allowed","manual_install_policy":"allowed","summary":"The static backtick findings are false positives caused by Markdown fences and JavaScript template literals in examples. No prompt injection or malicious execution instructions were found in SKILL.md. The review found contextual risks around broad Copilot tool delegation and sensitive code sent to an external AI service.","remediation":[{"issue":"Broad downstream tool delegation","severity":"medium","suggestion":"Change examples to default allowAllTools to false, and tell users to enable it only for trusted, bounded tasks."},{"issue":"Sensitive code sharing guidance is incomplete","severity":"low","suggestion":"Add clear guidance to remove secrets and confirm policy approval before sending proprietary code or errors to Copilot."}],"risk_factor_evidence":[{"factor":"external_commands","evidence":[{"file":"SKILL.md","line_end":28,"line_start":21},{"file":"SKILL.md","line_end":33,"line_start":28},{"file":"SKILL.md","line_end":38,"line_start":33},{"file":"SKILL.md","line_end":43,"line_start":38},{"file":"SKILL.md","line_end":48,"line_start":43},{"file":"SKILL.md","line_end":53,"line_start":48},{"file":"SKILL.md","line_end":59,"line_start":53},{"file":"SKILL.md","line_end":64,"line_start":59},{"file":"SKILL.md","line_end":69,"line_start":64},{"file":"SKILL.md","line_end":74,"line_start":69},{"file":"SKILL.md","line_end":79,"line_start":74},{"file":"SKILL.md","line_end":84,"line_start":79},{"file":"SKILL.md","line_end":89,"line_start":84},{"file":"SKILL.md","line_end":96,"line_start":89},{"file":"SKILL.md","line_end":98,"line_start":96},{"file":"SKILL.md","line_end":103,"line_start":98},{"file":"SKILL.md","line_end":107,"line_start":103},{"file":"SKILL.md","line_end":144,"line_start":107},{"file":"SKILL.md","line_end":150,"line_start":144},{"file":"SKILL.md","line_end":153,"line_start":150},{"file":"SKILL.md","line_end":155,"line_start":153},{"file":"SKILL.md","line_end":156,"line_start":156},{"file":"SKILL.md","line_end":161,"line_start":158},{"file":"SKILL.md","line_end":164,"line_start":161},{"file":"SKILL.md","line_end":170,"line_start":164},{"file":"SKILL.md","line_end":173,"line_start":170},{"file":"SKILL.md","line_end":175,"line_start":173},{"file":"SKILL.md","line_end":184,"line_start":181}]}],"critical_findings":[],"high_findings":[],"medium_findings":[{"title":"Broad Tool Access Example","locations":[{"file":"SKILL.md","line_end":27,"line_start":21},{"file":"SKILL.md","line_end":149,"line_start":143}],"confidence":0.78,"description":"SKILL.md documents allowAllTools and shows allowAllTools=true for an implementation request. This can grant broad downstream tool use when prompts or code are untrusted.","review_kind":"security","source_category":"semantic","source_severity":"medium","confidence_reasoning":"The broad tool option is explicitly documented and used in an example, but it remains a user-selected setting rather than hidden behavior."}],"low_findings":[{"title":"Sensitive Code May Be Sent to External AI Service","locations":[{"file":"SKILL.md","line_end":37,"line_start":21},{"file":"SKILL.md","line_end":58,"line_start":53},{"file":"SKILL.md","line_end":214,"line_start":213}],"confidence":0.72,"description":"The skill instructs users to pass prompts, context, code, errors, and review targets to Copilot MCP tools. It does not give privacy guidance for secrets or proprietary code.","review_kind":"security","source_category":"semantic","source_severity":"low","confidence_reasoning":"The data inputs and Copilot subscription/API references show external service use, but the behavior is central to the skill purpose and not concealed."}],"dangerous_patterns":[],"files_scanned":1,"total_lines":217,"audit_model":"codex","audited_at":"2026-07-05T03:47:58.021+00:00","created_at":"2026-07-16T12:30:35.159482+00:00","static_findings":[{"id":"external_commands:SKILL.md:21:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```javascript","category":"external_commands","line_end":28,"severity":"medium","line_start":21},{"id":"external_commands:SKILL.md:28:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":33,"severity":"medium","line_start":28},{"id":"external_commands:SKILL.md:33:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```javascript","category":"external_commands","line_end":38,"severity":"medium","line_start":33},{"id":"external_commands:SKILL.md:38:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":43,"severity":"medium","line_start":38},{"id":"external_commands:SKILL.md:43:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```javascript","category":"external_commands","line_end":48,"severity":"medium","line_start":43},{"id":"external_commands:SKILL.md:48:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":53,"severity":"medium","line_start":48},{"id":"external_commands:SKILL.md:53:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```javascript","category":"external_commands","line_end":59,"severity":"medium","line_start":53},{"id":"external_commands:SKILL.md:59:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":64,"severity":"medium","line_start":59},{"id":"external_commands:SKILL.md:64:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```javascript","category":"external_commands","line_end":69,"severity":"medium","line_start":64},{"id":"external_commands:SKILL.md:69:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":74,"severity":"medium","line_start":69},{"id":"external_commands:SKILL.md:74:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```javascript","category":"external_commands","line_end":79,"severity":"medium","line_start":74},{"id":"external_commands:SKILL.md:79:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":84,"severity":"medium","line_start":79},{"id":"external_commands:SKILL.md:84:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```javascript","category":"external_commands","line_end":89,"severity":"medium","line_start":84},{"id":"external_commands:SKILL.md:89:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":96,"severity":"medium","line_start":89},{"id":"external_commands:SKILL.md:96:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```javascript","category":"external_commands","line_end":98,"severity":"medium","line_start":96},{"id":"external_commands:SKILL.md:98:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":103,"severity":"medium","line_start":98},{"id":"external_commands:SKILL.md:103:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```javascript","category":"external_commands","line_end":107,"severity":"medium","line_start":103},{"id":"external_commands:SKILL.md:107:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":144,"severity":"medium","line_start":107},{"id":"external_commands:SKILL.md:144:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```javascript","category":"external_commands","line_end":150,"severity":"medium","line_start":144},{"id":"external_commands:SKILL.md:150:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":153,"severity":"medium","line_start":150},{"id":"external_commands:SKILL.md:153:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```javascript","category":"external_commands","line_end":155,"severity":"medium","line_start":153},{"id":"external_commands:SKILL.md:156:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"const query = \\`SELECT * FROM users WHERE username = '\\${username}' AND password = '\\${password}'\\`;","category":"external_commands","line_end":156,"severity":"medium","line_start":156},{"id":"external_commands:SKILL.md:158:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"}`,","category":"external_commands","line_end":161,"severity":"medium","line_start":158},{"id":"external_commands:SKILL.md:161:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":164,"severity":"medium","line_start":161},{"id":"external_commands:SKILL.md:164:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```javascript","category":"external_commands","line_end":170,"severity":"medium","line_start":164},{"id":"external_commands:SKILL.md:170:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":173,"severity":"medium","line_start":170},{"id":"external_commands:SKILL.md:173:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```javascript","category":"external_commands","line_end":175,"severity":"medium","line_start":173},{"id":"external_commands:SKILL.md:181:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"}`,","category":"external_commands","line_end":184,"severity":"medium","line_start":181},{"id":"blocker:SKILL.md:211:network-reconnaissance","file":"SKILL.md","pattern":"Network reconnaissance","snippet":"- This skill provides direct tool access","category":"blocker","line_end":212,"severity":"low","line_start":211}],"finding_verdicts":[{"id":"external_commands:SKILL.md:21:ruby-shell-backtick-execution","reason":"The matched text is a Markdown code fence or JavaScript example boundary. SKILL.md documents MCP tool call shapes and does not execute shell or Ruby commands here.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:28:ruby-shell-backtick-execution","reason":"The matched text is a Markdown code fence or JavaScript example boundary. SKILL.md documents MCP tool call shapes and does not execute shell or Ruby commands here.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:33:ruby-shell-backtick-execution","reason":"The matched text is a Markdown code fence or JavaScript example boundary. SKILL.md documents MCP tool call shapes and does not execute shell or Ruby commands here.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:38:ruby-shell-backtick-execution","reason":"The matched text is a Markdown code fence or JavaScript example boundary. SKILL.md documents MCP tool call shapes and does not execute shell or Ruby commands here.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:43:ruby-shell-backtick-execution","reason":"The matched text is a Markdown code fence or JavaScript example boundary. SKILL.md documents MCP tool call shapes and does not execute shell or Ruby commands here.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:48:ruby-shell-backtick-execution","reason":"The matched text is a Markdown code fence or JavaScript example boundary. SKILL.md documents MCP tool call shapes and does not execute shell or Ruby commands here.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:53:ruby-shell-backtick-execution","reason":"The matched text is a Markdown code fence or JavaScript example boundary. SKILL.md documents MCP tool call shapes and does not execute shell or Ruby commands here.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:59:ruby-shell-backtick-execution","reason":"The matched text is a Markdown code fence or JavaScript example boundary. SKILL.md documents MCP tool call shapes and does not execute shell or Ruby commands here.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:64:ruby-shell-backtick-execution","reason":"The matched text is a Markdown code fence or JavaScript example boundary. SKILL.md documents MCP tool call shapes and does not execute shell or Ruby commands here.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:69:ruby-shell-backtick-execution","reason":"The matched text is a Markdown code fence or JavaScript example boundary. SKILL.md documents MCP tool call shapes and does not execute shell or Ruby commands here.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:74:ruby-shell-backtick-execution","reason":"The matched text is a Markdown code fence or JavaScript example boundary. SKILL.md documents MCP tool call shapes and does not execute shell or Ruby commands here.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:79:ruby-shell-backtick-execution","reason":"The matched text is a Markdown code fence or JavaScript example boundary. SKILL.md documents MCP tool call shapes and does not execute shell or Ruby commands here.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:84:ruby-shell-backtick-execution","reason":"The matched text is a Markdown code fence or JavaScript example boundary. SKILL.md documents MCP tool call shapes and does not execute shell or Ruby commands here.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:89:ruby-shell-backtick-execution","reason":"The matched text is a Markdown code fence or JavaScript example boundary. SKILL.md documents MCP tool call shapes and does not execute shell or Ruby commands here.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:96:ruby-shell-backtick-execution","reason":"The matched text is a Markdown code fence or JavaScript example boundary. SKILL.md documents MCP tool call shapes and does not execute shell or Ruby commands here.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:98:ruby-shell-backtick-execution","reason":"The matched text is a Markdown code fence or JavaScript example boundary. SKILL.md documents MCP tool call shapes and does not execute shell or Ruby commands here.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:103:ruby-shell-backtick-execution","reason":"The matched text is a Markdown code fence or JavaScript example boundary. SKILL.md documents MCP tool call shapes and does not execute shell or Ruby commands here.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:107:ruby-shell-backtick-execution","reason":"The matched text is a Markdown code fence or JavaScript example boundary. SKILL.md documents MCP tool call shapes and does not execute shell or Ruby commands here.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:144:ruby-shell-backtick-execution","reason":"The matched text is a Markdown code fence or JavaScript example boundary. SKILL.md documents MCP tool call shapes and does not execute shell or Ruby commands here.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:150:ruby-shell-backtick-execution","reason":"The matched text is a Markdown code fence or JavaScript example boundary. SKILL.md documents MCP tool call shapes and does not execute shell or Ruby commands here.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:153:ruby-shell-backtick-execution","reason":"The matched text is a Markdown code fence or JavaScript example boundary. SKILL.md documents MCP tool call shapes and does not execute shell or Ruby commands here.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:156:ruby-shell-backtick-execution","reason":"The backticks are part of a JavaScript template literal shown as intentionally vulnerable sample input to a security review example. The skill does not execute this text as shell or Ruby code.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:158:ruby-shell-backtick-execution","reason":"The matched text closes a JavaScript template literal inside a Markdown example. It is documentation syntax, not executable shell or Ruby command execution.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:161:ruby-shell-backtick-execution","reason":"The matched text is a Markdown code fence or JavaScript example boundary. SKILL.md documents MCP tool call shapes and does not execute shell or Ruby commands here.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:164:ruby-shell-backtick-execution","reason":"The matched text is a Markdown code fence or JavaScript example boundary. SKILL.md documents MCP tool call shapes and does not execute shell or Ruby commands here.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:170:ruby-shell-backtick-execution","reason":"The matched text is a Markdown code fence or JavaScript example boundary. SKILL.md documents MCP tool call shapes and does not execute shell or Ruby commands here.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:173:ruby-shell-backtick-execution","reason":"The matched text is a Markdown code fence or JavaScript example boundary. SKILL.md documents MCP tool call shapes and does not execute shell or Ruby commands here.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:181:ruby-shell-backtick-execution","reason":"The matched text closes a JavaScript template literal inside a Markdown example. It is documentation syntax, not executable shell or Ruby command execution.","verdict":"false_positive","confidence":0.96},{"id":"blocker:SKILL.md:211:network-reconnaissance","reason":"The matched text says the skill provides direct tool access and references another workflow skill. It does not describe network scanning, host discovery, or reconnaissance behavior.","verdict":"false_positive","confidence":0.93}],"semantic_findings":[{"title":"Broad Tool Access Example","severity":"medium","locations":[{"file":"SKILL.md","line_end":27,"line_start":21},{"file":"SKILL.md","line_end":149,"line_start":143}],"confidence":0.78,"description":"SKILL.md documents allowAllTools and shows allowAllTools=true for an implementation request. This can grant broad downstream tool use when prompts or code are untrusted.","confidence_reasoning":"The broad tool option is explicitly documented and used in an example, but it remains a user-selected setting rather than hidden behavior."},{"title":"Sensitive Code May Be Sent to External AI Service","severity":"low","locations":[{"file":"SKILL.md","line_end":37,"line_start":21},{"file":"SKILL.md","line_end":58,"line_start":53},{"file":"SKILL.md","line_end":214,"line_start":213}],"confidence":0.72,"description":"The skill instructs users to pass prompts, context, code, errors, and review targets to Copilot MCP tools. It does not give privacy guidance for secrets or proprietary code.","confidence_reasoning":"The data inputs and Copilot subscription/API references show external service use, but the behavior is central to the skill purpose and not concealed."}],"subject_marketplace_commit_sha":"5ab1d37e83436c6eef84de88573e142b94f2a4ad","subject_content_hash":"04480f076248cdac0a658fba48bf410e0e5cf6ce260a9689c10219d781a85588","subject_tree_hash":"1d1bc2f6f7673f05e39ccf08caa80ac21d2d71fe85e50c11a79fbfc77e13e1e6","subject_plugin_path":"skills/aykahshi/copilot-mcp-server","audit_payload_hash":"5b68d9690825b535a50d322f60f4f534","confirmed_risk_level":null,"scanner_version":null,"policy_version":null,"subject":{"marketplaceCommitSha":"5ab1d37e83436c6eef84de88573e142b94f2a4ad","contentHash":"04480f076248cdac0a658fba48bf410e0e5cf6ce260a9689c10219d781a85588","treeHash":"1d1bc2f6f7673f05e39ccf08caa80ac21d2d71fe85e50c11a79fbfc77e13e1e6","pluginPath":"skills/aykahshi/copilot-mcp-server","auditPayloadHash":"5b68d9690825b535a50d322f60f4f534"},"scannerVersion":null,"policyVersion":null},"auditTranslation":null,"localization":{"requestedLocale":"en","contentLocale":"en","availableLocales":["en"],"fallbackToEnglish":false},"attestation":{"availability":"not_attestable","url":null,"status":null,"reason":"confirmed_risk_level does not match the canonical trust resolver"},"trust":{"publicState":"public","auditState":"complete","auditCurrentness":null,"confirmedRiskLevel":"medium","confirmedFindingCount":2,"capabilityReviewCount":0,"needsReviewCount":0,"falsePositiveCount":0,"agentAutoInstallPolicy":"allowed","manualInstallPolicy":"allowed","artifactSignatureState":"available","attestationState":"not_attestable","verificationState":"not_verified"},"isLatest":false}}