Skip to main content
Use this example when a team needs one Fentaris endpoint with separate reader, developer, and maintainer access. It includes a remote upstream MCP server, a stdio upstream MCP server, one local app-owned namespace, API-key identity, group-scoped credentials, and validation commands.

Quick Start

Create the project:
Add package scripts:
Create fentaris.json:
Create tsconfig.json:
Create .gitignore:
Create src/index.ts:

Secrets Manifest

Create the manifest after the entrypoint exists:
The generated .fentaris/secrets.manifest.json is a schema file, not a secret store. Its exact entries depend on the credential helpers in the entrypoint. It uses this shape:
Commit the generated manifest. Do not commit .fentaris/credentials.enc.json, raw API keys, upstream tokens, or FENTARIS_AUTH_KEY.

Provision Local Credentials

Generate API keys and store upstream credentials:
Save each generated API key when it is printed. Fentaris stores only hashes in the encrypted local credential store.

Validate The Project

Run local checks before connecting a client:
Expected successful shapes:
Start the proxy:
In another shell, test runtime access:
Expected reader discovery includes local status and filesystem list access, but not maintainer-only GitHub writes:
Calling a hidden or denied tool should fail before dispatch:
Switch to the maintainer API key to inspect maintainer-only access:

MCP Client Test

For a direct JSON-RPC smoke test, call the running MCP endpoint with the API key header:
Expected shape: