Skip to content

docs(security): document single-tenant deployment model (#169) - #170

Merged
janhoy merged 1 commit into
apache:mainfrom
janhoy:docs/document-single-tenancy-169
Jul 31, 2026
Merged

docs(security): document single-tenant deployment model (#169)#170
janhoy merged 1 commit into
apache:mainfrom
janhoy:docs/document-single-tenancy-169

Conversation

@janhoy

@janhoy janhoy commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Resolves #169.

Formally documents that the Solr MCP server is single-tenant and does not support multi-tenancy: the intended deployment is one instance per user, configured with that user's own Solr credentials, and every action the configured Solr identity is permitted is reachable through the MCP tools by design. Authorization is delegated to Solr, not re-implemented in the MCP layer. Setting this expectation up front avoids "too permissive / insecure for multi-tenant use" reports for behavior that is intentional under this model.

Changes

  • New docs/security/deployment-model.md — the single authoritative statement of the tenancy model. Concise: states the limitation, that Solr owns authorization, that HTTP-mode OAuth2 is an access gate rather than a tenant boundary, and that sharing one instance across users is unsupported (operator owns the isolation risk). Multi-tenancy noted as possible future work.
  • Pointer links only (no re-declaration) from the README security list and the STDIO/HTTP transport security docs.

THREAT_MODEL is intentionally left untouched — it is handled separately in #160.

Add docs/security/deployment-model.md as the single authoritative statement
that the server is single-tenant and does not support multi-tenancy: each
user runs their own instance with their own Solr credentials, and every
action the configured Solr identity is permitted is reachable via the MCP
tools by design. Authorization is delegated to Solr, not re-implemented in
the MCP layer.

Reference the new doc (pointer links only) from the README security list and
the STDIO/HTTP transport security docs. THREAT_MODEL is intentionally left
untouched; it is handled separately.

Closes apache#169
@janhoy
janhoy requested a review from epugh July 30, 2026 15:29
@epugh

epugh commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

ping @adityamparikh

@epugh epugh left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. I asked Adi to weigh in as well as he is a core driver of this effort. We can reevaluate this post 1.0 as a new feature ;-).

@adityamparikh adityamparikh left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed — single-tenant is the right stance for 1.0 for both modes:

  • STDIO: an instance is spawned per user per client application anyway, so the 1:1 model is inherent to the transport.
  • HTTP: secure by default, and the OAuth2 flow authenticates callers — but it's only an access gate; every authenticated caller still acts as the single Solr identity configured at startup.

In both modes the server holds one outbound Solr credential (optionally Basic Auth via SOLR_USERNAME/SOLR_PASSWORD), so what the tools may do is scoped in Solr, not in the MCP layer at the moment.

+1 to revisiting multi-tenancy (per-request credentials / token exchange) post-1.0.

@janhoy
janhoy merged commit a57f4d9 into apache:main Jul 31, 2026
4 checks passed
@janhoy
janhoy deleted the docs/document-single-tenancy-169 branch July 31, 2026 10:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Document that we do not support multi tenancy

3 participants