CLAUDE.md · VikashLoomba/copilot-mcp
CLAUDE.md from VikashLoomba/copilot-mcp: 158 lines covering Project Overview, Development Commands, Architecture Overview, Development Guidelines and more.
Template by VikashLoomba
Chalk Labs
Need help deploying CLAUDE.md · VikashLoomba/copilot-mcp?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code. Read the repository before you give any tool access to your data.
curl -fsSL https://raw.githubusercontent.com/VikashLoomba/copilot-mcp/main/CLAUDE.md -o CLAUDE.md
Read it and adapt it to your project before use.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: prompt-engineering
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
What's in it
A CLAUDE.md file: project memory Claude Code loads at the start of every session.
- For
- Claude Code
- Length
- 158 lines
- File
CLAUDE.md
Sections
- Project Overview
- Development Commands
- Architecture Overview
- Development Guidelines
- CloudMCP Integration Architecture
First lines (shown under the repo's GPL-3.0 license)
# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## Project Overview
Copilot MCP is a VSCode extension that enables searching, managing, and installing Model Context Protocol (MCP) servers. It extends GitHub Copilot Chat's capabilities by providing a chat participant interface and a sidebar UI for MCP server discovery.
## Development Commands
### Root Directory Commands
```bash
# Install dependencies for both extension and web UI
npm run install:all
# Build both extension and web UI
npm run build:all
# Development mode - watch for changes
npm run watch
# Run tests
npm run test
# Lint the codebase
npm run lint
# Package extension for production
npm run package
# Create VSIX package for distribution
npm run package-extension
```
### Web UI Commands (from /web directory)
```bash
# Start development server
npm run start
# Build for production
npm run build
# Run linting
npm run lint
```
## Architecture Overview
### Extension Structure
- **Entry Point**: `src/extension.ts` - Activates extension, registers chat participant and webview
- **Chat Participant**: `src/McpAgent.ts` - Handles `@mcp` chat commands (`/search`, `/install`)
- **Webview Panel**: `src/panels/ExtensionPanel.ts` - Manages sidebar UI communication
- **GitHub Integration**: `src/utilities/repoSearch.ts` - Searches GitHub for MCP servers
- **Copilot Integration**: `src/utilities/CopilotChat.ts` - Interfaces with GitHub Copilot
### Web UI Structure
- Separate React application in `/web/` directory
- Built with Vite, React 19, TypeScript, and Tailwind CSS
- Uses shadcn/ui component library
- Communicates with extension via VSCode postMessage API
### Key Technologies
- **Build**: esbuild for extension bundling, Vite for web UI
- **AI/LLM**: @ax-llm/ax agent framework, AI SDK for model interactions
- **Testing**: VSCode test framework with Mocha
- **Telemetry**: Application Insights and OpenTelemetry integration
## Development Guidelines
### Testing Changes
1. Run `npm run watch` in root directory for continuous builds
2. Press F5 in VSCode to launch Extension Development Host
3. Test chat participant with `@mcp /search <query>` or `@mcp /install <repo>`
4. Test sidebar UI functionality
### Code Conventions
- TypeScript strict mode enabled
- ESLint configuration in `eslint.config.mjs`
- React components use function components with TypeScript
- Telemetry events follow consistent naming: `mcp_<action>_<target>`
### Important Files
- `package.json` - Extension manifest and scripts
- `src/types/registry.ts` - MCP server registry types
- `src/shared/types/rpcTypes.ts` - VSCode messaging types
- `web/src/components/` - React UI components
- `src/utilities/cloudMcpIndexer.ts` - CloudMCP API integration for server indexing
## CloudMCP Integration Architecture
### Current Implementation (Individual Async Loading)
The architecture uses individual async loading where each repo card independently fetches its CloudMCP details:
1. **Search Flow**:
- User enters search query in `SearchMCPServers.tsx`
- Component sends `searchServersType` request to backend via vscode-messenger
- `ExtensionPanel.ts` receives request and calls `searchMcpServers()` to get GitHub results
- Results are returned immediately without CloudMCP details
- Each `RepoCard` independently requests its CloudMCP status on mount
2. **Data Structures**:
```typescript
// Search response (no CloudMCP details)
{
results: McpServerResult[],
totalCount: number,
currentPage: number,
perPage: number
}
// Individual CloudMCP check request/response
checkCloudMcpType: RequestType<{
repoUrl: string;
repoName: string;
repoFullName?: string;
}, CloudMcpCheckResult>
// CloudMcpCheckResult structure
{
success: boolean,
exists: boolean,
installConfig?: {
name: string,
command: string,
args: string[],
env: Record<string, string>,
inputs: InstallConfigInput[]
},
error?: string
}
```
3. **Frontend Processing**:
- `SearchMCPServers` renders results immediately without CloudMCP details
- Each `RepoCard` fetches its own CloudMCP details via `checkCloudMcpType` request
- Install button shows "Loading..." while `isLoadingCloudMcp` is true
- Button enables when `cloudMcpDetails.success && cloudMcpDetails.installConfig`
- Uses `setShouldShowInstallButton` to control install button visibility
4. **Caching Strategy**:
- `CloudMcpIndexer` maintains a 5-minute TTL cache
- Cache key uses `fullName` if available, otherwise `url`
- Successful results are cached; failures are not cached
- Cache prevents duplicate API calls for the same repository
### Benefits of Current Architecture
- **Instant search results**: Cards appear immediately with GitHub data
- **Progressive enhancement**: Install buttons activate as CloudMCP data arrives
- **Better perceived performance**: No waiting for batch processing
- **Efficient resource usage**: Only checks visible repositories
- **Smart caching**: Reduces redundant CloudMCP API calls
### Implementation Details
- **RPC Communication**: Uses `vscode-messenger` for type-safe messaging
- **Error Handling**: Failed CloudMCP checks don't block UI rendering
- **State Management**: Each RepoCard manages its own CloudMCP loading state
- **Telemetry**: Tracks cache hits/misses and CloudMCP check performanceSignals
- Stars
- 505
- Forks
- 55
- Open issues
- 5
- Last commit (this folder)
- Jul 2, 2025 (1 year ago)
- Last release
- Jun 15, 2026 (4 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- GPL-3.0
- Repository
- github.com/VikashLoomba/copilot-mcp
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from VikashLoomba
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get CLAUDE.md · VikashLoomba/copilot-mcp running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
CLAUDE.md · VikashLoomba/copilot-mcp. Agent Mart. https://agentmart.dev/templates/vikashloomba-copilot-mcp-claude-md (last updated 2026-10-24)