Repository navigation
feat: expose knowledge-base documentation through an MCP server - #119
Open
oto-macenauer-absa wants to merge 1 commit into
Open
oto-macenauer-absa wants to merge 1 commit into
oto-macenauer-absa wants to merge 1 commit into
Conversation
The image copies the Node binary from a digest-pinned node:24-alpine donor into unprivileged nginx, moves dist/_mcp out of the web root to /opt/kb-mcp, and fails the build when the bundle, the search index or the 404 page is missing. docker/kb-entrypoint.sh supervises the loopback MCP process next to nginx; the healthcheck covers both. nginx proxies POST/OPTIONS /knowledge-base/mcp (and its subpaths) to it, leaves the MCP preflight to Node, and serves every 404 from the designed not-found page. contract/DEPLOYMENT.md records the gateway requirement and the KB_MCP_* settings. docs/mcp.md is the user and operator guide; docs/mcp-development.md the contributor guide. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 21, 2026
oto-macenauer-absa
force-pushed
the
feat/mcp-server
branch
from
October 21, 2026 13:04
aa8f442 to
12fc2d4
Compare
oto-macenauer-absa
added this pull request to stack #130
October 21, 2026 15:40
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Expose generated documentation through a public, read-only MCP endpoint so compatible AI agents can discover, search, and read Knowledge Base content without authentication.
This is the top of a three-PR stack. The PRs below it add the search index (#128) and the MCP server (#129). This one deploys the server and documents it.
Changes
Dockerfile:node:24-alpinedonor into the unprivileged nginx image;dist/_mcp(the search index and the server bundle) out of the web root, to/opt/kb-mcp;docker/kb-entrypoint.shsupervises the loopback Node MCP process next to nginx. The healthcheck covers both.nginx.conf:POST/OPTIONS /knowledge-base/mcp(and its subpaths) proxy to the local server. Node owns the Origin, size and rate limits, so production and the test mirror share one implementation;not-found.html.contract/DEPLOYMENT.mdadds two requirements: the gateway must forward unauthenticatedPOST /knowledge-base/mcp, and theKB_MCP_*settings are documented.Docs:
docs/mcp.mdfor users and operators: endpoint, client setup, surface, configuration, security, troubleshooting;docs/mcp-development.mdfor contributors: layout, adding a search backend, tests, bundle, framework choice.README, CLAUDE.md, AGENTS.md and CONTRIBUTING.md are updated to match.
Tests:
Release notes
Knowledge Base deployments now expose an unauthenticated, read-only MCP endpoint at
/knowledge-base/mcp. Deployment owners must allow unauthenticated POST forwarding for this path and setKB_MCP_PUBLIC_ORIGINwhen agents need absolute document links.Verification
make lint: greennpm audit --omit=dev --audit-level=high: greennpm test: 500 passednpm run test:mcp: 39 passednpx playwright test --config=playwright.config.ci.js: 23 passednpm run test:container: 37 passed (fresh image)Contract impact
contract/DEPLOYMENT.mdchanges deployment runtime and gateway requirements; artifact contract schemas remain unchanged.Closes #117
🤖 Generated with Claude Code