Production-grade Google Sheets MCP server — 25 tools, 410 actions, TypeScript strict mode
Drift inferred · capture-to-capture
- HIGH code analysis flagged committed secret, dynamic code execution ×2 in khill1269/servalsheets
- HIGH code analysis flagged committed secret ×2, dynamic code execution ×2 in khill1269/servalsheets
transport stdio · streamable-http · http · sse counts 0 tools · 0 res
· 0 prompts
permission surface via code analysis
No tools enumerated yet for this server.
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 1bd5cd5 · analyzer v28 · 3d ago
skills & prompt files 8
- skill khill1269-servalsheets-1bd5cd5/.claude/skills/debug/SKILL.md
- skill khill1269-servalsheets-1bd5cd5/.claude/skills/google-sheets-expert/SKILL.md
- skill khill1269-servalsheets-1bd5cd5/.claude/skills/implement/SKILL.md
- skill khill1269-servalsheets-1bd5cd5/.claude/skills/review/SKILL.md
- skill khill1269-servalsheets-1bd5cd5/.claude/skills/schema/SKILL.md
- skill khill1269-servalsheets-1bd5cd5/.claude/skills/ship/SKILL.md
- agent-rules khill1269-servalsheets-1bd5cd5/CLAUDE.md
- skill khill1269-servalsheets-1bd5cd5/docs/guides/SKILL.md
danger signals88
- dynamic code execution new Function() khill1269-servalsheets-1bd5cd5/src/connectors/connector-manager.ts :645
const result = new Function(`return (${cleaned})`)(); - dynamic code execution new Function() khill1269-servalsheets-1bd5cd5/src/handlers/compute-actions/statistics.ts :84
const condFn = new Function(`"use strict"; return (${condSanitized})`); - suspicious endpoint http-intake.logs.datadoghq.com (telemetry) khill1269-servalsheets-1bd5cd5/examples/audit-logging-integration.ts :201
console.log(' export AUDIT_DATADOG_ENDPOINT=https://http-intake.logs.datadoghq.com/v1/input'); - suspicious endpoint 169.254.169.254 (cloud metadata) khill1269-servalsheets-1bd5cd5/tests/services/webhook-manager.test.ts :518
await expect(registerWith('https://169.254.169.254/callback')).rejects.toThrow( - suspicious endpoint 169.254.169.254 (cloud metadata) khill1269-servalsheets-1bd5cd5/tests/simulation/action-fuzzer.test.ts :118
'http://169.254.169.254/latest/meta-data/', - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/examples/01-basic-read-write.ts :73
scopes: ['https://www.googleapis.com/auth/spreadsheets'], - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/examples/02-semantic-ranges.ts :94
scopes: ['https://www.googleapis.com/auth/spreadsheets'], - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/examples/03-safety-rails.ts :86
scopes: ['https://www.googleapis.com/auth/spreadsheets'], - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/examples/04-batch-operations.ts :76
scopes: ['https://www.googleapis.com/auth/spreadsheets'], - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/examples/05-oauth-setup.ts :63
'https://www.googleapis.com/auth/spreadsheets', - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/examples/audit-logging-integration.ts :34
scopes: ['https://www.googleapis.com/auth/spreadsheets'], - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/src/config/oauth-scopes.ts :24
'https://www.googleapis.com/auth/spreadsheets', - over-broad OAuth scope https://www.googleapis.com/auth/cloud-platform
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/src/config/oauth-scopes.ts :57
'https://www.googleapis.com/auth/cloud-platform', - over-broad OAuth scope https://www.googleapis.com/auth/drive
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/src/config/oauth-scopes.ts :162
'https://www.googleapis.com/auth/drive': - over-broad OAuth scope https://www.googleapis.com/auth/drive
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/src/handlers/advanced-actions/chips.ts :96
scopes.includes('https://www.googleapis.com/auth/drive'); - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/src/mcp/registration/prompt-registration.ts :618
https://www.googleapis.com/auth/spreadsheets`, - over-broad OAuth scope https://www.googleapis.com/auth/drive
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/src/security/incremental-scope.ts :194
this.currentScopes.includes('https://www.googleapis.com/auth/drive') - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/src/security/incremental-scope.ts :202
this.currentScopes.includes('https://www.googleapis.com/auth/spreadsheets') - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/src/security/operation-scopes-map.ts :50
'https://www.googleapis.com/auth/spreadsheets', - over-broad OAuth scope https://www.googleapis.com/auth/drive
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/src/security/operation-scopes-map.ts :153
'https://www.googleapis.com/auth/drive', - over-broad OAuth scope https://www.googleapis.com/auth/cloud-platform
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/src/services/google-api.ts :179
'https://www.googleapis.com/auth/cloud-platform', - over-broad OAuth scope https://www.googleapis.com/auth/drive
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/src/services/google-api.ts :1393
return this._scopes.includes('https://www.googleapis.com/auth/drive'); - over-broad OAuth scope https://www.googleapis.com/auth/drive
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/src/utils/error-factory.ts :1021
if (scope === 'https://www.googleapis.com/auth/drive') { - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/audit/google-api-discovery.test.ts :130
const spreadsheetsScope = 'https://www.googleapis.com/auth/spreadsheets'; - over-broad OAuth scope https://www.googleapis.com/auth/drive
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/audit/google-api-discovery.test.ts :159
const restrictedDriveScope = 'https://www.googleapis.com/auth/drive'; - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/compliance/audit-logging.test.ts :150
scopes: ['https://www.googleapis.com/auth/spreadsheets'], - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/config/oauth-scopes.test.ts :58
expect(scopes).toContain('https://www.googleapis.com/auth/spreadsheets'); - over-broad OAuth scope https://www.googleapis.com/auth/drive
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/config/oauth-scopes.test.ts :60
expect(scopes).not.toContain('https://www.googleapis.com/auth/drive'); - over-broad OAuth scope https://www.googleapis.com/auth/cloud-platform
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/config/oauth-scopes.test.ts :129
expect(FULL_ACCESS_SCOPES).toContain('https://www.googleapis.com/auth/cloud-platform'); - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/contracts/action-runtime-contract.test.ts :35
'https://www.googleapis.com/auth/spreadsheets', - over-broad OAuth scope https://www.googleapis.com/auth/drive
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/contracts/error-codes.test.ts :277
missingScopes: ['https://www.googleapis.com/auth/drive'], - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/contracts/error-codes.test.ts :278
currentScopes: ['https://www.googleapis.com/auth/spreadsheets'], - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/contracts/response-shapes.test.ts :603
'https://www.googleapis.com/auth/spreadsheets', - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/core-verbosity.test.ts :96
scopes: ['https://www.googleapis.com/auth/spreadsheets'], - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/error-factory.test.ts :112
missingScopes: ['https://www.googleapis.com/auth/spreadsheets'], - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/handlers/advanced.test.ts :42
'https://www.googleapis.com/auth/spreadsheets', - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/handlers/appsscript-prerequisites-bugfix.test.ts :35
'https://www.googleapis.com/auth/spreadsheets', - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/handlers/auth-capabilities.test.ts :28
scopes: ['https://www.googleapis.com/auth/spreadsheets'], - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/handlers/auth.test.ts :19
scope: options?.scope?.join(' ') ?? 'https://www.googleapis.com/auth/spreadsheets', - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/handlers/collaborate-approval.test.ts :174
'https://www.googleapis.com/auth/spreadsheets', - over-broad OAuth scope https://www.googleapis.com/auth/drive
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/handlers/collaborate-approval.test.ts :175
'https://www.googleapis.com/auth/drive', - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/handlers/collaborate-rate-limiter.test.ts :26
'https://www.googleapis.com/auth/spreadsheets', - over-broad OAuth scope https://www.googleapis.com/auth/drive
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/handlers/collaborate-rate-limiter.test.ts :27
'https://www.googleapis.com/auth/drive', - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/handlers/collaborate-version.test.ts :160
'https://www.googleapis.com/auth/spreadsheets', - over-broad OAuth scope https://www.googleapis.com/auth/drive
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/handlers/collaborate-version.test.ts :161
'https://www.googleapis.com/auth/drive', - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/handlers/collaborate.test.ts :181
'https://www.googleapis.com/auth/spreadsheets', - over-broad OAuth scope https://www.googleapis.com/auth/drive
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/handlers/collaborate.test.ts :182
'https://www.googleapis.com/auth/drive', - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/handlers/composite-generate.test.ts :165
auth: { hasElevatedAccess: false, scopes: ['https://www.googleapis.com/auth/spreadsheets'] }, - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/handlers/composite-parameter-naming-bugfix.test.ts :190
'https://www.googleapis.com/auth/spreadsheets', - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/handlers/composite-workflows.test.ts :120
auth: { hasElevatedAccess: false, scopes: ['https://www.googleapis.com/auth/spreadsheets'] }, - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/handlers/composite.streaming.test.ts :32
'https://www.googleapis.com/auth/spreadsheets', - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/handlers/composite.test.ts :59
'https://www.googleapis.com/auth/spreadsheets', - over-broad OAuth scope https://www.googleapis.com/auth/drive
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/handlers/composite.test.ts :60
'https://www.googleapis.com/auth/drive', - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/handlers/core.test.ts :157
'https://www.googleapis.com/auth/spreadsheets', - over-broad OAuth scope https://www.googleapis.com/auth/drive
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/handlers/core.test.ts :159
'https://www.googleapis.com/auth/drive', - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/handlers/elicitation-wizards.test.ts :203
auth: { hasElevatedAccess: false, scopes: ['https://www.googleapis.com/auth/spreadsheets'] }, - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/handlers/progress-notifications.test.ts :149
scopes: ['https://www.googleapis.com/auth/spreadsheets'], - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/handlers/sampling-enhancements.test.ts :671
'https://www.googleapis.com/auth/spreadsheets', - over-broad OAuth scope https://www.googleapis.com/auth/drive
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/handlers/sampling-enhancements.test.ts :672
'https://www.googleapis.com/auth/drive', - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/handlers/task-id-support.test.ts :245
'https://www.googleapis.com/auth/spreadsheets', - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/handlers/templates.test.ts :112
'https://www.googleapis.com/auth/spreadsheets', - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/helpers/google-api-mocks.ts :189
scopes: ['https://www.googleapis.com/auth/spreadsheets'], - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/helpers/oauth-mocks.ts :30
'https://accounts.google.com/o/oauth2/v2/auth?client_id=test&redirect_uri=http://localhost:3000/callback&scope=https://www.googleapis.com/auth/spreadsheets&access_type=offline&response_type=code' - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/integration/analyze-sampling-context.test.ts :80
scopes: ['https://www.googleapis.com/auth/spreadsheets'], - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/integration/handler-chain.test.ts :18
'https://www.googleapis.com/auth/spreadsheets', - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/integration/oauth-flow.test.ts :622
expect(googleScopes).toContain('https://www.googleapis.com/auth/spreadsheets'); - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/live-api/auth/incremental-consent.live.test.ts :46
'https://www.googleapis.com/auth/spreadsheets', - over-broad OAuth scope https://www.googleapis.com/auth/drive
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/live-api/auth/incremental-consent.live.test.ts :51
expect(FULL_SCOPES).toContain('https://www.googleapis.com/auth/drive'); - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/live-api/setup/live-api-client.ts :115
'https://www.googleapis.com/auth/spreadsheets', - over-broad OAuth scope https://www.googleapis.com/auth/drive
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/live-api/setup/live-api-client.ts :116
'https://www.googleapis.com/auth/drive', - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/live-api/setup/oauth-setup.ts :43
'https://www.googleapis.com/auth/spreadsheets', - over-broad OAuth scope https://www.googleapis.com/auth/drive
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/live-api/setup/oauth-setup.ts :44
'https://www.googleapis.com/auth/drive', - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/security/resource-indicators.test.ts :143
scope: 'https://www.googleapis.com/auth/spreadsheets', - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/server/well-known.test.ts :46
'https://www.googleapis.com/auth/spreadsheets', - over-broad OAuth scope https://www.googleapis.com/auth/drive
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/server/well-known.test.ts :51
'https://www.googleapis.com/auth/drive', - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/services/google-api.test.ts :197
expect(DEFAULT_SCOPES).toContain('https://www.googleapis.com/auth/spreadsheets'); - over-broad OAuth scope https://www.googleapis.com/auth/drive
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/services/google-api.test.ts :201
DEFAULT_SCOPES.includes('https://www.googleapis.com/auth/drive') || - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/simulation/ai-flow-simulator.ts :426
'https://www.googleapis.com/auth/spreadsheets', - over-broad OAuth scope https://www.googleapis.com/auth/drive
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/simulation/ai-flow-simulator.ts :428
'https://www.googleapis.com/auth/drive', - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/simulation/cat01-core-crud.test.ts :157
'https://www.googleapis.com/auth/spreadsheets', - over-broad OAuth scope https://www.googleapis.com/auth/drive
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/simulation/cat01-core-crud.test.ts :159
'https://www.googleapis.com/auth/drive', - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/simulation/cat05-visualization.test.ts :74
auth: { scopes: ['https://www.googleapis.com/auth/spreadsheets', 'https://www.googleapis.com/auth/drive', 'https://www.googleapis.com/auth/drive.file'] } as any, - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/simulation/cat06-collaboration.test.ts :71
auth: { scopes: ['https://www.googleapis.com/auth/spreadsheets', 'https://www.googleapis.com/auth/drive', 'https://www.googleapis.com/auth/drive.file'] } as any, - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/simulation/cat07-advanced-features.test.ts :50
auth: { scopes: ['https://www.googleapis.com/auth/spreadsheets', 'https://www.googleapis.com/auth/drive', 'https://www.googleapis.com/auth/drive.file'] } as any, - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/simulation/cat09-external-integrations.test.ts :122
auth: { scopes: ['https://www.googleapis.com/auth/spreadsheets', 'https://www.googleapis.com/auth/drive', 'https://www.googleapis.com/auth/bigquery', 'https://www.googleapis.com/auth/bigquery.readonly - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tests/simulation/cat13-elicitation-wizards.test.ts :77
'https://www.googleapis.com/auth/spreadsheets', - over-broad OAuth scope https://www.googleapis.com/auth/cloud-platform
expected for this server's purpose
khill1269-servalsheets-1bd5cd5/tools/gcloud-console-server/src/index.ts :34
'https://www.googleapis.com/auth/cloud-platform', - committed secret committed .env khill1269-servalsheets-1bd5cd5/.env.quickstart :1
env file shipped with populated values
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 1767
filesystem 29
- fs khill1269-servalsheets-1bd5cd5/.serval/generate-state.mjs :11
import { readFileSync, writeFileSync, existsSync, readdirSync } from 'node:fs'; - fs khill1269-servalsheets-1bd5cd5/src/cli/auth-setup.ts :24
import { promises as fsPromises } from 'fs'; - fs khill1269-servalsheets-1bd5cd5/src/config/runtime-config-store.ts :19
import * as fs from 'fs'; - fs khill1269-servalsheets-1bd5cd5/src/connectors/connector-manager.ts :12
import * as fs from 'fs'; - fs khill1269-servalsheets-1bd5cd5/src/http-server/openapi-docs-routes.ts :1
import { existsSync, readFileSync } from 'fs'; - fs khill1269-servalsheets-1bd5cd5/src/resources/guides.ts :14
import { readFile } from 'node:fs/promises'; - fs khill1269-servalsheets-1bd5cd5/src/resources/knowledge-deferred.ts :21
import { readFile } from 'fs/promises'; - fs khill1269-servalsheets-1bd5cd5/src/security/tool-hash-registry.ts :17
import { readFileSync, existsSync } from 'fs'; - fs khill1269-servalsheets-1bd5cd5/src/server.ts :13
import { readFileSync } from 'fs'; - fs khill1269-servalsheets-1bd5cd5/src/services/agent/checkpoints.ts :9
import { unlink } from 'fs/promises'; - fs khill1269-servalsheets-1bd5cd5/src/services/agent/plan-store.ts :8
import { writeFile, readFile, mkdir, unlink } from 'fs/promises'; - fs khill1269-servalsheets-1bd5cd5/src/services/audit-logger.ts :137
import { existsSync, mkdirSync, promises as fs } from 'fs'; - fs khill1269-servalsheets-1bd5cd5/src/services/idempotency-manager.ts :16
import fs from 'node:fs'; - fs khill1269-servalsheets-1bd5cd5/src/services/request-recorder.ts :10
import { existsSync, mkdirSync, chmodSync } from 'fs'; - fs khill1269-servalsheets-1bd5cd5/src/services/scheduled-intelligence.ts :472
await fs.mkdir(dir, { recursive: true }); - fs khill1269-servalsheets-1bd5cd5/src/services/scheduler.ts :11
import { readFileSync, writeFileSync, mkdirSync, existsSync } from 'fs'; - fs khill1269-servalsheets-1bd5cd5/src/services/schema-cache.ts :18
import fs from 'node:fs/promises'; - fs khill1269-servalsheets-1bd5cd5/src/services/template-store.ts :24
import * as fs from 'node:fs/promises'; - fs khill1269-servalsheets-1bd5cd5/src/services/token-store.ts :19
import { promises as fs } from 'fs'; - fs khill1269-servalsheets-1bd5cd5/src/services/transaction-wal.ts :17
import { promises as fsPromises, existsSync, mkdirSync } from 'fs'; - fs khill1269-servalsheets-1bd5cd5/src/services/user-profile-manager.ts :9
import * as fs from 'fs/promises'; - fs khill1269-servalsheets-1bd5cd5/src/services/workspace-events.ts :14
import { existsSync, readFileSync } from 'node:fs'; - fs khill1269-servalsheets-1bd5cd5/src/startup/preflight-validation.ts :16
import { existsSync, accessSync, constants as fsConstants } from 'fs'; - fs khill1269-servalsheets-1bd5cd5/src/startup/restart-policy.ts :19
import { promises as fs } from 'fs'; - fs khill1269-servalsheets-1bd5cd5/src/ui/tracing.ts :7
import { readFileSync } from 'node:fs'; - fs khill1269-servalsheets-1bd5cd5/src/utils/ast-schema-parser.ts :22
import * as fs from 'fs'; - fs khill1269-servalsheets-1bd5cd5/src/utils/checkpoint.ts :11
import fs from 'fs/promises'; - fs khill1269-servalsheets-1bd5cd5/src/utils/google-api-options.ts :1
import { writeFileSync, mkdirSync } from 'fs'; - fs khill1269-servalsheets-1bd5cd5/src/utils/runtime-paths.ts :1
import { existsSync } from 'node:fs';
shell / exec 4
- shell khill1269-servalsheets-1bd5cd5/.serval/generate-state.mjs :12
import { execSync } from 'node:child_process'; - shell khill1269-servalsheets-1bd5cd5/src/cli/auth-setup.ts :271
// Use execFile (not exec) to prevent command injection via URL - shell khill1269-servalsheets-1bd5cd5/src/services/keychain-store.ts :7
* @dependencies keytar (optional), security CLI (macOS), node:child_process - shell khill1269-servalsheets-1bd5cd5/src/services/python-worker.ts :133
# Blocking compile() breaks basic Python constructs. Only block exec() and open()
network 42
- net khill1269-servalsheets-1bd5cd5/src/admin/dashboard.js :37
const response = await fetch(`${API_BASE}/admin/api/server-info`); - net khill1269-servalsheets-1bd5cd5/src/auth/oauth-provider.ts :1379
await fetch( - net khill1269-servalsheets-1bd5cd5/src/cli/auth-setup.ts :26
import * as http from 'http'; - net khill1269-servalsheets-1bd5cd5/src/cli/schema-manager.ts :49
await this.fetch(options); - net khill1269-servalsheets-1bd5cd5/src/config/secrets.ts :67
* Uses Node.js built-in fetch (no external deps). TTL-aware in-memory cache - net khill1269-servalsheets-1bd5cd5/src/connectors/alpha-vantage.ts :61
const resp = await fetch( - net khill1269-servalsheets-1bd5cd5/src/connectors/docs-connector.ts :57
const resp = await fetch('https://www.googleapis.com/drive/v3/about?fields=user', { - net khill1269-servalsheets-1bd5cd5/src/connectors/drive-connector.ts :56
const resp = await fetch( - net khill1269-servalsheets-1bd5cd5/src/connectors/finnhub.ts :63
const resp = await fetch(`${BASE_URL}/stock/symbol?exchange=US&token=${this.apiKey}`, { - net khill1269-servalsheets-1bd5cd5/src/connectors/fmp.ts :58
const resp = await fetch(`${BASE_URL}/stock/list?apikey=${this.apiKey}`); - net khill1269-servalsheets-1bd5cd5/src/connectors/fred.ts :58
const resp = await fetch( - net khill1269-servalsheets-1bd5cd5/src/connectors/gmail-connector.ts :56
const resp = await fetch('https://www.googleapis.com/gmail/v1/users/me/profile', { - net khill1269-servalsheets-1bd5cd5/src/connectors/openfigi-connector.ts :66
const resp = await fetch(`${BASE_URL}/search?query=Apple`, { - net khill1269-servalsheets-1bd5cd5/src/connectors/polygon.ts :58
const resp = await fetch(`${BASE_URL}/v3/reference/tickers?limit=1&apiKey=${this.apiKey}`); - net khill1269-servalsheets-1bd5cd5/src/connectors/rest-generic.ts :158
const resp = await fetch(url.toString(), { - net khill1269-servalsheets-1bd5cd5/src/connectors/sec-edgar-connector.ts :60
const resp = await fetch( - net khill1269-servalsheets-1bd5cd5/src/connectors/world-bank-connector.ts :51
const resp = await fetch(`${BASE_URL}/country?format=json&per_page=1`); - net khill1269-servalsheets-1bd5cd5/src/handlers/advanced-actions/chips.ts :217
// ISSUE-019: Require range to prevent unbounded full-grid fetch (chipRuns requires includeGridData) - net khill1269-servalsheets-1bd5cd5/src/handlers/appsscript-actions/serval-installer.ts :94
var response = UrlFetchApp.fetch(CALLBACK_URL, { - net khill1269-servalsheets-1bd5cd5/src/handlers/appsscript.ts :553
const response = await fetch(url, fetchOptions); - net khill1269-servalsheets-1bd5cd5/src/handlers/bigquery-actions/scheduled-queries.ts :60
const response = await fetch(url, { - net khill1269-servalsheets-1bd5cd5/src/handlers/dependencies-actions/scenario.ts :244
// Fallback: API-based value fetch (original behavior) - net khill1269-servalsheets-1bd5cd5/src/observability/otel-export.ts :227
const response = await fetch(`${this.config.endpoint}/v1/traces`, { - net khill1269-servalsheets-1bd5cd5/src/observability/tracing.ts :202
const response = await fetch(`${OTLP_ENDPOINT}/v1/traces`, { - net khill1269-servalsheets-1bd5cd5/src/security/oidc-provider.ts :237
const res = await fetch(this.config.discoveryUrl); - net khill1269-servalsheets-1bd5cd5/src/security/resource-indicators.ts :193
const response = await fetch( - net khill1269-servalsheets-1bd5cd5/src/server/metrics-server.ts :8
import { createServer, type Server, type IncomingMessage, type ServerResponse } from 'node:http'; - net khill1269-servalsheets-1bd5cd5/src/services/audit-logger.ts :598
const response = await fetch(config.endpoint, { - net khill1269-servalsheets-1bd5cd5/src/services/discovery-client.ts :218
const response = await fetch(baseUrl, { - net khill1269-servalsheets-1bd5cd5/src/services/formula-callback.ts :186
const response = await fetch('https://api.anthropic.com/v1/messages', { - net khill1269-servalsheets-1bd5cd5/src/services/google-api.ts :44
import { Agent as HttpAgent } from 'http'; - net khill1269-servalsheets-1bd5cd5/src/services/llm-fallback.ts :131
const response = await fetch(`${config.baseUrl}/v1/messages`, { - net khill1269-servalsheets-1bd5cd5/src/services/sampling-health-probe.ts :142
const response = await fetch(url, { - net khill1269-servalsheets-1bd5cd5/src/services/scheduled-intelligence.ts :432
const response = await fetch(webhookUrl, { - net khill1269-servalsheets-1bd5cd5/src/services/semantic-search.ts :79
const response = await fetch(`${GEMINI_API_URL}?key=${encodeURIComponent(apiKey)}`, { - net khill1269-servalsheets-1bd5cd5/src/services/webhook-worker.ts :205
fetch(job.webhookUrl, { - net khill1269-servalsheets-1bd5cd5/src/services/workspace-events.ts :386
const response = await fetch(`${WORKSPACE_EVENTS_BASE_URL}${path}`, { - net khill1269-servalsheets-1bd5cd5/src/startup/preflight-validation.ts :20
import { get as httpsGet } from 'https'; - net khill1269-servalsheets-1bd5cd5/src/ui/tracing-dashboard/src/api.ts :11
const response = await fetch(`${BASE_URL}/recent?limit=${limit}`); - net khill1269-servalsheets-1bd5cd5/src/utils/api-key-server.ts :9
import http from 'http'; - net khill1269-servalsheets-1bd5cd5/src/utils/oauth-callback-server.ts :22
import http from 'http'; - net khill1269-servalsheets-1bd5cd5/tools/google-docs-server/src/index.ts :20
import axios from 'axios';
secrets 22
- secrets khill1269-servalsheets-1bd5cd5/src/auth/oauth-provider.ts :1678
const expectedToken = process.env['OAUTH_DCR_CONSENT_TOKEN']; - secrets khill1269-servalsheets-1bd5cd5/src/cli/auth-setup.ts :524
process.env['ENCRYPTION_KEY'] ?? existingKeyMatch?.[1] ?? randomBytes(32).toString('hex'); - secrets khill1269-servalsheets-1bd5cd5/src/cli/replay.ts :292
const accessToken = process.env['GOOGLE_ACCESS_TOKEN']; - secrets khill1269-servalsheets-1bd5cd5/src/config/embedded-oauth.ts :35
clientSecret: process.env['OAUTH_CLIENT_SECRET'] ?? 'REPLACE_WITH_REAL_OAUTH_CLIENT_SECRET', - secrets khill1269-servalsheets-1bd5cd5/src/config/runtime-config-store.ts :62
return process.env['CONNECTOR_ENCRYPTION_KEY'] ?? process.env['ENCRYPTION_KEY']; - secrets khill1269-servalsheets-1bd5cd5/src/config/secrets.ts :349
const vaultToken = process.env['VAULT_TOKEN']; - secrets khill1269-servalsheets-1bd5cd5/src/connectors/connector-manager.ts :84
const password = process.env['CONNECTOR_ENCRYPTION_KEY']; - secrets khill1269-servalsheets-1bd5cd5/src/handlers/analyze-actions/semantic-search.ts :28
const apiKey = process.env['GOOGLE_API_KEY']; - secrets khill1269-servalsheets-1bd5cd5/src/handlers/auth-actions/feature-setup.ts :384
process.env['ANTHROPIC_API_KEY'] = apiKey; - secrets khill1269-servalsheets-1bd5cd5/src/handlers/auth-actions/status.ts :103
const googleApiKeyConfigured = Boolean(process.env['GOOGLE_API_KEY']); - secrets khill1269-servalsheets-1bd5cd5/src/handlers/auth.ts :71
this.tokenStoreKey = options.tokenStoreKey ?? process.env['ENCRYPTION_KEY']; - secrets khill1269-servalsheets-1bd5cd5/src/http-server-entry.ts :31
process.env['OAUTH_CLIENT_SECRET'] !== undefined - secrets khill1269-servalsheets-1bd5cd5/src/http-server.ts :176
process.env['OAUTH_CLIENT_SECRET'] !== undefined - secrets khill1269-servalsheets-1bd5cd5/src/server/health.ts :165
process.env['GOOGLE_SERVICE_ACCOUNT_KEY'] ?? - secrets khill1269-servalsheets-1bd5cd5/src/services/audit-logger.ts :202
const encKeyPassword = options?.encryptionKey ?? process.env['AUDIT_LOG_ENCRYPTION_KEY']; - secrets khill1269-servalsheets-1bd5cd5/src/services/formula-callback.ts :175
const apiKey = claudeApiKey ?? process.env['ANTHROPIC_API_KEY']; - secrets khill1269-servalsheets-1bd5cd5/src/services/llm-fallback.ts :75
process.env['LLM_API_KEY'] || - secrets khill1269-servalsheets-1bd5cd5/src/services/user-profile-manager.ts :20
const ENCRYPTION_KEY_HEX = process.env['PROFILE_ENCRYPTION_KEY']; - secrets khill1269-servalsheets-1bd5cd5/src/startup/lifecycle.ts :57
const hasEncryptionKey = Boolean(process.env['ENCRYPTION_KEY']); - secrets khill1269-servalsheets-1bd5cd5/src/startup/preflight-validation.ts :184
const encryptionKey = process.env['ENCRYPTION_KEY']; - secrets khill1269-servalsheets-1bd5cd5/src/utils/google-api-options.ts :20
const inlineKey = process.env['GOOGLE_SERVICE_ACCOUNT_KEY']; - secrets khill1269-servalsheets-1bd5cd5/src/utils/oauth-config.ts :25
const envClientSecret = process.env['GOOGLE_CLIENT_SECRET'] ?? process.env['OAUTH_CLIENT_SECRET'];
database 6
- db khill1269-servalsheets-1bd5cd5/src/core/task-store.ts :11
import type { RedisClientType } from 'redis'; - db khill1269-servalsheets-1bd5cd5/src/mcp/event-store.ts :15
import type { RedisClientType } from 'redis'; - db khill1269-servalsheets-1bd5cd5/src/services/quota-manager.ts :28
import { type Redis } from 'ioredis'; - db khill1269-servalsheets-1bd5cd5/src/services/request-recorder.ts :8
import Database from 'better-sqlite3'; - db khill1269-servalsheets-1bd5cd5/src/services/user-rate-limiter.ts :16
* import { createClient } from 'redis'; - db khill1269-servalsheets-1bd5cd5/src/storage/session-store.ts :2
import { createClient } from 'redis';
install hooks 2
- prepare khill1269-servalsheets-1bd5cd5/package.json :129
npm run build - prepublishOnly khill1269-servalsheets-1bd5cd5/packages/serval-core/package.json :54
npm run build
declared dependencies 107
- @modelcontextprotocol/sdk@^1.29.0
- @apollo/server@^5.4.0
- @duckdb/node-api@^1.5.0-r.1
- @node-saml/node-saml@^5.1.0
- @opentelemetry/api@^1.9.0
- @opentelemetry/auto-instrumentations-node@^0.78.0
- @opentelemetry/exporter-prometheus@^0.220.0
- @opentelemetry/sdk-metrics@^2.9.0
- @opentelemetry/sdk-node@^0.220.0
- @opentelemetry/sdk-trace-node@^2.9.0
- @serval/core@workspace:*
- @serval/mcp-client@workspace:*
- @serval/mcp-http@workspace:*
- @serval/mcp-runtime@workspace:*
- @serval/mcp-stdio@workspace:*
- @types/node-cron@^3.0.11
- better-sqlite3@^12.11.1
- chalk@^5.6.2
- cli-table3@^0.6.5
- commander@^14.0.3
- compression@^1.8.1
- cors@^2.8.6
- deep-diff@^1.0.2
- dotenv@^17.2.4
- express@^5.2.1
- express-rate-limit@^8.3.2
- google-auth-library@^10.5.0
- googleapis@^171.4.0
- graphql@^16.12.0
- helmet@^8.1.0
- hyperformula@^3.2.0
- jsonwebtoken@^9.0.3
- lru-cache@^11.3.5
- node-cron@^4.2.1
- open@^11.0.0
- p-queue@^9.1.2
- prom-client@^15.1.3
- stripe@^17.5.0
- swagger-ui-express@^5.0.1
- typescript@^5.9.3
- uuid@^13.0.0
- winston@^3.19.0
- zod@^4.3.6
- @emnapi/core@^1.10.0
- @emnapi/runtime@^1.10.0
- @emnapi/wasi-threads@^1.2.1
- @flydotio/dockerfile@^0.7.10
- @stryker-mutator/core@^9.6.0
- @stryker-mutator/jest-runner@^9.6.0
- @stryker-mutator/typescript-checker@^9.6.0
- @stryker-mutator/vitest-runner@^9.6.0
- @types/better-sqlite3@^7.6.13
- @types/compression@^1.8.1
- @types/cors@^2.8.19
- @types/deep-diff@^1.0.5
- @types/express@^5.0.6
- @types/jsonwebtoken@^9.0.10
- @types/node@^20.17.0
- @types/react@^18.3.28
- @types/react-dom@^18.3.7
- @types/stripe@^8.0.416
- @types/supertest@^7.2.0
- @types/swagger-ui-express@^4.1.8
- @types/ws@^8.5.13
- @typescript-eslint/eslint-plugin@^8.58.0
- @typescript-eslint/parser@^8.54.0
- @vitejs/plugin-react@^5.1.4
- @vitest/coverage-v8@^4.1.2
- ajv@^8.18.0
- ajv-formats@^3.0.1
- autocannon@^8.0.0
- bindings@^1.5.0
- chokidar@^5.0.0
- cspell@^9.6.4
- dependency-cruiser@^17.3.10
- eslint@^9.39.2
- eslint-plugin-boundaries@^5.4.0
- fast-check@^4.5.3
- husky@^9.1.7
- knip@^6.1.1
- lint-staged@^16.2.7
- markdownlint-cli2@^0.22.0
- npm-run-all@^4.1.5
- openapi-types@^12.1.3
- prettier@^3.8.1
- react@^18.3.1
- react-dom@^18.3.1
- search-insights@^2.17.3
- supertest@^7.2.2
- syncpack@^14.3.0
- ts-prune@^0.10.3
- tsx@^4.21.0
- turbo@^2.9.3
- typedoc@^0.28.16
- vite@^7.3.1
- vitepress@^1.6.4
- vitest@^4.1.2
- yaml@^2.8.2
- zod-to-json-schema@^3.25.2
- @esbuild/darwin-arm64@^0.28.0
- @oxc-parser/binding-darwin-arm64@^0.127.0
- @oxc-resolver/binding-darwin-arm64@^11.19.1
- @rollup/rollup-darwin-arm64@^4.60.2
- ioredis@^5.10.0
- keytar@7.9.0
- pyodide@^0.29.3
- redis@5.11.0
obfuscation 2
- dynamic require()/import() khill1269-servalsheets-1bd5cd5/scripts/test-infrastructure/schema-reader.ts :91
const schemaModule = await import(`../../src/schemas/${tool.replace('sheets_', '')}.js`); - dynamic require()/import() khill1269-servalsheets-1bd5cd5/tests/config/effective-tool-mode.test.ts :43
import('${CONSTANTS_MODULE.replace(/\\/g, '\\\\')}').then(c => {
transport_posture 2
- network-listening, binds all interfaces, no auth detected khill1269-servalsheets-1bd5cd5/tests/http-server/runtime-config.test.ts :31
host: '0.0.0.0', - binds all interfaces (0.0.0.0) khill1269-servalsheets-1bd5cd5/tests/packages/mcp-http/create-http-server.test.ts :49
host: '0.0.0.0',