2026-10-11 17:15 UTC

Fentaris’s maintainers claim their released open-source proxy unifies multiple MCP transports behind one stable endpoint with centralized authentication, access policies, approvals, and operation logging, reducing per-client configuration and bespoke governance infrastructure.

state: seedheat: lowuncertainty: mediumconvergesscott: mediummcp-governance agentic-security tool-routingFentarisGabry848

What is this?

Fentaris is an MCP proxy associated with the Fentaris/fentaris repository; the relevant search snippet describes consolidating multiple MCP servers behind one controlled endpoint with stable routing and policies. Its setup documentation describes a high-level TypeScript API for configuring the proxy and declaring upstream servers. The supplied case presents an open-source Show HN announcement and names Gabry848, but the web snippets do not establish that person's role or the release timing. They also do not verify the claimed transport coverage, centralized authentication, approvals, operation logging, or reductions in configuration and governance work.

Why it matters to Scott

Fentaris’s controlled MCP endpoint converges with Scott’s explicit deterministic-control-plane position and offers a concrete proxy candidate to evaluate alongside his AWS Bedrock MCP-proxy work and production MCP IP Wiki connector. This is an implementation-evaluation opportunity, not validation of his stronger authority or provenance requirements: authentication, approvals, logging and configuration savings remain unverified, and the supplied radar pages track adjacent developments rather than Fentaris itself.
dev:concept.deterministic-agent-control-planedev:project.aws-bedrockdev:project.mcp-ip-wikiip:source.mcp-as-the-tool-belt-standard-giving-ai-agents-hands-and-eyes-ebookradar:conduct-tool-call-guardrailsradar:concept.mcpradar:concept.tool-routingradar:concept.agent-authorization
queries asked of Scott's wikis
  • MCP client configuration and multi-server tool routing
  • Agent harness centralized authentication and access policies
  • Human approval gates and tool execution audit logs
  • Shared agent control plane versus per-client governance
  • TypeScript agent tooling and MCP integration projects

Measured heat

now 0 pts/hpeak 0 pts/hcomments 0/hpeers p14momentum: steady2 platformsage 531h
points/hour across evidence · reading as of 2026-10-12 02:59:37.977291+11:00 · deterministic, not a model opinion

How the heat travelled

09-19 13:22 (minted)⭐ origin echo-reconstructedThe repository describes a control plane that unifies MCP servers behind a single endpoint with stable namespaced routing, identity and poli
Fentaris on github (echo) · attributed from hn.story.49766312 · published time unknown
—
09-19 13:10first on hacker news · published · lag ?Show HN: Fentaris, an open-source proxy for managing multiple MCP servers
Gabry848
—
09-19 13:10amplified on hacker news 👑hn.story.49766312
Gabry848
peak 4 · 0 comments · 98% of case engagement
09-19 13:20our radar first saw it · lag ?discovery anchor: hn.story.49766312—
pace: p23 vs 1032 stories at the 336h mark (now 531h old) — ahead of aafp-commons-signed-agent-notebook (2.0x), behind agentgate-signed-agent-receipts (0.7x)

Evidence (2) — ⭐ canonical anchor

sourceobjectauthorscorecomments
🟧 hnShow HN: Fentaris, an open-source proxy for managing multiple MCP servers
Retrieved article excerpt

Open article · Retrieved 2026-09-19T13:21:58.607149+00:00

[Fentaris logo](https://github.com/fentaris-io/fentaris)

Table of contents

- [About](https://github.com/Fentaris/fentaris#about)
- [Documentation](https://github.com/Fentaris/fentaris#documentation)
  - [Skills for Coding Agents](https://github.com/Fentaris/fentaris#skills-for-coding-agents)
- [Getting Started](https://github.com/Fentaris/fentaris#getting-started)
- [Examples](https://github.com/Fentaris/fentaris#examples)
- [Packages](https://github.com/Fentaris/fentaris#packages)
- [Development](https://github.com/Fentaris/fentaris#development)
- [License](https://github.com/Fentaris/fentaris#license)

## About

**Fentaris** is a control plane for your MCP servers — one place to run, route, and manage every MCP server behind a single, stable endpoint.

- **Unify** stdio, Streamable HTTP, SSE, and HTTP upstream MCP servers behind one proxy.
- **Manage** which servers and tools are exposed, to whom, and how they behave — without touching client configs.
- **Observe** every proxied operation with structured logging, lifecycle events, and per-request context.
- **Protect** tool calls, resources, prompts, and completions with policy, identity, middleware, hooks, and rate limits.
- **Authenticate** clients and upstream MCP servers with API keys, bearer tokens, custom headers, and OAuth 2.1.

Fentaris is designed for teams that want MCP servers to behave like production infrastructure: stable names, centralized management, auditable calls, and predictable client-facing endpoints.

## Documentation

Visit our [docs](https://fentaris.mintlify.app) or jump to a [quickstart](https://fentaris.mintlify.app/getting-started/quickstart)

#### Skills for Coding Agents

> Using Claude Code, Codex, Cursor or other AI coding agents?
>
> [Install the Fentaris skill for coding agents](https://www.skills.sh/fentaris/fentaris-skills/fentaris-project-setup)

For a complete runnable project with API-key users, groups, allow-list policy,
a remote MCP upstream, and app-owned local tools, see
[`examples/team-governed-proxy`](https://github.com/Fentaris/fentaris/blob/main/examples/team-governed-proxy).

## Getting Started

Use the CLI to start a new Fentaris proxy project:

```
npm install -g @fentaris/cli
fentaris init my-proxy
cd my-proxy
fentaris dev
```

The generated proxy listens on `http://localhost:4000/mcp` by default. Point your MCP client to that endpoint.

Under the hood, a Fentaris proxy is just a few lines of code:

```
import {
  approval,
  fentaris,
  oauth,
  policy,
  stdio,
  streamableHttp,
  user,
} from "@fentaris/core";

const app = fentaris();

app.mcp("filesystem", {
  transport: stdio({
    command: "npx",
    args: ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"],
  }),
});

await app.start();
```

Upstream tool names stay stable and namespaced by server, no matter how many servers you add. A filesystem tool is exposed to clients with a proxy name such as:

```
filesystem__list_directory
```

[→ Full documentation](https://fentaris.mintlify.app)

## Examples

Add another server behind the same endpoint:

```
app.mcp("github", {
  transport: stdio({ command: "npx", args: ["-y", "@modelcontextprotocol/server-github"] }),
});
```

Restrict who can call what:

```
app.policy("read-only")
  .mcp("filesystem")
  .allow("list_directory");

app.group("operators")
  .users(user("alice", { email: "[email protected]" }))
  .policy("read-only");
```

Require approval before a risky action runs:

```
const deploy = policy("deploy")
  .mcp("github")
  .allow("deploy_production", approval.manual({
    reason: "Production deploy requires approval",
  }));
```

Observe every tool call:

```
app.on("tool:success", ({ ctx, durationMs }) => {
  ctx.log.info("tool.success", { tool: ctx.tool?.name, durationMs });
});
```

Runtime routes can deny, approve, hide, log, or transform calls to any tool, resource, prompt, or completion.

Authenticate clients with an API key, and let Fentaris handle OAuth 2.1 for upstream servers automatically:

```
fentaris auth api-key add alice --generate
```

```
app.mcp("linear", {
  transport: streamableHttp({ url: "https://mcp.linear.app/mcp" }),
  auth: oauth(),
});
```

Credential values are never exposed to middleware, hooks, logs, or policy callbacks.

## Packages

| Package | Description |
| --- | --- |
| [`@fentaris/core`](https://github.com/Fentaris/fentaris/blob/main/packages/core) | Proxy runtime, MCP server wrapper, transports, policy, auth, logging, and middleware APIs. |
| [`@fentaris/cli`](https://github.com/Fentaris/fentaris/blob/main/packages/cli) | Project generator and local development commands. |
| [`@fentaris/approval-telegram`](https://github.com/Fentaris/fentaris/blob/main/packages/approval-telegram) | Telegram approval adapter for Fentaris policies. |

## Development

Run the project for development:

```
fentaris dev
```

From a clean clone, install the locked dependency graph and run the same validation used by CI:

```
pnpm install --frozen-lockfile
pnpm verify
```

`pnpm verify` runs lint, typecheck, build, and every package test in that order.

Before promoting a release, verify the exact npm tarballs in clean projects:

```
pnpm verify:release
```

This packs Core, CLI, Edge, and Telegram approval, validates their manifests and
entrypoints, installs them in an empty project, generates and builds a real CLI
project, and exercises upgrade, downgrade, reinstall, and re-upgrade from the
previous published package set. It requires access to the npm registry.

Generate docs reference:

```
pnpm docs:generate
```

## License

[MIT](https://github.com/Fentaris/fentaris/blob/main/LICENSE.txt), as declared by the published Fentaris packages.
Gabry84840
🟧 echo.github ⭐The repository describes a control plane that unifies MCP servers behind a single endpoint with stable namespaced routing, identity and poliFentaris——

Interpretation history

Decision trace