github re-analysis due

deploystackio/deploystack

github

Open source MCP hosting - deploy MCP servers to HTTP endpoints for n8n, Dify, Voiceflow, and any MCP client.

maintainer
deploystackio
license
AGPL-3.0
first seen
2026-06-01
last seen
2026-06-04
releases · 30d
0
short id

Drift inferred · capture-to-capture

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

capabilities 0 tools
transport streamable-http · http counts 0 tools · 0 res · 0 prompts permission surface via code analysis

no tools enumerated yet for this server.

skills & danger signals github-tarball
code evidence vbackend-v0.61.2 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

filesystem 28

  • fs deploystackio-deploystack-4e81076/services/backend/scripts/check-no-console.js :3 const fs = require('fs');
  • fs deploystackio-deploystack-4e81076/services/backend/scripts/generate-api-spec.js :4 const fs = require('fs');
  • fs deploystackio-deploystack-4e81076/services/backend/scripts/update-version.js :1 const fs = require('fs');
  • fs deploystackio-deploystack-4e81076/services/backend/src/config/version.ts :1 import * as fs from 'fs';
  • fs deploystackio-deploystack-4e81076/services/backend/src/db/config.ts :6 import fs from 'fs';
  • fs deploystackio-deploystack-4e81076/services/backend/src/db/index.ts :2 import fs from 'node:fs/promises';
  • fs deploystackio-deploystack-4e81076/services/backend/src/email/templateRenderer.ts :3 import * as fs from 'fs';
  • fs deploystackio-deploystack-4e81076/services/backend/src/global-settings/index.ts :1 import fs from 'fs';
  • fs deploystackio-deploystack-4e81076/services/backend/src/plugin-system/plugin-manager.ts :3 import fs from 'node:fs';
  • fs deploystackio-deploystack-4e81076/services/backend/src/routes/db/setup.ts :5 import fs from 'node:fs/promises';
  • fs deploystackio-deploystack-4e81076/services/backend/src/routes/users/satellite/config.ts :5 import fs from 'fs';
  • fs deploystackio-deploystack-4e81076/services/satellite/scripts/check-no-console.js :3 const fs = require('fs');
  • fs deploystackio-deploystack-4e81076/services/satellite/scripts/generate-api-spec.js :4 const fs = require('fs');
  • fs deploystackio-deploystack-4e81076/services/satellite/scripts/update-version.js :1 const fs = require('fs');
  • fs deploystackio-deploystack-4e81076/services/satellite/src/config/version.ts :1 import * as fs from 'fs';
  • fs deploystackio-deploystack-4e81076/services/satellite/src/lib/cache-manager.ts :1 import { rm } from 'fs/promises';
  • fs deploystackio-deploystack-4e81076/services/satellite/src/lib/cgroup-detector.ts :1 import { readFileSync, writeFileSync, mkdirSync, existsSync, accessSync, constants } from 'fs';
  • fs deploystackio-deploystack-4e81076/services/satellite/src/lib/deployment-directory-validator.ts :1 import { access, constants } from 'fs/promises';
  • fs deploystackio-deploystack-4e81076/services/satellite/src/lib/termination-handler.ts :1 import { rm } from 'fs/promises';
  • fs deploystackio-deploystack-4e81076/services/satellite/src/lib/tmpfs-manager.ts :2 import { mkdir, rm } from 'fs/promises';
  • fs deploystackio-deploystack-4e81076/services/satellite/src/process/github-deployment.ts :3 import * as fs from 'fs';
  • fs deploystackio-deploystack-4e81076/services/satellite/src/process/nsjail-spawner.ts :2 import { mkdir } from 'fs/promises';
  • fs deploystackio-deploystack-4e81076/services/satellite/src/services/backend-client.ts :3 import { readFile, writeFile, access, mkdir } from 'fs/promises';
  • fs deploystackio-deploystack-4e81076/services/satellite/src/utils/deployment-directory.ts :8 import { mkdir } from 'fs/promises';
  • fs deploystackio-deploystack-4e81076/services/satellite/src/utils/node-helpers.ts :8 import { promises as fs } from 'node:fs';
  • fs deploystackio-deploystack-4e81076/services/satellite/src/utils/package-json-reader.ts :8 import { promises as fs } from 'node:fs';
  • fs deploystackio-deploystack-4e81076/services/satellite/src/utils/python-helpers.ts :8 import { promises as fs } from 'node:fs';
  • fs deploystackio-deploystack-4e81076/services/satellite/src/utils/tarball-operations.ts :11 import * as fs from 'fs';

shell / exec 7

  • shell deploystackio-deploystack-4e81076/services/backend/src/lib/security/build-script-validation.ts :59 { pattern: /\bexec\s*\(/, reason: 'exec() (code execution from string)' },
  • shell deploystackio-deploystack-4e81076/services/satellite/src/config/security-validation.ts :300 { pattern: /\bexec\s*\(/, reason: 'exec() (code execution from string)' },
  • shell deploystackio-deploystack-4e81076/services/satellite/src/lib/tmpfs-manager.ts :1 import { spawn } from 'child_process';
  • shell deploystackio-deploystack-4e81076/services/satellite/src/process/github-deployment.ts :1 import { spawn } from 'child_process';
  • shell deploystackio-deploystack-4e81076/services/satellite/src/process/nsjail-spawner.ts :1 import { spawn, ChildProcess } from 'child_process';
  • shell deploystackio-deploystack-4e81076/services/satellite/src/process/types.ts :1 import { ChildProcess } from 'child_process';
  • shell deploystackio-deploystack-4e81076/services/satellite/src/utils/runtime-validator.ts :1 import { spawnSync } from 'child_process';

network 41

  • net deploystackio-deploystack-4e81076/services/backend/scripts/generate-api-spec.js :10 const response = await fetch(url);
  • net deploystackio-deploystack-4e81076/services/backend/src/routes/auth/github.ts :253 const githubUserResponse = await fetch('https://api.github.com/user', {
  • net deploystackio-deploystack-4e81076/services/backend/src/services/OAuthClientRegistrationService.ts :71 const response = await fetch(registrationEndpoint, {
  • net deploystackio-deploystack-4e81076/services/backend/src/services/OAuthDiscoveryService.ts :224 const response = await fetch(url, {
  • net deploystackio-deploystack-4e81076/services/backend/src/services/OAuthTokenService.ts :114 const response = await fetch(params.tokenEndpoint, {
  • net deploystackio-deploystack-4e81076/services/backend/src/services/mcpHealthCheckService.ts :140 const response = await fetch(url, {
  • net deploystackio-deploystack-4e81076/services/backend/src/services/registrySyncService.ts :500 const response = await fetch(url.toString(), {
  • net deploystackio-deploystack-4e81076/services/backend/src/workers/registryCoordinatorWorker.ts :331 const response = await fetch(url.toString(), {
  • net deploystackio-deploystack-4e81076/services/frontend/src/composables/useConnectionTest.ts :48 const response = await fetch(`${apiUrl}${endpoint}`, {
  • net deploystackio-deploystack-4e81076/services/frontend/src/composables/useSettingsForm.ts :137 const response = await fetch(`${apiUrl}/api/settings/bulk`, {
  • net deploystackio-deploystack-4e81076/services/frontend/src/services/credentialsService.ts :31 const response = await fetch(`${apiUrl}/api/teams/${teamId}/cloud-providers`, {
  • net deploystackio-deploystack-4e81076/services/frontend/src/services/database.ts :18 const response = await fetch(`${this.baseUrl}/api/db/status`, {
  • net deploystackio-deploystack-4e81076/services/frontend/src/services/deploymentService.ts :54 const response = await fetch(
  • net deploystackio-deploystack-4e81076/services/frontend/src/services/globalSettingsService.ts :15 const response = await fetch(`${this.API_BASE}/api/settings/${encodeURIComponent(key)}`, {
  • net deploystackio-deploystack-4e81076/services/frontend/src/services/jobsService.ts :31 const response = await fetch(url.toString(), {
  • net deploystackio-deploystack-4e81076/services/frontend/src/services/mcpCatalogService.ts :180 const response = await fetch(url.toString(), {
  • net deploystackio-deploystack-4e81076/services/frontend/src/services/mcpCategoriesService.ts :61 const response = await fetch(`${this.baseUrl}/api/mcp/categories`, {
  • net deploystackio-deploystack-4e81076/services/frontend/src/services/mcpClientActivityMetricsService.ts :78 const response = await fetch(url, {
  • net deploystackio-deploystack-4e81076/services/frontend/src/services/mcpClientActivityService.ts :97 const response = await fetch(url, {
  • net deploystackio-deploystack-4e81076/services/frontend/src/services/mcpInstallationService.ts :17 const response = await fetch(`${this.baseUrl}/api/teams/${teamId}/mcp/installations`, {
  • net deploystackio-deploystack-4e81076/services/frontend/src/services/mcpInstanceService.ts :11 const response = await fetch(
  • net deploystackio-deploystack-4e81076/services/frontend/src/services/mcpToolsService.ts :91 const response = await fetch(
  • net deploystackio-deploystack-4e81076/services/frontend/src/services/mcpToolsStatsService.ts :13 const response = await fetch(`${this.baseUrl}/api/teams/${teamId}/mcp/tools/stats`, {
  • net deploystackio-deploystack-4e81076/services/frontend/src/services/oauthService.ts :56 const response = await fetch(`${apiUrl}/api/oauth2/consent/details?request_id=${encodeURIComponent(requestId)}`, {
  • net deploystackio-deploystack-4e81076/services/frontend/src/services/satelliteConfigService.ts :113 const response = await fetch(`${this.baseUrl}/api/me/satellite/config/${category}/${client}${queryParams}`, {
  • net deploystackio-deploystack-4e81076/services/frontend/src/services/satelliteService.ts :174 const response = await fetch(url, {
  • net deploystackio-deploystack-4e81076/services/frontend/src/services/satelliteTokenService.ts :67 const response = await fetch(url, {
  • net deploystackio-deploystack-4e81076/services/frontend/src/services/teamService.ts :179 const response = await fetch(`${apiUrl}/api/users/me/teams`, {
  • net deploystackio-deploystack-4e81076/services/frontend/src/services/userPreferencesService.ts :48 const response = await fetch(`${this.baseUrl}/api/users/me/preferences`, {
  • net deploystackio-deploystack-4e81076/services/frontend/src/services/userService.ts :107 const response = await fetch(`${apiUrl}/api/users/me`, {
  • net deploystackio-deploystack-4e81076/services/satellite/scripts/generate-api-spec.js :10 const response = await fetch(url);
  • net deploystackio-deploystack-4e81076/services/satellite/src/config/nsjail.ts :37 * Default "inf" — Node.js v24 fetch (undici) uses WASM which reserves ~10GB
  • net deploystackio-deploystack-4e81076/services/satellite/src/lib/credential-validation-handler.ts :167 const response = await fetch(serverConfig.url, {
  • net deploystackio-deploystack-4e81076/services/satellite/src/lib/health-check-handler.ts :66 const response = await fetch(serverConfig.url, {
  • net deploystackio-deploystack-4e81076/services/satellite/src/server.ts :1101 const configResponse = await fetch(`${backendClient.getBackendUrl()}/api/satellites/${satelliteId}/config`, {
  • net deploystackio-deploystack-4e81076/services/satellite/src/services/backend-client.ts :228 const response = await fetch(`${this.backendUrl}/api/health`, {
  • net deploystackio-deploystack-4e81076/services/satellite/src/services/command-polling-service.ts :329 const response = await fetch(`${this.backendClient.getBackendUrl()}/api/satellites/${this.satelliteId}/commands?${queryParams}`, {
  • net deploystackio-deploystack-4e81076/services/satellite/src/services/http-proxy-manager.ts :150 const response = await fetch(config.url, {
  • net deploystackio-deploystack-4e81076/services/satellite/src/services/oauth-token-service.ts :109 const response = await fetch(
  • net deploystackio-deploystack-4e81076/services/satellite/src/services/sse-ping-service.ts :1 import { ServerResponse } from 'http';
  • net deploystackio-deploystack-4e81076/services/satellite/src/services/token-introspection-service.ts :150 const response = await fetch(introspectionUri, {

secrets 6

  • secrets deploystackio-deploystack-4e81076/services/backend/drizzle.config.ts :29 password: process.env.POSTGRES_PASSWORD || '',
  • secrets deploystackio-deploystack-4e81076/services/backend/src/db/config.ts :81 password: process.env.POSTGRES_PASSWORD || '',
  • secrets deploystackio-deploystack-4e81076/services/backend/src/server.ts :483 secret: process.env.COOKIE_SECRET || 'a-very-secret-and-strong-secret-for-cookies', // Replace with a strong secret from env
  • secrets deploystackio-deploystack-4e81076/services/backend/src/services/satelliteTokenService.ts :18 private static readonly JWT_SECRET = process.env.JWT_SECRET || 'dev-secret-key-for-satellite-tokens';
  • secrets deploystackio-deploystack-4e81076/services/backend/src/utils/encryption.ts :14 const secretFromEnv = process.env.DEPLOYSTACK_ENCRYPTION_SECRET;
  • secrets deploystackio-deploystack-4e81076/services/satellite/src/server.ts :156 const registrationToken = process.env.DEPLOYSTACK_REGISTRATION_TOKEN;

database 3

  • db deploystackio-deploystack-4e81076/services/backend/src/db/index.ts :17 import { Pool } from 'pg';
  • db deploystackio-deploystack-4e81076/services/backend/src/server.ts :39 import type { Pool } from 'pg'; // For PostgreSQL connection pool cleanup in onClose
  • db deploystackio-deploystack-4e81076/services/backend/src/types/fastify.ts :5 import type { Pool } from 'pg'

declared dependencies 3

  • @octokit/auth-app@^8.2.0
  • markdownlint-cli2@^0.21.0
  • webpack@^5.105.4