MCP client policy starter

A dependency-free policy starter separating offline and live-read MCP resources before adding an SDK transport.

A project you can inspect before installing.

The canonical file manifest is also the archive contract. Common evidence, environment, manifest, and acceptance files accompany platform-specific source.

README.mdSetup and first-success boundary
STARTER_MANIFEST.jsonMachine-readable project scope
.env.exampleBlank non-secret configuration
EVIDENCE.mdSource and selection boundary
ACCEPTANCE.mdSuccess and hostile-path proof
mcp.config.example.jsonCredential-empty transports
src/policy.mjsLeast-authority tool policy
test/policy.test.mjsExecutable policy tests

Secrets have one owner.

Keep provider credentials in the MCP server process or approved secret provider, never model context or client configuration committed to source. A remote internal gateway bearer or issuer-bound OAuth access token is independent from every Mappls provider credential. Documentation and migration tools require no live credential.

Source before syntax.

The MCP implementation is maintained in this repository and protocol-tested over stdio and Streamable HTTP. Live tool success still depends on the issued account, operation, region, and credential scope; production OAuth authorization-server registration, consent, lifecycle, and revocation remain company integrations.

This platform requires an entitled or company-selected distribution before live binding.

What must be true after the scaffold.

01

Fixture, real stdio, and remote HTTP share one governed application client contract. Local stdio and an explicit live-read deployment advertise 42 typed tools; default remote HTTP advertises only the 32 credential-free tools. Both profiles retain 38 resources and two prompts, OAuth mode binds an attributable principal/client/scope to the exact resource, remote HTTP retains no session registry, and no profile exposes writes.

02

A blocked, missing, or unentitled provider produces a useful explicit failure rather than a blank surface or fabricated result.

03

No server credential, bearer value, precise private fixture, or provider response body appears in client bundles, logs, screenshots, or test artifacts.

04

Resources, listeners, sessions, processes, or requests stop cleanly when the owning screen, request, or application ends.

05

Tools have least authority

06

Gateway/OAuth and provider credentials are independent

07

Issuer, resource audience, principal, client, expiry, and profile scope are enforced

08

Consent, rate limiting, revocation, TLS, and egress are production-governed

09

Writes require separate design/approval

10

Results preserve provenance

11

Calls are scoped, metered, redacted, and traceable