Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ Running in **HTTP mode** — OAuth2, CORS, and the `HTTP_SECURITY_ENABLED` toggl
**Using it**
- [Quick start](docs/site/content/pages/mcp/quick-start.md) · [Client setup](docs/site/content/pages/mcp/clients/) — Claude Desktop, Claude Code, VS Code, Cursor, JetBrains, MCP Inspector
- [Observability](docs/site/content/pages/mcp/observability.md) — OpenTelemetry traces, metrics, logs
- Security: [STDIO model](docs/security/stdio.md) · [HTTP model](docs/security/http.md) · OAuth2 setup: [Auth0](docs/security/auth0.md) · [Keycloak](docs/security/keycloak.md)
- Security: [Deployment model (single-tenant)](docs/security/deployment-model.md) · [STDIO model](docs/security/stdio.md) · [HTTP model](docs/security/http.md) · OAuth2 setup: [Auth0](docs/security/auth0.md) · [Keycloak](docs/security/keycloak.md)

**Developing it**
- [Development guide](dev-docs/DEVELOPMENT.md) — build, run, test, IDE, native image, SBOM · [Architecture](dev-docs/ARCHITECTURE.md)
Expand Down
23 changes: 23 additions & 0 deletions docs/security/deployment-model.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Deployment Model — Single-Tenant by Design

**The Solr MCP server is single-tenant. It does not support multi-tenancy.**

The intended deployment is one instance per user, configured with that user's
own Solr credentials. Every action the configured Solr identity is allowed to
perform — including admin, schema, and collection operations — is by design
reachable through the MCP tools. The server performs no per-user authorization
or tenant isolation of its own; to limit what the tools can do, scope the Solr
identity in Solr (Basic Auth, roles, mTLS, network policy).

In HTTP mode, OAuth2 authenticates *that* a caller is allowed in, but every
authenticated caller shares the same single Solr identity — it is an access
gate, not a tenant boundary.

Sharing one instance across multiple users, or otherwise treating it as
multi-tenant, is unsupported: you are on your own for isolation and any
resulting exposure. Multi-tenancy may be considered in a future release.

## Related documents

- [STDIO transport security model](./stdio.md)
- [HTTP transport security model](./http.md)
1 change: 1 addition & 0 deletions docs/security/http.md
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,7 @@ exists for browser-based tooling.

## Related documents

- [Deployment model — single-tenant by design](./deployment-model.md)
- [STDIO transport security model](./stdio.md)
- OAuth2 provider setup: [Auth0](./auth0.md) · [Keycloak](./keycloak.md)
- [GraalVM native image spec](../specs/graalvm-native-image.md)
Expand Down
1 change: 1 addition & 0 deletions docs/security/stdio.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ that launched the process. No code changes are required for STDIO security.

## Related documents

- [Deployment model — single-tenant by design](./deployment-model.md)
- [HTTP transport security model](./http.md)
- OAuth2 provider setup (HTTP mode): [Auth0](./auth0.md) · [Keycloak](./keycloak.md)
- [GraalVM native image spec](../specs/graalvm-native-image.md)
Expand Down
Loading