Repository navigation
feat(mcp): add read-only stdio MCP server with RAG search - #10
Merged
Merged
Conversation
Expose the existing Tool Registry's read/pure safe tools over MCP: get_profit_analysis, get_sku_breakdown, search_knowledge, and get_approval_status. Recommendation writes, approval, and simulated execution stay on the HTTP workflow behind the server-side role and human approval. Add protocol tests, a real stdio subprocess check, dependency lock updates, CI coverage, and documentation. The server uses the server-side PROFITOPS_MCP_ROLE, never creates tables or seeds data, and does not build an LLM provider. Co-Authored-By: Claude Code <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
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.
Summary
Adds a read-only stdio MCP Server on top of the existing Tool Registry. RAG was already implemented and merged on
master; this PR does not duplicate it. The MCP server exposes the same knowledge retrieval assearch_knowledgeand the samechunk_idcontract as the HTTP API.Exposed tools:
get_profit_analysisget_sku_breakdownsearch_knowledgeget_approval_statusNot exposed:
create_recommendation,simulate_execute_approved_action, and any approval, rejection, execution, user or tenant management tool. Calls to them returnunknown_tool.Security and contract boundaries
PROFITOPS_MCP_ROLE(analystdefault,approveroptional). Client role headers and tool-argumentrolefields are rejected.effect=read|pureandpolicy=safeat startup.analyses,recommendations,executions, andaudit_logscounts before and after.Verification (actually executed)
python -m pytest backend/tests -qpython -m pytest backend/tests/test_mcp_server.py -qpython scripts/mcp_check.py-570300cents;bridge_verified=true; 8 evidence items; 3 SKU rows; 3 RAG hits;embedding_model=hashing-v1; write/ask toolsunknown_toolnpm --prefix frontend test -- --runnpm --prefix frontend run buildpython -m pip checkgit diff --checkNot verified in this branch:
LLM_PROVIDER=disabledand an emptyLLM_API_KEY; no paid model call is part of this change.docs/TEST_REPORT.md.Files
backend/app/mcp_server.pybackend/tests/test_mcp_server.pyscripts/mcp_check.pydocs/MCP.mdbackend/app/config.py, dependency locks, CI workflow, README and contract/architecture/handoff/test docsNo database migration and no change to the HTTP API contract.
🤖 Generated with Claude Code