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.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
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
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
- agent-rules nirholas-github-to-mcp-2750121/.github/copilot-instructions.md
- agent-rules nirholas-github-to-mcp-2750121/AGENTS.md
- agent-rules nirholas-github-to-mcp-2750121/CLAUDE.md
- agent-rules nirholas-github-to-mcp-2750121/GEMINI.md
danger signals1
- dynamic code execution eval() nirholas-github-to-mcp-2750121/packages/core/src/__tests__/readme-extractor.test.ts :166
return eval(expression)
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