Skip to content

chore: Retire openrag-mcp; switch docs to streamable HTTP#1668

Merged
edwinjosechittilappilly merged 5 commits into
mainfrom
chore-remove-mcp
May 22, 2026
Merged

chore: Retire openrag-mcp; switch docs to streamable HTTP#1668
edwinjosechittilappilly merged 5 commits into
mainfrom
chore-remove-mcp

Conversation

@edwinjosechittilappilly

@edwinjosechittilappilly edwinjosechittilappilly commented May 22, 2026

Copy link
Copy Markdown
Collaborator

Remove the stdio-based MCP server and all in-repo MCP tooling, and update README to mark the package as retired. Deleted module files include the MCP entrypoint, server, config, registry and individual tools (chat, search, documents, settings). The README was rewritten to announce that openrag-mcp is retired, explain migration to the built-in streamable-HTTP /mcp endpoint, update Cursor/Claude examples to use URL+headers auth, list the new v1 API tools, and note that the last PyPI release is final. This change consolidates MCP functionality into the OpenRAG core and removes the subprocess/stdio implementation and its source code.

Summary by CodeRabbit

  • Chores

    • Deprecated the openrag-mcp package. Users should now connect to OpenRAG's built-in MCP server via HTTP at the /mcp endpoint instead.
  • Documentation

    • Updated with client configuration examples for Cursor and Claude Desktop using HTTP-based MCP server connections and authentication headers.

Review Change Stack

Remove the stdio-based MCP server and all in-repo MCP tooling, and update README to mark the package as retired. Deleted module files include the MCP entrypoint, server, config, registry and individual tools (chat, search, documents, settings). The README was rewritten to announce that openrag-mcp is retired, explain migration to the built-in streamable-HTTP /mcp endpoint, update Cursor/Claude examples to use URL+headers auth, list the new v1 API tools, and note that the last PyPI release is final. This change consolidates MCP functionality into the OpenRAG core and removes the subprocess/stdio implementation and its source code.
Copilot AI review requested due to automatic review settings May 22, 2026 18:50
@coderabbitai

coderabbitai Bot commented May 22, 2026

Copy link
Copy Markdown
Contributor

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 5dadf9f8-3322-48f8-9627-932cc20df518

📥 Commits

Reviewing files that changed from the base of the PR and between ad2a136 and 8cd493d.

⛔ Files ignored due to path filters (1)
  • sdks/mcp/uv.lock is excluded by !**/*.lock
📒 Files selected for processing (11)
  • sdks/mcp/README.md
  • sdks/mcp/pyproject.toml
  • sdks/mcp/src/openrag_mcp/__main__.py
  • sdks/mcp/src/openrag_mcp/config.py
  • sdks/mcp/src/openrag_mcp/server.py
  • sdks/mcp/src/openrag_mcp/tools/__init__.py
  • sdks/mcp/src/openrag_mcp/tools/chat.py
  • sdks/mcp/src/openrag_mcp/tools/documents.py
  • sdks/mcp/src/openrag_mcp/tools/registry.py
  • sdks/mcp/src/openrag_mcp/tools/search.py
  • sdks/mcp/src/openrag_mcp/tools/settings.py
💤 Files with no reviewable changes (9)
  • sdks/mcp/src/openrag_mcp/server.py
  • sdks/mcp/src/openrag_mcp/config.py
  • sdks/mcp/src/openrag_mcp/tools/chat.py
  • sdks/mcp/src/openrag_mcp/tools/init.py
  • sdks/mcp/src/openrag_mcp/main.py
  • sdks/mcp/src/openrag_mcp/tools/search.py
  • sdks/mcp/src/openrag_mcp/tools/settings.py
  • sdks/mcp/src/openrag_mcp/tools/registry.py
  • sdks/mcp/src/openrag_mcp/tools/documents.py

Walkthrough

This PR deprecates the standalone openrag-mcp SDK package, replacing it with OpenRAG's built-in MCP server accessible over streamable HTTP at /mcp. The README is rewritten with a retirement notice, migration guide, and updated configuration examples. Package metadata is simplified with cleared dependencies and marked as inactive.

Changes

OpenRAG MCP SDK Deprecation

Layer / File(s) Summary
Documentation: Retirement and migration guide
sdks/mcp/README.md
README announces package retirement and directs users to the built-in /mcp HTTP endpoint. Provides new setup examples for Cursor and Claude Desktop using URL-based MCP server configs with standard API key and IBM auth header variants. Lists auto-exposed tools now available over HTTP (chat, chat management, search, ingestion/task status, document deletion, settings read/update, models listing, knowledge filter CRUD). Explains benefits of the HTTP-based approach (no subprocess, full tool surface, unified auth, self-hosted).
Package metadata and classifiers
sdks/mcp/pyproject.toml
Version bumped from 0.3.0rc4 to 0.3.0. Description rewritten to announce retirement and reference migration to backend /mcp endpoint. Dependencies list cleared and openrag-mcp script entry removed. Classifiers reduced to inactive status set. Build configuration remains unchanged.

🎯 2 (Simple) | ⏱️ ~10 minutes

documentation, refactor

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: retiring the openrag-mcp package and redirecting documentation to use the built-in streamable HTTP endpoint instead of the subprocess-based MCP server.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore-remove-mcp

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Update package metadata to reflect retirement and integration into the OpenRAG backend. Bump version to 0.3.0 and replace the project description with a retirement/migration note. Set Development Status to Inactive, remove explicit Python version classifiers, and clear runtime dependencies and the CLI script entrypoint. Also remove the hatch env pip-args setting; build-system and wheel package target remain unchanged.

Copilot AI 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.

Pull request overview

Retires the standalone openrag-mcp (stdio/subprocess) implementation by deleting the in-repo MCP server/tooling and rewriting the SDK README to direct users to OpenRAG’s built-in streamable-HTTP MCP endpoint (/mcp).

Changes:

  • Deleted the Python MCP server entrypoint, config, and all tool implementations under sdks/mcp/src/openrag_mcp/.
  • Rewrote sdks/mcp/README.md to announce retirement and provide Cursor/Claude “url + headers” connection examples to /mcp.
  • Documented the built-in MCP surface area (chat/search/settings/docs/tasks/knowledge-filters) in the README.

Reviewed changes

Copilot reviewed 11 out of 12 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
sdks/mcp/src/openrag_mcp/tools/settings.py Removed settings/models tools implementation (deleted).
sdks/mcp/src/openrag_mcp/tools/search.py Removed search tool implementation (deleted).
sdks/mcp/src/openrag_mcp/tools/registry.py Removed MCP tool registry (deleted).
sdks/mcp/src/openrag_mcp/tools/documents.py Removed document/task tool implementations (deleted).
sdks/mcp/src/openrag_mcp/tools/chat.py Removed chat tool implementation (deleted).
sdks/mcp/src/openrag_mcp/tools/init.py Removed tool registration module (deleted).
sdks/mcp/src/openrag_mcp/server.py Removed stdio MCP server entrypoint (deleted).
sdks/mcp/src/openrag_mcp/config.py Removed env/config + client wiring (deleted).
sdks/mcp/src/openrag_mcp/main.py Removed module entrypoint (deleted).
sdks/mcp/README.md Updated documentation to retirement notice + migration to /mcp streamable HTTP.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread sdks/mcp/README.md
>
> OpenRAG now ships a built-in [Model Context Protocol](https://modelcontextprotocol.io/) server over **streamable HTTP** — no subprocess, no separate install, no API key in a subprocess env block. Connect your MCP client directly to your running OpenRAG instance.
>
> The last published version of `openrag-mcp` on PyPI is the final release. No further updates will be made to this package.
Comment thread sdks/mcp/README.md

Document ingestion and management tools (`openrag_ingest_file`, `openrag_ingest_url`, `openrag_delete_document`, `openrag_get_task_status`, `openrag_wait_for_task`) are implemented but not yet registered in this server; they will be enabled in a future release.
- A running OpenRAG instance (v0.3.0 or later)
- An OpenRAG API key — create one in **Settings → API Keys**
Comment thread sdks/mcp/README.md
| `openrag_get_chat` | Get a specific chat conversation by ID. |
| `openrag_delete_chat` | Delete a chat conversation by ID. |
| `openrag_search` | Semantic search over the knowledge base. Supports filters, score threshold, data sources. |
| `openrag_ingest` | Ingest documents (files, URLs, text) into the knowledge base. Returns a `task_id`. |
Comment thread sdks/mcp/README.md
Comment on lines +101 to 104
## Available tools

## Example prompts
All tools are auto-exposed from the `/v1/` API and are available immediately after connecting:

@github-actions github-actions Bot added the lgtm label May 22, 2026
@edwinjosechittilappilly edwinjosechittilappilly merged commit 7d03153 into main May 22, 2026
15 checks passed
@github-actions github-actions Bot deleted the chore-remove-mcp branch May 22, 2026 19:32
ricofurtado pushed a commit that referenced this pull request May 23, 2026
* Retire openrag-mcp; switch docs to streamable HTTP

Remove the stdio-based MCP server and all in-repo MCP tooling, and update README to mark the package as retired. Deleted module files include the MCP entrypoint, server, config, registry and individual tools (chat, search, documents, settings). The README was rewritten to announce that openrag-mcp is retired, explain migration to the built-in streamable-HTTP /mcp endpoint, update Cursor/Claude examples to use URL+headers auth, list the new v1 API tools, and note that the last PyPI release is final. This change consolidates MCP functionality into the OpenRAG core and removes the subprocess/stdio implementation and its source code.

* Mark MCP SDK retired and clean package metadata

Update package metadata to reflect retirement and integration into the OpenRAG backend. Bump version to 0.3.0 and replace the project description with a retirement/migration note. Set Development Status to Inactive, remove explicit Python version classifiers, and clear runtime dependencies and the CLI script entrypoint. Also remove the hatch env pip-args setting; build-system and wheel package target remain unchanged.

* chore: update uv.lock files after version bump

* Update uv.lock

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
ricofurtado pushed a commit that referenced this pull request May 23, 2026
* Retire openrag-mcp; switch docs to streamable HTTP

Remove the stdio-based MCP server and all in-repo MCP tooling, and update README to mark the package as retired. Deleted module files include the MCP entrypoint, server, config, registry and individual tools (chat, search, documents, settings). The README was rewritten to announce that openrag-mcp is retired, explain migration to the built-in streamable-HTTP /mcp endpoint, update Cursor/Claude examples to use URL+headers auth, list the new v1 API tools, and note that the last PyPI release is final. This change consolidates MCP functionality into the OpenRAG core and removes the subprocess/stdio implementation and its source code.

* Mark MCP SDK retired and clean package metadata

Update package metadata to reflect retirement and integration into the OpenRAG backend. Bump version to 0.3.0 and replace the project description with a retirement/migration note. Set Development Status to Inactive, remove explicit Python version classifiers, and clear runtime dependencies and the CLI script entrypoint. Also remove the hatch env pip-args setting; build-system and wheel package target remain unchanged.

* chore: update uv.lock files after version bump

* Update uv.lock

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
ricofurtado added a commit that referenced this pull request May 26, 2026
* fix: Ensure SUCCESS status requires fetchable result in DoclingPollingService

* style: ruff autofix (auto)

* fix: Catch specific DoclingServeError when fetching task result after SUCCESS status

* feat: update style for oss of the failed task in the task panel (#1647)

* update style for oss of the failed task in the task panel

* keep logic on click, remove unecessary useeffect

* fix padding

* wip implementing Saas style

* utils to reshape error until backend provide info we need

* utils to reshape error until backend provide info we need

* utils to reshape error until backend provide info we need and fixinf fallbacks of isTotalFailure

* utils to reshape error until backend provide into

* have Saas style for failed and complete labelstatus and width and border

* few style adjustment to follow codebase pattern

* adjust succeed and partially succeed case

* adding comment for TODO implementation or more clarity

* remove carbon icon package and replace carbon icon

* add incident-reporter-icon

---------

Co-authored-by: Olfa Maslah <[email protected]>

* fix: Encode IBM API key as Basic auth header (#1664)

* Encode IBM API key as Basic auth header

Add base64 encoding for the IBM auth path: import base64, construct a Basic auth token from X-Username and X-Api-Key (username:apikey), and store it in user.jwt_token and user.opensearch_credentials. Also set request.state.user before attaching the DB user ID so downstream code can access the created user object.

* style: ruff autofix (auto)

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>

* fix: restart deployment if env changes (#1665)

* restart deployment if env changes

* unit test

* lint

* fix: Ensure Langflow .env variable definitions from LANGFLOW_VARIABLES_TO_GET_FROM_ENVIRONMENT (#1667)

* Ensure we dynamically update the list of Langflow .env environment variables with default values when the comma separated list defined in LANGFLOW_VARIABLES_TO_GET_FROM_ENVIRONMENT changes

* fix tests

* fix additional linting errors

---------

Co-authored-by: rodageve <[email protected]>

* chore: Retire openrag-mcp; switch docs to streamable HTTP (#1668)

* Retire openrag-mcp; switch docs to streamable HTTP

Remove the stdio-based MCP server and all in-repo MCP tooling, and update README to mark the package as retired. Deleted module files include the MCP entrypoint, server, config, registry and individual tools (chat, search, documents, settings). The README was rewritten to announce that openrag-mcp is retired, explain migration to the built-in streamable-HTTP /mcp endpoint, update Cursor/Claude examples to use URL+headers auth, list the new v1 API tools, and note that the last PyPI release is final. This change consolidates MCP functionality into the OpenRAG core and removes the subprocess/stdio implementation and its source code.

* Mark MCP SDK retired and clean package metadata

Update package metadata to reflect retirement and integration into the OpenRAG backend. Bump version to 0.3.0 and replace the project description with a retirement/migration note. Set Development Status to Inactive, remove explicit Python version classifiers, and clear runtime dependencies and the CLI script entrypoint. Also remove the hatch env pip-args setting; build-system and wheel package target remain unchanged.

* chore: update uv.lock files after version bump

* Update uv.lock

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* fix: connector sync and override feature (#1663)

* Add filename-based duplicate handling for connectors

Add end-to-end support for filename-based duplicate handling on connector ingests.

Frontend: send a new replace_duplicates flag with connector sync requests, perform a pre-sync duplicate check, and show a DuplicateHandlingDialog that lets users overwrite or skip duplicates when uploading from provider UI.

Backend: propagate replace_duplicates through connector_router, request models, and connector services into the file processors. ConnectorFileProcessor and LangflowConnectorFileProcessor now check whether a filename already exists in the index and either fail the file task or delete the existing document before ingesting when replace_duplicates is true.

Utilities/tests: clean_connector_filename now preserves original spacing/slashes and only enforces MIME-mapped extensions; get_filename_aliases adds underscore/sanitized variants so lookups match connector-indexed names. Add unit tests covering filename dedupe logic and filename alias behavior.

* Use duplicateNames list and display names

Replace numeric duplicateCount with a duplicateNames string[] across upload and dropdown flows so the UI can show the actual file names that would be overwritten. The duplicate-handling dialog now accepts duplicateNames, derives an effective count, and lists up to 5 duplicate filenames with an "… and N more" indicator; message labels and button text use the effective count. Toast messages and pending state in upload/[provider]/page.tsx and knowledge-dropdown.tsx were updated to pass and consume duplicateNames and to use duplicateNames.length for counts.

* Update page.tsx

* style: ruff autofix (auto)

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>

* fix: update OAuth prompt to consent for connector mutation (#1657)

* fix: implement transient error handling for Docling result fetch

* style: ruff autofix (auto)

* refactor: remove unused import of Optional in docling_polling_service.py

* refactor: change PollOutcome to use StrEnum for better type safety

* refactor: enhance task status endpoints with structured failure metadata

* style: ruff autofix (auto)

* revert "style: ruff autofix (auto)"

This reverts commit bc8be33.

* style: ruff autofix (auto)

* fix: Ensure SUCCESS status requires fetchable result in DoclingPollingService

* style: ruff autofix (auto)

* fix: Catch specific DoclingServeError when fetching task result after SUCCESS status

* fix: implement transient error handling for Docling result fetch

* style: ruff autofix (auto)

* refactor: remove unused import of Optional in docling_polling_service.py

* refactor: change PollOutcome to use StrEnum for better type safety

* refactor: enhance task status endpoints with structured failure metadata

* style: ruff autofix (auto)

* revert "style: ruff autofix (auto)"

This reverts commit bc8be33.

* style: ruff autofix (auto)

* Update tests/unit/test_task_service_get_task_status2.py

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* style: ruff autofix (auto)

* fix: handle timeout during Docling result fetch after SUCCESS status

* fix: update task status checks to use enum values for consistency

* fix: enhance failure metadata for duplicate file errors in ingestion

* style: ruff autofix (auto)

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Wallgau <[email protected]>
Co-authored-by: Olfa Maslah <[email protected]>
Co-authored-by: Edwin Jose <[email protected]>
Co-authored-by: ming <[email protected]>
Co-authored-by: rodageve <[email protected]>
Co-authored-by: rodageve <[email protected]>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants