Azure / Azure/azure-sdk-tools

Investigate: CLI Plugin for azsdk-cli distribution (MCP + Skills)

Open
#13,849 0 comments 0 reactions 0 assignees View on GitHub
needs-triage
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.