github TypeScript re-analysis due

nirholas/github-to-mcp

github

Convert GitHub repositories to MCP servers automatically. Extract tools from OpenAPI, GraphQL & REST APIs for Claude Desktop, Cursor, Windsurf, Cline & VS Code. AI-powered code generation creates type-safe TypeScript/Python MCP servers. Zero config setup - just paste a repo URL. Built for AI assistants & LLM tool integration.

maintainer
nirholas
licence
NOASSERTION
first seen
2026-06-01
last seen
2026-09-15
releases · 30d
0
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 9 tools
transport stdio · http verified reported listed in the official MCP registry counts 9 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • analyze_repo_structure
  • convert_openapi_to_mcp
  • convert_repo
  • generate_claude_config
  • generate_cursor_config
  • get_tool_template
  • hello
  • list_extracted_tools
  • validate_mcp_server
skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit 2750121 · analyzer v33 · 3d ago

skills & prompt files 4

danger signals1

code evidence vHEAD · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 286

filesystem 19

  • fs nirholas-github-to-mcp-2750121/apps/vscode/src/commands/configureClaudeDesktop.ts :75 const configContent = await vscode.workspace.fs.readFile(configUri);
  • fs nirholas-github-to-mcp-2750121/apps/vscode/src/commands/convertCurrentRepo.ts :65 const gitConfig = await vscode.workspace.fs.readFile(gitConfigPath);
  • fs nirholas-github-to-mcp-2750121/apps/vscode/src/commands/index.ts :114 await vscode.workspace.fs.writeFile(saveUri, Buffer.from(item.code, 'utf-8'));
  • fs nirholas-github-to-mcp-2750121/apps/vscode/src/utils/file-generator.ts :100 await vscode.workspace.fs.writeFile(
  • fs nirholas-github-to-mcp-2750121/apps/vscode/src/utils/mcp-config.ts :77 const content = await vscode.workspace.fs.readFile(configUri);
  • fs nirholas-github-to-mcp-2750121/apps/web/lib/mcp-sandbox.ts :9 import * as fs from 'fs/promises';
  • fs nirholas-github-to-mcp-2750121/packages/core/src/cli.ts :15 import * as fs from 'fs/promises';
  • fs nirholas-github-to-mcp-2750121/packages/core/src/index.ts :29 import * as fs from 'fs/promises';
  • fs nirholas-github-to-mcp-2750121/packages/core/src/plugins/registry.ts :16 import * as fs from 'fs/promises';
  • fs nirholas-github-to-mcp-2750121/packages/openapi-parser/src/cli.ts :13 import { promises as fs } from 'fs';
  • fs nirholas-github-to-mcp-2750121/packages/openapi-parser/src/index.ts :21 import { promises as fs } from 'fs';
  • fs nirholas-github-to-mcp-2750121/packages/openapi-parser/src/ref-resolver.ts :8 import { promises as fs } from 'fs';
show 7 more
  • fs (weak) nirholas-github-to-mcp-2750121/packages/openapi-parser/tests/generators/express.test.ts :7 import { promises as fs } from 'fs';
  • fs (weak) nirholas-github-to-mcp-2750121/packages/openapi-parser/tests/generators/fastapi.test.ts :7 import { promises as fs } from 'fs';
  • fs (weak) nirholas-github-to-mcp-2750121/packages/openapi-parser/tests/generators/nextjs.test.ts :7 import { promises as fs } from 'fs';
  • fs nirholas-github-to-mcp-2750121/packages/registry/src/registry.ts :7 import * as fs from 'fs/promises';
  • fs nirholas-github-to-mcp-2750121/packages/registry/src/storage.ts :7 import * as fs from 'fs/promises';
  • fs (weak) nirholas-github-to-mcp-2750121/tests/integration/langchain-export.test.ts :12 import * as fs from 'fs/promises';
  • fs (weak) nirholas-github-to-mcp-2750121/tests/integration/openapi-conversion.test.ts :11 import * as fs from 'fs/promises';

shell / exec 1

  • shell nirholas-github-to-mcp-2750121/apps/web/lib/mcp-sandbox.ts :7 import { spawn, ChildProcess } from 'child_process';

network 29

  • net nirholas-github-to-mcp-2750121/apps/vscode/src/utils/github-api.ts :98 const response = await fetch(`${this.baseUrl}${endpoint}`, {
  • net nirholas-github-to-mcp-2750121/apps/web/app/api/edge/route.ts :77 const response = await fetch(`https://api.github.com/repos/${owner}/${repo}`, { headers });
  • net nirholas-github-to-mcp-2750121/apps/web/app/page.old.tsx :130 const response = await fetch('/api/convert', {
  • net nirholas-github-to-mcp-2750121/apps/web/components/BranchSelector.tsx :72 const branchesRes = await fetch(
  • net nirholas-github-to-mcp-2750121/apps/web/components/batch/BatchConvert.tsx :194 const response = await fetch('/api/convert', {
  • net nirholas-github-to-mcp-2750121/apps/web/components/deploy/DeployButton.tsx :58 const response = await fetch('/api/deploy', {
  • net nirholas-github-to-mcp-2750121/apps/web/hooks/types.ts :1115 const response = await fetch(url, {
  • net nirholas-github-to-mcp-2750121/apps/web/hooks/use-conversion.ts :46 const response = await fetch('/api/convert', {
  • net nirholas-github-to-mcp-2750121/apps/web/hooks/use-mcp-client.ts :475 const response = await fetch('/api/playground/connect', {
  • net nirholas-github-to-mcp-2750121/apps/web/hooks/use-mcp-execution.ts :106 const response = await fetch('/api/playground/connect', {
  • net nirholas-github-to-mcp-2750121/apps/web/hooks/use-playground-store.ts :172 const response = await fetch('/api/playground/execute', {
  • net nirholas-github-to-mcp-2750121/apps/web/hooks/use-streaming-conversion.ts :74 const response = await fetch(`/api/convert/stream?url=${encodeURIComponent(url)}`, {
show 17 more
  • net nirholas-github-to-mcp-2750121/apps/web/hooks/useBatchConversion.ts :152 const response = await fetch('/api/convert', {
  • net nirholas-github-to-mcp-2750121/apps/web/hooks/useDockerConfig.ts :86 content += `HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 CMD node -e "require('http').get('http://localhost:${options.port}/health', (r) => process.exit(r.statusCode === 200
  • net nirholas-github-to-mcp-2750121/apps/web/lib/mcp-client.ts :214 const response = await fetch(this.endpoint, {
  • net nirholas-github-to-mcp-2750121/apps/web/lib/mcp/retry.ts :203 * const response = await fetch('https://api.example.com/data');
  • net nirholas-github-to-mcp-2750121/apps/web/lib/mcp/transports.ts :420 const response = await fetch(config.url, {
  • net nirholas-github-to-mcp-2750121/apps/web/lib/playground-store.tsx :523 const response = await fetch(`https://api.github.com/gists/${gistId}`);
  • net (weak) nirholas-github-to-mcp-2750121/packages/core/src/__tests__/code-extractor.test.ts :23 return await this.fetch(\`/users/\${id}\`);
  • net (weak) nirholas-github-to-mcp-2750121/packages/core/src/__tests__/readme-extractor.test.ts :128 await client.fetch({
  • net nirholas-github-to-mcp-2750121/packages/core/src/cache/upstash-cache.ts :77 const response = await fetch(`${this.url}`, {
  • net nirholas-github-to-mcp-2750121/packages/core/src/edge-compatible.ts :111 const response = await fetch(`${this.baseUrl}/repos/${owner}/${repo}`, {
  • net nirholas-github-to-mcp-2750121/packages/core/src/graphql-extractor.ts :334 const response = await fetch('${endpoint}', {
  • net nirholas-github-to-mcp-2750121/packages/core/src/index.ts :275 const response = await fetch('https://api.github.com/repos/${owner}/${repo}/readme', {
  • net nirholas-github-to-mcp-2750121/packages/core/src/langchain-exporter.ts :108 const response = await fetch(\`\${API_BASE_URL}\${endpoint}\`, {
  • net nirholas-github-to-mcp-2750121/packages/core/src/providers/base-provider.ts :165 const response = await fetch(url, {
  • net nirholas-github-to-mcp-2750121/packages/openapi-parser/src/generator.ts :226 const response = await fetch(url, options);
  • net nirholas-github-to-mcp-2750121/packages/openapi-parser/src/ref-resolver.ts :235 // Use global fetch (available in Node.js 18+)
  • net nirholas-github-to-mcp-2750121/packages/registry/src/updater.ts :98 const releaseResponse = await fetch(

secrets 7

  • secrets nirholas-github-to-mcp-2750121/apps/vscode/src/utils/github-api.ts :68 this.token = config.get<string>('githubToken') || process.env.GITHUB_TOKEN;
  • secrets nirholas-github-to-mcp-2750121/apps/web/app/api/convert/route.ts :27 githubToken: process.env.GITHUB_TOKEN,
  • secrets nirholas-github-to-mcp-2750121/apps/web/app/api/convert/stream/route.ts :95 githubToken: process.env.GITHUB_TOKEN,
  • secrets nirholas-github-to-mcp-2750121/apps/web/app/api/edge/route.ts :259 const token = process.env.GITHUB_TOKEN || body.token;
  • secrets nirholas-github-to-mcp-2750121/apps/web/app/api/stream/route.ts :126 githubToken: process.env.GITHUB_TOKEN,
  • secrets nirholas-github-to-mcp-2750121/packages/core/src/cache/index.ts :95 const token = upstash?.token || process.env.UPSTASH_REDIS_REST_TOKEN;
  • secrets nirholas-github-to-mcp-2750121/packages/core/src/cache/upstash-cache.ts :365 const token = process.env.UPSTASH_REDIS_REST_TOKEN;

tool registrations 9

  • convert_repo nirholas-github-to-mcp-2750121/packages/mcp-server/src/index.ts :59
  • list_extracted_tools nirholas-github-to-mcp-2750121/packages/mcp-server/src/index.ts :102
  • validate_mcp_server nirholas-github-to-mcp-2750121/packages/mcp-server/src/index.ts :132
  • generate_claude_config nirholas-github-to-mcp-2750121/packages/mcp-server/src/index.ts :160
  • generate_cursor_config nirholas-github-to-mcp-2750121/packages/mcp-server/src/index.ts :190
  • analyze_repo_structure nirholas-github-to-mcp-2750121/packages/mcp-server/src/index.ts :215
  • convert_openapi_to_mcp nirholas-github-to-mcp-2750121/packages/mcp-server/src/index.ts :242
  • get_tool_template nirholas-github-to-mcp-2750121/packages/mcp-server/src/index.ts :275
  • hello nirholas-github-to-mcp-2750121/packages/mcp-server/src/index.ts :1085

install hooks 1

  • prepare nirholas-github-to-mcp-2750121/package.json :22 husky

declared dependencies 14

  • @changesets/cli@^2.31.1
  • @eslint/js@^9.39.5
  • @types/node@^25.9.5
  • @typescript-eslint/eslint-plugin@^8.66.0
  • @typescript-eslint/parser@^8.66.0
  • @vitest/coverage-v8@^3.2.6
  • eslint@^9.39.5
  • happy-dom@^20.11.1
  • husky@^9.1.7
  • lint-staged@^16.4.0
  • msw@^2.15.0
  • prettier@^3.9.6
show 2 more
  • vite@^6.4.3
  • vitest@^3.2.6