{"id":"cmuxjurah15tkad074zf3j764","slug":"mcp-builder","publicId":"989cff30-3566-4ab3-86e3-e31066c7fe03","name":"mcp-builder","description":"Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP), Node/TypeScript (MCP SDK), or C#/.NET (Microsoft MCP SDK).","version":"","author":"microsoft","license":"MIT","compatibility":"","status":"completed","overallGrade":"B","scannerVersion":11,"fileCount":10,"hasSkillMd":true,"hasScripts":true,"hasReferences":false,"hasEvals":false,"hasAssets":false,"sourceType":"github","sourceUrl":"https://github.com/microsoft/skills/tree/main/.github/skills/mcp-builder","createdAt":"2026-10-07T03:30:11.182Z","completedAt":"2026-10-07T03:30:11.179Z","visibility":"public","publishedAt":"2026-08-03T21:47:37.188Z","category":"","frameworks":[],"badgeStatus":"conditional","downloadCount":0,"verdictRationale":{"summary":"Skill has warnings: 1 warning in security or structure checks.","verdict":"warn","scanners":[{"source":"vettd","weight":1,"verdict":"warn"},{"source":"cisco","weight":0.8,"verdict":"pass"}],"consensus":"warn","warnTriggers":["References external URL — review for indirect prompt injection risk"],"policyVersion":"consensus-v1","hardFailTriggers":[]},"verdictPolicyVersion":"consensus-v1","skillId":"cmqhdzfg000fnad073fhrieqd","findings":[{"id":"cmuxjurai15tlad07m3ds2h8k","source":"vettd","category":"security","label":"References external URL — review for indirect prompt injection risk","detail":"External URL(s) detected in SKILL.md — referenced content can change after audit","severity":"medium","ruleId":"VTD-0088","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"42638a8b7e9fc5df27449992eaebc724","filepath":"SKILL.md"},{"id":"cmuxjurai15tnad07q72rr3gr","source":"cisco","category":"security","label":"Unpinned dependency","detail":"scripts/requirements.txt:1 — Dependency 'anthropic' has no pinned (==) version. Unpinned dependencies in a skill package allow a later, potentially malicious release to be installed automatically (supply-chain risk).","severity":"low","ruleId":"SUPPLY_CHAIN_UNPINNED_DEPENDENCY","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"867092bd41ebf0f13349a23ce3e09bb2","filepath":"scripts/requirements.txt"},{"id":"cmuxjurai15toad07fbe1oycj","source":"cisco","category":"security","label":"Unpinned dependency","detail":"scripts/requirements.txt:2 — Dependency 'mcp' has no pinned (==) version. Unpinned dependencies in a skill package allow a later, potentially malicious release to be installed automatically (supply-chain risk).","severity":"low","ruleId":"SUPPLY_CHAIN_UNPINNED_DEPENDENCY","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"867092bd41ebf0f13349a23ce3e09bb2","filepath":"scripts/requirements.txt"},{"id":"cmuxjurai15tmad07iprrseji","source":"cisco","category":"security","label":"Skill does not specify a license","detail":"SKILL.md — Skill manifest does not include a 'license' field. Specifying a license helps users understand usage terms.","severity":"info","ruleId":"MANIFEST_MISSING_LICENSE","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"592f7ac7731768f0fd0bba83f30850f9","filepath":"SKILL.md"}],"scannerRuns":[{"source":"cisco","status":"success","verdict":null,"grade":"A","findingCount":3,"criticalCount":0,"highCount":0},{"source":"vettd","status":"success","verdict":null,"grade":"B","findingCount":1,"criticalCount":0,"highCount":0}],"user":{"name":"Justin Pacella","image":"https://avatars.githubusercontent.com/u/97124458?v=4"},"repository":{"owner":"microsoft","name":"skills"},"freshness":{"status":"verified_unchanged","reason":null,"retryable":false,"renamedTo":null,"lastCheckedAt":"2026-10-22T00:33:06.993Z","lastVerifiedAt":"2026-10-22T00:33:06.993Z","lastChangeDetectedAt":"2026-08-14T15:48:28.699Z","scannedHash":"c87383e3a3a307ff9867adf610672e9f0b24687b","latestUpstreamHash":"c87383e3a3a307ff9867adf610672e9f0b24687b","nextCheckDueAt":"2026-10-23T02:27:30.028Z"},"signalCategories":[{"category":"safety","label":"Safety","form":"graded","verdict":null,"rows":[]},{"category":"reliability","label":"Reliability & Quality","form":"graded","verdict":null,"rows":[]},{"category":"performance","label":"Performance","form":"measured","verdict":{"form":"measured","magnitudes":[{"ruleId":"performance/static-context-tokens","label":"Static context tokens","value":2572,"unit":null,"method":"tiktoken/cl100k_base/skill-md-body"}]},"rows":[{"origin":"signal","id":"cmuxjv03h17q9ad077lrcwrb4","subjectType":"skill_audit","subjectId":"cmuxjurah15tkad074zf3j764","relatedType":"","relatedId":"","dataCategory":"performance","sourceClass":"scan","source":"vettd","ruleId":"performance/progressive-disclosure","severity":null,"label":"Progressive disclosure","detail":null,"valueNum":null,"valueText":"present","unit":null,"method":null,"derivation":"read","confidence":null,"sampleSize":null,"synthetic":false,"firstParty":true,"observedAt":"2026-10-07T03:30:00.000Z","payload":null},{"origin":"signal","id":"cmuxjusp9167vad07njivwv4h","subjectType":"skill_audit","subjectId":"cmuxjurah15tkad074zf3j764","relatedType":"","relatedId":"","dataCategory":"performance","sourceClass":"scan","source":"vettd","ruleId":"performance/static-context-tokens","severity":null,"label":"Static context tokens","detail":null,"valueNum":2572,"valueText":null,"unit":null,"method":"tiktoken/cl100k_base/skill-md-body","derivation":null,"confidence":null,"sampleSize":null,"synthetic":false,"firstParty":true,"observedAt":"2026-10-07T03:30:00.000Z","payload":null}]},{"category":"cost","label":"Cost","form":"measured","verdict":null,"rows":[]},{"category":"compatibility","label":"Compatibility","form":"unjudged","verdict":{"form":"unjudged"},"rows":[{"origin":"signal","id":"cmuxjv0c917rsad076uav7t96","subjectType":"skill_audit","subjectId":"cmuxjurah15tkad074zf3j764","relatedType":"","relatedId":"","dataCategory":"compatibility","sourceClass":"scan","source":"vettd","ruleId":"compatibility/cli-help","severity":null,"label":"CLI help","detail":null,"valueNum":null,"valueText":"present","unit":null,"method":null,"derivation":"read","confidence":null,"sampleSize":null,"synthetic":false,"firstParty":true,"observedAt":"2026-10-07T03:30:00.000Z","payload":null},{"origin":"signal","id":"cmuxjut8916c2ad07klq5o6iw","subjectType":"skill_audit","subjectId":"cmuxjurah15tkad074zf3j764","relatedType":"","relatedId":"","dataCategory":"compatibility","sourceClass":"scan","source":"vettd","ruleId":"compatibility/declared-environment-assumptions","severity":null,"label":"Declared environment assumptions","detail":null,"valueNum":null,"valueText":"","unit":null,"method":null,"derivation":"read","confidence":null,"sampleSize":null,"synthetic":false,"firstParty":true,"observedAt":"2026-10-07T03:30:00.000Z","payload":null},{"origin":"signal","id":"cmuxjuwmp1701ad075zupf4w7","subjectType":"skill_audit","subjectId":"cmuxjurah15tkad074zf3j764","relatedType":"","relatedId":"","dataCategory":"compatibility","sourceClass":"scan","source":"vettd","ruleId":"compatibility/declared-name","severity":null,"label":"Declared skill name","detail":null,"valueNum":null,"valueText":"mcp-builder","unit":null,"method":null,"derivation":"read","confidence":null,"sampleSize":null,"synthetic":false,"firstParty":true,"observedAt":"2026-10-07T03:30:00.000Z","payload":null},{"origin":"signal","id":"cmuxjv0mv17sjad07ttwhy9oc","subjectType":"skill_audit","subjectId":"cmuxjurah15tkad074zf3j764","relatedType":"","relatedId":"","dataCategory":"compatibility","sourceClass":"scan","source":"vettd","ruleId":"compatibility/structured-output","severity":null,"label":"Structured output","detail":null,"valueNum":null,"valueText":"present","unit":null,"method":null,"derivation":"read","confidence":null,"sampleSize":null,"synthetic":false,"firstParty":true,"observedAt":"2026-10-07T03:30:00.000Z","payload":null}]},{"category":"sentiment","label":"Popularity","form":"unjudged","verdict":null,"rows":[]},{"category":"characteristics","label":"Characteristics","form":"unjudged","verdict":null,"rows":[]}],"signalCount":28,"publisherSupplied":["name","description","author","version","license"]}