Fentaris is a centralized MCP proxy that unifies multiple MCP servers behind a single controlled endpoint, with stable routing, policies, identity, middleware, and rate limiting.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · streamable-http · http · sse counts 2 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
search_issues
-
write_file
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 44a0b5b · analyzer v17 · 3d ago
skills & prompt files 34
- skillFentaris-fentaris-44a0b5b/.agents/skills/openspec-apply-change/SKILL.md
- skillFentaris-fentaris-44a0b5b/.agents/skills/openspec-archive-change/SKILL.md
- skillFentaris-fentaris-44a0b5b/.agents/skills/openspec-explore/SKILL.md
- skillFentaris-fentaris-44a0b5b/.agents/skills/openspec-propose/SKILL.md
- skillFentaris-fentaris-44a0b5b/.agents/skills/source-command-opsx-apply/SKILL.md
- skillFentaris-fentaris-44a0b5b/.agents/skills/source-command-opsx-archive/SKILL.md
- skillFentaris-fentaris-44a0b5b/.agents/skills/source-command-opsx-explore/SKILL.md
- skillFentaris-fentaris-44a0b5b/.agents/skills/source-command-opsx-propose/SKILL.md
- skillFentaris-fentaris-44a0b5b/.claude/skills/openspec-apply-change/SKILL.md
- skillFentaris-fentaris-44a0b5b/.claude/skills/openspec-archive-change/SKILL.md
- skillFentaris-fentaris-44a0b5b/.claude/skills/openspec-explore/SKILL.md
- skillFentaris-fentaris-44a0b5b/.claude/skills/openspec-propose/SKILL.md
- skillFentaris-fentaris-44a0b5b/.codex/skills/fentaris-dev-pr-workflow/SKILL.md
- skillFentaris-fentaris-44a0b5b/.codex/skills/fentaris-pr-release-workflow/SKILL.md
- skillFentaris-fentaris-44a0b5b/.codex/skills/openspec-apply-change/SKILL.md
- skillFentaris-fentaris-44a0b5b/.codex/skills/openspec-archive-change/SKILL.md
- skillFentaris-fentaris-44a0b5b/.codex/skills/openspec-explore/SKILL.md
- skillFentaris-fentaris-44a0b5b/.codex/skills/openspec-propose/SKILL.md
- skillFentaris-fentaris-44a0b5b/.cursor/skills/openspec-apply-change/SKILL.md
- skillFentaris-fentaris-44a0b5b/.cursor/skills/openspec-archive-change/SKILL.md
- skillFentaris-fentaris-44a0b5b/.cursor/skills/openspec-explore/SKILL.md
- skillFentaris-fentaris-44a0b5b/.cursor/skills/openspec-propose/SKILL.md
- prompt-fileFentaris-fentaris-44a0b5b/.github/prompts/opsx-apply.prompt.md
- prompt-fileFentaris-fentaris-44a0b5b/.github/prompts/opsx-archive.prompt.md
- prompt-fileFentaris-fentaris-44a0b5b/.github/prompts/opsx-explore.prompt.md
- prompt-fileFentaris-fentaris-44a0b5b/.github/prompts/opsx-propose.prompt.md
- skillFentaris-fentaris-44a0b5b/.github/skills/openspec-apply-change/SKILL.md
- skillFentaris-fentaris-44a0b5b/.github/skills/openspec-archive-change/SKILL.md
- skillFentaris-fentaris-44a0b5b/.github/skills/openspec-explore/SKILL.md
- skillFentaris-fentaris-44a0b5b/.github/skills/openspec-propose/SKILL.md
- skillFentaris-fentaris-44a0b5b/.opencode/skills/openspec-apply-change/SKILL.md
- skillFentaris-fentaris-44a0b5b/.opencode/skills/openspec-archive-change/SKILL.md
- skillFentaris-fentaris-44a0b5b/.opencode/skills/openspec-explore/SKILL.md
- skillFentaris-fentaris-44a0b5b/.opencode/skills/openspec-propose/SKILL.md
danger signals1
- suspicious endpointapi.telegram.orgFentaris-fentaris-44a0b5b/packages/approval-telegram/src/index.ts:47
const defaultApiBaseUrl = "https://api.telegram.org";
evidence-backed
findings quoted directly from the published source artifact — not inferred
filesystem 10
- fs Fentaris-fentaris-44a0b5b/packages/cli/src/commands/build.ts :1
import { copyFile, mkdir, writeFile } from "node:fs/promises"; - fs Fentaris-fentaris-44a0b5b/packages/cli/src/domain/auth/local-store.ts :1
import { mkdir, readFile, writeFile } from "node:fs/promises"; - fs Fentaris-fentaris-44a0b5b/packages/cli/src/domain/health/checks.ts :1
import { constants as fsConstants } from "node:fs"; - fs Fentaris-fentaris-44a0b5b/packages/cli/src/domain/project/project.ts :1
import { readdir } from "node:fs/promises"; - fs Fentaris-fentaris-44a0b5b/packages/cli/src/domain/template/template.ts :1
import { mkdir, writeFile } from "node:fs/promises"; - fs Fentaris-fentaris-44a0b5b/packages/cli/src/index.ts :2
import { realpathSync } from "node:fs"; - fs Fentaris-fentaris-44a0b5b/packages/cli/src/shared/utils.ts :1
import { access, readFile, stat } from "node:fs/promises"; - fs Fentaris-fentaris-44a0b5b/packages/core/src/auth/auth.ts :2
import { readFile } from "node:fs/promises"; - fs Fentaris-fentaris-44a0b5b/packages/core/src/credentials/credentials.ts :1
import { constants as fsConstants } from "node:fs"; - fs Fentaris-fentaris-44a0b5b/scripts/generate-typedoc-mdx.cjs :2
const { mkdirSync, readdirSync, readFileSync, statSync, writeFileSync } = require("node:fs");
shell / exec 3
- shell Fentaris-fentaris-44a0b5b/packages/cli/src/platform/runtime.ts :1
import { spawn, spawnSync, type SpawnOptions } from "node:child_process"; - shell Fentaris-fentaris-44a0b5b/packages/cli/src/shared/types.ts :1
import type { SpawnOptions } from "node:child_process"; - shell Fentaris-fentaris-44a0b5b/scripts/generate-typedoc-mdx.cjs :1
const { execSync } = require("node:child_process");
network 4
- net Fentaris-fentaris-44a0b5b/packages/approval-telegram/src/index.ts :196
const response = await options.fetch(telegramUrl(options.apiBaseUrl, options.botToken, "sendMessage"), { - net Fentaris-fentaris-44a0b5b/packages/core/src/proxy/McpProxy.ts :1
import { type IncomingHttpHeaders, type IncomingMessage, type Server as HttpServer } from "node:http"; - net Fentaris-fentaris-44a0b5b/packages/core/src/transports/exposure/HttpProxyExposureTransport.ts :2
import { createServer, type IncomingMessage, type Server as HttpServer, type ServerResponse } from "node:http"; - net Fentaris-fentaris-44a0b5b/packages/core/src/transports/exposure/SseProxyExposureTransport.ts :1
import { createServer, type IncomingMessage, type Server as HttpServer, type ServerResponse } from "node:http";
declared dependencies 7
- @changesets/cli@^2.31.0
- @eslint/js@^10.0.1
- eslint@^10.4.0
- typedoc@^0.28.19
- typedoc-plugin-markdown@^4.11.0
- typescript@^6.0.3
- typescript-eslint@^8.60.0