Investigate: CLI Plugin for azsdk-cli distribution (MCP + Skills)
- Dominant language
- C#
- Stars
- 135
- Forks
- 260
- Avg merge
- 3d 1h
- Merged PRs (30d)
- 144
Description
## Summary
Investigate whether packaging `azsdk-cli` as a **CLI plugin** would improve distribution and user experience. CLI plugins (supported by GitHub Copilot CLI and Claude CLI) can bundle MCP servers and skills together, potentially solving cross-repo discovery challenges.
## Background
From the Skills PoC ([#13819](https://github.com/Azure/azure-sdk-tools/pull/13819)), one open question is how to distribute skills across repositories. Currently:
- **MCP tools**: Require manual configuration in `settings.json` or `mcp.json`
- **Skills**: Must be copied to each repo's `.github/skills/` folder
- **Cross-repo discovery**: Skills only work in the repo where they're placed
## What is a CLI Plugin?
CLI plugins are packages that bundle:
- **MCP servers** (auto-configured, no manual setup)
- **Skills** (available everywhere, not tied to repo)
- **Hooks** (optional: pre-commit, post-command actions)
They work across multiple AI CLIs (GitHub Copilot CLI, Claude CLI, potentially others) - similar to how Chromium-based extensions work across Chrome, Edge, Brave.
**Reference**: [Claude Code Plugins Documentation](https://docs.anthropic.com/en/docs/claude-code/plugins)
## Proposed Plugin Structure
```
azure-sdk-tools-plugin/
├── plugin.json # Plugin manifest
├── mcp/
│ └── azsdk-cli config # Auto-configures our MCP server
├── skills/
│ ├── typespec-new-project/ # TypeSpec workflow
│ ├── sdk-release-workflow/ # Release process guidance
│ ├── sdk-package-lifecycle/ # Build, test, generate
│ └── swagger-to-typespec/ # Migration guidance
└── hooks/ # Optional automation
```
## Value for SDK Teams
| Scenario | Without Plugin | With Plugin |
|----------|---------------|-------------|
| New team member onboards | Manual MCP config + copy skills | `gh copilot plugin install azure-sdk-tools` |
| TypeSpec user in `azure-rest-api-specs` | Has skill locally only | Same skill, auto-available |
| SDK developer in `azure-sdk-for-python` | Must copy skills from tools repo | Same skills, auto-available |
| External contributor | No MCP, no skills | One install → full tooling |
## Questions to Answer
1. **Is the UX improvement worth the investment?** How much friction does manual setup actually cause?
2. **What's the maintenance overhead?** Plugin versioning, updates, compatibility testing
3. **Cross-CLI compatibility**: Do plugins actually work across GHCP CLI, Claude CLI, etc.?
4. **Distribution mechanism**: npm? GitHub releases? Internal registry?
5. **Authentication**: How do plugins handle Azure auth for MCP tools?
## Success Criteria
- [ ] Document plugin creation process for our stack
- [ ] Prototype minimal plugin with 1 skill + MCP server config
- [ ] Test on GitHub Copilot CLI and Claude CLI
- [ ] Measure setup time: manual config vs plugin install
- [ ] Determine if this solves cross-repo discovery better than copy-to-repo
## Priority
**Low** - This is a distribution optimization. First validate skills are valuable (PoC in #13819), then consider packaging improvements.
## Related
- Skills PoC: #13819
Contributor guide
Research direction
Start with the Skills PoC in #13819 and the Claude Code Plugins documentation linked in the issue. Compare the proposed plugin.json, mcp/azsdk-cli, skills/, and hooks/ structure by prototyping one skill and the MCP server configuration, then test installation on GitHub Copilot CLI and Claude CLI against the listed success criteria.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cli, github
- Domain
- cli, developer-experience, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100