github-to-mcp-monorepo 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +8 -0
- package/.github/CODEOWNERS +6 -0
- package/.husky/pre-commit +1 -0
- package/.nvmrc +1 -0
- package/.prettierignore +5 -0
- package/.prettierrc +7 -0
- package/.vscode/settings.json +4 -0
- package/ARCHITECTURE.md +1429 -0
- package/CHANGELOG.md +167 -0
- package/CONTRIBUTING.md +327 -0
- package/LICENSE +201 -0
- package/README.md +1028 -0
- package/SECURITY.md +248 -0
- package/VISUAL_GUIDE.md +437 -0
- package/apps/vscode/IMPLEMENTATION.md +480 -0
- package/apps/vscode/README.md +248 -0
- package/apps/vscode/package.json +381 -0
- package/apps/vscode/resources/icon.png +0 -0
- package/apps/vscode/resources/icon.svg +5 -0
- package/apps/vscode/src/commands/browseRegistry.ts +211 -0
- package/apps/vscode/src/commands/configureClaudeDesktop.ts +332 -0
- package/apps/vscode/src/commands/convert.ts +82 -0
- package/apps/vscode/src/commands/convertCurrentRepo.ts +109 -0
- package/apps/vscode/src/commands/convertFromUrl.ts +138 -0
- package/apps/vscode/src/commands/index.ts +121 -0
- package/apps/vscode/src/commands/validate.ts +197 -0
- package/apps/vscode/src/extension.ts +464 -0
- package/apps/vscode/src/global.d.ts +36 -0
- package/apps/vscode/src/test/extension.test.ts +73 -0
- package/apps/vscode/src/utils/file-generator.ts +529 -0
- package/apps/vscode/src/utils/github-api.ts +335 -0
- package/apps/vscode/src/utils/index.ts +29 -0
- package/apps/vscode/src/utils/mcp-config.ts +334 -0
- package/apps/vscode/src/utils/storage.ts +87 -0
- package/apps/vscode/src/views/McpServersTreeView.ts +160 -0
- package/apps/vscode/src/views/OutputChannelView.ts +195 -0
- package/apps/vscode/src/views/StatusBarItem.ts +251 -0
- package/apps/vscode/src/views/ToolsExplorerView.ts +314 -0
- package/apps/vscode/src/views/historyProvider.ts +75 -0
- package/apps/vscode/src/views/index.ts +12 -0
- package/apps/vscode/src/views/resultsPanel.ts +330 -0
- package/apps/vscode/src/webviews/ConversionPanel.ts +350 -0
- package/apps/vscode/src/webviews/ToolDetailsPanel.ts +448 -0
- package/apps/vscode/src/webviews/index.ts +9 -0
- package/apps/vscode/src/webviews/webview-ui/styles.ts +492 -0
- package/apps/vscode/tsconfig.json +20 -0
- package/apps/web/PLAYGROUND_GUIDE.md +499 -0
- package/apps/web/README.md +505 -0
- package/apps/web/app/api/convert/route.ts +100 -0
- package/apps/web/app/api/convert/stream/route.ts +198 -0
- package/apps/web/app/api/deploy/route.ts +157 -0
- package/apps/web/app/api/edge/route.ts +308 -0
- package/apps/web/app/api/export-docker/route.ts +284 -0
- package/apps/web/app/api/generate-openapi/route.ts +119 -0
- package/apps/web/app/api/mcp/[serverId]/route.ts +263 -0
- package/apps/web/app/api/playground/connect/route.ts +143 -0
- package/apps/web/app/api/playground/disconnect/route.ts +78 -0
- package/apps/web/app/api/playground/execute/route.ts +135 -0
- package/apps/web/app/api/playground/sessions/route.ts +103 -0
- package/apps/web/app/api/playground/tools/route.ts +117 -0
- package/apps/web/app/api/playground/v2/connect/route.ts +96 -0
- package/apps/web/app/api/playground/v2/disconnect/route.ts +88 -0
- package/apps/web/app/api/playground/v2/health/route.ts +80 -0
- package/apps/web/app/api/playground/v2/prompts/route.ts +160 -0
- package/apps/web/app/api/playground/v2/resources/route.ts +159 -0
- package/apps/web/app/api/playground/v2/sessions/route.ts +184 -0
- package/apps/web/app/api/playground/v2/tools/route.ts +167 -0
- package/apps/web/app/api/stream/route.ts +232 -0
- package/apps/web/app/batch/BatchConvertClient.tsx +190 -0
- package/apps/web/app/batch/page.tsx +37 -0
- package/apps/web/app/convert/page.tsx +269 -0
- package/apps/web/app/dashboard/page.tsx +380 -0
- package/apps/web/app/globals.css +622 -0
- package/apps/web/app/layout.tsx +120 -0
- package/apps/web/app/manifest.ts +31 -0
- package/apps/web/app/opengraph-image.tsx +112 -0
- package/apps/web/app/page.old.tsx +924 -0
- package/apps/web/app/page.tsx +77 -0
- package/apps/web/app/playground/page.tsx +306 -0
- package/apps/web/app/playground/v2/error.tsx +163 -0
- package/apps/web/app/playground/v2/layout.tsx +58 -0
- package/apps/web/app/playground/v2/loading.tsx +152 -0
- package/apps/web/app/playground/v2/page.tsx +644 -0
- package/apps/web/app/playground/v2/providers.tsx +214 -0
- package/apps/web/app/playground/v2/use-shortcuts.ts +209 -0
- package/apps/web/app/playground/v2/use-url-state.ts +296 -0
- package/apps/web/app/providers.tsx +22 -0
- package/apps/web/app/sitemap.ts +32 -0
- package/apps/web/app/twitter-image.tsx +112 -0
- package/apps/web/components/BranchSelector.tsx +401 -0
- package/apps/web/components/ClaudeConfigExport.tsx +226 -0
- package/apps/web/components/Features.tsx +84 -0
- package/apps/web/components/Footer.tsx +119 -0
- package/apps/web/components/GenerationProgress.tsx +248 -0
- package/apps/web/components/GithubUrlInput.tsx +483 -0
- package/apps/web/components/Header.tsx +175 -0
- package/apps/web/components/Hero.tsx +117 -0
- package/apps/web/components/HowItWorks.tsx +119 -0
- package/apps/web/components/InstallBanner.tsx +158 -0
- package/apps/web/components/Logo.tsx +116 -0
- package/apps/web/components/ParticleBackground.tsx +105 -0
- package/apps/web/components/Playground.tsx +472 -0
- package/apps/web/components/PlaygroundToolTester.tsx +410 -0
- package/apps/web/components/ProductCards.tsx +179 -0
- package/apps/web/components/SplitView.tsx +194 -0
- package/apps/web/components/ToolFilter.tsx +260 -0
- package/apps/web/components/ToolList.tsx +325 -0
- package/apps/web/components/batch/BatchConvert.tsx +785 -0
- package/apps/web/components/batch/index.ts +7 -0
- package/apps/web/components/convert/ConfigTabs.tsx +230 -0
- package/apps/web/components/convert/ConversionResult.tsx +482 -0
- package/apps/web/components/convert/InlinePlayground.tsx +259 -0
- package/apps/web/components/convert/LoadingSteps.tsx +311 -0
- package/apps/web/components/convert/OneClickInstall.tsx +224 -0
- package/apps/web/components/convert/ToolCard.tsx +189 -0
- package/apps/web/components/convert/TryInPlayground.tsx +242 -0
- package/apps/web/components/convert/index.ts +12 -0
- package/apps/web/components/deploy/DeployButton.tsx +369 -0
- package/apps/web/components/deploy/index.ts +7 -0
- package/apps/web/components/docker/DockerExport.tsx +690 -0
- package/apps/web/components/docker/index.ts +7 -0
- package/apps/web/components/install/OneClickInstall.tsx +676 -0
- package/apps/web/components/install/index.ts +7 -0
- package/apps/web/components/playground/CapabilityTabs.tsx +150 -0
- package/apps/web/components/playground/ConnectionStatusV2.tsx +322 -0
- package/apps/web/components/playground/EmptyStates.tsx +305 -0
- package/apps/web/components/playground/ExecutionLog.tsx +260 -0
- package/apps/web/components/playground/ExecutionLogV2.tsx +378 -0
- package/apps/web/components/playground/JsonViewer.tsx +388 -0
- package/apps/web/components/playground/PlaygroundLayout.tsx +244 -0
- package/apps/web/components/playground/PromptsPanel.tsx +385 -0
- package/apps/web/components/playground/ResourcesPanel.tsx +378 -0
- package/apps/web/components/playground/SchemaForm.tsx +477 -0
- package/apps/web/components/playground/ServerStatus.tsx +151 -0
- package/apps/web/components/playground/ShareButton.tsx +239 -0
- package/apps/web/components/playground/ToolsPanel.tsx +309 -0
- package/apps/web/components/playground/TransportConfigurator.tsx +563 -0
- package/apps/web/components/playground/index.ts +74 -0
- package/apps/web/components/playground/types.ts +202 -0
- package/apps/web/components/streaming/StreamingProgress.tsx +441 -0
- package/apps/web/components/streaming/index.ts +7 -0
- package/apps/web/components/ui/badge.tsx +42 -0
- package/apps/web/components/ui/button.tsx +88 -0
- package/apps/web/components/ui/card.tsx +75 -0
- package/apps/web/components/ui/code-block.tsx +122 -0
- package/apps/web/components/ui/index.ts +12 -0
- package/apps/web/components/ui/input.tsx +55 -0
- package/apps/web/components/ui/tabs.tsx +61 -0
- package/apps/web/hooks/index.ts +85 -0
- package/apps/web/hooks/types.ts +1173 -0
- package/apps/web/hooks/use-conversion.ts +133 -0
- package/apps/web/hooks/use-execution-history.ts +376 -0
- package/apps/web/hooks/use-generation-progress.ts +147 -0
- package/apps/web/hooks/use-local-storage.ts +88 -0
- package/apps/web/hooks/use-mcp-client.ts +623 -0
- package/apps/web/hooks/use-mcp-connection.ts +500 -0
- package/apps/web/hooks/use-mcp-execution.ts +282 -0
- package/apps/web/hooks/use-mcp-prompts.ts +441 -0
- package/apps/web/hooks/use-mcp-resources.ts +430 -0
- package/apps/web/hooks/use-mcp-tools.ts +540 -0
- package/apps/web/hooks/use-playground-store.ts +299 -0
- package/apps/web/hooks/use-playground.ts +184 -0
- package/apps/web/hooks/use-streaming-conversion.ts +227 -0
- package/apps/web/hooks/useBatchConversion.ts +271 -0
- package/apps/web/hooks/useDockerConfig.ts +161 -0
- package/apps/web/hooks/usePlatformDetection.ts +80 -0
- package/apps/web/hooks/useStreaming.ts +199 -0
- package/apps/web/lib/api/errors.ts +386 -0
- package/apps/web/lib/api/index.ts +137 -0
- package/apps/web/lib/api/logger.ts +187 -0
- package/apps/web/lib/api/middleware.ts +364 -0
- package/apps/web/lib/api/openapi.ts +977 -0
- package/apps/web/lib/api/session-manager.ts +594 -0
- package/apps/web/lib/api/types.ts +433 -0
- package/apps/web/lib/api/validation.ts +523 -0
- package/apps/web/lib/constants.ts +114 -0
- package/apps/web/lib/mcp/client.ts +1137 -0
- package/apps/web/lib/mcp/events.ts +651 -0
- package/apps/web/lib/mcp/index.ts +347 -0
- package/apps/web/lib/mcp/logger.ts +428 -0
- package/apps/web/lib/mcp/metrics.ts +703 -0
- package/apps/web/lib/mcp/retry.ts +616 -0
- package/apps/web/lib/mcp/session-manager.ts +779 -0
- package/apps/web/lib/mcp/transports.ts +988 -0
- package/apps/web/lib/mcp/types.ts +594 -0
- package/apps/web/lib/mcp-client-enhanced.ts +871 -0
- package/apps/web/lib/mcp-client.ts +778 -0
- package/apps/web/lib/mcp-errors.ts +489 -0
- package/apps/web/lib/mcp-sandbox.ts +593 -0
- package/apps/web/lib/mcp-testing.ts +428 -0
- package/apps/web/lib/mcp-types.ts +448 -0
- package/apps/web/lib/playground-store.tsx +1147 -0
- package/apps/web/lib/utils.ts +439 -0
- package/apps/web/next-env.d.ts +5 -0
- package/apps/web/next.config.js +23 -0
- package/apps/web/package.json +55 -0
- package/apps/web/postcss.config.js +6 -0
- package/apps/web/public/.well-known/ai-plugin.json +17 -0
- package/apps/web/public/logo.svg +6 -0
- package/apps/web/public/robots.txt +22 -0
- package/apps/web/public/schema.json +27 -0
- package/apps/web/tailwind.config.js +26 -0
- package/apps/web/tailwind.config.ts +123 -0
- package/apps/web/tsconfig.json +20 -0
- package/apps/web/types/deploy.ts +139 -0
- package/apps/web/types/index.ts +247 -0
- package/apps/web/vercel.json +39 -0
- package/eslint.config.mjs +23 -0
- package/llms.txt +102 -0
- package/mkdocs/docs/api/core.md +318 -0
- package/mkdocs/docs/api/index.md +128 -0
- package/mkdocs/docs/api/mcp-server.md +301 -0
- package/mkdocs/docs/api/openapi-parser.md +254 -0
- package/mkdocs/docs/assets/logo.svg +7 -0
- package/mkdocs/docs/changelog.md +118 -0
- package/mkdocs/docs/cli/generate.md +148 -0
- package/mkdocs/docs/cli/index.md +52 -0
- package/mkdocs/docs/cli/inspect.md +164 -0
- package/mkdocs/docs/cli/serve.md +136 -0
- package/mkdocs/docs/concepts/classification.md +254 -0
- package/mkdocs/docs/concepts/how-it-works.md +299 -0
- package/mkdocs/docs/concepts/index.md +77 -0
- package/mkdocs/docs/concepts/mcp-protocol.md +362 -0
- package/mkdocs/docs/concepts/tool-types.md +382 -0
- package/mkdocs/docs/contributing/architecture.md +262 -0
- package/mkdocs/docs/contributing/development.md +245 -0
- package/mkdocs/docs/contributing/index.md +73 -0
- package/mkdocs/docs/contributing/testing.md +320 -0
- package/mkdocs/docs/getting-started/configuration.md +235 -0
- package/mkdocs/docs/getting-started/index.md +54 -0
- package/mkdocs/docs/getting-started/installation.md +145 -0
- package/mkdocs/docs/getting-started/quickstart.md +160 -0
- package/mkdocs/docs/guides/batch.md +375 -0
- package/mkdocs/docs/guides/claude-desktop.md +227 -0
- package/mkdocs/docs/guides/cursor.md +188 -0
- package/mkdocs/docs/guides/custom-tools.md +367 -0
- package/mkdocs/docs/guides/index.md +78 -0
- package/mkdocs/docs/guides/private-repos.md +221 -0
- package/mkdocs/docs/guides/vscode.md +247 -0
- package/mkdocs/docs/index.md +175 -0
- package/mkdocs/docs/reference/config.md +223 -0
- package/mkdocs/docs/reference/env.md +192 -0
- package/mkdocs/docs/reference/index.md +102 -0
- package/mkdocs/docs/reference/tools.md +309 -0
- package/mkdocs/docs/stylesheets/extra.css +231 -0
- package/mkdocs/mkdocs.yml +204 -0
- package/mkdocs/overrides/.gitkeep +1 -0
- package/mkdocs/overrides/main.html +7 -0
- package/mkdocs/python-deps.txt +7 -0
- package/mkdocs/vercel.json +11 -0
- package/package.json +63 -0
- package/packages/core/package.json +61 -0
- package/packages/core/src/__tests__/bitbucket-client.test.ts +366 -0
- package/packages/core/src/__tests__/cli.test.ts +235 -0
- package/packages/core/src/__tests__/code-extractor.test.ts +378 -0
- package/packages/core/src/__tests__/docker-generator.test.ts +255 -0
- package/packages/core/src/__tests__/github-client.test.ts +390 -0
- package/packages/core/src/__tests__/gitlab-client.test.ts +319 -0
- package/packages/core/src/__tests__/go-extractor.test.ts +351 -0
- package/packages/core/src/__tests__/graphql-extractor.test.ts +330 -0
- package/packages/core/src/__tests__/java-extractor.test.ts +497 -0
- package/packages/core/src/__tests__/plugins.test.ts +467 -0
- package/packages/core/src/__tests__/readme-extractor.test.ts +258 -0
- package/packages/core/src/__tests__/redis-cache.test.ts +307 -0
- package/packages/core/src/__tests__/rust-extractor.test.ts +252 -0
- package/packages/core/src/__tests__/streaming.test.ts +251 -0
- package/packages/core/src/additional-extractors.ts +333 -0
- package/packages/core/src/cache/cache-interface.ts +179 -0
- package/packages/core/src/cache/index.ts +210 -0
- package/packages/core/src/cache/redis-cache.ts +291 -0
- package/packages/core/src/cache/upstash-cache.ts +379 -0
- package/packages/core/src/cache.ts +251 -0
- package/packages/core/src/cli.ts +822 -0
- package/packages/core/src/code-extractor.ts +696 -0
- package/packages/core/src/docker-generator.ts +470 -0
- package/packages/core/src/edge-compatible.ts +491 -0
- package/packages/core/src/extractors/go-extractor.ts +791 -0
- package/packages/core/src/extractors/index.ts +9 -0
- package/packages/core/src/extractors/java-extractor.ts +937 -0
- package/packages/core/src/extractors/rust-extractor.ts +744 -0
- package/packages/core/src/github-client.ts +319 -0
- package/packages/core/src/go-generator.ts +356 -0
- package/packages/core/src/graphql-extractor.ts +358 -0
- package/packages/core/src/index.ts +797 -0
- package/packages/core/src/langchain-exporter.ts +617 -0
- package/packages/core/src/language-parsers.ts +1114 -0
- package/packages/core/src/mcp-introspector.ts +279 -0
- package/packages/core/src/monorepo-detector.ts +378 -0
- package/packages/core/src/plugins/index.ts +370 -0
- package/packages/core/src/plugins/registry.ts +404 -0
- package/packages/core/src/plugins/types.ts +215 -0
- package/packages/core/src/providers/base-provider.ts +246 -0
- package/packages/core/src/providers/bitbucket-client.ts +464 -0
- package/packages/core/src/providers/gitlab-client.ts +388 -0
- package/packages/core/src/providers/index.ts +176 -0
- package/packages/core/src/python-generator.ts +260 -0
- package/packages/core/src/queue/index.ts +100 -0
- package/packages/core/src/queue/memory-queue.ts +445 -0
- package/packages/core/src/queue/redis-queue.ts +578 -0
- package/packages/core/src/queue/types.ts +251 -0
- package/packages/core/src/readme-extractor.ts +409 -0
- package/packages/core/src/schema-generator.ts +638 -0
- package/packages/core/src/streaming.ts +999 -0
- package/packages/core/src/types.ts +289 -0
- package/packages/core/tsconfig.json +9 -0
- package/packages/core/tsup.config.ts +25 -0
- package/packages/mcp-server/README.md +297 -0
- package/packages/mcp-server/package.json +55 -0
- package/packages/mcp-server/src/__tests__/mcp-server.test.ts +177 -0
- package/packages/mcp-server/src/__tests__/tools.test.ts +217 -0
- package/packages/mcp-server/src/index.ts +1206 -0
- package/packages/mcp-server/src/prompts/index.ts +601 -0
- package/packages/mcp-server/src/tools/export-docker.ts +362 -0
- package/packages/mcp-server/src/tools/generate-openapi.ts +162 -0
- package/packages/mcp-server/src/tools/monitor-mcp-server.ts +448 -0
- package/packages/mcp-server/src/tools/stream-convert.ts +398 -0
- package/packages/mcp-server/src/tools/test-mcp-tool.ts +531 -0
- package/packages/mcp-server/tsconfig.json +12 -0
- package/packages/mcp-server/tsup.config.ts +14 -0
- package/packages/openapi-parser/package-lock.json +3028 -0
- package/packages/openapi-parser/package.json +41 -0
- package/packages/openapi-parser/src/analyzer.ts +700 -0
- package/packages/openapi-parser/src/asyncapi-parser.ts +475 -0
- package/packages/openapi-parser/src/cli.ts +302 -0
- package/packages/openapi-parser/src/generator.ts +570 -0
- package/packages/openapi-parser/src/generators/express-analyzer.ts +649 -0
- package/packages/openapi-parser/src/generators/fastapi-analyzer.ts +960 -0
- package/packages/openapi-parser/src/generators/index.ts +200 -0
- package/packages/openapi-parser/src/generators/nextjs-analyzer.ts +768 -0
- package/packages/openapi-parser/src/generators/openapi-builder.ts +527 -0
- package/packages/openapi-parser/src/generators/types.ts +298 -0
- package/packages/openapi-parser/src/graphql-parser.ts +462 -0
- package/packages/openapi-parser/src/grpc-parser.ts +649 -0
- package/packages/openapi-parser/src/har-parser.ts +723 -0
- package/packages/openapi-parser/src/index.ts +635 -0
- package/packages/openapi-parser/src/insomnia-parser.ts +614 -0
- package/packages/openapi-parser/src/parser.ts +231 -0
- package/packages/openapi-parser/src/postman-parser.ts +611 -0
- package/packages/openapi-parser/src/ref-resolver.ts +313 -0
- package/packages/openapi-parser/src/transformer.ts +459 -0
- package/packages/openapi-parser/tests/generators/express.test.ts +209 -0
- package/packages/openapi-parser/tests/generators/fastapi.test.ts +236 -0
- package/packages/openapi-parser/tests/generators/nextjs.test.ts +273 -0
- package/packages/openapi-parser/tests/parsers.test.ts +847 -0
- package/packages/openapi-parser/tsconfig.json +9 -0
- package/packages/openapi-parser/tsup.config.ts +11 -0
- package/packages/registry/package.json +59 -0
- package/packages/registry/src/cli.ts +456 -0
- package/packages/registry/src/index.ts +44 -0
- package/packages/registry/src/popular/github.json +47 -0
- package/packages/registry/src/popular/index.ts +55 -0
- package/packages/registry/src/popular/linear.json +42 -0
- package/packages/registry/src/popular/notion.json +42 -0
- package/packages/registry/src/popular/openai.json +40 -0
- package/packages/registry/src/popular/resend.json +38 -0
- package/packages/registry/src/popular/slack.json +42 -0
- package/packages/registry/src/popular/stripe.json +163 -0
- package/packages/registry/src/popular/supabase.json +42 -0
- package/packages/registry/src/popular/twilio.json +40 -0
- package/packages/registry/src/popular/vercel.json +40 -0
- package/packages/registry/src/registry.ts +492 -0
- package/packages/registry/src/storage.ts +334 -0
- package/packages/registry/src/types.ts +275 -0
- package/packages/registry/src/updater.ts +208 -0
- package/packages/registry/tsconfig.json +10 -0
- package/packages/registry/tsup.config.ts +11 -0
- package/pnpm-workspace.yaml +3 -0
- package/scripts/build-docs.sh +16 -0
- package/server.json +9 -0
- package/templates/Dockerfile.python.template +60 -0
- package/templates/Dockerfile.typescript.template +60 -0
- package/templates/docker-compose.template.yml +68 -0
- package/tests/fixtures/express-app/index.js +34 -0
- package/tests/fixtures/express-app/routes/posts.js +43 -0
- package/tests/fixtures/express-app/routes/users.js +58 -0
- package/tests/fixtures/fastapi-app/main.py +125 -0
- package/tests/fixtures/fastapi-app/routes/admin.py +42 -0
- package/tests/fixtures/graphql/simple-schema.graphql +65 -0
- package/tests/fixtures/mocks/github-api-responses.json +63 -0
- package/tests/fixtures/nextjs-app/app/api/posts/route.ts +55 -0
- package/tests/fixtures/nextjs-app/app/api/users/[id]/route.ts +63 -0
- package/tests/fixtures/nextjs-app/app/api/users/route.ts +44 -0
- package/tests/fixtures/nextjs-app/pages/api/health.ts +28 -0
- package/tests/fixtures/openapi/petstore.yaml +179 -0
- package/tests/integration/langchain-export.test.ts +405 -0
- package/tests/integration/openapi-conversion.test.ts +221 -0
- package/tsconfig.json +18 -0
- package/vitest.config.ts +32 -0
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
# GitHub to MCP VS Code Extension
|
|
2
|
+
|
|
3
|
+
Convert GitHub repositories to MCP (Model Context Protocol) servers directly from VS Code. Generate ready-to-use MCP tools from any GitHub repository's APIs, documentation, and code.
|
|
4
|
+
|
|
5
|
+
 
|
|
6
|
+
|
|
7
|
+
## Features
|
|
8
|
+
|
|
9
|
+
### 🔄 Multiple Conversion Methods
|
|
10
|
+
|
|
11
|
+
#### Convert from URL
|
|
12
|
+
Enter any GitHub repository URL to convert:
|
|
13
|
+
- Press `Ctrl+Shift+M` (or `Cmd+Shift+M` on Mac)
|
|
14
|
+
- Or use Command Palette: "GitHub to MCP: Convert from URL"
|
|
15
|
+
|
|
16
|
+

|
|
17
|
+
|
|
18
|
+
#### Convert Current Workspace
|
|
19
|
+
Convert the currently open GitHub repository:
|
|
20
|
+
- Press `Ctrl+Shift+Alt+M` (or `Cmd+Shift+Alt+M` on Mac)
|
|
21
|
+
- Or use Command Palette: "GitHub to MCP: Convert Current Workspace"
|
|
22
|
+
|
|
23
|
+
#### Convert from Clipboard
|
|
24
|
+
Quickly convert a GitHub URL from your clipboard:
|
|
25
|
+
- Run "GitHub to MCP: Convert from Clipboard"
|
|
26
|
+
|
|
27
|
+
### 📚 Server Registry
|
|
28
|
+
Browse and convert from a curated list of popular repositories:
|
|
29
|
+
- Run "GitHub to MCP: Browse Server Registry"
|
|
30
|
+
- Filter by category (AI Tools, Frameworks, APIs, etc.)
|
|
31
|
+
- Search by name or description
|
|
32
|
+
|
|
33
|
+

|
|
34
|
+
|
|
35
|
+
### 🖥️ Activity Bar Views
|
|
36
|
+
|
|
37
|
+
#### MCP Servers View
|
|
38
|
+
See all your converted MCP servers at a glance:
|
|
39
|
+
- Expandable tree showing servers and their tools
|
|
40
|
+
- Click to view details
|
|
41
|
+
- Right-click for quick actions
|
|
42
|
+
|
|
43
|
+
#### Tools Explorer
|
|
44
|
+
Explore all extracted tools across servers:
|
|
45
|
+
- Grouped by category
|
|
46
|
+
- Filter/search capability
|
|
47
|
+
- View tool parameters and descriptions
|
|
48
|
+
|
|
49
|
+
#### Conversion History
|
|
50
|
+
Track your conversion history:
|
|
51
|
+
- See recent conversions
|
|
52
|
+
- Quick access to results
|
|
53
|
+
- Remove or clear history
|
|
54
|
+
|
|
55
|
+

|
|
56
|
+
|
|
57
|
+
### 🎨 Webview Panels
|
|
58
|
+
|
|
59
|
+
#### Results Panel
|
|
60
|
+
Beautiful webview showing conversion results:
|
|
61
|
+
- Overview with statistics
|
|
62
|
+
- List of extracted tools with details
|
|
63
|
+
- Generated MCP server code
|
|
64
|
+
- Ready-to-use configuration snippets
|
|
65
|
+
|
|
66
|
+
#### Tool Details Panel
|
|
67
|
+
Inspect individual tools:
|
|
68
|
+
- Full description and parameters
|
|
69
|
+
- Parameter input fields for testing
|
|
70
|
+
- Copy tool definition
|
|
71
|
+
|
|
72
|
+
### ⚙️ Claude Desktop Integration
|
|
73
|
+
|
|
74
|
+
#### Auto-Configure Claude Desktop
|
|
75
|
+
Automatically add converted servers to your Claude Desktop config:
|
|
76
|
+
- Run "GitHub to MCP: Configure Claude Desktop"
|
|
77
|
+
- Select servers to add
|
|
78
|
+
- Choose output directory
|
|
79
|
+
- Config file updated automatically
|
|
80
|
+
|
|
81
|
+
#### Open Claude Config
|
|
82
|
+
Quickly access your Claude Desktop configuration file:
|
|
83
|
+
- Run "GitHub to MCP: Open Claude Desktop Config"
|
|
84
|
+
|
|
85
|
+
### 📊 Status Bar
|
|
86
|
+
- Shows when you're in a GitHub repository
|
|
87
|
+
- Click for quick actions menu
|
|
88
|
+
- Progress indicator during conversion
|
|
89
|
+
|
|
90
|
+
### 🔍 Auto-Detection
|
|
91
|
+
When you open a GitHub repository folder:
|
|
92
|
+
- The extension detects it automatically
|
|
93
|
+
- Offers to convert it to an MCP server
|
|
94
|
+
- Can be disabled in settings
|
|
95
|
+
|
|
96
|
+
## Commands
|
|
97
|
+
|
|
98
|
+
| Command | Keybinding | Description |
|
|
99
|
+
|---------|------------|-------------|
|
|
100
|
+
| Convert from URL | `Ctrl+Shift+M` | Enter a GitHub URL to convert |
|
|
101
|
+
| Convert Current Workspace | `Ctrl+Shift+Alt+M` | Convert the open repository |
|
|
102
|
+
| Convert from Clipboard | - | Convert URL from clipboard |
|
|
103
|
+
| Browse Server Registry | - | Browse popular repositories |
|
|
104
|
+
| Configure Claude Desktop | - | Auto-configure Claude Desktop |
|
|
105
|
+
| Open Claude Desktop Config | - | Open config file in editor |
|
|
106
|
+
| Copy MCP Config | - | Copy config for Claude/Cursor |
|
|
107
|
+
| Validate MCP Server | - | Validate a generated server file |
|
|
108
|
+
| Show Output | - | Show extension logs |
|
|
109
|
+
| Open Conversion Panel | `Ctrl+K Ctrl+M` | Open the conversion webview |
|
|
110
|
+
|
|
111
|
+
## Settings
|
|
112
|
+
|
|
113
|
+
| Setting | Type | Default | Description |
|
|
114
|
+
|---------|------|---------|-------------|
|
|
115
|
+
| `github-to-mcp.defaultPlatform` | string | `"claude"` | Default platform for config output |
|
|
116
|
+
| `github-to-mcp.autoDetect` | boolean | `true` | Auto-detect GitHub repos when opening |
|
|
117
|
+
| `github-to-mcp.historyLimit` | number | `20` | Maximum items in history |
|
|
118
|
+
| `github-to-mcp.alwaysShowStatusBar` | boolean | `false` | Always show status bar item |
|
|
119
|
+
| `github-to-mcp.githubToken` | string | `""` | GitHub token for higher API limits |
|
|
120
|
+
| `github-to-mcp.defaultOutputDirectory` | string | `""` | Default directory for server files |
|
|
121
|
+
| `github-to-mcp.defaultRuntime` | string | `"node"` | Default runtime (node/typescript/python) |
|
|
122
|
+
| `github-to-mcp.autoConfigureClaude` | boolean | `false` | Auto-add servers to Claude config |
|
|
123
|
+
| `github-to-mcp.showToolParameters` | boolean | `true` | Show parameters in Tools Explorer |
|
|
124
|
+
| `github-to-mcp.logLevel` | string | `"info"` | Logging level (debug/info/warn/error) |
|
|
125
|
+
|
|
126
|
+
## Installation
|
|
127
|
+
|
|
128
|
+
### From VS Code Marketplace
|
|
129
|
+
1. Open VS Code
|
|
130
|
+
2. Go to Extensions (`Ctrl+Shift+X`)
|
|
131
|
+
3. Search for "GitHub to MCP"
|
|
132
|
+
4. Click Install
|
|
133
|
+
|
|
134
|
+
### From VSIX File
|
|
135
|
+
1. Download the `.vsix` file from [Releases](https://github.com/nirholas/github-to-mcp/releases)
|
|
136
|
+
2. In VS Code, run "Extensions: Install from VSIX..."
|
|
137
|
+
3. Select the downloaded file
|
|
138
|
+
|
|
139
|
+
### From Source
|
|
140
|
+
1. Clone the repository:
|
|
141
|
+
```bash
|
|
142
|
+
git clone https://github.com/nirholas/github-to-mcp.git
|
|
143
|
+
cd github-to-mcp
|
|
144
|
+
```
|
|
145
|
+
2. Install dependencies:
|
|
146
|
+
```bash
|
|
147
|
+
pnpm install
|
|
148
|
+
```
|
|
149
|
+
3. Build the extension:
|
|
150
|
+
```bash
|
|
151
|
+
cd apps/vscode
|
|
152
|
+
pnpm run build
|
|
153
|
+
```
|
|
154
|
+
4. Press `F5` to launch in debug mode
|
|
155
|
+
|
|
156
|
+
## Usage Guide
|
|
157
|
+
|
|
158
|
+
### Quick Start
|
|
159
|
+
|
|
160
|
+
1. **Install the extension** from the VS Code Marketplace
|
|
161
|
+
|
|
162
|
+
2. **Convert a repository:**
|
|
163
|
+
- Press `Ctrl+Shift+M`
|
|
164
|
+
- Enter a GitHub URL like `https://github.com/stripe/stripe-node`
|
|
165
|
+
- Wait for analysis to complete
|
|
166
|
+
|
|
167
|
+
3. **View results:**
|
|
168
|
+
- Results panel opens automatically
|
|
169
|
+
- See extracted tools and generated code
|
|
170
|
+
- Copy configuration for your AI assistant
|
|
171
|
+
|
|
172
|
+
4. **Configure Claude Desktop:**
|
|
173
|
+
- Run "GitHub to MCP: Configure Claude Desktop"
|
|
174
|
+
- Select servers to add
|
|
175
|
+
- Restart Claude Desktop
|
|
176
|
+
|
|
177
|
+
### Example Workflow
|
|
178
|
+
|
|
179
|
+
```
|
|
180
|
+
1. Find an interesting GitHub repo (e.g., an API client library)
|
|
181
|
+
2. Copy the URL: https://github.com/openai/openai-node
|
|
182
|
+
3. In VS Code, press Ctrl+Shift+M
|
|
183
|
+
4. Paste the URL and press Enter
|
|
184
|
+
5. View the extracted tools in the results panel
|
|
185
|
+
6. Click "Configure Claude Desktop" to add to your config
|
|
186
|
+
7. Restart Claude Desktop
|
|
187
|
+
8. Start using the new tools in Claude!
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### Working with Generated Servers
|
|
191
|
+
|
|
192
|
+
The extension generates MCP server code that you can:
|
|
193
|
+
- **Export** to a directory for customization
|
|
194
|
+
- **Copy** the configuration snippet
|
|
195
|
+
- **Run** directly with Node.js or Python
|
|
196
|
+
|
|
197
|
+
Generated files include:
|
|
198
|
+
- `index.js` - Main server file
|
|
199
|
+
- `package.json` - Dependencies
|
|
200
|
+
- `README.md` - Documentation
|
|
201
|
+
|
|
202
|
+
## API Reference
|
|
203
|
+
|
|
204
|
+
The extension uses the `@nirholas/github-to-mcp` core library which:
|
|
205
|
+
- Analyzes GitHub repositories
|
|
206
|
+
- Extracts OpenAPI/Swagger specs
|
|
207
|
+
- Parses README documentation
|
|
208
|
+
- Identifies code patterns
|
|
209
|
+
- Generates MCP-compatible tool definitions
|
|
210
|
+
|
|
211
|
+
## Troubleshooting
|
|
212
|
+
|
|
213
|
+
### GitHub API Rate Limiting
|
|
214
|
+
If you see rate limit errors:
|
|
215
|
+
1. Go to Settings > GitHub to MCP
|
|
216
|
+
2. Add your GitHub Personal Access Token
|
|
217
|
+
3. This increases your rate limit from 60 to 5000 requests/hour
|
|
218
|
+
|
|
219
|
+
### Claude Desktop Not Detecting Servers
|
|
220
|
+
1. Ensure the config file path is correct for your OS
|
|
221
|
+
2. Check that the server file path in config is absolute
|
|
222
|
+
3. Restart Claude Desktop after config changes
|
|
223
|
+
4. Check the MCP server logs for errors
|
|
224
|
+
|
|
225
|
+
### Extension Not Activating
|
|
226
|
+
1. Ensure you have VS Code 1.85.0 or higher
|
|
227
|
+
2. Check the Output panel for error messages
|
|
228
|
+
3. Try reloading the window (`Ctrl+Shift+P` > "Reload Window")
|
|
229
|
+
|
|
230
|
+
## Contributing
|
|
231
|
+
|
|
232
|
+
Contributions are welcome! See [CONTRIBUTING.md](../../CONTRIBUTING.md) for guidelines.
|
|
233
|
+
|
|
234
|
+
## Requirements
|
|
235
|
+
|
|
236
|
+
- VS Code 1.85.0 or higher
|
|
237
|
+
- Node.js 18 or higher (for running generated servers)
|
|
238
|
+
|
|
239
|
+
## License
|
|
240
|
+
|
|
241
|
+
MIT License - see [LICENSE](../../LICENSE) for details.
|
|
242
|
+
|
|
243
|
+
## Links
|
|
244
|
+
|
|
245
|
+
- [GitHub Repository](https://github.com/nirholas/github-to-mcp)
|
|
246
|
+
- [Issue Tracker](https://github.com/nirholas/github-to-mcp/issues)
|
|
247
|
+
- [Documentation](https://github-to-mcp.dev/docs)
|
|
248
|
+
- [MCP Protocol Specification](https://modelcontextprotocol.io)
|
|
@@ -0,0 +1,381 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "github-to-mcp",
|
|
3
|
+
"displayName": "GitHub to MCP",
|
|
4
|
+
"description": "Convert GitHub repositories to MCP servers for use with Claude Desktop and other AI assistants",
|
|
5
|
+
"version": "1.0.0",
|
|
6
|
+
"publisher": "nirholas",
|
|
7
|
+
"engines": {
|
|
8
|
+
"vscode": "^1.85.0"
|
|
9
|
+
},
|
|
10
|
+
"categories": [
|
|
11
|
+
"Other",
|
|
12
|
+
"Machine Learning",
|
|
13
|
+
"Programming Languages"
|
|
14
|
+
],
|
|
15
|
+
"keywords": [
|
|
16
|
+
"mcp",
|
|
17
|
+
"model-context-protocol",
|
|
18
|
+
"github",
|
|
19
|
+
"ai",
|
|
20
|
+
"tools",
|
|
21
|
+
"claude",
|
|
22
|
+
"anthropic",
|
|
23
|
+
"openapi",
|
|
24
|
+
"api"
|
|
25
|
+
],
|
|
26
|
+
"activationEvents": [
|
|
27
|
+
"onStartupFinished",
|
|
28
|
+
"workspaceContains:.git/config"
|
|
29
|
+
],
|
|
30
|
+
"main": "./dist/extension.js",
|
|
31
|
+
"icon": "resources/icon.png",
|
|
32
|
+
"repository": {
|
|
33
|
+
"type": "git",
|
|
34
|
+
"url": "https://github.com/nirholas/github-to-mcp"
|
|
35
|
+
},
|
|
36
|
+
"contributes": {
|
|
37
|
+
"commands": [
|
|
38
|
+
{
|
|
39
|
+
"command": "github-to-mcp.convert",
|
|
40
|
+
"title": "GitHub to MCP: Convert Repository",
|
|
41
|
+
"icon": "$(github)"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"command": "github-to-mcp.convertFromUrl",
|
|
45
|
+
"title": "GitHub to MCP: Convert from URL",
|
|
46
|
+
"icon": "$(link)"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"command": "github-to-mcp.convertCurrentRepo",
|
|
50
|
+
"title": "GitHub to MCP: Convert Current Workspace",
|
|
51
|
+
"icon": "$(folder)"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"command": "github-to-mcp.convertFromClipboard",
|
|
55
|
+
"title": "GitHub to MCP: Convert from Clipboard",
|
|
56
|
+
"icon": "$(clippy)"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"command": "github-to-mcp.browseRegistry",
|
|
60
|
+
"title": "GitHub to MCP: Browse Server Registry",
|
|
61
|
+
"icon": "$(library)"
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"command": "github-to-mcp.configureClaudeDesktop",
|
|
65
|
+
"title": "GitHub to MCP: Configure Claude Desktop",
|
|
66
|
+
"icon": "$(gear)"
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"command": "github-to-mcp.openClaudeConfig",
|
|
70
|
+
"title": "GitHub to MCP: Open Claude Desktop Config",
|
|
71
|
+
"icon": "$(file-code)"
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"command": "github-to-mcp.copyConfig",
|
|
75
|
+
"title": "GitHub to MCP: Copy MCP Config",
|
|
76
|
+
"icon": "$(copy)"
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"command": "github-to-mcp.viewDetails",
|
|
80
|
+
"title": "View Details",
|
|
81
|
+
"icon": "$(eye)"
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"command": "github-to-mcp.showToolDetails",
|
|
85
|
+
"title": "Show Tool Details",
|
|
86
|
+
"icon": "$(symbol-method)"
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"command": "github-to-mcp.removeHistoryItem",
|
|
90
|
+
"title": "Remove from History",
|
|
91
|
+
"icon": "$(trash)"
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"command": "github-to-mcp.clearHistory",
|
|
95
|
+
"title": "Clear History",
|
|
96
|
+
"icon": "$(clear-all)"
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"command": "github-to-mcp.refreshHistory",
|
|
100
|
+
"title": "Refresh",
|
|
101
|
+
"icon": "$(refresh)"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"command": "github-to-mcp.openInBrowser",
|
|
105
|
+
"title": "Open in Browser",
|
|
106
|
+
"icon": "$(link-external)"
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"command": "github-to-mcp.exportServer",
|
|
110
|
+
"title": "Export Server Files",
|
|
111
|
+
"icon": "$(export)"
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"command": "github-to-mcp.validate",
|
|
115
|
+
"title": "GitHub to MCP: Validate MCP Server",
|
|
116
|
+
"icon": "$(check)"
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"command": "github-to-mcp.showOutput",
|
|
120
|
+
"title": "GitHub to MCP: Show Output",
|
|
121
|
+
"icon": "$(output)"
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"command": "github-to-mcp.showConversionPanel",
|
|
125
|
+
"title": "GitHub to MCP: Open Conversion Panel",
|
|
126
|
+
"icon": "$(window)"
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"command": "github-to-mcp.showQuickActions",
|
|
130
|
+
"title": "GitHub to MCP: Quick Actions",
|
|
131
|
+
"icon": "$(zap)"
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
"command": "github-to-mcp.filterTools",
|
|
135
|
+
"title": "Filter Tools",
|
|
136
|
+
"icon": "$(filter)"
|
|
137
|
+
}
|
|
138
|
+
],
|
|
139
|
+
"viewsContainers": {
|
|
140
|
+
"activitybar": [
|
|
141
|
+
{
|
|
142
|
+
"id": "github-to-mcp",
|
|
143
|
+
"title": "GitHub to MCP",
|
|
144
|
+
"icon": "resources/icon.svg"
|
|
145
|
+
}
|
|
146
|
+
]
|
|
147
|
+
},
|
|
148
|
+
"views": {
|
|
149
|
+
"github-to-mcp": [
|
|
150
|
+
{
|
|
151
|
+
"id": "github-to-mcp.servers",
|
|
152
|
+
"name": "MCP Servers",
|
|
153
|
+
"icon": "$(server)"
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"id": "github-to-mcp.tools",
|
|
157
|
+
"name": "Tools Explorer",
|
|
158
|
+
"icon": "$(symbol-method)"
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
"id": "github-to-mcp.history",
|
|
162
|
+
"name": "Conversion History",
|
|
163
|
+
"icon": "$(history)"
|
|
164
|
+
}
|
|
165
|
+
]
|
|
166
|
+
},
|
|
167
|
+
"viewsWelcome": [
|
|
168
|
+
{
|
|
169
|
+
"view": "github-to-mcp.servers",
|
|
170
|
+
"contents": "No MCP servers yet.\n[Convert a Repository](command:github-to-mcp.convertFromUrl)\n[Browse Registry](command:github-to-mcp.browseRegistry)"
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
"view": "github-to-mcp.history",
|
|
174
|
+
"contents": "No conversion history.\n[Convert from URL](command:github-to-mcp.convertFromUrl)\n[Convert Current Workspace](command:github-to-mcp.convertCurrentRepo)"
|
|
175
|
+
}
|
|
176
|
+
],
|
|
177
|
+
"menus": {
|
|
178
|
+
"view/title": [
|
|
179
|
+
{
|
|
180
|
+
"command": "github-to-mcp.refreshHistory",
|
|
181
|
+
"when": "view == github-to-mcp.history",
|
|
182
|
+
"group": "navigation"
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
"command": "github-to-mcp.clearHistory",
|
|
186
|
+
"when": "view == github-to-mcp.history",
|
|
187
|
+
"group": "navigation"
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
"command": "github-to-mcp.convertFromUrl",
|
|
191
|
+
"when": "view == github-to-mcp.servers",
|
|
192
|
+
"group": "navigation"
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
"command": "github-to-mcp.filterTools",
|
|
196
|
+
"when": "view == github-to-mcp.tools",
|
|
197
|
+
"group": "navigation"
|
|
198
|
+
}
|
|
199
|
+
],
|
|
200
|
+
"view/item/context": [
|
|
201
|
+
{
|
|
202
|
+
"command": "github-to-mcp.viewDetails",
|
|
203
|
+
"when": "view == github-to-mcp.history && viewItem == historyItem",
|
|
204
|
+
"group": "inline"
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
"command": "github-to-mcp.openInBrowser",
|
|
208
|
+
"when": "view == github-to-mcp.history && viewItem == historyItem",
|
|
209
|
+
"group": "inline"
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
"command": "github-to-mcp.removeHistoryItem",
|
|
213
|
+
"when": "view == github-to-mcp.history && viewItem == historyItem",
|
|
214
|
+
"group": "inline"
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
"command": "github-to-mcp.exportServer",
|
|
218
|
+
"when": "viewItem == mcpServer || viewItem == historyItem"
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
"command": "github-to-mcp.copyConfig",
|
|
222
|
+
"when": "viewItem == mcpServer || viewItem == historyItem"
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
"command": "github-to-mcp.showToolDetails",
|
|
226
|
+
"when": "viewItem == mcpTool || viewItem == tool",
|
|
227
|
+
"group": "inline"
|
|
228
|
+
}
|
|
229
|
+
],
|
|
230
|
+
"explorer/context": [
|
|
231
|
+
{
|
|
232
|
+
"command": "github-to-mcp.validate",
|
|
233
|
+
"when": "resourceExtname == .js || resourceExtname == .ts || resourceExtname == .py",
|
|
234
|
+
"group": "github-to-mcp@1"
|
|
235
|
+
}
|
|
236
|
+
],
|
|
237
|
+
"editor/title": [
|
|
238
|
+
{
|
|
239
|
+
"command": "github-to-mcp.convertCurrentRepo",
|
|
240
|
+
"when": "gitOpenRepositoryCount > 0",
|
|
241
|
+
"group": "navigation"
|
|
242
|
+
}
|
|
243
|
+
],
|
|
244
|
+
"commandPalette": [
|
|
245
|
+
{
|
|
246
|
+
"command": "github-to-mcp.viewDetails",
|
|
247
|
+
"when": "false"
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
"command": "github-to-mcp.showToolDetails",
|
|
251
|
+
"when": "false"
|
|
252
|
+
},
|
|
253
|
+
{
|
|
254
|
+
"command": "github-to-mcp.removeHistoryItem",
|
|
255
|
+
"when": "false"
|
|
256
|
+
},
|
|
257
|
+
{
|
|
258
|
+
"command": "github-to-mcp.openInBrowser",
|
|
259
|
+
"when": "false"
|
|
260
|
+
},
|
|
261
|
+
{
|
|
262
|
+
"command": "github-to-mcp.exportServer",
|
|
263
|
+
"when": "false"
|
|
264
|
+
},
|
|
265
|
+
{
|
|
266
|
+
"command": "github-to-mcp.filterTools",
|
|
267
|
+
"when": "false"
|
|
268
|
+
}
|
|
269
|
+
]
|
|
270
|
+
},
|
|
271
|
+
"keybindings": [
|
|
272
|
+
{
|
|
273
|
+
"command": "github-to-mcp.convertFromUrl",
|
|
274
|
+
"key": "ctrl+shift+m",
|
|
275
|
+
"mac": "cmd+shift+m"
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
"command": "github-to-mcp.convertCurrentRepo",
|
|
279
|
+
"key": "ctrl+shift+alt+m",
|
|
280
|
+
"mac": "cmd+shift+alt+m"
|
|
281
|
+
},
|
|
282
|
+
{
|
|
283
|
+
"command": "github-to-mcp.showConversionPanel",
|
|
284
|
+
"key": "ctrl+k ctrl+m",
|
|
285
|
+
"mac": "cmd+k cmd+m"
|
|
286
|
+
}
|
|
287
|
+
],
|
|
288
|
+
"configuration": {
|
|
289
|
+
"title": "GitHub to MCP",
|
|
290
|
+
"properties": {
|
|
291
|
+
"github-to-mcp.defaultPlatform": {
|
|
292
|
+
"type": "string",
|
|
293
|
+
"enum": [
|
|
294
|
+
"claude",
|
|
295
|
+
"cursor",
|
|
296
|
+
"json"
|
|
297
|
+
],
|
|
298
|
+
"default": "claude",
|
|
299
|
+
"description": "Default platform for MCP config output"
|
|
300
|
+
},
|
|
301
|
+
"github-to-mcp.autoDetect": {
|
|
302
|
+
"type": "boolean",
|
|
303
|
+
"default": true,
|
|
304
|
+
"description": "Automatically detect GitHub repositories and offer to convert"
|
|
305
|
+
},
|
|
306
|
+
"github-to-mcp.historyLimit": {
|
|
307
|
+
"type": "number",
|
|
308
|
+
"default": 20,
|
|
309
|
+
"minimum": 1,
|
|
310
|
+
"maximum": 100,
|
|
311
|
+
"description": "Maximum number of conversions to keep in history"
|
|
312
|
+
},
|
|
313
|
+
"github-to-mcp.alwaysShowStatusBar": {
|
|
314
|
+
"type": "boolean",
|
|
315
|
+
"default": false,
|
|
316
|
+
"description": "Always show the status bar item, even when not in a GitHub repository"
|
|
317
|
+
},
|
|
318
|
+
"github-to-mcp.githubToken": {
|
|
319
|
+
"type": "string",
|
|
320
|
+
"default": "",
|
|
321
|
+
"description": "GitHub Personal Access Token for higher API rate limits"
|
|
322
|
+
},
|
|
323
|
+
"github-to-mcp.defaultOutputDirectory": {
|
|
324
|
+
"type": "string",
|
|
325
|
+
"default": "",
|
|
326
|
+
"description": "Default directory for generated MCP server files"
|
|
327
|
+
},
|
|
328
|
+
"github-to-mcp.defaultRuntime": {
|
|
329
|
+
"type": "string",
|
|
330
|
+
"enum": [
|
|
331
|
+
"node",
|
|
332
|
+
"typescript",
|
|
333
|
+
"python"
|
|
334
|
+
],
|
|
335
|
+
"default": "node",
|
|
336
|
+
"description": "Default runtime for generated MCP servers"
|
|
337
|
+
},
|
|
338
|
+
"github-to-mcp.autoConfigureClaude": {
|
|
339
|
+
"type": "boolean",
|
|
340
|
+
"default": false,
|
|
341
|
+
"description": "Automatically add converted servers to Claude Desktop config"
|
|
342
|
+
},
|
|
343
|
+
"github-to-mcp.showToolParameters": {
|
|
344
|
+
"type": "boolean",
|
|
345
|
+
"default": true,
|
|
346
|
+
"description": "Show tool parameters in the Tools Explorer view"
|
|
347
|
+
},
|
|
348
|
+
"github-to-mcp.logLevel": {
|
|
349
|
+
"type": "string",
|
|
350
|
+
"enum": [
|
|
351
|
+
"debug",
|
|
352
|
+
"info",
|
|
353
|
+
"warn",
|
|
354
|
+
"error"
|
|
355
|
+
],
|
|
356
|
+
"default": "info",
|
|
357
|
+
"description": "Logging level for the output channel"
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
},
|
|
362
|
+
"scripts": {
|
|
363
|
+
"vscode:prepublish": "pnpm run build",
|
|
364
|
+
"build": "esbuild ./src/extension.ts --bundle --outfile=dist/extension.js --external:vscode --format=cjs --platform=node",
|
|
365
|
+
"watch": "pnpm run build -- --watch",
|
|
366
|
+
"lint": "eslint src",
|
|
367
|
+
"test": "vscode-test"
|
|
368
|
+
},
|
|
369
|
+
"devDependencies": {
|
|
370
|
+
"@types/mocha": "^10.0.6",
|
|
371
|
+
"@types/node": "^20.0.0",
|
|
372
|
+
"@types/vscode": "^1.85.0",
|
|
373
|
+
"@vscode/test-electron": "^2.3.8",
|
|
374
|
+
"esbuild": "^0.20.0",
|
|
375
|
+
"eslint": "^8.56.0",
|
|
376
|
+
"typescript": "^5.4.0"
|
|
377
|
+
},
|
|
378
|
+
"dependencies": {
|
|
379
|
+
"@nirholas/github-to-mcp": "workspace:*"
|
|
380
|
+
}
|
|
381
|
+
}
|
|
Binary file
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
2
|
+
<path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"/>
|
|
3
|
+
<circle cx="18" cy="18" r="3" fill="currentColor" stroke="none"/>
|
|
4
|
+
<path d="M18 16v4M16 18h4" stroke-width="1.5"/>
|
|
5
|
+
</svg>
|